diff --git a/.travis.yml b/.travis.yml index 548a8c5338024c2ad322c5c483723c21e4e77f93..57781d47e44cbc631fcb540ec88765f99e49b706 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,12 +53,14 @@ before_script: - sh -c "if [ '$PHPV' = '5.3' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi" - sh -c "if [ '$PHPV' = '5.4' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi" - cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini + - echo Mysql version + - mysql --version - echo Init database - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE myapp_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'DROP DATABASE IF EXISTS myapp_test;'; fi" - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'CREATE DATABASE IF NOT EXISTS myapp_test;'; fi" - - sh -c "if [ '$DB' = 'mysql' ]; then mysql -D myapp_test < $(pwd)/dev/initdata/mysqldump_dolibarr_3.4.0.sql; fi" + - sh -c "if [ '$DB' = 'mysql' ]; then mysql -D myapp_test < $(pwd)/dev/initdata/mysqldump_dolibarr_3.5.0.sql; fi" - echo Create config file htdocs/conf/conf.php - echo '<?php ' > htdocs/conf/conf.php - sh -c "if [ '$DB' = 'pgsql' ]; then echo '$'dolibarr_main_db_type=\'pgsql\'';' >> htdocs/conf/conf.php; fi" @@ -88,12 +90,12 @@ before_script: script: - cd htdocs/install - date - - php upgrade.php 3.4.0 3.5.0 > upgrade.log - - php upgrade2.php 3.4.0 3.5.0 > upgrade2.log +# - php upgrade.php 3.4.0 3.5.0 > upgrade.log +# - php upgrade2.php 3.4.0 3.5.0 > upgrade2.log - php upgrade.php 3.5.0 3.6.0 >> upgrade.log - php upgrade2.php 3.5.0 3.6.0 >> upgrade2.log - php upgrade.php 3.6.0 3.7.0 >> upgrade.log -# - cat upgrade.log +# - cat upgrade360370.log - php upgrade2.php 3.6.0 3.7.0 >> upgrade2.log # - cat upgrade2.log - cd ../.. diff --git a/COPYRIGHT b/COPYRIGHT index c0d8389369c1b0a97b92fb5d910dd48bc7f8237c..fd54e10f354dc235a7fcc8c0f3c625e7bcdd1364 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -9,41 +9,41 @@ More information: http://www.gnu.org/licenses/gpl-3.0.txt Dolibarr uses some external libraries released under different licenses. This is compatibility summary: -Component Version License GPL Compatible Usage +Component Version License GPL Compatible Usage ------------------------------------------------------------------------------------- PHP libraries: -AdoDb-Date 0.32 Modified BSD License Yes Date convertion (not into rpm package) -CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG -FPDI 1.4.2 Apache Software License 2.0 Yes PDF templates management -FPDF_TPL 1.2 Apache Software License 2.0 Yes PDF templates management -GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package) -NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package) -odtPHP 1.0.1 GPL-2+ b Yes Library to build/edit ODT files -PHPExcel 1.7.8 LGPL-2.1+ Yes Read/Write XLS files, read ODS files -PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests -TCPDF 6.0.093 LGPL-3+ Yes PDF generation +AdoDb-Date 0.32 Modified BSD License Yes Date convertion (not into rpm package) +CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG +FPDI 1.4.2 Apache Software License 2.0 Yes PDF templates management +FPDF_TPL 1.2 Apache Software License 2.0 Yes PDF templates management +GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package) +NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package) +odtPHP 1.0.1 GPL-2+ b Yes Library to build/edit ODT files +PHPExcel 1.7.8 LGPL-2.1+ Yes Read/Write XLS files, read ODS files +PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests +TCPDF 6.0.093 LGPL-3+ Yes PDF generation JS libraries: -jQuery 1.8.2 MIT License Yes JS library -jQuery UI 1.9.1 GPL and MIT License Yes JS library plugin UI -jQuery UI Multiselect ? GPL and MIT License Yes JS library plugin for sexier multiselect -jQuery blockUI 2.43 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups) -jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors -jQuery DataTables 1.9.4 BSD Yes JS library for tables output -jQuery FileUpload 5.0.3 GPL and MIT License Yes JS library to upload files -jQuery Flot 0.7 MIT License Yes JS library to build graph -jQuery JCrop 0.9.8 GPL and MIT License Yes JS library plugin Crop (to crop images) -jQuery Jeditable 1.7.1 GPL and MIT License Yes JS library plugin jeditable (to edit in place) -jQuery jNotify 1.1.00 Apache Software License 2.0 Yes JS library plugin jNotify (to use ajax popups) -jQuery jPicker 1.1.6 GPL and MIT License Yes JS library for color picker with not defined list of colors -jQuery jqueryFileTree 1.0.1 GPL and MIT License Yes JS library for color picker with not defined list of colors -jQuery jquerytreeview 1.4.1 MIT License Yes JS library for color picker with not defined list of colors -jQuery Layout 1.3.0rc30.74 GPL and MIT License Yes JS library plugin Layout (RC-29.15) -jQuery Mobile 1.3.0 GPL and MIT License Yes JS library for smartphone (not used) -jQuery TableDnD 0.6 GPL and MIT License Yes JS library plugin TableDnD (to reorder table rows) -jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker -jQuery Tiptip 1.3 GPL and MIT License Yes JS library for tooltips -jsGantt 1.2 BSD License Yes JS library (to build Gantt reports) +jQuery 1.8.2 MIT License Yes JS library +jQuery UI 1.9.1 GPL and MIT License Yes JS library plugin UI +jQuery multiple-select 1.1.0 MIT License Yes JS library plugin for sexier multiselect +jQuery blockUI 2.43 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups) +jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors +jQuery DataTables 1.9.4 BSD Yes JS library for tables output +jQuery FileUpload 5.0.3 GPL and MIT License Yes JS library to upload files +jQuery Flot 0.7 MIT License Yes JS library to build graph +jQuery JCrop 0.9.8 GPL and MIT License Yes JS library plugin Crop (to crop images) +jQuery Jeditable 1.7.1 GPL and MIT License Yes JS library plugin jeditable (to edit in place) +jQuery jNotify 1.1.00 Apache Software License 2.0 Yes JS library plugin jNotify (to use ajax popups) +jQuery jPicker 1.1.6 GPL and MIT License Yes JS library for color picker with not defined list of colors +jQuery jqueryFileTree 1.0.1 GPL and MIT License Yes JS library for color picker with not defined list of colors +jQuery jquerytreeview 1.4.1 MIT License Yes JS library for color picker with not defined list of colors +jQuery Layout 1.3.0rc30.74 GPL and MIT License Yes JS library plugin Layout (RC-29.15) +jQuery Mobile 1.3.0 GPL and MIT License Yes JS library for smartphone (not used) +jQuery TableDnD 0.6 GPL and MIT License Yes JS library plugin TableDnD (to reorder table rows) +jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker +jQuery Tiptip 1.3 GPL and MIT License Yes JS library for tooltips +jsGantt 1.2 BSD License Yes JS library (to build Gantt reports) For licenses compatibility informations: http://www.fsf.org/licensing/licenses/index_html diff --git a/ChangeLog b/ChangeLog index c5aeb5874b39e26858b487598aadb93c4e48c9a3..9f1ae0857a26e41838cd6a159bc9e61bf1ea5c9a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -99,6 +99,7 @@ For users: - Fix: [ bug #1506, #1507 ] ECM trigger error problem - Fix: [ bug #1469 ] Triggers CONTACT_MODIFY and CONTACT_DELETE duplicates error message - Fix: [ bug #1537 ] Difference between societe.nom and adherent.societe. +- Fix: [ bug #1535 ] Supplier invoice Extrafields are not shown For users, new experimental module (need to set feature level of instance to experimental to see them): - New: Module Accounting Expert to manage accountancy @@ -163,18 +164,20 @@ Dolibarr better: ***** ChangeLog for 3.6.2 compared to 3.6.1 ***** -- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice -- Fix: bug 1588 : relative discount +- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice. +- Fix: bug 1588 : relative discount. - Fix: label of input method not tranlated. - Fix: box of customer and propsects were not correctly disabled. -- Fix: right and error management #1961 -- Fix: Fix Error when trying to clone an Order #1943 - Fix: [ bug #1618 ] PHP Error thrown when saving a barcode +- Fix: Civility & birthdate wasn't save into adherent module. +- Fix: webservice Thirdparty parameter lastname for invidual creation is now lastname and not ref +- Fix: Chars - is no more allowed into value for code for extra fields. +( Fix: [ bug #1622 ] Requesting holiday than spans across two years cause high CPU usage by Apache ***** ChangeLog for 3.6.1 compared to 3.6.* ***** For users: - Fix: Can upload files on services. -- Fix: sql errors on updat fichinter. +- Fix: sql errors on update fichinter. - Fix: debian script syntax error. - Fix: error "menu param is not inside list" into pos module. - Fix: Salary payments are not reflected on the reporting sheets. @@ -310,6 +313,9 @@ removed. You must now use the 6 parameters way. See file modMyModule.class.php f - Remove add_photo_web() that is ot used anymore by core code. +***** ChangeLog for 3.5.6 compared to 3.5.5 ***** +Fix: Avoid missing class error for fetch_thirdparty method #1973 + ***** ChangeLog for 3.5.5 compared to 3.5.4 ***** Fix: Holiday module was broken. Initializaion of amount of holidays failed. Fix: [ bug #1523 ] suite bug #1334 : filtre et ordre de tri conjoints ne s'appliquent pas. diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index 2a4af64f5fe8e8b8c775722400cdc54e719cb747..370c04591a99cb1482bba5946bd421af2119c7bf 100755 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -446,6 +446,7 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/test`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/teclib*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/oblyon*`; + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/eldy/*.new`; $ret=`rm -fr $BUILDROOT/$PROJECT/test`; $ret=`rm -fr $BUILDROOT/$PROJECT/Thumbs.db $BUILDROOT/$PROJECT/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/*/Thumbs.db`; $ret=`rm -f $BUILDROOT/$PROJECT/.cvsignore $BUILDROOT/$PROJECT/*/.cvsignore $BUILDROOT/$PROJECT/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/*/.cvsignore`; diff --git a/dev/codesniffer/ruleset.xml b/dev/codesniffer/ruleset.xml index 72590c157416c0787b6e9901593a5b4487099f91..7e3057a6675460d1b02843b8532f9a2085a38570 100755 --- a/dev/codesniffer/ruleset.xml +++ b/dev/codesniffer/ruleset.xml @@ -108,7 +108,7 @@ <rule ref="Generic.Metrics.CyclomaticComplexity"> <properties> <property name="complexity" value="80" /> - <property name="absoluteComplexity" value="200" /> + <property name="absoluteComplexity" value="250" /> </properties> </rule> <rule ref="Generic.Metrics.NestingLevel"> diff --git a/dev/skeletons/skeleton_class.class.php b/dev/skeletons/skeleton_class.class.php index 781bbc1f77cb0265c564f4faa9e0f47be3afdd65..f623debc581b3d3bc1cdc88d2146827b892f7ed3 100644 --- a/dev/skeletons/skeleton_class.class.php +++ b/dev/skeletons/skeleton_class.class.php @@ -1,5 +1,6 @@ <?php /* Copyright (C) 2007-2012 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es> * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software; you can redistribute it and/or modify @@ -79,7 +80,7 @@ class Skeleton_Class extends CommonObject // Put here code to add control on parameters values // Insert request - $sql = "INSERT INTO ".MAIN_DB_PREFIX."mytable("; + $sql = "INSERT INTO ".MAIN_DB_PREFIX.$this->table_element."("; $sql.= " field1,"; $sql.= " field2"; //... @@ -91,13 +92,13 @@ class Skeleton_Class extends CommonObject $this->db->begin(); - dol_syslog(get_class($this)."::create", LOG_DEBUG); + dol_syslog(__METHOD__, LOG_DEBUG); $resql=$this->db->query($sql); if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } if (! $error) { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."mytable"); + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX.$this->table_element); if (! $notrigger) { @@ -116,7 +117,7 @@ class Skeleton_Class extends CommonObject { foreach($this->errors as $errmsg) { - dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR); + dol_syslog(__METHOD__." ".$errmsg, LOG_ERR); $this->error.=($this->error?', '.$errmsg:$errmsg); } $this->db->rollback(); @@ -145,7 +146,7 @@ class Skeleton_Class extends CommonObject $sql.= " t.field1,"; $sql.= " t.field2"; //... - $sql.= " FROM ".MAIN_DB_PREFIX."mytable as t"; + $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t"; if ($ref) $sql.= " WHERE t.ref = '".$ref."'"; else $sql.= " WHERE t.rowid = ".$id; @@ -195,7 +196,7 @@ class Skeleton_Class extends CommonObject // Put here code to add a control on parameters values // Update request - $sql = "UPDATE ".MAIN_DB_PREFIX."mytable SET"; + $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET"; $sql.= " field1=".(isset($this->field1)?"'".$this->db->escape($this->field1)."'":"null").","; $sql.= " field2=".(isset($this->field2)?"'".$this->db->escape($this->field2)."'":"null").""; //... @@ -203,7 +204,7 @@ class Skeleton_Class extends CommonObject $this->db->begin(); - dol_syslog(get_class($this)."::update"); + dol_syslog(__METHOD__); $resql = $this->db->query($sql); if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } @@ -226,7 +227,7 @@ class Skeleton_Class extends CommonObject { foreach($this->errors as $errmsg) { - dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR); + dol_syslog(__METHOD__." ".$errmsg, LOG_ERR); $this->error.=($this->error?', '.$errmsg:$errmsg); } $this->db->rollback(); @@ -270,10 +271,10 @@ class Skeleton_Class extends CommonObject if (! $error) { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."mytable"; + $sql = "DELETE FROM ".MAIN_DB_PREFIX.$this->table_element; $sql.= " WHERE rowid=".$this->id; - dol_syslog(get_class($this)."::delete"); + dol_syslog(__METHOD__); $resql = $this->db->query($sql); if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } } @@ -283,7 +284,7 @@ class Skeleton_Class extends CommonObject { foreach($this->errors as $errmsg) { - dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR); + dol_syslog(__METHOD__." ".$errmsg, LOG_ERR); $this->error.=($this->error?', '.$errmsg:$errmsg); } $this->db->rollback(); diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index 60ff4b125c3252e160b0d7a2470175ff24aef35e..36739254d06efc39e572d82979222892bb0f8a44 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -37,6 +37,11 @@ $mesg = ''; $action = GETPOST('action'); $id = GETPOST('id', 'int'); $rowid = GETPOST('rowid', 'int'); +$search_account = GETPOST("search_account"); +$search_label = GETPOST("search_label"); +$search_accountparent = GETPOST("search_accountparent"); +$search_pcgtype = GETPOST("search_pcgtype"); +$search_pcgsubtype = GETPOST("search_pcgsubtype"); // Security check if (!$user->admin) @@ -83,6 +88,15 @@ if ($action == 'disable') { } } +if (GETPOST("button_removefilter")) +{ + $search_account=""; + $search_label=""; + $search_accountparent=""; + $search_pcgtype=""; + $search_pcgsubtype=""; +} + /* * View * @@ -96,20 +110,20 @@ $sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa, " . MAIN_DB_PREFIX $sql .= " WHERE aa.fk_pcg_version = asy.pcg_version"; $sql .= " AND asy.rowid = " . $pcgver; -if (strlen(trim($_GET["search_account"]))) { - $sql .= " AND aa.account_number like '%" . $_GET["search_account"] . "%'"; +if (strlen(trim($search_account))) { + $sql .= " AND aa.account_number like '%" . $search_account . "%'"; } -if (strlen(trim($_GET["search_label"]))) { - $sql .= " AND aa.label like '%" . $_GET["search_label"] . "%'"; +if (strlen(trim($search_label))) { + $sql .= " AND aa.label like '%" . $search_label . "%'"; } -if (strlen(trim($_GET["search_accountparent"]))) { - $sql .= " AND aa.account_parent like '%" . $_GET["search_accountparent"] . "%'"; +if (strlen(trim($search_accountparent))) { + $sql .= " AND aa.account_parent like '%" . $search_accountparent . "%'"; } -if (strlen(trim($_GET["search_pcgtype"]))) { - $sql .= " AND aa.pcg_type like '%" . $_GET["search_pcgtype"] . "%'"; +if (strlen(trim($search_pcgtype))) { + $sql .= " AND aa.pcg_type like '%" . $search_pcgtype . "%'"; } -if (strlen(trim($_GET["search_pcgsubtype"]))) { - $sql .= " AND aa.pcg_subtype like '%" . $_GET["search_pcgsubtype"] . "%'"; +if (strlen(trim($search_pcgsubtype))) { + $sql .= " AND aa.pcg_subtype like '%" . $search_pcgsubtype . "%'"; } $sql .= $db->order($sortfield, $sortorder); @@ -141,18 +155,20 @@ if ($result) { print_liste_field_titre($langs->trans("Pcgtype"), $_SERVER["PHP_SELF"], "aa.pcg_type", "", $param, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Pcgsubtype"), $_SERVER["PHP_SELF"], "aa.pcg_subtype", "", $param, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Active"), $_SERVER["PHP_SELF"], "aa.active", "", $param, "", $sortfield, $sortorder); - print_liste_field_titre(" "); + print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder); print '</tr>'; print '<tr class="liste_titre">'; - print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_account" value="' . GETPOST("search_account") . '"></td>'; - print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_label" value="' . GETPOST("search_label") . '"></td>'; - print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_accountparent" value="' . GETPOST("search_accountparent") . '"></td>'; - print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_pcgtype" value="' . GETPOST("search_pcgtype") . '"></td>'; - print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_pcgsubtype" value="' . GETPOST("search_pcgsubtype") . '"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_account" value="' . $search_account . '"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_label" value="' . $search_label . '"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_accountparent" value="' . $search_accountparent . '"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_pcgtype" value="' . $search_pcgtype . '"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" size="15" name="search_pcgsubtype" value="' . $search_pcgsubtype . '"></td>'; print '<td class="liste_titre"> </td>'; - print '<td class="liste_titre" align="right">'; - print '<input type="image" class="liste_titre" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/search.png" name="button_search" value="' . dol_escape_htmltag($langs->trans("Search")) . '" title="' . dol_escape_htmltag($langs->trans("Search")) . '">'; + print '<td align="right" colspan="2" class="liste_titre">'; + 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 ' '; + print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" name="button_removefilter" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print '</td>'; print '</tr>'; @@ -180,11 +196,13 @@ if ($result) { } print '</td>'; - print '<td>'; + // Action + print '<td align="center">'; if ($user->admin) { print '<a href="./card.php?action=update&id=' . $obj->rowid . '">'; print img_edit(); - print '</a> '; + print '</a>'; + print ' '; print '<a href="./card.php?action=delete&id=' . $obj->rowid . '">'; print img_delete(); print '</a>'; diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index 9ebdea5fefc9eaaceb3cf83c32c130e574b7ecd0..ad6ca01b6ca8deffb9666fe078e24ae8e58bb6ab 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -181,11 +181,6 @@ else if ($id) if ($action == 'update') { - // WYSIWYG Editor - $htmlacc = new FormVentilation($db); - - require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php'; - $soc = new Societe($db); if ($object->socid) { $soc->fetch($object->socid); diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 9e109c7feeb11988106460ffbc5b3d3ff9c5073b..608c62cf1d08a5980d815cafcfad1bb9a5f3202f 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -35,8 +35,6 @@ $langs->load("accounting"); $id = GETPOST('id', 'int'); if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); $action = GETPOST('action'); $piece_num = GETPOST("piece_num"); @@ -238,7 +236,9 @@ if ($action == 'create') { print '<input type="submit" class="butAction" value="' . $langs->trans("Save") . '">'; print '</form>'; -} else { +} +else +{ $book = new BookKeeping($db); $result = $book->fetch_per_mvt($piece_num); if ($result < 0) { @@ -309,14 +309,12 @@ if ($action == 'create') { print '<td><input type="text" size="6" name="credit" value="' . price($line->credit) . '"/></td>'; print '<td>' . $line->montant . '</td>'; print '<td>' . $line->sens . '</td>'; - print '<td>'; - if ($user->rights->accounting->access) { - print '<input type="submit" class="button" value="' . $langs->trans("Update") . '">'; - } + print '<input type="submit" class="button" value="' . $langs->trans("Update") . '">'; print '</form>'; print '</td>'; - } else { + } + else { print '<td>' . $line->numero_compte . '</td>'; print '<td>' . $line->code_tiers . '</td>'; print '<td>' . $line->label_compte . '</td>'; @@ -324,16 +322,15 @@ if ($action == 'create') { print '<td>' . $line->credit . '</td>'; print '<td>' . $line->montant . '</td>'; print '<td>' . $line->sens . '</td>'; - + print '<td>'; - if ($user->rights->accouting->access) { - print '<a href="./card.php?action=update&id=' . $line->id . '&piece_num=' . $line->piece_num . '">'; - print img_edit(); - print '</a> '; - print '<a href="./card.php?action=delete&id=' . $line->id . '&piece_num=' . $line->piece_num . '">'; - print img_delete(); - print '</a>'; - } + print '<a href="./card.php?action=update&id=' . $line->id . '&piece_num=' . $line->piece_num . '">'; + print img_edit(); + print '</a> '; + print '<a href="./card.php?action=delete&id=' . $line->id . '&piece_num=' . $line->piece_num . '">'; + print img_delete(); + print '</a>'; + print '</td>'; } print "</tr>\n"; @@ -342,7 +339,7 @@ if ($action == 'create') { if ($action == "" || $action == 'add') { $var = ! $var; print "<tr $bc[$var]>"; - + print '<form action="' . $_SERVER["PHP_SELF"] . '?piece_num=' . $book->piece_num . '" method="post">'; print '<input type="hidden" name="action" value="add">' . "\n"; print '<input type="hidden" name="doc_date" value="' . $book->doc_date . '">' . "\n"; @@ -359,14 +356,13 @@ if ($action == 'create') { print '<td></td>'; print '<td></td>'; print '<td><input type="submit" class="button" value="' . $langs->trans("Save") . '"></td>'; - print '</tr>'; } - print "</table>"; } } - } else { + } + else { print_fiche_titre($langs->trans("NoRecords")); } } diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index b0e5096699b7a117b890249dd2d4472d50e01e29..21da5bacbb9b3c77226a0dfface62340561cd3d0 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -36,6 +36,11 @@ $page = GETPOST("page"); $sortorder = GETPOST("sortorder"); $sortfield = GETPOST("sortfield"); $action = GETPOST('action', 'alpha'); +$search_doc_type = GETPOST("search_doc_type"); +$search_doc_ref = GETPOST("search_doc_ref"); +$search_account = GETPOST("search_account"); +$search_thirdparty = GETPOST("search_thirdparty"); +$search_journal = GETPOST("search_journal"); if ($sortorder == "") $sortorder = "ASC"; @@ -46,6 +51,15 @@ $offset = $conf->liste_limit * $page; $formventilation = new FormVentilation($db); +if (GETPOST("button_removefilter")) +{ + $search_doc_type=""; + $search_doc_ref=""; + $search_account=""; + $search_thirdparty=""; + $search_journal=""; +} + /* * Action */ @@ -100,25 +114,25 @@ else { $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.code_tiers, bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num "; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; - if (dol_strlen(trim(GETPOST("search_doc_type")))) { + if (dol_strlen(trim($search_doc_type))) { - $sql .= " WHERE bk.doc_type LIKE '%" . GETPOST("search_doc_type") . "%'"; + $sql .= " WHERE bk.doc_type LIKE '%" . $search_doc_type . "%'"; - if (dol_strlen(trim(GETPOST("search_doc_ref")))) { - $sql .= " AND bk.doc_ref LIKE '%" . GETPOST("search_doc_ref") . "%'"; + if (dol_strlen(trim($search_doc_ref))) { + $sql .= " AND bk.doc_ref LIKE '%" . $search_doc_ref . "%'"; } } - if (dol_strlen(trim(GETPOST("search_doc_ref")))) { - $sql .= " WHERE bk.doc_ref LIKE '%" . GETPOST("search_doc_ref") . "%'"; + if (dol_strlen(trim($search_doc_ref))) { + $sql .= " WHERE bk.doc_ref LIKE '%" . $search_doc_ref . "%'"; } - if (dol_strlen(trim(GETPOST("search_compte")))) { - $sql .= " WHERE bk.numero_compte LIKE '%" . GETPOST("search_compte") . "%'"; + if (dol_strlen(trim($search_account))) { + $sql .= " WHERE bk.numero_compte LIKE '%" . $search_account . "%'"; } - if (dol_strlen(trim(GETPOST("search_tiers")))) { - $sql .= " WHERE bk.code_tiers LIKE '%" . GETPOST("search_tiers") . "%'"; + if (dol_strlen(trim($search_thirdparty))) { + $sql .= " WHERE bk.code_tiers LIKE '%" . $search_thirdparty . "%'"; } - if (dol_strlen(trim(GETPOST("search_journal")))) { - $sql .= " WHERE bk.code_journal LIKE '%" . GETPOST("search_journal") . "%'"; + if (dol_strlen(trim($search_journal))) { + $sql .= " WHERE bk.code_journal LIKE '%" . $search_journal . "%'"; } $sql .= " ORDER BY $sortfield $sortorder " . $db->plimit($conf->liste_limit + 1, $offset); @@ -149,7 +163,7 @@ else { print '<input type="submit" class="button" style="float: right;" value="Export CSV" />'; print '</form>'; - print "<table class=\"noborder\" width=\"100%\">"; + print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; print_liste_field_titre($langs->trans("Doctype"), $_SERVER['PHP_SELF'], "bk.doc_type", "", "", "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "bk.doc_date", "", "", "", $sortfield, $sortorder); @@ -157,29 +171,31 @@ else { print_liste_field_titre($langs->trans("Numerocompte"), $_SERVER['PHP_SELF'], "bk.numero_compte", "", "", "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Code_tiers"), $_SERVER['PHP_SELF'], "bk.code_tiers", "", "", "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Labelcompte"), $_SERVER['PHP_SELF'], "bk_label_compte", "", "", "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "bk.debit", "", "", "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "bk.credit", "", "", "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "bk.montant", "", "", "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Sens"), $_SERVER['PHP_SELF'], "bk.sens", "", "", "", $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "bk.debit", "", "", 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "bk.credit", "", "", 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "bk.montant", "", "", 'align="center"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Sens"), $_SERVER['PHP_SELF'], "bk.sens", "", "", 'align="center"', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "bk.code_journal", "", "", "", $sortfield, $sortorder); - print_liste_field_titre(" "); + print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder); print "</tr>\n"; print '<tr class="liste_titre">'; print '<form action="'.$_SERVER["PHP_SELF"].'" method="GET">'; - print '<td><input type="text" name="search_doc_type" value="' . $_GET["search_doc_type"] . '"></td>'; + print '<td><input type="text" name="search_doc_type" size="8" value="' . $search_doc_type . '"></td>'; print '<td> </td>'; - print '<td><input type="text" name="search_doc_ref" value="' . $_GET["search_doc_ref"] . '"></td>'; - print '<td><input type="text" name="search_compte" value="' . $_GET["search_compte"] . '"></td>'; - print '<td><input type="text" name="search_tiers" value="' . $_GET["search_tiers"] . '"></td>'; + print '<td><input type="text" name="search_doc_ref" size="8" value="' . $search_doc_ref . '"></td>'; + print '<td><input type="text" name="search_account" size="8" value="' . $search_account . '"></td>'; + print '<td><input type="text" name="search_thirdparty" size="8" value="' . $search_thirdparty . '"></td>'; print '<td> </td>'; print '<td> </td>'; print '<td> </td>'; print '<td> </td>'; print '<td> </td>'; - print '<td><input type="text" name="search_journal" size="3" value="' . $_GET["search_journal"] . '"></td>'; - print '<td align="right">'; - print '<input type="image" class="liste_titre" name="button_search" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/search.png" value="' . dol_escape_htmltag($langs->trans("Search")) . '" title="' . dol_escape_htmltag($langs->trans("Search")) . '">'; + print '<td><input type="text" name="search_journal" size="3" value="' . $search_journal . '"></td>'; + print '<td align="right" colspan="2" class="liste_titre">'; + 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 ' '; + print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" name="button_removefilter" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print '</td>'; print '</form>'; print '</tr>'; @@ -201,9 +217,9 @@ else { print '<td align="right">' . price($obj->debit) . '</td>'; print '<td align="right">' . price($obj->credit) . '</td>'; print '<td align="right">' . price($obj->montant) . '</td>'; - print '<td>' . $obj->sens . '</td>'; + print '<td align="center">' . $obj->sens . '</td>'; print '<td>' . $obj->code_journal . '</td>'; - print '<td><a href="./card.php?piece_num=' . $obj->piece_num . '">' . img_edit() . '</a></td>'; + print '<td align="center"><a href="./card.php?piece_num=' . $obj->piece_num . '">' . img_edit() . '</a></td>'; print "</tr>\n"; $i ++; } diff --git a/htdocs/accountancy/customer/card.php b/htdocs/accountancy/customer/card.php index 91a0eb5df8b93b0d19bafb4c2a43b60dc087aa39..28d3d0c1f7958485ef13888bb5c2bdb58bf48c5a 100644 --- a/htdocs/accountancy/customer/card.php +++ b/htdocs/accountancy/customer/card.php @@ -40,14 +40,12 @@ $id = GETPOST('id'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); /* * Actions */ -if ($action == 'ventil' && $user->rights->accounting->access) +if ($action == 'ventil' && $user->rights->accounting->ventilation->dispatch) { if (! GETPOST('cancel', 'alpha')) { @@ -109,7 +107,7 @@ if (! empty($id)) { print '<input type="hidden" name="action" value="ventil">'; $linkback='<a href="'.DOL_URL_ROOT.'/accountancy/customer/lines.php">'.$langs->trans("Back").'</a>'; - print_fiche_titre($langs->trans('AccountingVentilationCustomer'),$linkback,'setup'); + print_fiche_titre($langs->trans('CustomersVentilation'),$linkback,'setup'); print '<table class="border" width="100%">'; diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 9ae070c25e02e1be3a94d1fc6dfa2245b064db32..cb40b7b361b0daceb5547c3a4487711783805f74 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -93,8 +93,8 @@ if ($action == 'validatehistory') { */ llxHeader('', $langs->trans("CustomersVentilation")); -$textprevyear = "<a href=\"index.php?year=" . ($year_current - 1) . "\">" . img_previous() . "</a>"; -$textnextyear = " <a href=\"index.php?year=" . ($year_current + 1) . "\">" . img_next() . "</a>"; +$textprevyear = '<a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current - 1) . '">' . img_previous() . '</a>'; +$textnextyear = ' <a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current + 1) . '">' . img_next() . '</a>'; print_fiche_titre($langs->trans("CustomersVentilation") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear); @@ -197,7 +197,7 @@ print "</table>\n"; print "<br>\n"; print '<table class="noborder" width="100%">'; -print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("TotalVente") . '</td>'; +print '<tr class="liste_titre"><td width="400" align="left">' . $langs->trans("Total") . '</td>'; print '<td width="60" align="center">' . $langs->trans("JanuaryMin") . '</td>'; print '<td width="60" align="center">' . $langs->trans("FebruaryMin") . '</td>'; print '<td width="60" align="center">' . $langs->trans("MarchMin") . '</td>'; @@ -212,7 +212,7 @@ print '<td width="60" align="center">' . $langs->trans("NovemberMin") . '</td>'; print '<td width="60" align="center">' . $langs->trans("DecemberMin") . '</td>'; print '<td width="60" align="center"><b>' . $langs->trans("Total") . '</b></td></tr>'; -$sql = "SELECT '" . $langs->trans("Vide") . "' AS 'Total',"; +$sql = "SELECT '" . $langs->trans("TotalVente") . "' AS 'Total',"; $sql .= " ROUND(SUM(IF(MONTH(f.datef)=1,fd.total_ht,0)),2) AS 'Janvier',"; $sql .= " ROUND(SUM(IF(MONTH(f.datef)=2,fd.total_ht,0)),2) AS 'Fevrier',"; $sql .= " ROUND(SUM(IF(MONTH(f.datef)=3,fd.total_ht,0)),2) AS 'Mars',"; diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index dcd8fca4d41078a13b494b2d8b631c1973917464..1f9b054912174d9ba86bfe0422688079031b119f 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -68,8 +68,6 @@ $action = GETPOST('action'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); /* * View diff --git a/htdocs/accountancy/journal/cashjournal.php b/htdocs/accountancy/journal/cashjournal.php index 8af84a9ed58a87ad3efc39d92b232cadf6cca54c..fb5a15a513c7b58d50e4c8fc1f78c4e686c3f5aa 100644 --- a/htdocs/accountancy/journal/cashjournal.php +++ b/htdocs/accountancy/journal/cashjournal.php @@ -62,8 +62,6 @@ $date_endyear = GETPOST('date_endyear'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); $action = GETPOST('action'); diff --git a/htdocs/accountancy/journal/index.php b/htdocs/accountancy/journal/index.php index 272d76fa20f648c5a8d36fb7656c687efda7e7f3..36286ce265e0c8f35cbebd20f101e4d5481b0fde 100644 --- a/htdocs/accountancy/journal/index.php +++ b/htdocs/accountancy/journal/index.php @@ -36,8 +36,6 @@ $langs->load("accountancy"); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); llxHeader('', 'Journaux', ''); diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 789aa1111af8aed2097c1963e95d5abf2b40284e..97d52124c0175cf78a476bb9bf41064707b115c6 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -55,8 +55,6 @@ $date_endyear = GETPOST('date_endyear'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); $action = GETPOST('action'); diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index a7c0266998f131b4487da5d069b76070a27b3223..5bb1f989a92987c57f86542a494b4f629def9f46 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -56,8 +56,6 @@ $date_endyear = GETPOST('date_endyear'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->access) - accessforbidden(); $action = GETPOST('action'); diff --git a/htdocs/accountancy/supplier/card.php b/htdocs/accountancy/supplier/card.php index b0078839b55a1b8e767e5d7b455bac995e818be5..45c8de9b16557a0b3554f01b38d2f830df7845ac 100644 --- a/htdocs/accountancy/supplier/card.php +++ b/htdocs/accountancy/supplier/card.php @@ -46,10 +46,9 @@ $codeventil = GETPOST('codeventil'); // Security check if ($user->societe_id > 0) accessforbidden(); -if (! $user->rights->accounting->ventilation->dispatch) - accessforbidden(); -if ($action == 'ventil' && $user->rights->accounting->access) { +if ($action == 'ventil' && $user->rights->accounting->ventilation->dispatch) +{ $sql = " UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det"; $sql .= " SET fk_code_ventilation = " . $codeventil; $sql .= " WHERE rowid = " . $id; @@ -103,7 +102,7 @@ if ($_GET["id"]) { print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">'; print '<input type="hidden" name="action" value="ventil">'; - print_fiche_titre($langs->trans("Ventilation")); + print_fiche_titre($langs->trans("SuppliersVentilation")); print '<table class="border" width="100%" cellspacing="0" cellpadding="4">'; diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index 7d633c575f14137e83b608b3afc779b14306a0ff..edebcfd9d46674a6a42b66bbb8a8e283d8729bdc 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -92,10 +92,10 @@ if ($action == 'validatehistory') { llxHeader('', $langs->trans("SuppliersVentilation")); -$textprevyear = "<a href=\"index.php?year=" . ($year_current - 1) . "\">" . img_previous() . "</a>"; -$textnextyear = " <a href=\"index.php?year=" . ($year_current + 1) . "\">" . img_next() . "</a>"; +$textprevyear = '<a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current - 1) . '">' . img_previous() . '</a>'; +$textnextyear = ' <a href="' . $_SERVER["PHP_SELF"] . '?year=' . ($year_current + 1) . '">' . img_next() . '</a>'; -print_fiche_titre($langs->trans("AccountingVentilationSupplier") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear); +print_fiche_titre($langs->trans("SuppliersVentilation") . " " . $textprevyear . " " . $langs->trans("Year") . " " . $year_start . " " . $textnextyear); print '<b>' . $langs->trans("DescVentilSupplier") . '</b>'; print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=validatehistory">' . $langs->trans("ValidateHistory") . '</a></div>'; diff --git a/htdocs/adherents/admin/adherent_type_extrafields.php b/htdocs/adherents/admin/adherent_type_extrafields.php index b2f839e3c3cf220a61685bc0d22002a181285d18..627d96acf179f6334eb7e090114824962b9efb5c 100644 --- a/htdocs/adherents/admin/adherent_type_extrafields.php +++ b/htdocs/adherents/admin/adherent_type_extrafields.php @@ -7,7 +7,7 @@ * * 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 2 of the License, or + * 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, @@ -17,6 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. + * or see http://www.gnu.org/ */ /** diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index ca7706989e01383b2cfee8369825c259d335ce7e..102f45496c6f18200163014fc7e1b73677fff9e5 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -723,7 +723,7 @@ else { /* ************************************************************************** */ /* */ - /* Fiche creation */ + /* Creation card */ /* */ /* ************************************************************************** */ $object->canvas=$canvas; diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index a057e7cba936fca59fc1be97815c0a6b01b63204..cdbfabf45768a92c952b92fdd592816a703f2339 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -5,6 +5,7 @@ * Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org> * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> * Copyright (C) 2009-2012 Regis Houssin <regis.houssin@capnetworks.com> + * Copyright (C) 2014 Alexandre Spangaro <alexandre.spangaro@gmail.com> * * 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 @@ -124,7 +125,7 @@ class Adherent extends CommonObject /** - * Fonction envoyant un email a l'adherent avec le texte fourni en parametre. + * Function sending an email has the adherent with the text supplied in parameter. * * @param string $text Content of message (not html entities encoded) * @param string $subject Subject of message @@ -247,9 +248,9 @@ class Adherent extends CommonObject /** - * Renvoie le libelle traduit de la nature d'un adherent (physique ou morale) + * Return translated label by the nature of a adherent (physical or moral) * - * @param string $morphy Nature physique ou morale de l'adherent + * @param string $morphy Nature of the adherent (physical or moral) * @return string Label */ function getmorphylib($morphy='') diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php index 43ccef1e9544422cb2f2a2c5b21406e38ddffa17..adb590ffcd2725e1a97bef908dd38731e097e0a1 100644 --- a/htdocs/admin/security.php +++ b/htdocs/admin/security.php @@ -165,6 +165,16 @@ else if ($action == 'disable_MAIN_SECURITY_DISABLEFORGETPASSLINK') exit; } +if ($action == 'maj_pattern') +{ + dolibarr_set_const($db, "USER_PASSWORD_PATTERN", GETPOST("pattern"),'chaine',0,'',$conf->entity); + header("Location: security.php"); + exit; +} + + + + @@ -265,6 +275,113 @@ foreach ($arrayhandler as $key => $module) print '</table>'; print '</form>'; +//if($conf->global->MAIN_SECURITY_DISABLEFORGETPASSLINK == 1) +// Patter for Password Perso +if ($conf->global->USER_PASSWORD_GENERATED == "Perso"){ +$var=!$var; + + $tabConf = explode(";",$conf->global->USER_PASSWORD_PATTERN); + /*$this->length2 = $tabConf[0]; + $this->NbMaj = $tabConf[1]; + $this->NbNum = $tabConf[2]; + $this->NbSpe = $tabConf[3]; + $this->NbRepeat = $tabConf[4]; + $this->WithoutAmbi = $tabConf[5]; + */ + print '<table class="noborder" width="100%">'; + print '<tr class="liste_titre">'; + print '<td colspan="3"> '.$langs->trans("PasswordPatternDesc").'</td>'; + print '</tr>'; + + $var=!$var; + print "<tr ".$bc[$var].">"; + print '<td>' . $langs->trans("MinLength")."</td>"; + print '<td colspan="2"><input type="number" value="'.$tabConf[0].'" id="minlenght" min="1"></td>'; + print '</tr>'; + + $var=!$var; + print "<tr ".$bc[$var].">"; + print '<td>' . $langs->trans("NbMajMin")."</td>"; + print '<td colspan="2"><input type="number" value="'.$tabConf[1].'" id="NbMajMin" min="0"></td>'; + print '</tr>'; + + $var=!$var; + print "<tr ".$bc[$var].">"; + print '<td>' . $langs->trans("NbNumMin")."</td>"; + print '<td colspan="2"><input type="number" value="'.$tabConf[2].'" id="NbNumMin" min="0"></td>'; + print '</tr>'; + + $var=!$var; + print "<tr ".$bc[$var].">"; + print '<td>' . $langs->trans("NbSpeMin")."</td>"; + print '<td colspan="2"><input type="number" value="'.$tabConf[3].'" id="NbSpeMin" min="0"></td>'; + print '</tr>'; + + $var=!$var; + print "<tr ".$bc[$var].">"; + print '<td>' . $langs->trans("NbIteConsecutive")."</td>"; + print '<td colspan="2"><input type="number" value="'.$tabConf[4].'" id="NbIteConsecutive" min="0"></td>'; + print '</tr>'; + + $var=!$var; + print "<tr ".$bc[$var].">"; + print '<td>' . $langs->trans("NoAmbiCaracAutoGeneration")."</td>"; + print '<td colspan="2"><input type="checkbox" id="NoAmbiCaracAutoGeneration" '.($tabConf[5] ? "checked" : "").' min="0"> <span id="textcheckbox">'.($tabConf[5] ? $langs->trans("Activated") : $langs->trans("Disabled")).'</span></td>'; + print '</tr>'; + + $var=!$var; + print "<tr ".$bc[$var].">"; + print '<td colspan="2"></td><td width="103" align="center"><a id="linkChangePattern">'.$langs->trans("Save").'</a></td>'; + print '</tr>'; + print '</table>'; + + print '<script type="text/javascript">'; + print ' function getStringArg(){'; + print ' var pattern = "";'; + print ' pattern += $("#minlenght").val() + ";";'; + print ' pattern += $("#NbMajMin").val() + ";";'; + print ' pattern += $("#NbNumMin").val() + ";";'; + print ' pattern += $("#NbSpeMin").val() + ";";'; + print ' pattern += $("#NbIteConsecutive").val() + ";";'; + print ' pattern += $("#NoAmbiCaracAutoGeneration")[0].checked ? "1" : "0";'; + print ' return pattern;'; + print ' }'; + + print ' function valuePossible(){'; + print ' var length = parseInt($("#minlenght").val());'; + print ' var length_mini = parseInt($("#NbMajMin").val()) + parseInt($("#NbNumMin").val()) + parseInt($("#NbSpeMin").val());'; + print ' return length >= length_mini;'; + print ' }'; + + print ' function generatelink(){'; + print ' return "security.php?action=maj_pattern&pattern="+getStringArg();'; + print ' }'; + + print ' function valuePatternChange(){'; + print ' var lang_save = "'.$langs->trans("Save").'";'; + print ' var lang_error = "'.$langs->trans("Error").'";'; + print ' var lang_Disabled = "'.$langs->trans("Disabled").'";'; + print ' var lang_Activated = "'.$langs->trans("Activated").'";'; + print ' $("#textcheckbox").html($("#NoAmbiCaracAutoGeneration")[0].checked ? unescape(lang_Activated) : unescape(lang_Disabled));'; + print ' if(valuePossible()){'; + print ' $("#linkChangePattern").attr("href",generatelink()).text(lang_save);'; + print ' }'; + print ' else{'; + print ' $("#linkChangePattern").attr("href", null).text(lang_error);'; + print ' }'; + print ' }'; + + print ' $("#minlenght").change(function(){valuePatternChange();});'; + print ' $("#NbMajMin").change(function(){valuePatternChange();});'; + print ' $("#NbNumMin").change(function(){valuePatternChange();});'; + print ' $("#NbSpeMin").change(function(){valuePatternChange();});'; + print ' $("#NbIteConsecutive").change(function(){valuePatternChange();});'; + print ' $("#NoAmbiCaracAutoGeneration").change(function(){valuePatternChange();});'; + + print '</script>'; +} + + // Cryptage mot de passe print '<br>'; $var=true; diff --git a/htdocs/comm/action/document.php b/htdocs/comm/action/document.php index 9bb3af6dcbdced5412cb002a7240f6a93a1440d1..82d88089684b273fe8dd4d003f3b9b97a90606ee 100644 --- a/htdocs/comm/action/document.php +++ b/htdocs/comm/action/document.php @@ -277,20 +277,14 @@ if ($object->id > 0) print '<tr><td width="30%" nowrap>'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>'; print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.$totalsize.' '.$langs->trans("bytes").'</td></tr>'; - print '</table>'; + print '</table>'; - print '</div>'; + dol_fiche_end(); - $modulepart = 'actions'; - $permission = $user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create; - $param = '&id=' . $object->id; - include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php'; if ($action != 'edit') { - print "<br>"; - // Link to agenda views print '<div id="agendaviewbutton">'; print '<form name="listactionsfiltermonth" action="'.DOL_URL_ROOT.'/comm/action/index.php" method="POST" style="float: left; padding-right: 10px;">'; @@ -330,13 +324,23 @@ if ($object->id > 0) print img_picto($langs->trans("ViewCal"),'object_calendarperuser','class="hideonsmartphone"').' <input type="submit" style="min-width: 120px" class="button" name="viewperuser" value="'.$langs->trans("ViewPerUser").'">'; print '</form>'."\n"; print '</div>'; + + print '<div style="clear: both"></div>'; + print "<br><br>"; } + + + $modulepart = 'actions'; + $permission = $user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create; + $param = '&id=' . $object->id; + include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php'; } else { print $langs->trans("ErrorUnknown"); } -$db->close(); llxFooter(); + +$db->close(); diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php index c330540cb031cad7bacab43e1bfaade51cbcc232..53243d0c165cdca47ac97db54d78b07737170818 100644 --- a/htdocs/comm/action/listactions.php +++ b/htdocs/comm/action/listactions.php @@ -99,6 +99,13 @@ if (! $user->rights->agenda->allactions->read || $filter=='mine') // If no permi $filterd=$user->id; } +// Purge search criteria +if (GETPOST("button_removefilter")) +{ + $datestart=''; + $dateend=''; +} + // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('agendalist')); @@ -278,8 +285,7 @@ if ($resql) //print '<td class="liste_titre"></td>'; print '<td class="liste_titre"></td>'; print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - //print ' '; - //print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print '</td>'; print "</tr>\n"; diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index da34983779a3bd6a53057b38b16e2121df9eae94..b6c3054f3a8b2e3f2aced749786000ce11154c5c 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -1008,8 +1008,9 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & if ($output[0]['color']) $color2 = $output[0]['color']; } else if (count($cases2[$h]) > 1) $color2='222222'; - $ids1=join(',',array_keys($cases1[$h])); - $ids2=join(',',array_keys($cases2[$h])); + $ids1='';$ids2=''; + if (count($cases1[$h]) && array_keys($cases1[$h])) $ids1=join(',',array_keys($cases1[$h])); + if (count($cases2[$h]) && array_keys($cases2[$h])) $ids2=join(',',array_keys($cases2[$h])); //var_dump($cases1[$h]); print '<table class="nobordernopadding" width="100%">'; print '<tr><td '.($color1?'style="background: #'.$color1.';"':'').'class="'.($style1?$style1.' ':'').'onclickopenref'.($title1?' cursorpointer':'').'" ref="ref_'.$username->id.'_'.sprintf("%04d",$year).'_'.sprintf("%02d",$month).'_'.sprintf("%02d",$day).'_'.sprintf("%02d",$h).'_00_'.($ids1?$ids1:'none').'"'.($title1?' title="'.$title1.'"':'').'>'; diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index fcdda5eaaa170ed1d69c987282f641caa2296b6b..3eeef6916eb21cb6adf2c5697d73d0691234759a 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -553,146 +553,19 @@ else if ($action == 'setstatut' && $user->rights->propal->cloturer && ! GETPOST( } } -// Add file in email form -if (GETPOST('addfile')) { - require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; - - // Set tmp user directory TODO Use a dedicated directory for temp mails files - $vardir = $conf->user->dir_output . "/" . $user->id; - $upload_dir_tmp = $vardir . '/temp'; - - dol_add_file_process($upload_dir_tmp, 0, 0); - $action = 'presend'; -} - -// Remove file in email form -if (GETPOST('removedfile')) { - require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; - - // Set tmp user directory - $vardir = $conf->user->dir_output . "/" . $user->id; - $upload_dir_tmp = $vardir . '/temp'; - - // TODO Delete only files that was uploaded from email form - dol_remove_file_process($_POST['removedfile'], 0); - $action = 'presend'; -} /* * Send mail */ -if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! GETPOST('cancel')) { - $langs->load('mails'); - - if ($object->id > 0) { - if ($_POST['sendto']) { - // Le destinataire a ete fourni via le champ libre - $sendto = $_POST['sendto']; - $sendtoid = 0; - } elseif ($_POST['receiver'] != '-1') { - // Recipient was provided from combo list - if ($_POST['receiver'] == 'thirdparty') // Id of third party - { - $sendto = $object->thirdparty->email; - $sendtoid = 0; - } else // Id du contact - { - $sendto = $object->thirdparty->contact_get_property($_POST['receiver'], 'email'); - $sendtoid = $_POST['receiver']; - } - } - if (dol_strlen($sendto)) { - $langs->load("commercial"); +// Actions to send emails +$actiontypecode='AC_PROP'; +$trigger_name='PROPAL_SENTBYMAIL'; +$paramname='id'; +$mode='emailfromproposal'; +include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; - $from = $_POST['fromname'] . ' <' . $_POST['frommail'] . '>'; - $replyto = $_POST['replytoname'] . ' <' . $_POST['replytomail'] . '>'; - $message = $_POST['message']; - $sendtocc = $_POST['sendtocc']; - $sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO); - $deliveryreceipt = $_POST['deliveryreceipt']; - if (dol_strlen($_POST['subject'])) - $subject = $_POST['subject']; - else - $subject = $langs->transnoentities('Propal') . ' ' . $object->ref; - $actiontypecode = 'AC_PROP'; - $actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto; - if ($message) { - if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc); - $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject); - $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":"); - $actionmsg = dol_concatdesc($actionmsg, $message); - } - $actionmsg2 = $langs->transnoentities('Action' . $actiontypecode); - - // Create form object - include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - - $attachedfiles = $formmail->get_attached_files(); - $filepath = $attachedfiles ['paths']; - $filename = $attachedfiles ['names']; - $mimetype = $attachedfiles ['mimes']; - - // Envoi de la propal - require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, - 1); - if ($mailfile->error) { - setEventMessage($mailfile->error, 'errors'); - } else { - $result = $mailfile->sendfile(); - if ($result) { - // Initialisation donnees - $object->sendtoid = $sendtoid; - $object->actiontypecode = $actiontypecode; - $object->actionmsg = $actionmsg; - $object->actionmsg2 = $actionmsg2; - $object->fk_element = $object->id; - $object->elementtype = $object->element; - - // Appel des triggers - include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - $interface = new Interfaces($db); - $result = $interface->run_triggers('PROPAL_SENTBYMAIL', $object, $user, $langs, $conf); - if ($result < 0) { - $error++; - $object->errors = $interface->errors; - } - // Fin appel triggers - - if (! $error) { - // Redirect here - // 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); - exit(); - } else { - dol_print_error($db); - } - } else { - $langs->load("other"); - if ($mailfile->error) { - $mesg .= $langs->trans('ErrorFailedToSendMail', $from, $sendto); - $mesg .= '<br>' . $mailfile->error; - } else { - $mesg .= 'No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS'; - } - setEventMessage($mesg, 'errors'); - } - } - } else { - $langs->load("other"); - setEventMessage($langs->trans('ErrorMailRecipientIsEmpty') . '!', 'errors'); - dol_syslog($langs->trans('ErrorMailRecipientIsEmpty')); - } - } else { - $langs->load("other"); - setEventMessage($langs->trans('ErrorFailedToReadEntity', $langs->trans("Proposal")), 'errors'); - dol_syslog($langs->trans('ErrorFailedToReadEntity', $langs->trans("Proposal"))); - } -} // Go back to draft if ($action == 'modif' && $user->rights->propal->creer) diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 6522a592097946c2a8445cddabe905e2583c503d..96d633bd83496689d5a7bf989ecb79568bf9de2c 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -322,7 +322,9 @@ if ($result) print '<td class="liste_titre" align="right">'; $formpropal->selectProposalStatus($viewstatut,1); print '</td>'; - print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<td class="liste_titre" align="right">'; + print '<input type="image" value="button_search" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" value="button_removefilter" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print '</td>'; print "</tr>\n"; diff --git a/htdocs/comm/prospect/list.php b/htdocs/comm/prospect/list.php index 94286ee4c53e8b3612434bbaf3525e53d808bf74..113618ffae893fae54a44b04fedbc0a149926f46 100644 --- a/htdocs/comm/prospect/list.php +++ b/htdocs/comm/prospect/list.php @@ -48,7 +48,6 @@ $search_state = GETPOST("search_state"); $search_datec = GETPOST("search_datec"); $search_categ = GETPOST("search_categ",'int'); $search_status = GETPOST("search_status",'int'); -if ($search_status=='') $search_status=1; // always display activ customer first $catid = GETPOST("catid",'int'); $sortfield = GETPOST("sortfield",'alpha'); @@ -154,6 +153,21 @@ $sts = array(-1,0,1,2,3); // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('prospectlist')); +// Do we click on purge search criteria ? +if (GETPOST("button_removefilter_x")) +{ + $socname=""; + $stcomm=""; + $search_nom=""; + $search_zipcode=""; + $search_town=""; + $search_state=""; + $search_datec=""; + $search_categ=""; + $search_status=""; +} + +if ($search_status=='') $search_status=1; // always display active customer first /* * Actions @@ -361,7 +375,7 @@ if ($resql) // Print these two select print $langs->trans("From").' <select class="flat" name="search_level_from">'.$options_from.'</select>'; print ' '; - print $langs->trans("To").' <select class="flat" name="search_level_to">'.$options_to.'</select>'; + print $langs->trans("to").' <select class="flat" name="search_level_to">'.$options_to.'</select>'; print '</td>'; @@ -378,9 +392,9 @@ if ($resql) print '</td>'; // Print the search button - print '<td class="liste_titre" align="right">'; - print '<input class="liste_titre" name="button_search" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print '</td>'; + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; $parameters=array(); $formconfirm=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 792da64a9232dde5bac3b49f37e33784df4ea64e..4bf1eceb6dc8c0e96cdf19c123a88c38ca876ce4 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -1151,162 +1151,18 @@ else if ($action == 'update_extras') { $action = 'edit_extras'; } -/* - * Add file in email form - */ -if (GETPOST('addfile')) { - require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; - - // Set tmp user directory TODO Use a dedicated directory for temp mails files - $vardir = $conf->user->dir_output . "/" . $user->id; - $upload_dir_tmp = $vardir . '/temp'; - - dol_add_file_process($upload_dir_tmp, 0, 0); - $action = 'presend'; -} - -/* - * Remove file in email form - */ -if (GETPOST('removedfile')) { - require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; - - // Set tmp user directory - $vardir = $conf->user->dir_output . "/" . $user->id; - $upload_dir_tmp = $vardir . '/temp'; - - // TODO Delete only files that was uploaded from email form - dol_remove_file_process(GETPOST('removedfile'), 0); - $action = 'presend'; -} - /* * Send mail */ -if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! GETPOST('cancel')) { - $langs->load('mails'); - - if ($object->id > 0) { - // $ref = dol_sanitizeFileName($object->ref); - // $file = $conf->commande->dir_output . '/' . $ref . '/' . $ref . '.pdf'; - - // if (is_readable($file)) - // { - if (GETPOST('sendto')) { - // Le destinataire a ete fourni via le champ libre - $sendto = GETPOST('sendto'); - $sendtoid = 0; - } elseif (GETPOST('receiver') != '-1') { - // Recipient was provided from combo list - if (GETPOST('receiver') == 'thirdparty') // Id of third party - { - $sendto = $object->thirdparty->email; - $sendtoid = 0; - } else // Id du contact - { - $sendto = $object->thirdparty->contact_get_property(GETPOST('receiver'), 'email'); - $sendtoid = GETPOST('receiver'); - } - } - - if (dol_strlen($sendto)) { - $langs->load("commercial"); - - $from = GETPOST('fromname') . ' <' . GETPOST('frommail') . '>'; - $replyto = GETPOST('replytoname') . ' <' . GETPOST('replytomail') . '>'; - $message = GETPOST('message'); - $sendtocc = GETPOST('sendtocc'); - $sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO); - $deliveryreceipt = GETPOST('deliveryreceipt'); - - if ($action == 'send') { - if (dol_strlen(GETPOST('subject'))) - $subject = GETPOST('subject'); - else - $subject = $langs->transnoentities('Order') . ' ' . $object->ref; - $actiontypecode = 'AC_COM'; - $actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto; - if ($message) { - if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc); - $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject); - $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":"); - $actionmsg = dol_concatdesc($actionmsg, $message); - } - $actionmsg2 = $langs->transnoentities('Action' . $actiontypecode); - } - - // Create form object - include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - $attachedfiles = $formmail->get_attached_files(); - $filepath = $attachedfiles ['paths']; - $filename = $attachedfiles ['names']; - $mimetype = $attachedfiles ['mimes']; +// Actions to send emails +$actiontypecode='AC_COM'; +$trigger_name='ORDER_SENTBYMAIL'; +$paramname='id'; +$mode='emailfromorder'; +include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; - // Send mail - require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, - 1); - if ($mailfile->error) { - setEventMessage($mailfile->error, 'errors'); - } else { - $result = $mailfile->sendfile(); - if ($result) { - //Must not contain quotes - $mesg = $langs->trans('MailSuccessfulySent', $mailfile->getValidAddress($from, 2), $mailfile->getValidAddress($sendto, 2)); - setEventMessage($mesg); - - $error = 0; - - // Initialisation donnees - $object->sendtoid = $sendtoid; - $object->actiontypecode = $actiontypecode; - $object->actionmsg = $actionmsg; - $object->actionmsg2 = $actionmsg2; - $object->fk_element = $object->id; - $object->elementtype = $object->element; - - // Appel des triggers - include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - $interface = new Interfaces($db); - $result = $interface->run_triggers('ORDER_SENTBYMAIL', $object, $user, $langs, $conf); - if ($result < 0) { - $error ++; - $this->errors = $interface->errors; - } - // Fin appel triggers - - if ($error) { - dol_print_error($db); - } else { - // Redirect here - // This avoid sending mail twice if going out and then back to page - header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id); - exit(); - } - } else { - $langs->load("other"); - if ($mailfile->error) { - $mesg .= $langs->trans('ErrorFailedToSendMail', $from, $sendto); - $mesg .= '<br>' . $mailfile->error; - } else { - $mesg .= 'No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS'; - } - setEventMessage($mesg, 'errors'); - } - } - } else { - $langs->load("other"); - setEventMessage($langs->trans('ErrorMailRecipientIsEmpty') . '!', 'errors'); - dol_syslog($langs->trans('ErrorMailRecipientIsEmpty')); - } - } else { - $langs->load("other"); - setEventMessage($langs->trans('ErrorFailedToReadEntity', $langs->trans("Order")), 'errors'); - dol_syslog($langs->trans('ErrorFailedToReadEntity', $langs->trans("Order"))); - } -} if (! $error && ! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->commande->creer) { if ($action == 'addcontact') { diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index 84f8e455d11e79fb02d91239cc074d9da0159b57..ea17d895b9582b5418b3cb6dad14ecf70a9e2434 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -43,9 +43,9 @@ $orderyear=GETPOST("orderyear","int"); $ordermonth=GETPOST("ordermonth","int"); $deliveryyear=GETPOST("deliveryyear","int"); $deliverymonth=GETPOST("deliverymonth","int"); -$sref=GETPOST('sref','alpha'); -$sref_client=GETPOST('sref_client','alpha'); -$snom=GETPOST('snom','alpha'); +$search_ref=GETPOST('search_ref','alpha'); +$search_ref_customer=GETPOST('search_ref_customer','alpha'); +$search_company=GETPOST('search_company','alpha'); $sall=GETPOST('sall'); $socid=GETPOST('socid','int'); $search_user=GETPOST('search_user','int'); @@ -69,35 +69,31 @@ $limit = $conf->liste_limit; $viewstatut=GETPOST('viewstatut'); - -// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array -$hookmanager->initHooks(array('orderlist')); - -/* - * Actions - */ - -$parameters=array('socid'=>$socid); -$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hook -if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - -// Do we click on purge search criteria ? -if (GETPOST("button_removefilter_x")) +// Purge search criteria +if (GETPOST("button_removefilter")) { $search_categ=''; $search_user=''; $search_sale=''; $search_ref=''; - $search_refcustomer=''; - $search_societe=''; - $search_montant_ht=''; + $search_ref_customer=''; + $search_company=''; $orderyear=''; $ordermonth=''; $deliverymonth=''; $deliveryyear=''; } +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +$hookmanager->initHooks(array('orderlist')); +/* + * Actions + */ + +$parameters=array('socid'=>$socid); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hook +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); /* * View @@ -128,8 +124,8 @@ $sql.= ' WHERE c.fk_soc = s.rowid'; $sql.= ' AND c.entity = '.$conf->entity; if ($socid) $sql.= ' AND s.rowid = '.$socid; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; -if ($sref) { - $sql .= natural_search('c.ref', $sref); +if ($search_ref) { + $sql .= natural_search('c.ref', $search_ref); } if ($sall) { @@ -188,13 +184,13 @@ else if ($deliveryyear > 0) { $sql.= " AND c.date_livraison BETWEEN '".$db->idate(dol_get_first_day($deliveryyear,1,false))."' AND '".$db->idate(dol_get_last_day($deliveryyear,12,false))."'"; } -if (!empty($snom)) +if (!empty($search_company)) { - $sql .= natural_search('s.nom', $snom); + $sql .= natural_search('s.nom', $search_company); } -if (!empty($sref_client)) +if (!empty($search_ref_customer)) { - $sql.= ' AND c.ref_client LIKE \'%'.$db->escape($sref_client).'%\''; + $sql.= ' AND c.ref_client LIKE \'%'.$db->escape($search_ref_customer).'%\''; } if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale; if ($search_user > 0) @@ -246,15 +242,15 @@ if ($resql) $title.=' - '.$langs->trans('StatusOrderValidated').', '.(empty($conf->expedition->enabled)?'':$langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill'); $param='&socid='.$socid.'&viewstatut='.$viewstatut; - if ($ordermonth) $param.='&ordermonth='.$ordermonth; - if ($orderyear) $param.='&orderyear='.$orderyear; - if ($deliverymonth) $param.='&deliverymonth='.$deliverymonth; - if ($deliveryyear) $param.='&deliveryyear='.$deliveryyear; - if ($sref) $param.='&sref='.$sref; - if ($snom) $param.='&snom='.$snom; - if ($sref_client) $param.='&sref_client='.$sref_client; - if ($search_user > 0) $param.='&search_user='.$search_user; - if ($search_sale > 0) $param.='&search_sale='.$search_sale; + if ($ordermonth) $param.='&ordermonth='.$ordermonth; + if ($orderyear) $param.='&orderyear='.$orderyear; + if ($deliverymonth) $param.='&deliverymonth='.$deliverymonth; + if ($deliveryyear) $param.='&deliveryyear='.$deliveryyear; + if ($search_ref) $param.='&search_ref='.$search_ref; + if ($search_company) $param.='&search_company='.$search_company; + if ($search_ref_customer) $param.='&search_ref_customer='.$search_ref_customer; + if ($search_user > 0) $param.='&search_user='.$search_user; + if ($search_sale > 0) $param.='&search_sale='.$search_sale; $num = $db->num_rows($resql); print_barre_liste($title, $page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords); @@ -294,33 +290,35 @@ if ($resql) print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'c.ref','',$param,'width="25%"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('RefCustomerOrder'),$_SERVER["PHP_SELF"],'c.ref_client','',$param,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Company'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','',$param, 'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','',$param, 'align="right"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','',$param, 'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','',$param, 'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'c.total_ht','',$param, 'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Status'),$_SERVER["PHP_SELF"],'c.fk_statut','',$param,'align="right"',$sortfield,$sortorder); print '</tr>'; + print '<tr class="liste_titre">'; print '<td class="liste_titre">'; - print '<input class="flat" size="6" type="text" name="sref" value="'.$sref.'">'; + print '<input class="flat" size="6" type="text" name="search_ref" value="'.$search_ref.'">'; print '</td>'; print '<td class="liste_titre" align="left">'; - print '<input class="flat" type="text" size="6" name="sref_client" value="'.$sref_client.'">'; + print '<input class="flat" type="text" size="6" name="search_ref_customer" value="'.$search_ref_customer.'">'; print '</td>'; print '<td class="liste_titre" align="left">'; - print '<input class="flat" type="text" name="snom" value="'.$snom.'">'; + print '<input class="flat" type="text" name="search_company" value="'.$search_company.'">'; print '</td>'; - print '<td class="liste_titre">'; + print '<td class="liste_titre" align="center">'; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="orderday" value="'.$orderday.'">'; print '<input class="flat" type="text" size="1" maxlength="2" name="ordermonth" value="'.$ordermonth.'">'; $formother->select_year($orderyear?$orderyear:-1,'orderyear',1, 20, 5); - print '</td><td class="liste_titre">'; + print '</td><td class="liste_titre" align="center">'; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="deliveryday" value="'.$deliveryday.'">'; print '<input class="flat" type="text" size="1" maxlength="2" name="deliverymonth" value="'.$deliverymonth.'">'; $formother->select_year($deliveryyear?$deliveryyear:-1,'deliveryyear',1, 20, 5); - print '</td><td class="liste_titre"> '; - print '</td><td align="right" class="liste_titre">'; - print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print '</td></tr>'; + print '</td>'; + print '<td class="liste_titre"> </td>'; + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; $var=true; $total=0; @@ -443,12 +441,12 @@ if ($resql) print '</td>'; // Order date - print '<td align="right">'; + print '<td align="center">'; print dol_print_date($db->jdate($objp->date_commande), 'day'); print '</td>'; // Delivery date - print '<td align="right">'; + print '<td align="center">'; print dol_print_date($db->jdate($objp->date_livraison), 'day'); print '</td>'; diff --git a/htdocs/compta/bank/search.php b/htdocs/compta/bank/search.php index 25b7d91a3ffa80a83629c29b0cb35f4d14f9228c..1e8196481e6ddc1b4e0a11e26c19b4335c09d322 100644 --- a/htdocs/compta/bank/search.php +++ b/htdocs/compta/bank/search.php @@ -35,6 +35,7 @@ require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php'; $langs->load("banks"); $langs->load("categories"); $langs->load("companies"); +$langs->load("margins"); // Security check if ($user->societe_id) $socid=$user->societe_id; @@ -72,6 +73,15 @@ $limit = $conf->liste_limit; if (! $sortorder) $sortorder='DESC'; if (! $sortfield) $sortfield='b.dateo'; +if (GETPOST("button_removefilter")) +{ + $description=""; + $type=""; + $debit=""; + $credit=""; + $account=""; + $bid=""; +} /* * View @@ -198,7 +208,7 @@ if ($resql) print '<td class="liste_titre"> </td>'; print '<td class="liste_titre"> </td>'; print '<td class="liste_titre" align="center">'; - $form->select_types_paiements(empty($_REQUEST["type"])?'':$_REQUEST["type"], 'type', '', 2, 0, 1, 8); + $form->select_types_paiements(empty($type)?'':$type, 'type', '', 2, 0, 1, 8); print '</td>'; print '<td class="liste_titre"><input type="text" class="flat" name="req_nb" value="'.GETPOST("req_nb").'" size="2"></td>'; print '<td class="liste_titre">'; @@ -214,9 +224,9 @@ if ($resql) print '<td class="liste_titre" align="right">'; print '<input type="hidden" name="action" value="search">'; if (! empty($_REQUEST['bid'])) print '<input type="hidden" name="bid" value="'.$_REQUEST["bid"].'">'; - print '<input type="image" class="liste_titre" name="submit" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print '</td>'; - print '</tr>'; + print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; // Loop on each record $total_debit=0; diff --git a/htdocs/compta/deplacement/list.php b/htdocs/compta/deplacement/list.php index bb2c50b42bf704ef8661045a81828e6d69d33558..42a6713c1ce56d58e739931c563e57e64e32ab48 100644 --- a/htdocs/compta/deplacement/list.php +++ b/htdocs/compta/deplacement/list.php @@ -27,6 +27,8 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; $langs->load("companies"); $langs->load("users"); @@ -37,6 +39,10 @@ $socid = GETPOST('socid','int'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'deplacement','',''); +$search_ref=GETPOST('search_ref','int'); +$search_name=GETPOST('search_name','alpha'); +$search_company=GETPOST('search_company','alpha'); +// $search_amount=GETPOST('search_amount','alpha'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); @@ -48,13 +54,24 @@ if (! $sortorder) $sortorder="DESC"; if (! $sortfield) $sortfield="d.dated"; $limit = $conf->liste_limit; -$search_ref=GETPOST('search_ref','alpha'); +$year=GETPOST("year"); +$month=GETPOST("month"); +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $search_name=""; + $search_company=""; + // $search_amount=""; + $year=""; + $month=""; +} /* * View */ +$formother = new FormOther($db); $tripandexpense_static=new Deplacement($db); $userstatic = new User($db); @@ -76,10 +93,31 @@ $sql.= " AND d.entity = ".$conf->entity; if (empty($user->rights->deplacement->readall) && empty($user->rights->deplacement->lire_tous)) $sql.=' AND d.fk_user IN ('.join(',',$childids).')'; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND sc.fk_user = " .$user->id; if ($socid) $sql.= " AND s.rowid = ".$socid; -if (trim($search_ref) != '') + +if ($search_ref) $sql.=" AND d.rowid=".$search_ref; +if ($search_name) +{ + $sql .= natural_search('u.lastname', $search_name); +} +if ($search_company) +{ + $sql .= natural_search('s.nom', $search_company); +} +// if ($search_amount) $sql.=" AND d.km='".$db->escape(price2num(trim($search_amount)))."'"; +if ($month > 0) +{ + if ($year > 0 && empty($day)) + $sql.= " AND d.dated BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'"; + else if ($year > 0 && ! empty($day)) + $sql.= " AND d.dated BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year))."'"; + else + $sql.= " AND date_format(d.dated, '%m') = '".$month."'"; +} +else if ($year > 0) { - $sql.= ' AND d.rowid LIKE \'%'.$db->escape(trim($search_ref)) . '%\''; + $sql.= " AND d.dated BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'"; } + $sql.= $db->order($sortfield,$sortorder); $sql.= $db->plimit($limit + 1, $offset); @@ -97,7 +135,7 @@ if ($resql) print "<tr class=\"liste_titre\">"; print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid","","&socid=$socid",'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"d.type","","&socid=$socid",'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"d.dated","","&socid=$socid",'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"d.dated","","&socid=$socid",'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Person"),$_SERVER["PHP_SELF"],"u.lastname","","&socid=$socid",'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&socid=$socid",'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("FeesKilometersOrAmout"),$_SERVER["PHP_SELF"],"d.km","","&socid=$socid",'align="right"',$sortfield,$sortorder); @@ -107,24 +145,27 @@ if ($resql) // Filters lines print '<tr class="liste_titre">'; print '<td class="liste_titre">'; - print '<input class="flat" size="10" type="text" name="search_ref" value="'.$search_ref.'">'; + print '<input class="flat" size="4" type="text" name="search_ref" value="'.$search_ref.'">'; print '</td>'; print '<td class="liste_titre">'; - //print '<input class="flat" size="10" type="text" name="search_company" value="'.$search_company.'">'; + print ' '; print '</td>'; - print '<td class="liste_titre">'; - //print '<input class="flat" size="10" type="text" name="search_name" value="'.$search_name.'">'; + print '<td class="liste_titre" align="center">'; + if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">'; + print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">'; + $formother->select_year($year?$year:-1,'year',1, 20, 5); print '</td>'; - print '<td class="liste_titre" align="left">'; - print ' '; + print '<td class="liste_titre">'; + print '<input class="flat" size="10" type="text" name="search_name" value="'.$search_name.'">'; print '</td>'; - print '<td class="liste_titre" align="right">'; - print ' '; + print '<td class="liste_titre">'; + print '<input class="flat" size="10" type="text" name="search_company" value="'.$search_company.'">'; print '</td>'; print '<td class="liste_titre" align="right">'; - print ' '; + // print '<input class="flat" size="10" type="text" name="search_amount" value="'.$search_amount.'">'; print '</td>'; print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print "</td></tr>\n"; $var=true; @@ -142,9 +183,9 @@ if ($resql) // Type print '<td>'.$langs->trans($obj->type).'</td>'; // Date - print '<td>'.dol_print_date($db->jdate($obj->dd),'day').'</td>'; + print '<td align="center">'.dol_print_date($db->jdate($obj->dd),'day').'</td>'; // User - print '<td align="left">'; + print '<td>'; $userstatic->id = $obj->rowid; $userstatic->lastname = $obj->lastname; $userstatic->firstname = $obj->firstname; diff --git a/htdocs/compta/dons/list.php b/htdocs/compta/dons/list.php index badc71c96e2fd04680755152dcefe50f329348bd..174b5357bb218717dcee7a3134a615e507d8c64e 100644 --- a/htdocs/compta/dons/list.php +++ b/htdocs/compta/dons/list.php @@ -43,12 +43,20 @@ if (! $sortfield) $sortfield="d.datedon"; $limit = $conf->liste_limit; $statut=isset($_GET["statut"])?$_GET["statut"]:"-1"; -$search_ref=GETPOST('search_ref'); -$search_company=GETPOST('search_company'); -$search_name=GETPOST('search_name'); +$search_ref=GETPOST('search_ref','alpha'); +$search_company=GETPOST('search_company','alpha'); +$search_name=GETPOST('search_name','alpha'); +$search_amount = GETPOST('search_amount','alpha'); if (!$user->rights->don->lire) accessforbidden(); +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $search_company=""; + $search_name=""; + $search_amount=""; +} /* * View @@ -82,6 +90,8 @@ if (trim($search_name) != '') { $sql .= natural_search(array('d.lastname', 'd.firstname'), $search_name); } +if ($search_amount) $sql.=" AND d.amount='".$db->escape(price2num(trim($search_amount)))."'"; + $sql.= $db->order($sortfield,$sortorder); $sql.= $db->plimit($limit+1, $offset); @@ -141,11 +151,10 @@ if ($resql) print ' '; print '</td>'; } - print '<td class="liste_titre" align="right">'; - print ' '; - print '</td>'; + print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.$search_amount.'"></td>'; print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print "</td></tr>\n"; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; $var=True; while ($i < min($num,$limit)) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 2ba425f5a90cafacfdca02a6492d83638f80e513..9d003ae0aa7e7f9c88d05d9573b23d5b0e28dda9 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -1550,178 +1550,24 @@ if (GETPOST('linkedOrder')) { $result = $object->add_object_linked('commande', GETPOST('linkedOrder')); } -/* - * Add file in email form - */ -if (GETPOST('addfile')) { - require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; - - // Set tmp user directory - $vardir = $conf->user->dir_output . "/" . $user->id; - $upload_dir_tmp = $vardir . '/temp'; - - dol_add_file_process($upload_dir_tmp, 0, 0); - $action = 'presend'; -} - -/* - * Remove file in email form - */ -if (! empty($_POST['removedfile'])) { - require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; - - // Set tmp user directory - $vardir = $conf->user->dir_output . "/" . $user->id; - $upload_dir_tmp = $vardir . '/temp'; - - // TODO Delete only files that was uploaded from email form - dol_remove_file_process($_POST['removedfile'], 0); - $action = 'presend'; -} /* * Send mail */ -if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_POST['cancel']) { - $langs->load('mails'); - - $actiontypecode = ''; - $subject = ''; - $actionmsg = ''; - $actionmsg2 = ''; - - $result = $object->fetch($id); - $result = $object->fetch_thirdparty(); - - if ($result > 0) { - // $ref = dol_sanitizeFileName($object->ref); - // $file = $conf->facture->dir_output . '/' . $ref . '/' . $ref . '.pdf'; - - // if (is_readable($file)) - // { - if ($_POST['sendto']) { - // Le destinataire a ete fourni via le champ libre - $sendto = $_POST['sendto']; - $sendtoid = 0; - } elseif ($_POST['receiver'] != '-1') { - // Recipient was provided from combo list - if ($_POST['receiver'] == 'thirdparty') // Id of third party - { - $sendto = $object->thirdparty->email; - $sendtoid = 0; - } else // Id du contact - { - $sendto = $object->thirdparty->contact_get_property($_POST['receiver'], 'email'); - $sendtoid = $_POST['receiver']; - } - } - - if (dol_strlen($sendto)) - { - $langs->load("commercial"); - - $from = $_POST['fromname'] . ' <' . $_POST['frommail'] . '>'; - $replyto = $_POST['replytoname'] . ' <' . $_POST['replytomail'] . '>'; - $message = $_POST['message']; - $sendtocc = $_POST['sendtocc']; - $sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO); - $deliveryreceipt = $_POST['deliveryreceipt']; - if ($action == 'send' || $action == 'relance') - { - if (dol_strlen($_POST['subject'])) - $subject = $_POST['subject']; - else - $subject = $langs->transnoentities('Bill') . ' ' . $object->ref; - $actiontypecode = 'AC_FAC'; - $actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto; - if ($message) { - if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc); - $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject); - $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":"); - $actionmsg = dol_concatdesc($actionmsg, $message); - } - // $actionmsg2=$langs->transnoentities('Action'.$actiontypecode); - } - - // Create form object - include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - - $attachedfiles = $formmail->get_attached_files(); - $filepath = $attachedfiles['paths']; - $filename = $attachedfiles['names']; - $mimetype = $attachedfiles['mimes']; - - // Send mail - require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php'; - $mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, - 1); - if ($mailfile->error) { - setEventMessage($mailfile->error, 'errors'); - } else { - $result = $mailfile->sendfile(); - if ($result) { - $error = 0; - - // Initialisation donnees - $object->sendtoid = $sendtoid; - $object->actiontypecode = $actiontypecode; - $object->actionmsg = $actionmsg; // Long text - $object->actionmsg2 = $actionmsg2; // Short text - $object->fk_element = $object->id; - $object->elementtype = $object->element; - - // Appel des triggers - include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; - $interface = new Interfaces($db); - $result = $interface->run_triggers('BILL_SENTBYMAIL', $object, $user, $langs, $conf); - if ($result < 0) { - $error++; - $object->errors = $interface->errors; - } - // Fin appel triggers - - if ($error) { - dol_print_error($db); - } else { - // Redirect here - // 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); - exit(); - } - } else { - $langs->load("other"); +// Actions to send emails +if (empty($id)) $id=$facid; +$actiontypecode='AC_FAC'; +$trigger_name='BILL_SENTBYMAIL'; +$paramname='id'; +$mode='emailfrominvoice'; +include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; - if ($mailfile->error) { - $mesg .= $langs->trans('ErrorFailedToSendMail', $from, $sendto); - $mesg .= '<br>' . $mailfile->error; - } else { - $mesg .= 'No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS'; - } - - setEventMessage($mesg, 'errors'); - } - } - } else { - $langs->load("other"); - setEventMessage($langs->trans('ErrorMailRecipientIsEmpty') . '!', 'errors'); - dol_syslog($langs->trans('ErrorMailRecipientIsEmpty')); - } - } else { - $langs->load("other"); - setEventMessage($langs->trans('ErrorFailedToReadEntity', $langs->trans("Invoice")), 'errors'); - dol_syslog('Impossible de lire les donnees de la facture. Le fichier facture n\'a peut-etre pas ete genere.'); - } - - $action = 'presend'; -} /* * Generate document */ -else if ($action == 'builddoc') // En get ou en post +if ($action == 'builddoc') // En get ou en post { $object->fetch($id); $object->fetch_thirdparty(); diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index 55ef0a5ef80115211eb8bd3f725e9d98afb90dab..1fd4d2c80fcbd6dbf3e252fe537918eb1305f9d0 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -31,6 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; $langs->load('bills'); +$langs->load('compta'); // Security check $id=(GETPOST('facid','int')?GETPOST('facid','int'):GETPOST('id','int')); diff --git a/htdocs/compta/paiement/cheque/index.php b/htdocs/compta/paiement/cheque/index.php index 27f2cf3e2e7a47c0747c39711e9ee4940550718e..277822593336beabb527bd6205f8ae9cc1511312 100644 --- a/htdocs/compta/paiement/cheque/index.php +++ b/htdocs/compta/paiement/cheque/index.php @@ -90,6 +90,7 @@ else //print '</td><td valign="top" width="70%" class="notopnoleftnoright">'; print '</div><div class="fichetwothirdright"><div class="ficheaddleft">'; +$max=10; $sql = "SELECT bc.rowid, bc.date_bordereau as db, bc.amount, bc.number as ref"; $sql.= ", bc.statut, bc.nbcheque"; @@ -98,8 +99,8 @@ $sql.= " FROM ".MAIN_DB_PREFIX."bordereau_cheque as bc"; $sql.= ", ".MAIN_DB_PREFIX."bank_account as ba"; $sql.= " WHERE ba.rowid = bc.fk_bank_account"; $sql.= " AND bc.entity = ".$conf->entity; -$sql.= " ORDER BY bc.rowid"; -$sql.= " DESC LIMIT 10"; +$sql.= " ORDER BY bc.date_bordereau DESC, rowid DESC"; +$sql.= $db->plimit($max); $resql = $db->query($sql); @@ -107,7 +108,7 @@ if ($resql) { print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; - print '<td>'.$langs->trans("CheckReceiptShort").'</td>'; + print '<td>'.$langs->trans("LastCheckReceiptShort",$max).'</td>'; print '<td>'.$langs->trans("Date")."</td>"; print '<td>'.$langs->trans("Account").'</td>'; print '<td align="right">'.$langs->trans("NbOfCheques").'</td>'; diff --git a/htdocs/compta/paiement/cheque/list.php b/htdocs/compta/paiement/cheque/list.php index 1699656acb13084cb4d7e06893e34c96ce824285..47a6ee8ba74c6b6d5fb025dda11440d450a684a7 100644 --- a/htdocs/compta/paiement/cheque/list.php +++ b/htdocs/compta/paiement/cheque/list.php @@ -38,6 +38,9 @@ $langs->load("bills"); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'banque', '',''); +$search_ref = GETPOST('search_ref','int'); +$search_account = GETPOST('search_account','int'); +$search_amount = GETPOST('search_amount','alpha'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); @@ -57,6 +60,16 @@ $formother = new FormOther($db); $checkdepositstatic=new RemiseCheque($db); $accountstatic=new Account($db); +// If click on purge search criteria ? +if (GETPOST("button_removefilter_x")) +{ + $search_ref=''; + $search_amount=''; + $search_account=''; + $year=''; + $month=''; +} + /* * View */ @@ -72,9 +85,9 @@ $sql.= " WHERE bc.fk_bank_account = ba.rowid"; $sql.= " AND bc.entity = ".$conf->entity; // Search criteria -if (GETPOST("search_ref")) $sql.=" AND bc.number=".GETPOST("search_ref",'int'); -if (GETPOST("search_account") > 0) $sql.=" AND bc.fk_bank_account=".GETPOST("search_account",'int'); -if (GETPOST("search_amount")) $sql.=" AND bc.amount=".price2num(GETPOST("search_amount")); +if ($search_ref) $sql.=" AND bc.number=".$search_ref; +if ($search_account > 0) $sql.=" AND bc.fk_bank_account=".$search_account; +if ($search_amount) $sql.=" AND bc.amount='".$db->escape(price2num(trim($search_amount)))."'"; if ($month > 0) { if ($year > 0 && empty($day)) @@ -103,7 +116,7 @@ if ($resql) print_barre_liste($langs->trans("MenuChequeDeposits"), $page, $_SERVER["PHP_SELF"], $params, $sortfield, $sortorder, '', $num); - print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">'; + print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">'; print '<table class="liste" width="100%">'; print '<tr class="liste_titre">'; print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bc.number","",$params,"",$sortfield,$sortorder); @@ -117,7 +130,7 @@ if ($resql) // Lignes des champs de filtre print '<tr class="liste_titre">'; print '<td class="liste_titre" align="left">'; - print '<input class="fat" type="text" size="4" name="search_ref" value="'.GETPOST('search_ref').'">'; + print '<input class="flat" type="text" size="4" name="search_ref" value="'.$search_ref.'">'; print '</td>'; print '<td class="liste_titre" align="center">'; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">'; @@ -125,16 +138,15 @@ if ($resql) $formother->select_year($year?$year:-1,'year',1, 20, 5); print '</td>'; print '<td>'; - $form->select_comptes($_REQUEST["search_account"],'search_account',0,'',1); + $form->select_comptes($search_account,'search_account',0,'',1); print '</td>'; print '<td class="liste_titre"> </td>'; print '<td class="liste_titre" align="right">'; - print '<input class="fat" type="text" size="6" name="search_amount" value="'.GETPOST('search_amount').'">'; + print '<input class="flat" type="text" size="6" name="search_amount" value="'.$search_amount.'">'; print '</td>'; - print '<td class="liste_titre" align="right">'; - print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print '</td>'; - print "</tr>\n"; + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; $var=true; while ($i < min($num,$limit)) diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php index da1f2bd28331d1deef6fbe7f09ab09a7dc3e8b52..65615b9bbf36c7338724c369aebd067bbeef9d84 100644 --- a/htdocs/compta/paiement/list.php +++ b/htdocs/compta/paiement/list.php @@ -42,6 +42,11 @@ $paymentstatic=new Paiement($db); $accountstatic=new Account($db); $companystatic=new Societe($db); +$search_ref=GETPOST("search_ref","int"); +$search_account=GETPOST("search_account","int"); +$search_paymenttype=GETPOST("search_paymenttype"); +$search_amount=GETPOST("search_amount"); +$search_company=GETPOST("search_company"); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); @@ -53,8 +58,14 @@ $limit = $conf->liste_limit; if (! $sortorder) $sortorder="DESC"; if (! $sortfield) $sortfield="p.rowid"; - - +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $search_account=""; + $search_amount=""; + $search_paymenttype=""; + $search_company=""; +} /* * View @@ -110,11 +121,11 @@ else else $sql.= " AND f.fk_user_author = ".$userid; } // Search criteria - if (GETPOST("search_ref")) $sql .=" AND p.rowid=".GETPOST("search_ref",'int'); - if (GETPOST("search_account") > 0) $sql .=" AND b.fk_account=".GETPOST("search_account",'int'); - if (GETPOST("search_paymenttype") != "") $sql .=" AND c.code='".GETPOST("search_paymenttype")."'"; - if (GETPOST("search_amount")) $sql .=" AND p.amount=".price2num(GETPOST("search_amount")); - if (GETPOST("search_company")) $sql .= natural_search('s.nom', GETPOST('search_company')); + if ($search_ref) $sql .=" AND p.rowid=".$search_ref; + if ($search_account > 0) $sql .=" AND b.fk_account=".$search_account; + if ($search_paymenttype != "") $sql .=" AND c.code='".$search_paymenttype."'"; + if ($search_amount) $sql .=" AND p.amount='".price2num($search_amount)."'"; + if ($search_company) $sql .= natural_search('s.nom', $search_company); } $sql.= $db->order($sortfield,$sortorder); $sql.= $db->plimit($limit+1, $offset); @@ -129,9 +140,9 @@ if ($resql) $paramlist=''; $paramlist.=(GETPOST("orphelins")?"&orphelins=1":""); - $paramlist.=($_REQUEST["search_ref"]?"&search_ref=".$_REQUEST["search_ref"]:""); - $paramlist.=($_REQUEST["search_company"]?"&search_company=".$_REQUEST["search_company"]:""); - $paramlist.=($_REQUEST["search_amount"]?"&search_amount=".$_REQUEST["search_amount"]:""); + $paramlist.=($search_ref?"&search_ref=".$search_ref:""); + $paramlist.=($search_company?"&search_company=".$search_company:""); + $paramlist.=($search_amount?"&search_amount=".$search_amount:""); print_barre_liste($langs->trans("ReceivedCustomersPayments"), $page, $_SERVER["PHP_SELF"],$paramlist,$sortfield,$sortorder,'',$num); @@ -149,26 +160,29 @@ if ($resql) { print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut","",$paramlist,'align="right"',$sortfield,$sortorder); } - print "</tr>\n"; + print '<td class="liste_titre"> </td>'; + print "</tr>\n"; // Lines for filters fields print '<tr class="liste_titre">'; print '<td align="left">'; - print '<input class="fat" type="text" size="4" name="search_ref" value="'.$_REQUEST["search_ref"].'">'; + print '<input class="flat" type="text" size="4" name="search_ref" value="'.$search_ref.'">'; print '</td>'; print '<td> </td>'; print '<td align="left">'; - print '<input class="fat" type="text" size="6" name="search_company" value="'.$_REQUEST["search_company"].'">'; + print '<input class="flat" type="text" size="6" name="search_company" value="'.$search_company.'">'; print '</td>'; print '<td>'; - $form->select_types_paiements($_REQUEST["search_paymenttype"],'search_paymenttype','',2,1,1); + $form->select_types_paiements($search_paymenttype,'search_paymenttype','',2,1,1); print '</td>'; print '<td>'; - $form->select_comptes($_REQUEST["search_account"],'search_account',0,'',1); + $form->select_comptes($search_account,'search_account',0,'',1); print '</td>'; print '<td align="right">'; - print '<input class="fat" type="text" size="4" name="search_amount" value="'.$_REQUEST["search_amount"].'">'; + print '<input class="flat" type="text" size="4" name="search_amount" value="'.$search_amount.'">'; + print '</td><td align="right">'; print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print '</td>'; if (! empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) { @@ -223,7 +237,8 @@ if ($resql) if ($objp->statut == 0) print '</a>'; print '</td>'; } - + + print '<td> </td>'; print '</tr>'; $i++; diff --git a/htdocs/compta/prelevement/bon.php b/htdocs/compta/prelevement/bon.php deleted file mode 100644 index 20d60c3a55b48353e7dc4f409c5d7109faa0d3c8..0000000000000000000000000000000000000000 --- a/htdocs/compta/prelevement/bon.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php -/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> - * Copyright (C) 2005 Laurent Destailleur <eldy@users.sourceforge.net> - * Copyright (C) 2010-2012 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 - * 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/>. - */ - -/** - * \file htdocs/compta/prelevement/bon.php - * \ingroup prelevement - * \brief Fiche apercu du bon de prelevement - */ - -require('../../main.inc.php'); -require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; - -$langs->load("banks"); -$langs->load("categories"); -$langs->load("bills"); -$langs->load("categories"); - -// Security check -$socid=0; -$id = GETPOST('id','int'); -$ref = GETPOST('ref','alpha'); -if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'prelevement', $id); - - -llxHeader('','Bon de prelevement'); - -$form = new Form($db); - -if ($id > 0 || ! empty($ref)) -{ - $object = new BonPrelevement($db,""); - - if ($object->fetch($id) == 0) - { - $head = prelevement_prepare_head($object); - dol_fiche_head($head, 'preview', 'Prelevement : '. $object->ref); - - print '<table class="border" width="100%">'; - - print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td>'.$object->ref.'</td></tr>'; - print '<tr><td width="20%">'.$langs->trans("Amount").'</td><td>'.price($object->amount).'</td></tr>'; - print '<tr><td width="20%">'.$langs->trans("File").'</td><td>'; - - $relativepath = 'bon/'.$object->ref; - - print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$object->ref.'</a>'; - - print '</td></tr>'; - print '</table><br>'; - - $fileimage = $conf->prelevement->dir_output.'/receipts/'.$object->ref.'.ps.png.0'; - $fileps = $conf->prelevement->dir_output.'/receipts/'.$object->ref.'.ps'; - - // Conversion du PDF en image png si fichier png non existant - if (!file_exists($fileimage)) - { - if (class_exists("Imagick")) - { - $ret = dol_convert_file($file,'png',$fileimage); - if ($ret < 0) $error++; - } - else - { - $langs->load("errors"); - print '<font class="error">'.$langs->trans("ErrorNoImagickReadimage").'</font>'; - } - } - - if (file_exists($fileimage)) - { - print '<img src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=prelevement&file='.urlencode(basename($fileimage)).'">'; - - } - - dol_fiche_end(); - } - else - { - dol_print_error($db); - } -} - -llxFooter(); diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 87bab387344a4511706bee01bb5f516e016795cd..66a1c81e8e988d0a8753c56d57d6077bbdaa301b 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -821,7 +821,9 @@ class BonPrelevement extends CommonObject { $bac = new CompanyBankAccount($this->db); $bac->fetch(0,$soc->id); + if ($bac->verif() >= 1) + //if (true) { $factures_prev[$i] = $fac; /* second tableau necessaire pour BonPrelevement */ @@ -1226,26 +1228,24 @@ class BonPrelevement extends CommonObject * @return int 0 if OK, <0 if KO */ //TODO: Optimize code to read lines in a single function - function Generate() + function generate() { global $conf,$langs,$mysoc; $result = 0; - dol_syslog(get_class($this)."::Generate build file ".$this->filename); + dol_syslog(get_class($this)."::generate build file ".$this->filename); $this->file = fopen($this->filename,"w"); $found=0; // Build file for European countries - if (! $mysoc->isInEEC()) + if ($mysoc->isInEEC()) { $found++; /** - * SECTION CREATION FICHIER SEPA - * SECTION CREATION FICHIER SEPA * SECTION CREATION FICHIER SEPA */ // SEPA Initialisation @@ -1308,8 +1308,6 @@ class BonPrelevement extends CommonObject } /** - * SECTION CREATION FICHIER SEPA - * SECTION CREATION FICHIER SEPA * SECTION CREATION FICHIER SEPA */ // SEPA File Header @@ -1401,11 +1399,14 @@ class BonPrelevement extends CommonObject } } else - { + { $result = -2; } + $langs->load('withdrawals'); - fputs($this->file, $langs->trans('WithdrawalFileNotCapable')); + + // TODO Add here code to generate a generic file + fputs($this->file, $langs->trans('WithdrawalFileNotCapable', $mysoc->country_code)); } fclose($this->file); diff --git a/htdocs/compta/prelevement/class/rejetprelevement.class.php b/htdocs/compta/prelevement/class/rejetprelevement.class.php index 27ae87ca3b4319ee78c3fada6f1ebd3e6fad42a2..d0b467f294ba287b3b85c9bf75f1b3b8b49e7ce7 100644 --- a/htdocs/compta/prelevement/class/rejetprelevement.class.php +++ b/htdocs/compta/prelevement/class/rejetprelevement.class.php @@ -173,7 +173,8 @@ class RejetPrelevement } //Tag invoice as unpaid dol_syslog("RejetPrelevement::Create set_unpaid fac ".$fac->ref); - $fac->set_unpaid($fac->id, $user); + + $fac->set_unpaid($user); //TODO: Must be managed by notifications module // Send email to sender of the standing order request @@ -194,7 +195,7 @@ class RejetPrelevement } /** - * Envoi mail + * Send email to all users that has asked the withdraw request * * @param Facture $fac Invoice object * @return void diff --git a/htdocs/compta/prelevement/demandes.php b/htdocs/compta/prelevement/demandes.php index c99744f7430ac3a6a215039e62c77bd7ed4d5e1c..364e073676bd355c9012d4bcf26b9133e742d336 100644 --- a/htdocs/compta/prelevement/demandes.php +++ b/htdocs/compta/prelevement/demandes.php @@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; $langs->load("banks"); $langs->load("categories"); -$langs->load("widthdrawals"); +$langs->load("withdrawals"); $langs->load("companies"); // Security check diff --git a/htdocs/compta/prelevement/factures.php b/htdocs/compta/prelevement/factures.php index bf3e428cd0e5ad5478f0e530bd37461ff84375bf..d11fefbb6cb932deb84adb77c8a23da8ded89472 100644 --- a/htdocs/compta/prelevement/factures.php +++ b/htdocs/compta/prelevement/factures.php @@ -213,6 +213,7 @@ else dol_print_error($db); } -$db->close(); llxFooter(); + +$db->close(); diff --git a/htdocs/compta/prelevement/ligne.php b/htdocs/compta/prelevement/ligne.php index b3f9acb35709cffa2b8a0065197fa59e99d27a28..f16179796451881c88579c79218c387b2bab5c01 100644 --- a/htdocs/compta/prelevement/ligne.php +++ b/htdocs/compta/prelevement/ligne.php @@ -105,10 +105,13 @@ if ($action == 'confirm_rejet') } } + /* * View */ +$invoicestatic=new Facture($db); + llxHeader('',$langs->trans("StandingOrder")); $h = 0; @@ -134,9 +137,7 @@ if ($id) print '<a href="card.php?id='.$lipre->bon_rowid.'">'.$lipre->bon_ref.'</a></td></tr>'; print '<tr><td width="20%">'.$langs->trans("Date").'</td><td>'.dol_print_date($bon->datec,'day').'</td></tr>'; print '<tr><td width="20%">'.$langs->trans("Amount").'</td><td>'.price($lipre->amount).'</td></tr>'; - print '<tr><td width="20%">'.$langs->trans("Status").'</td><td>'; - - print $lipre->LibStatut($lipre->statut,1).'</td></tr>'; + print '<tr><td width="20%">'.$langs->trans("Status").'</td><td>'.$lipre->LibStatut($lipre->statut,1).'</td></tr>'; if ($lipre->statut == 3) { @@ -215,7 +216,7 @@ if ($id) print '</table><br>'; //Confirm Button - print '<center><input type="submit" class="valid" value='.$langs->trans("Confirm").'><center>'; + print '<center><input type="submit" class="button" value='.$langs->trans("Confirm").'><center>'; print '</form>'; } @@ -229,13 +230,20 @@ if ($id) if ($action == '') { - if ($bon->statut == 2 && $lipre->statut == 2 && $user->rights->prelevement->bons->credit) + if ($bon->statut == 2 && $lipre->statut == 2) { - print "<a class=\"butAction\" href=\"ligne.php?action=rejet&id=$lipre->id\">".$langs->trans("StandingOrderReject")."</a>"; + if ($user->rights->prelevement->bons->credit) + { + print "<a class=\"butAction\" href=\"ligne.php?action=rejet&id=$lipre->id\">".$langs->trans("StandingOrderReject")."</a>"; + } + else + { + print "<a class=\"butActionRefused\" href=\"#\" title=\"".$langs->trans("NotAllowed")."\">".$langs->trans("StandingOrderReject")."</a>"; + } } else { - print "<a class=\"butActionRefused\" href=\"#\">".$langs->trans("StandingOrderReject")."</a>"; + print "<a class=\"butActionRefused\" href=\"#\" title=\"".$langs->trans("NotPossibleForThisStatusOfWithdrawReceiptORLine")."\">".$langs->trans("StandingOrderReject")."</a>"; } } @@ -256,7 +264,7 @@ if ($id) * Liste des factures */ $sql = "SELECT pf.rowid"; - $sql.= " ,f.rowid as facid, f.facnumber as ref, f.total_ttc"; + $sql.= " ,f.rowid as facid, f.facnumber as ref, f.total_ttc, f.paye, f.fk_statut"; $sql.= " , s.rowid as socid, s.nom as name"; $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p"; $sql.= " , ".MAIN_DB_PREFIX."prelevement_lignes as pl"; @@ -287,7 +295,7 @@ if ($id) print"\n<!-- debut table -->\n"; print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">'; print '<tr class="liste_titre">'; - print '<td>'.$langs->trans("Invoice").'</td><td>'.$langs->trans("ThirdParty").'</td><td align="right">'.$langs->trans("Amount").'</td>'; + print '<td>'.$langs->trans("Invoice").'</td><td>'.$langs->trans("ThirdParty").'</td><td align="right">'.$langs->trans("Amount").'</td><td align="right">'.$langs->trans("Status").'</td>'; print '</tr>'; $var=True; @@ -312,6 +320,11 @@ if ($id) print '<td align="right">'.price($obj->total_ttc)."</td>\n"; + print '<td align="right">'; + $invoicestatic->fetch($obj->facid); + print $invoicestatic->getLibStatut(5); + print "</td>\n"; + print "</tr>\n"; $i++; diff --git a/htdocs/compta/prelevement/list.php b/htdocs/compta/prelevement/list.php index 10fb995c0236b9c9d5ac79f6f796ffd63813b6d4..0a68aa686aec4fb303e5a4cbdcca8e0ffa1410a7 100644 --- a/htdocs/compta/prelevement/list.php +++ b/htdocs/compta/prelevement/list.php @@ -42,10 +42,10 @@ $result = restrictedArea($user, 'prelevement','','','bons'); $page = GETPOST('page','int'); $sortorder = ((GETPOST('sortorder','alpha')=="")) ? "DESC" : GETPOST('sortorder','alpha'); $sortfield = ((GETPOST('sortfield','alpha')=="")) ? "p.datec" : GETPOST('sortfield','alpha'); -$search_line = GETPOST('search_ligne','alpha'); +$search_line = GETPOST('search_line','alpha'); $search_bon = GETPOST('search_bon','alpha'); $search_code = GETPOST('search_code','alpha'); -$search_societe = GETPOST('search_societe','alpha'); +$search_company = GETPOST('search_company','alpha'); $statut = GETPOST('statut','int'); $bon=new BonPrelevement($db,""); @@ -53,7 +53,14 @@ $ligne=new LignePrelevement($db,$user); $offset = $conf->liste_limit * $page ; - +if (GETPOST("button_removefilter")) +{ + $search_line=""; + $search_bon=""; + $search_code=""; + $search_company=""; + $statut=""; +} /* * View @@ -88,9 +95,9 @@ if ($search_code) { $sql.= " AND s.code_client LIKE '%".$db->escape($search_code)."%'"; } -if ($search_societe) +if ($search_company) { - $sql .= " AND s.nom LIKE '%".$db->escape($search_societe)."%'"; + $sql .= " AND s.nom LIKE '%".$db->escape($search_company)."%'"; } $sql.=$db->order($sortfield,$sortorder); $sql.=$db->plimit($conf->liste_limit+1, $offset); @@ -122,15 +129,17 @@ if ($result) print '<form action="list.php" method="GET">'; print '<tr class="liste_titre">'; - print '<td class="liste_titre"><input type="text" class="flat" name="search_ligne" value="'. dol_escape_htmltag($search_line).'" size="6"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" name="search_line" value="'. dol_escape_htmltag($search_line).'" size="6"></td>'; print '<td class="liste_titre"><input type="text" class="flat" name="search_bon" value="'. dol_escape_htmltag($search_bon).'" size="8"></td>'; print '<td> </td>'; - print '<td class="liste_titre"><input type="text" class="flat" name="search_societe" value="'. dol_escape_htmltag($search_societe).'" size="12"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" name="search_company" value="'. dol_escape_htmltag($search_company).'" size="12"></td>'; print '<td class="liste_titre" align="center"><input type="text" class="flat" name="search_code" value="'. dol_escape_htmltag($search_code).'" size="8"></td>'; print '<td class="liste_titre"> </td>'; print '<td class="liste_titre"> </td>'; - print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'"></td>'; - print '</tr>'; + print '<td class="liste_titre" align="right">'; + print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print '</td>'; print '</form>'; $var=True; diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php index 1fecc0e1c2889f530a3cd33c0826ee3cf9480a6a..b586241c11ece86fd053ffc7eb8a35e3252d6d41 100644 --- a/htdocs/compta/resultat/index.php +++ b/htdocs/compta/resultat/index.php @@ -560,7 +560,7 @@ print '<tr class="liste_titre"><td class="liste_titre"> </td>'; for ($annee = $year_start ; $annee <= $year_end ; $annee++) { - print '<td align="center" colspan="2">'; + print '<td align="center" colspan="2" class="borderrightlight">'; print '<a href="clientfourn.php?year='.$annee.'">'; print $annee; if ($conf->global->SOCIETE_FISCAL_MONTH_START > 1) print '-'.($annee+1); @@ -571,7 +571,7 @@ print '<tr class="liste_titre"><td class="liste_titre">'.$langs->trans("Month"). for ($annee = $year_start ; $annee <= $year_end ; $annee++) { print '<td align="right">'.$langs->trans("Outcome").'</td>'; - print '<td align="right">'.$langs->trans("Income").'</td>'; + print '<td align="right" class="borderrightlight">'.$langs->trans("Income").'</td>'; } print '</tr>'; @@ -601,7 +601,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++) } print "</td>"; - print '<td align="right"> '; + print '<td align="right" class="borderrightlight"> '; //if (isset($encaiss_ttc[$case]) && $encaiss_ttc[$case] != 0) if (isset($encaiss_ttc[$case])) { @@ -623,7 +623,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++) { $nbcols+=2; print '<td align="right">'.(isset($totsorties[$annee])?price(price2num($totsorties[$annee],'MT')):' ').'</td>'; - print '<td align="right">'.(isset($totentrees[$annee])?price(price2num($totentrees[$annee],'MT')):' ').'</td>'; + print '<td align="right" style="border-right: 1px solid #DDD">'.(isset($totentrees[$annee])?price(price2num($totentrees[$annee],'MT')):' ').'</td>'; } print "</tr>\n"; @@ -637,7 +637,7 @@ $var=!$var; print '<tr class="liste_total"><td>'.$langs->trans("Profit").'</td>'; for ($annee = $year_start ; $annee <= $year_end ; $annee++) { - print '<td align="right" colspan="2"> '; + print '<td align="right" colspan="2" class="borderrightlight"> '; if (isset($totentrees[$annee]) || isset($totsorties[$annee])) { $in=(isset($totentrees[$annee])?price2num($totentrees[$annee], 'MT'):0); diff --git a/htdocs/compta/salaries/index.php b/htdocs/compta/salaries/index.php index b2fc3e1b4a3aec617b738cab7739957932c4cb84..17c3efdbfaa0dc1080ede50fe6b3e2fe1dbb245f 100644 --- a/htdocs/compta/salaries/index.php +++ b/htdocs/compta/salaries/index.php @@ -33,6 +33,9 @@ $socid = GETPOST("socid","int"); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'salaries', '', '', ''); +$search_ref = GETPOST('search_ref','int'); +$search_label = GETPOST('search_label','alpha'); +$search_amount = GETPOST('search_amount','alpha'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); @@ -61,6 +64,14 @@ else $typeid=$_REQUEST['typeid']; } +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $search_label=""; + $search_amount=""; + $typeid=""; +} + /* * View */ @@ -78,8 +89,11 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pst ON s.fk_typepayment = pst $sql.= " ".MAIN_DB_PREFIX."user as u"; $sql.= " WHERE u.rowid = s.fk_user"; $sql.= " AND s.entity = ".$conf->entity; -if (GETPOST("search_label")) $sql.=" AND s.label LIKE '%".$db->escape(GETPOST("search_label"))."%'"; -if (GETPOST("search_amount")) $sql.=" AND s.amount = ".price2num(GETPOST("search_amount")); + +// Search criteria +if ($search_ref) $sql.=" AND s.rowid=".$search_ref; +if ($search_label) $sql.=" AND s.label LIKE '%".$db->escape($search_label)."%'"; +if ($search_amount) $sql.=" AND s.amount='".$db->escape(price2num(trim($search_amount)))."'"; if ($filtre) { $filtre=str_replace(":","=",$filtre); $sql .= " AND ".$filtre; @@ -118,19 +132,23 @@ if ($result) print "</tr>\n"; print '<tr class="liste_titre">'; + // Ref + print '<td class="liste_titre" align="left">'; + print '<input class="flat" type="text" size="3" name="search_ref" value="'.$search_ref.'">'; + print '</td>'; print '<td class="liste_titre"> </td>'; - print '<td class="liste_titre"> </td>'; - print '<td class="liste_titre"><input type="text" class="flat" size="14" name="search_label" value="'.GETPOST("search_label").'"></td>'; + // Label + print '<td class="liste_titre"><input type="text" class="flat" size="14" name="search_label" value="'.$search_label.'"></td>'; print '<td class="liste_titre"> </td>'; // Type print '<td class="liste_titre" align="left">'; $form->select_types_paiements($typeid,'typeid','',0,0,1,16); print '</td>'; - print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.GETPOST("search_amount").'"></td>'; - print '<td class="liste_titre" align="right">'; - 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"; + // Amount + print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.$search_amount.'"></td>'; + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; while ($i < min($num,$limit)) { diff --git a/htdocs/compta/sociales/index.php b/htdocs/compta/sociales/index.php index 022aaf14ff00d551850898aba649471fb3d61eef..db4bef2abe6ec76c8836cbc5100c4bfb445d383f 100644 --- a/htdocs/compta/sociales/index.php +++ b/htdocs/compta/sociales/index.php @@ -36,6 +36,9 @@ $socid = isset($_GET["socid"])?$_GET["socid"]:''; if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'tax', '', '', 'charges'); +$search_ref = GETPOST('search_ref','int'); +$search_label = GETPOST('search_label','alpha'); +$search_amount = GETPOST('search_amount','alpha'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); @@ -65,6 +68,15 @@ else $typeid=$_REQUEST['typeid']; } +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $search_label=""; + $search_amount=""; + $typeid=""; + $year=""; + $month=""; +} /* * View @@ -85,7 +97,11 @@ $sql.= " ".MAIN_DB_PREFIX."chargesociales as cs"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiementcharge as pc ON pc.fk_charge = cs.rowid"; $sql.= " WHERE cs.fk_type = c.id"; $sql.= " AND cs.entity = ".$conf->entity; -if (GETPOST("search_label")) $sql.=" AND cs.libelle LIKE '%".$db->escape(GETPOST("search_label"))."%'"; + +// Search criteria +if ($search_ref) $sql.=" AND cs.rowid=".$search_ref; +if ($search_label) $sql.=" AND cs.libelle LIKE '%".$db->escape($search_label)."%'"; +if ($search_amount) $sql.=" AND cs.amount='".$db->escape(price2num(trim($search_amount)))."'"; if ($year > 0) { $sql .= " AND ("; @@ -139,10 +155,8 @@ if ($resql) { print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">'; - - print "<table class=\"noborder\" width=\"100%\">"; - - print "<tr class=\"liste_titre\">"; + print '<table class="liste" width="100%">'; + print '<tr class="liste_titre">'; print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"id","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"cs.libelle","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); @@ -153,20 +167,26 @@ if ($resql) print "</tr>\n"; print '<tr class="liste_titre">'; - print '<td class="liste_titre"> </td>'; - print '<td class="liste_titre"><input type="text" class="flat" size="8" name="search_label" value="'.GETPOST("search_label").'"></td>'; + // Ref + print '<td class="liste_titre" align="left">'; + print '<input class="flat" type="text" size="3" name="search_ref" value="'.$search_ref.'">'; + print '</td>'; + // Label + print '<td class="liste_titre"><input type="text" class="flat" size="8" name="search_label" value="'.$search_label.'"></td>'; // Type print '<td class="liste_titre" align="left">'; $formsocialcontrib->select_type_socialcontrib($typeid,'typeid',1,16,0); print '</td>'; // Period end date print '<td class="liste_titre"> </td>'; - print '<td class="liste_titre"> </td>'; - print '<td class="liste_titre"> </td>'; + // Amount print '<td class="liste_titre" align="right">'; - 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 '<input class="flat" type="text" size="6" name="search_amount" value="'.$search_amount.'">'; print '</td>'; - print "</tr>\n"; + print '<td class="liste_titre"> </td>'; + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; while ($i < min($num,$limit)) { diff --git a/htdocs/compta/stats/index.php b/htdocs/compta/stats/index.php index 69fdeff849c6bbca10a18dda9f32d4e6863f4909..b3fb130e185da9130cbb8c931cf2dff1596b4b19 100644 --- a/htdocs/compta/stats/index.php +++ b/htdocs/compta/stats/index.php @@ -184,7 +184,7 @@ print '<tr class="liste_titre"><td> </td>'; for ($annee = $year_start ; $annee <= $year_end ; $annee++) { if ($modecompta == 'CREANCES-DETTES') print '<td align="center" width="10%" colspan="3">'; - else print '<td align="center" width="10%" colspan="2">'; + else print '<td align="center" width="10%" colspan="2" class="borderrightlight">'; print '<a href="casoc.php?year='.$annee.'">'; print $annee; if ($conf->global->SOCIETE_FISCAL_MONTH_START > 1) print '-'.($annee+1); @@ -198,7 +198,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++) { if ($modecompta == 'CREANCES-DETTES') print '<td align="right">'.$langs->trans("AmountHT").'</td>'; print '<td align="right">'.$langs->trans("AmountTTC").'</td>'; - print '<td align="right">'.$langs->trans("Delta").'</td>'; + print '<td align="right" class="borderrightlight">'.$langs->trans("Delta").'</td>'; if ($annee != $year_end) print '<td width="15"> </td>'; } print '</tr>'; @@ -244,7 +244,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++) } print "</td>"; } - + // Valeur CA du mois print '<td align="right">'; if ($cum[$case]) @@ -266,29 +266,29 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++) { $percent=(round(($cum[$case]-$cum[$caseprev])/$cum[$caseprev],4)*100); //print "X $cum[$case] - $cum[$caseprev] - $cum[$caseprev] - $percent X"; - print '<td align="right">'.($percent>=0?"+$percent":"$percent").'%</td>'; + print '<td align="right" class="borderrightlight">'.($percent>=0?"+$percent":"$percent").'%</td>'; } if ($cum[$caseprev] && ! $cum[$case]) { - print '<td align="right">-100%</td>'; + print '<td align="right" class="borderrightlight">-100%</td>'; } if (! $cum[$caseprev] && $cum[$case]) { //print '<td align="right">+Inf%</td>'; - print '<td align="right">-</td>'; + print '<td align="right" class="borderrightlight">-</td>'; } if (isset($cum[$caseprev]) && ! $cum[$caseprev] && ! $cum[$case]) { - print '<td align="right">+0%</td>'; + print '<td align="right" class="borderrightlight">+0%</td>'; } if (! isset($cum[$caseprev]) && ! $cum[$case]) { - print '<td align="right">-</td>'; + print '<td align="right" class="borderrightlight">-</td>'; } } else { - print '<td align="right">'; + print '<td align="right" class="borderrightlight">'; if ($minyearmonth <= $case && $case <= $maxyearmonth) { print '-'; } else { print ' '; } print '</td>'; @@ -382,7 +382,7 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++) print '<td> </td>'; } } - + // Montant total if ($total[$annee] || ($annee >= $minyear && $annee <= max($nowyear,$maxyear))) { @@ -398,24 +398,24 @@ for ($annee = $year_start ; $annee <= $year_end ; $annee++) { if ($total[$annee-1] && $total[$annee]) { $percent=(round(($total[$annee]-$total[$annee-1])/$total[$annee-1],4)*100); - print '<td align="right" class="nowrap">'.($percent>=0?"+$percent":"$percent").'%</td>'; + print '<td align="right" class="nowrap borderrightlight">'.($percent>=0?"+$percent":"$percent").'%</td>'; } if ($total[$annee-1] && ! $total[$annee]) { - print '<td align="right">-100%</td>'; + print '<td align="right" class="borderrightlight">-100%</td>'; } if (! $total[$annee-1] && $total[$annee]) { - print '<td align="right">+Inf%</td>'; + print '<td align="right" class="borderrightlight">+Inf%</td>'; } if (! $total[$annee-1] && ! $total[$annee]) { - print '<td align="right">+0%</td>'; + print '<td align="right" class="borderrightlight">+0%</td>'; } } else { - print '<td align="right">'; + print '<td align="right" class="borderrightlight">'; if ($total[$annee] || ($minyear <= $annee && $annee <= max($nowyear,$maxyear))) { print '-'; } else { print ' '; } print '</td>'; diff --git a/htdocs/compta/tva/reglement.php b/htdocs/compta/tva/reglement.php index 9bb4337782efdca9ad3733ad7bff86781d83a43a..8babbd58f7d08eb7740975a4301015fb2a80c408 100644 --- a/htdocs/compta/tva/reglement.php +++ b/htdocs/compta/tva/reglement.php @@ -35,6 +35,9 @@ $socid = isset($_GET["socid"])?$_GET["socid"]:''; if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'tax', '', '', 'charges'); +$search_ref = GETPOST('search_ref','int'); +$search_label = GETPOST('search_label','alpha'); +$search_amount = GETPOST('search_amount','alpha'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); @@ -63,6 +66,14 @@ else $typeid=$_REQUEST['typeid']; } +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $search_label=""; + $search_amount=""; + $typeid=""; +} + /* * View */ @@ -76,8 +87,9 @@ $sql = "SELECT t.rowid, t.amount, t.label, t.datev as dm, t.fk_typepayment as ty $sql.= " FROM ".MAIN_DB_PREFIX."tva as t"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pst ON t.fk_typepayment = pst.id"; $sql.= " WHERE t.entity = ".$conf->entity; -if (GETPOST("search_label")) $sql.=" AND t.label LIKE '%".$db->escape(GETPOST("search_label"))."%'"; -if (GETPOST("search_amount")) $sql.=" AND t.amount = ".price2num(GETPOST("search_amount")); +if ($search_ref) $sql.=" AND t.rowid=".$search_ref; +if ($search_label) $sql.=" AND t.label LIKE '%".$db->escape($search_label)."%'"; +if ($search_amount) $sql.=" AND t.amount='".$db->escape(price2num(trim($search_amount)))."'"; if ($filtre) { $filtre=str_replace(":","=",$filtre); $sql .= " AND ".$filtre; @@ -106,27 +118,26 @@ if ($result) print '<table class="noborder" width="100%">'; print '<tr class="liste_titre">'; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"t.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"t.label","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"dm","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"t.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre(""); + print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"t.rowid","",$param,"",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"t.label","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"dm","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"t.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"><input type="text" class="flat" size="14" name="search_label" value="'.GETPOST("search_label").'"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" size="4" name="search_ref" value="'.$search_ref.'"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" size="10" name="search_label" value="'.$search_label.'"></td>'; print '<td class="liste_titre"> </td>'; // Type print '<td class="liste_titre" align="left">'; $form->select_types_paiements($typeid,'typeid','',0,0,1,16); print '</td>'; - print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.GETPOST("search_amount").'"></td>'; - print '<td class="liste_titre" align="right">'; - 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"; + print '<td class="liste_titre" align="right"><input name="search_amount" class="flat" type="text" size="8" value="'.$search_amount.'"></td>'; + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; while ($i < min($num,$limit)) { diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index c65e9601e53b943e2b0595af804fadccbe9ce571..2e28328085a3df7b355b33612579dce375548e55 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -357,7 +357,6 @@ if ($result) print '</td>'; print '<td class="liste_titre" align="right">'; print '<input type="image" value="button_search" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print ' '; print '<input type="image" value="button_removefilter" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print '</td>'; print '</tr>'; diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index dcc1b83e6d89ad750eb314f7e67490f21bf12d37..cf57e97933b70e81085bfc2bce513c94d65047f1 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -40,11 +40,11 @@ if ($page == -1) { $page = 0 ; } $limit = $conf->liste_limit; $offset = $limit * $page ; -$search_nom=GETPOST('search_nom'); +$search_name=GETPOST('search_name'); $search_contract=GETPOST('search_contract'); $search_ref_supplier=GETPOST('search_ref_supplier','alpha'); $sall=GETPOST('sall'); -$statut=GETPOST('statut')?GETPOST('statut'):1; +$search_status=GETPOST('search_status'); $socid=GETPOST('socid'); if (! $sortfield) $sortfield="c.rowid"; @@ -58,6 +58,17 @@ $result = restrictedArea($user, 'contrat', $id); $staticcontrat=new Contrat($db); $staticcontratligne=new ContratLigne($db); +if (GETPOST("button_removefilter")) +{ + $search_name=""; + $search_contract=""; + $search_ref_supplier=""; + $sall=""; + $search_status=""; +} + +if ($search_status == '') $search_status=1; + /* * View @@ -84,8 +95,8 @@ $sql.= " WHERE c.fk_soc = s.rowid "; $sql.= " AND c.entity = ".$conf->entity; if ($socid) $sql.= " AND s.rowid = ".$socid; if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; -if ($search_nom) { - $sql .= natural_search('s.nom', $search_nom); +if ($search_name) { + $sql .= natural_search('s.nom', $search_name); } if ($search_contract) { $sql .= natural_search(array('c.rowid', 'c.ref'), $search_contract); @@ -106,13 +117,13 @@ if ($resql) $num = $db->num_rows($resql); $i = 0; - print_barre_liste($langs->trans("ListOfContracts"), $page, $_SERVER["PHP_SELF"], '&search_contract='.$search_contract.'&search_nom='.$search_nom, $sortfield, $sortorder,'',$num); + print_barre_liste($langs->trans("ListOfContracts"), $page, $_SERVER["PHP_SELF"], '&search_contract='.$search_contract.'&search_name='.$search_name, $sortfield, $sortorder,'',$num); print '<table class="liste" width="100%">'; print '<tr class="liste_titre">'; $param='&search_contract='.$search_contract; - $param.='&search_nom='.$search_nom; + $param.='&search_name='.$search_name; $param.='&search_ref_supplier='.$search_ref_supplier; print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid","","$param",'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("RefCustomer"), $_SERVER["PHP_SELF"], "c.ref_supplier","","$param",'',$sortfield,$sortorder); @@ -136,13 +147,13 @@ if ($resql) print '<input type="text" class="flat" size="7" name="search_ref_supplier value="'.$search_ref_supplier.'">'; print '</td>'; print '<td class="liste_titre">'; - print '<input type="text" class="flat" size="24" name="search_nom" value="'.$search_nom.'">'; + print '<input type="text" class="flat" size="24" name="search_name" value="'.$search_name.'">'; print '</td>'; print '<td class="liste_titre"> </td>'; //print '<td class="liste_titre"> </td>'; - print '<td colspan="4" class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print "</td>"; - print "</tr>\n"; + print '<td colspan="4" class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; print '</form>'; $var=true; diff --git a/htdocs/contrat/services.php b/htdocs/contrat/services.php index 77fc01554305ed000fd75eb0f55a9e28464abfdd..b0fb4ed5edb14da311dffffc85086f0f93d43187 100644 --- a/htdocs/contrat/services.php +++ b/htdocs/contrat/services.php @@ -44,7 +44,7 @@ if (! $sortfield) $sortfield="c.rowid"; if (! $sortorder) $sortorder="ASC"; $filter=GETPOST("filter"); -$search_nom=GETPOST("search_nom"); +$search_name=GETPOST("search_name"); $search_contract=GETPOST("search_contract"); $search_service=GETPOST("search_service"); $statut=GETPOST('statut')?GETPOST('statut'):1; @@ -69,6 +69,21 @@ $staticcontrat=new Contrat($db); $staticcontratligne=new ContratLigne($db); $companystatic=new Societe($db); +if (GETPOST("button_removefilter")) +{ + $search_name=""; + $search_contract=""; + $search_service=""; + $op1month=""; + $op1day=""; + $op1year=""; + $filter_op1=""; + $op2month=""; + $op2day=""; + $op2year=""; + $filter_op2=""; +} + /* * View */ @@ -101,7 +116,7 @@ if ($mode == "0") $sql.= " AND cd.statut = 0"; if ($mode == "4") $sql.= " AND cd.statut = 4"; if ($mode == "5") $sql.= " AND cd.statut = 5"; if ($filter == "expired") $sql.= " AND cd.date_fin_validite < '".$db->idate($now)."'"; -if ($search_nom) $sql.= " AND s.nom LIKE '%".$db->escape($search_nom)."%'"; +if ($search_name) $sql.= " AND s.nom LIKE '%".$db->escape($search_name)."%'"; if ($search_contract) $sql.= " AND c.rowid = '".$db->escape($search_contract)."'"; if ($search_service) $sql.= " AND (p.ref LIKE '%".$db->escape($search_service)."%' OR p.description LIKE '%".$db->escape($search_service)."%' OR cd.description LIKE '%".$db->escape($search_service)."%')"; if ($socid > 0) $sql.= " AND s.rowid = ".$socid; @@ -122,7 +137,7 @@ if ($resql) $param=''; if ($search_contract) $param.='&search_contract='.urlencode($search_contract); - if ($search_nom) $param.='&search_nom='.urlencode($search_nom); + if ($search_name) $param.='&search_name='.urlencode($search_name); if ($search_service) $param.='&search_service='.urlencode($search_service); if ($mode) $param.='&mode='.$mode; if ($filter) $param.='&filter='.$filter; @@ -168,7 +183,7 @@ if ($resql) print '</td>'; // Third party print '<td class="liste_titre">'; - print '<input type="text" class="flat" size="24" name="search_nom" value="'.dol_escape_htmltag($search_nom).'">'; + print '<input type="text" class="flat" size="24" name="search_name" value="'.dol_escape_htmltag($search_name).'">'; print '</td>'; print '<td class="liste_titre" align="center">'; $arrayofoperators=array('<'=>'<','>'=>'>'); @@ -184,9 +199,9 @@ if ($resql) $filter_date2=dol_mktime(0,0,0,$op2month,$op2day,$op2year); print $form->select_date($filter_date2,'op2',0,0,1); print '</td>'; - print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print "</td>"; - print "</tr>\n"; + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; print '</form>'; $contractstatic=new Contrat($db); diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php index 625376ace5847d7e38bf43ac8ae0081ed8dd10c9..51744775d9f6f6ceaad1791ea514a44d400cf5e6 100644 --- a/htdocs/core/actions_sendmails.inc.php +++ b/htdocs/core/actions_sendmails.inc.php @@ -87,10 +87,10 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO if ($result > 0) { - if ($_POST['sendto']) + if (trim($_POST['sendto'])) { // Recipient is provided into free text - $sendto = $_POST['sendto']; + $sendto = trim($_POST['sendto']); $sendtoid = 0; } elseif ($_POST['receiver'] != '-1') @@ -107,6 +107,22 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO $sendtoid = $_POST['receiver']; } } + if (trim($_POST['sendtocc'])) + { + $sendtocc = trim($_POST['sendtocc']); + } + elseif ($_POST['receivercc'] != '-1') + { + // Recipient was provided from combo list + if ($_POST['receivercc'] == 'thirdparty') // Id of third party + { + $sendtocc = $thirdparty->email; + } + else // Id du contact + { + $sendtocc = $thirdparty->contact_get_property($_POST['receivercc'],'email'); + } + } if (dol_strlen($sendto)) { @@ -115,8 +131,8 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>'; $replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>'; $message = $_POST['message']; - $sendtocc = $_POST['sendtocc']; - $sendtobcc=''; + $sendtocc = $sendtocc; + $sendtobcc= GETPOST('sendtoccc'); if ($mode == 'emailfromproposal') $sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO); if ($mode == 'emailfromorder') $sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO); if ($mode == 'emailfrominvoice') $sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO); @@ -172,7 +188,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO // Appel des triggers include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; $interface=new Interfaces($db); - $result=$interface->run_triggers('COMPANY_SENTBYMAIL',$object,$user,$langs,$conf); + $result=$interface->run_triggers($trigger_name,$object,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } diff --git a/htdocs/core/antispamimage.php b/htdocs/core/antispamimage.php index c3bc217e1002ae7dbd3d4e3b0502700108abf0a6..a16844dd715b82a7953490cff16b46a11574288e 100644 --- a/htdocs/core/antispamimage.php +++ b/htdocs/core/antispamimage.php @@ -51,8 +51,6 @@ for($i = 0; $i < $length; $i++) $sessionkey='dol_antispam_value'; $_SESSION[$sessionkey]=$string; -header("Content-type: image/png"); - $img = imagecreate(80,32); if (empty($img)) { @@ -60,6 +58,8 @@ if (empty($img)) exit; } +header("Content-type: image/png"); + $background_color = imagecolorallocate($img, 250, 250, 250); $ecriture_color = imagecolorallocate($img, 0, 0, 0); imagestring($img, 4, 24, 8, $string, $ecriture_color); diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index ad9149d48b004dc57deba3b7a51040e7b28c3676..e85d3dbed7176b9f0c9c3441f936a48a8bef39cb 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -609,6 +609,8 @@ abstract class CommonObject if (empty($this->socid) && empty($this->fk_soc) && empty($this->fk_thirdparty)) return 0; + require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; + $thirdparty = new Societe($this->db); $result=$thirdparty->fetch(isset($this->socid)?$this->socid:(isset($this->fk_soc)?$this->fk_soc:$this->fk_thirdparty)); $this->client = $thirdparty; // deprecated @@ -1823,7 +1825,7 @@ abstract class CommonObject if (empty($sourceid) && empty($targetid)) { - dol_print_error('','Bad usage of function. No parameter defined and no id defined'); + dol_syslog('Bad usage of function. No source nor target id defined (nor as parameter nor as object id)', LOG_ERROR); return -1; } @@ -2523,14 +2525,14 @@ abstract class CommonObject if (! empty($conf->margin->enabled) && empty($user->societe_id)) { if ($conf->global->MARGIN_TYPE == "1") - print '<td align="right" width="80">'.$langs->trans('BuyingPrice').'</td>'; + print '<td align="right" class="margininfos" width="80">'.$langs->trans('BuyingPrice').'</td>'; else - print '<td align="right" width="80">'.$langs->trans('CostPrice').'</td>'; + print '<td align="right" class="margininfos" width="80">'.$langs->trans('CostPrice').'</td>'; if (! empty($conf->global->DISPLAY_MARGIN_RATES) && $user->rights->margins->liretous) - print '<td align="right" width="50">'.$langs->trans('MarginRate').'</td>'; + print '<td align="right" class="margininfos" width="50">'.$langs->trans('MarginRate').'</td>'; if (! empty($conf->global->DISPLAY_MARK_RATES) && $user->rights->margins->liretous) - print '<td align="right" width="50">'.$langs->trans('MarkRate').'</td>'; + print '<td align="right" class="margininfos" width="50">'.$langs->trans('MarkRate').'</td>'; } // Total HT @@ -3010,11 +3012,16 @@ abstract class CommonObject $marginInfo = $this->getMarginInfos($force_price); - if (! empty($conf->global->MARGININFO_HIDE_SHOW)) - { - print "<img onclick=\"$('.margininfos').toggle();\" src='".img_picto($langs->trans("Hide")."/".$langs->trans("Show"),'object_margin.png','','',1)."'>"; - if ($conf->global->MARGININFO_HIDE_SHOW == 2) print '<script>$(document).ready(function() {$(".margininfos").hide();});</script>'; // hide by default - } + print $langs->trans('ShowMarginInfos').' : '; + $hidemargininfos = $_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']; + print '<span id="showMarginInfos" class="linkobject '.(!empty($hidemargininfos)?'':'hideobject').'">'.img_picto($langs->trans("Disabled"),'switch_off').'</span>'; + print '<span id="hideMarginInfos" class="linkobject '.(!empty($hidemargininfos)?'hideobject':'').'">'.img_picto($langs->trans("Enabled"),'switch_on').'</span>'; + + print '<script>$(document).ready(function() { + $("span#showMarginInfos").click(function() { $.getScript( "'.dol_buildpath('/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js', 1).'", function( data, textStatus, jqxhr ) { $.cookie("DOLUSER_MARGININFO_HIDE_SHOW", 0); $(".margininfos").show(); $("span#showMarginInfos").addClass("hideobject"); $("span#hideMarginInfos").removeClass("hideobject");})}); + $("span#hideMarginInfos").click(function() { $.getScript( "'.dol_buildpath('/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js', 1).'", function( data, textStatus, jqxhr ) { $.cookie("DOLUSER_MARGININFO_HIDE_SHOW", 1); $(".margininfos").hide(); $("span#hideMarginInfos").addClass("hideobject"); $("span#showMarginInfos").removeClass("hideobject");})}); + });</script>'; + if (!empty($hidemargininfos)) print '<script>$(document).ready(function() {$(".margininfos").hide();});</script>'; print '<table class="nobordernopadding margintable" width="100%">'; print '<tr class="liste_titre">'; diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index db24d257aeefb7c4029f23fea1cd7c8112519f60..94898ec54529c910a2d76f1e043b8f4df704d126 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -157,7 +157,7 @@ class ExtraFields { $table=$elementtype.'_extrafields'; - if (! empty($attrname) && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname) && ! is_numeric($attrname)) + if (! empty($attrname) && preg_match("/^\w[a-zA-Z0-9_]*$/",$attrname) && ! is_numeric($attrname)) { if ($type=='boolean') { $typedb='int'; @@ -752,15 +752,17 @@ class ExtraFields if (strpos($InfoFieldList[4], 'extra')!==false) { $sql.= ' as main, '.MAIN_DB_PREFIX .$InfoFieldList[0].'_extrafields as extra'; - $sqlwhere.= ' AND extra.fk_object=main.'.$InfoFieldList[2]. ' AND '.$InfoFieldList[4]; + $sqlwhere.= ' WHERE extra.fk_object=main.'.$InfoFieldList[2]. ' AND '.$InfoFieldList[4]; } else { - $sqlwhere.= ' AND '.$InfoFieldList[4]; + $sqlwhere.= ' WHERE '.$InfoFieldList[4]; } + }else { + $sqlwhere.= ' WHERE 1'; } if (in_array($InfoFieldList[0],array('tablewithentity'))) $sqlwhere.= ' AND entity = '.$conf->entity; // Some tables may have field, some other not. For the moment we disable it. - $sql.=preg_replace('/^ AND /','',$sqlwhere); + //$sql.=preg_replace('/^ AND /','',$sqlwhere); //print $sql; dol_syslog(get_class($this).'::showInputField type=sellist', LOG_DEBUG); @@ -988,7 +990,10 @@ class ExtraFields { foreach ($fields_label as $field_toshow) { - $translabel=$langs->trans($obj->$field_toshow); + $translabel=''; + if (!empty($obj->$field_toshow)) { + $translabel=$langs->trans($obj->$field_toshow); + } if ($translabel!=$field_toshow) { $value.=dol_trunc($translabel,18).' '; }else { @@ -998,7 +1003,10 @@ class ExtraFields } else { - $translabel=$langs->trans($obj->$InfoFieldList[1]); + $translabel=''; + if (!empty($obj->$InfoFieldList[1])) { + $translabel=$langs->trans($obj->$InfoFieldList[1]); + } if ($translabel!=$obj->$InfoFieldList[1]) { $value=dol_trunc($translabel,18); }else { diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index eb7b3d8af4f4d3c4cb8c31e14b52b73f2d288d90..03defa19129e0f1b79990723b0c20a29656d1ff7 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -1835,11 +1835,12 @@ class Form * @param string $filterkey Filtre des produits * @param int $statut -1=Return all products, 0=Products not on sell, 1=Products on sell * @param int $outputmode 0=HTML select string, 1=Array + * @param int $limit Limit of line number * @return array Array of keys for json */ - function select_produits_fournisseurs_list($socid,$selected='',$htmlname='productid',$filtertype='',$filtre='',$filterkey='',$statut=-1,$outputmode=0) + function select_produits_fournisseurs_list($socid,$selected='',$htmlname='productid',$filtertype='',$filtre='',$filterkey='',$statut=-1,$outputmode=0,$limit=100) { - global $langs,$conf; + global $langs,$conf,$db; $out=''; $outarray=array(); @@ -1877,6 +1878,7 @@ class Form $sql.=')'; } $sql.= " ORDER BY pfp.ref_fourn DESC, pfp.quantity ASC"; + $sql.= $db->plimit($limit); // Build output string @@ -4032,9 +4034,10 @@ class Form * @param int $translate Translate and encode value * @param int $maxlen Length maximum for labels * @param int $disabled Html select box is disabled - * @param int $sort 'ASC' or 'DESC' =Sort on label, '' or 'NONE'=Do not sort + * @param int $sort 'ASC' or 'DESC' = Sort on label, '' or 'NONE' = Do not sort * @param string $morecss Add more class to css styles * @return string HTML select string. + * @see multiselectarray */ static function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $moreparam='', $translate=0, $maxlen=0, $disabled=0, $sort='', $morecss='') { @@ -4092,54 +4095,65 @@ class Form * * @param string $htmlname Name of select * @param array $array Array with key+value - * @param array $selected Preselected keys + * @param array $selected Array with key+value preselected * @param int $key_in_label 1 pour afficher la key dans la valeur "[key] value" * @param int $value_as_key 1 to use value as key * @param string $option Valeur de l'option en fonction du type choisi * @param int $translate Translate and encode value + * @param int $width Force width of select box. May be used only when using jquery couch. * @return string HTML multiselect string + * @see selectarray */ - function multiselectarray($htmlname, $array, $selected=array(), $key_in_label=0, $value_as_key=0, $option='', $translate=0) + static function multiselectarray($htmlname, $array, $selected=array(), $key_in_label=0, $value_as_key=0, $option='', $translate=0, $width=0) { global $conf, $langs; - $out = '<select id="'.$htmlname.'" class="multiselect" multiple="multiple" name="'.$htmlname.'[]"'.$option.'>'."\n"; + // Add code for jquery to use multiselect + // Note: Plugin "multiselect" is no more provided by Dolibarr. You must include it and load it into your module to use it. + if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && ($conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiselect')) + || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT'))) + { + print '<!-- JS CODE FOR multiselect --> + <script type="text/javascript"> + $(document).ready(function () { + $.extend($.ui.multiselect.locale, { + addAll:\''.$langs->transnoentities("AddAll").'\', + removeAll:\''.$langs->transnoentities("RemoveAll").'\', + itemsCount:\''.$langs->transnoentities("ItemsCount").'\' + }); + $(function(){ + $("#'.$htmlname.'").multiselect({ + searchable: false, + width: '.($width?$width:300).', + height: 120 + }); + }); + }); + </script>'; + } + + // Add code for jquery to use multiple-select + // Note: Plugin "multiselect" is no more provided by Dolibarr. You must include it and load it into your module to use it. + if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && ($conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiple-select')) + || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT'))) + { + print '<!-- JS CODE FOR multiple-select --> + <script src="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiple-select/jquery.multiple.select.js"></script> + <script type="text/javascript"> + $(document).ready(function () { + $(\'#'.$htmlname.'\').multipleSelect(); + }); + </script>'; + } + + // Try also magic suggest + + $out = '<select id="'.$htmlname.'" class="multiselect" multiple="multiple" name="'.$htmlname.'[]"'.$option.($width?' style="width: '.$width.'px"':'').'>'."\n"; if (is_array($array) && ! empty($array)) { if ($value_as_key) $array=array_combine($array, $array); - if (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && is_array($selected) && ! empty($selected)) - { - foreach ($selected as $selected_value) - { - foreach($array as $key => $value) - { - if ($selected_value == $key) - { - $value=$array[$selected_value]; - $out.= '<option value="'.$key.'" selected="selected">'; - $newval = ($translate ? $langs->trans(ucfirst($value)) : $value); - $newval = ($key_in_label ? $key.' - '.$newval : $newval); - $out.= dol_htmlentitiesbr($newval); - $out.= '</option>'."\n"; - unset($array[$key]); - } - } - } - - if (! empty($array)) - { - foreach ($array as $key => $value) - { - $out.= '<option value="'.$key.'">'; - $newval = ($translate ? $langs->trans(ucfirst($value)) : $value); - $newval = ($key_in_label ? $key.' - '.$newval : $newval); - $out.= dol_htmlentitiesbr($newval); - $out.= '</option>'."\n"; - } - } - } - else + if (! empty($array)) { foreach ($array as $key => $value) { @@ -4150,7 +4164,7 @@ class Form } $out.= '>'; - $newval = ($translate ? $langs->trans(ucfirst($value)) : $value); + $newval = ($translate ? $langs->trans($value) : $value); $newval = ($key_in_label ? $key.' - '.$newval : $newval); $out.= dol_htmlentitiesbr($newval); $out.= '</option>'."\n"; diff --git a/htdocs/core/class/html.formcron.class.php b/htdocs/core/class/html.formcron.class.php index bce8d9f041e7e1c9f06203cafaf2417fd83eba18..4de88a7bfc9feb4b1e9111713366cc6aafdedbb6 100644 --- a/htdocs/core/class/html.formcron.class.php +++ b/htdocs/core/class/html.formcron.class.php @@ -4,7 +4,7 @@ * * 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 2 of the License, or + * 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, @@ -14,6 +14,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. + * or see http://www.gnu.org/ */ /** diff --git a/htdocs/core/class/notify.class.php b/htdocs/core/class/notify.class.php index 26506360e668a8f739c21df649a518adb060d001..db88671f7ff3bdc665e9286fc37b94254d6739a4 100644 --- a/htdocs/core/class/notify.class.php +++ b/htdocs/core/class/notify.class.php @@ -1,6 +1,7 @@ <?php /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> + * 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 @@ -173,7 +174,7 @@ class Notify // Check notification per third party $sql = "SELECT s.nom, c.email, c.rowid as cid, c.lastname, c.firstname, c.default_lang,"; - $sql.= " a.rowid as adid, a.label, a.code, n.rowid"; + $sql.= " a.rowid as adid, a.label, a.code, n.rowid, n.type"; $sql.= " FROM ".MAIN_DB_PREFIX."socpeople as c,"; $sql.= " ".MAIN_DB_PREFIX."c_action_trigger as a,"; $sql.= " ".MAIN_DB_PREFIX."notify_def as n,"; @@ -292,8 +293,8 @@ class Notify if ($mailfile->sendfile()) { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, objet_type, objet_id, email)"; - $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", ".$obj->cid.", '".$object_type."', ".$object->id.", '".$this->db->escape($obj->email)."')"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, type, objet_type, objet_id, email)"; + $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", ".$obj->cid.", '".$obj->type."', '".$object_type."', ".$object->id.", '".$this->db->escape($obj->email)."')"; if (! $this->db->query($sql)) { dol_print_error($this->db); @@ -421,8 +422,8 @@ class Notify if ($mailfile->sendfile()) { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, objet_type, objet_id, email)"; - $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", null, '".$object_type."', ".$object->id.", '".$this->db->escape($conf->global->$param)."')"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, type, objet_type, objet_id, email)"; + $sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$actiondefid.", ".$object->socid.", null, '".$obj->type."', '".$object_type."', ".$object->id.", '".$this->db->escape($conf->global->$param)."')"; if (! $this->db->query($sql)) { dol_print_error($this->db); diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php index 6b24d5356dffc54783fad10d360b87a7e104b5ba..563c749ae9273107fd702f248d535efdfd8a49e0 100644 --- a/htdocs/core/class/translate.class.php +++ b/htdocs/core/class/translate.class.php @@ -33,7 +33,6 @@ class Translate var $defaultlang; // Current language for current user var $direction = 'ltr'; // Left to right or Right to left - var $charset_inputfile=array(); // To store charset encoding used for language var $charset_output='UTF-8'; // Codage used by "trans" method outputs var $tab_translate=array(); // Array of all translations key=>value diff --git a/htdocs/core/js/lib_head.js b/htdocs/core/js/lib_head.js index 40b1473698ef693e46aadf6ee59479d2992243ed..962e4c39f47a2a2b3e53e6ebc3cfb0cd84f0f973 100644 --- a/htdocs/core/js/lib_head.js +++ b/htdocs/core/js/lib_head.js @@ -631,7 +631,7 @@ function hideMessage(fieldId,message) { /* - * TODO Used by admin page only ? + * Used by button to set on/off */ function setConstant(url, code, input, entity, strict) { $.get( url, { @@ -689,7 +689,7 @@ function setConstant(url, code, input, entity, strict) { } /* - * TODO Used by admin page only ? + * Used by button to set on/off */ function delConstant(url, code, input, entity, strict) { $.get( url, { @@ -743,7 +743,7 @@ function delConstant(url, code, input, entity, strict) { } /* - * TODO Used by admin page only ? + * Used by button to set on/off */ function confirmConstantAction(action, url, code, input, box, entity, yesButton, noButton, strict) { var boxConfirm = box; diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php index 709911faaecfac599bad19d3427912be7efd8241..f21d7d2ff028f372e840301c8d4ac8d92f5c69d2 100644 --- a/htdocs/core/lib/ajax.lib.php +++ b/htdocs/core/lib/ajax.lib.php @@ -173,6 +173,7 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLengt } $("#search_'.$htmlname.'").trigger("change"); // To tell that input text field was modified } + ,delay: 500 }).data( "autocomplete" )._renderItem = function( ul, item ) { return $( "<li></li>" ) .data( "item.autocomplete", item ) diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 2d5bf7ab0cd40be9e2012f937d62db627aee84f4..4b9401498d7ff987bc1d01daf00c73687c9bc2c7 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -766,7 +766,7 @@ function num_between_day($timestampStart, $timestampEnd, $lastday=0) * @param int $inhour 0: return number of days, 1: return number of hours * @param int $lastday We include last day, 0: no, 1:yes * @param int $halfday Tag to define half day when holiday start and end - * @param string $countrycode Country code (company country code if not defined) + * @param string $country_code Country code (company country code if not defined) * @return int Number of days or hours */ function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $halfday=0, $country_code='') diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index a94a77f145451e7b6d1823102c3c0612e1980f45..09c38435c0a1771b844523cbaa1b7cbd418e499c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -44,14 +44,31 @@ include_once DOL_DOCUMENT_ROOT .'/core/lib/json.lib.php'; * @param string $class Class name * @param string $member Name of property * @return mixed Return value of static property - * @deprecated PHP 5.3 is now the minimum requirement, this is no longer necessary */ function getStaticMember($class, $member) { - if (isset($class::$member)) { - return $class::$member; - } + // This part is deprecated. Uncomment if for php 5.2.*, and comment next isset class::member + /*if (version_compare(phpversion(), '5.3.0', '<')) + { + if (is_object($class)) $class = get_class($class); + $classObj = new ReflectionClass($class); + $result = null; + $found=0; + foreach($classObj->getStaticProperties() as $prop => $value) + { + if ($prop == $member) + { + $result = $value; + $found++; + break; + } + } + + if ($found) return $result; + }*/ + + if (isset($class::$member)) return $class::$member; dol_print_error('','Try to get a static member "'.$member.'" in class "'.$class.'" that does not exists or is not static.'); return null; } @@ -2862,7 +2879,7 @@ function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerou $listofcurrenciesbefore=array('USD'); if (in_array($currency_code,$listofcurrenciesbefore)) $cursymbolbefore.=$outlangs->getCurrencySymbol($currency_code); - else + else { $tmpcur=$outlangs->getCurrencySymbol($currency_code); $cursymbolafter.=($tmpcur == $currency_code ? ' '.$tmpcur : $tmpcur); diff --git a/htdocs/core/lib/invoice2.lib.php b/htdocs/core/lib/invoice2.lib.php index ccc115b5b1d327066a9f7451e6d4e90770c7a17f..866cf004ca64a3840d0a4d696986d1b7953aa239 100644 --- a/htdocs/core/lib/invoice2.lib.php +++ b/htdocs/core/lib/invoice2.lib.php @@ -2,19 +2,20 @@ /* * Copyright (C) 2009-2013 Laurent Destailleur <eldy@users.sourceforge.net> * -* 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 2 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/>. -*/ + * 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/>. + * or see http://www.gnu.org/ + */ /** * \file htdocs/core/lib/invoice2.lib.php diff --git a/htdocs/core/lib/prelevement.lib.php b/htdocs/core/lib/prelevement.lib.php index 257f13558ee261f55b2ea5994e374144b5389fec..53f54d66f70f04d84d047509ae223ee657ff40c2 100644 --- a/htdocs/core/lib/prelevement.lib.php +++ b/htdocs/core/lib/prelevement.lib.php @@ -44,14 +44,6 @@ function prelevement_prepare_head($object) $head[$h][2] = 'prelevement'; $h++; - if (! empty($conf->global->MAIN_USE_PREVIEW_TABS)) - { - $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$object->id; - $head[$h][1] = $langs->trans("Preview"); - $head[$h][2] = 'preview'; - $h++; - } - $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/lignes.php?id='.$object->id; $head[$h][1] = $langs->trans("Lines"); $head[$h][2] = 'lines'; diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 1d6e12b135725fd07696e5324ac1327f75d824fd..db8f216fd6069d0239a591cf419c5bf08f8a4e86 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -770,15 +770,18 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if (! empty($conf->facture->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=-3", $langs->trans("MenuOrdersToBill2"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); // if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire); } - + // Supplier Orders if (! empty($conf->fournisseur->enabled)) { - $langs->load("supplier"); - $newmenu->add("/fourn/commande/list.php?leftmenu=orders&search_status=5", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); - // if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire); + if (! empty($conf->global->SUPPLIER_MENU_ORDER_RECEIVED_INTO_INVOICE)) + { + $langs->load("supplier"); + $newmenu->add("/fourn/commande/list.php?leftmenu=orders&search_status=5", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); + // if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire); + } } - + // Donations if (! empty($conf->don->enabled)) @@ -952,7 +955,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if (! empty($conf->accounting->enabled)) { $newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy", $langs->trans("Fiscalyear"),0,$user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear'); - $newmenu->add("/accountancy/admin/account.php?mainmenu=home", $langs->trans("Chartofaccounts"),0,$user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear'); + $newmenu->add("/accountancy/admin/account.php?mainmenu=accountancy", $langs->trans("Chartofaccounts"),0,$user->rights->accounting->chartofaccount, '', $mainmenu, 'chartofaccount'); } } diff --git a/htdocs/core/modules/action/rapport.pdf.php b/htdocs/core/modules/action/rapport.pdf.php index 38996c7e6f0b3bba451e7c322c3ed34e306fe7d3..464a01120ecdef4b135d91c62f860dc384467f9d 100644 --- a/htdocs/core/modules/action/rapport.pdf.php +++ b/htdocs/core/modules/action/rapport.pdf.php @@ -210,6 +210,7 @@ class CommActionRapport $sql.= " WHERE c.id=a.fk_action AND a.fk_user_author = u.rowid"; $sql.= " AND a.datep BETWEEN '".$this->db->idate(dol_get_first_day($this->year,$this->month,false))."'"; $sql.= " AND '".$this->db->idate(dol_get_last_day($this->year,$this->month,false))."'"; + $sql.= " AND a.entity = ".$conf->entity; $sql.= " ORDER BY a.datep DESC"; $eventstatic=new ActionComm($this->db); diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index 9a544b1ece044a1417f1b21edc16acde0726fc67..e074bfe82f12ed1ce640d6007431c358501abfbc 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -229,6 +229,14 @@ class modAccounting extends DolibarrModules $this->rights[$r][4] = 'fiscalyear'; $this->rights[$r][5] = ''; $r++; + + $this->rights[$r][0] = 50440; + $this->rights[$r][1] = 'Manage chart of accounts'; + $this->rights[$r][2] = 'r'; + $this->rights[$r][3] = 1; + $this->rights[$r][4] = 'chartofaccount'; + $this->rights[$r][5] = ''; + $r++; // Main menu entries $this->menus = array(); diff --git a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php new file mode 100644 index 0000000000000000000000000000000000000000..7440a357ea8f669330120a2d48e691552140c1a6 --- /dev/null +++ b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php @@ -0,0 +1,219 @@ +<?php +/* Copyright (C) 2006-2011 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) 2014 Teddy Andreotti <125155@supinfo.com> + * + * 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/>. + * or see http://www.gnu.org/ + */ + +/** + * \file htdocs/core/modules/security/generate/modGeneratePassPerso.class.php + * \ingroup core + * \brief File to manage no password generation. + */ + +require_once DOL_DOCUMENT_ROOT .'/core/modules/security/generate/modules_genpassword.php'; + + +/** + * \class modGeneratePassPerso + * \brief Class to generate a password according to personal rules + */ +class modGeneratePassPerso extends ModeleGenPassword +{ + var $id; + var $length; + var $length2; // didn't overright display + var $NbMaj; + var $NbNum; + var $NbSpe; + var $NbRepeat; + var $WithoutAmbi; + + var $db; + var $conf; + var $lang; + var $user; + + var $Maj; + var $Min; + var $Nb; + var $Spe; + var $Ambi; + var $All; + + /** + * Constructor + * + * @param DoliDB $db Database handler + * @param Conf $conf Handler de conf + * @param Translate $langs Handler de langue + * @param User $user Handler du user connecte + */ + function __construct($db, $conf, $langs, $user) + { + $this->id = "Perso"; + $this->length = $langs->trans("SetupPerso"); + + $this->db=$db; + $this->conf=$conf; + $this->langs=$langs; + $this->user=$user; + + if(empty($conf->global->USER_PASSWORD_PATTERN)){ + // default value (8carac, 1maj, 1digit, 1spe, 3 repeat, no ambi at auto generation. + dolibarr_set_const($db, "USER_PASSWORD_PATTERN", '8;1;1;1;3;1','chaine',0,'',$conf->entity); + } + + $this->Maj = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + $this->Min = strtolower($this->Maj); + $this->Nb = "0123456789"; + $this->Spe = "!@#$%&*()_-+={}[]\\|:;'/"; + $this->Ambi = array("1","I","l","|","O","0"); + + $tabConf = explode(";",$conf->global->USER_PASSWORD_PATTERN); + $this->length2 = $tabConf[0]; + $this->NbMaj = $tabConf[1]; + $this->NbNum = $tabConf[2]; + $this->NbSpe = $tabConf[3]; + $this->NbRepeat = $tabConf[4]; + $this->WithoutAmbi = $tabConf[5]; + + if ($this->WithoutAmbi) + { + $this->Maj = str_replace($this->Ambi,"",$this->Maj); + $this->Min = str_replace($this->Ambi,"",$this->Min); + $this->Nb = str_replace($this->Ambi,"",$this->Nb); + $this->Spe = str_replace($this->Ambi,"",$this->Spe); + } + + $this->All = str_shuffle($this->Maj. $this->Min. $this->Nb. $this->Spe); + //$this->All = $this->Maj. $this->Min. $this->Nb. $this->Spe; + //$this->All = $this->Spe; + + } + + /** + * Return description of module + * + * @return string Description of text + */ + function getDescription() + { + global $langs; + return $langs->trans("PasswordGenerationPerso"); + } + + /** + * Return an example of password generated by this module + * + * @return string Example of password + */ + function getExample() + { + return $this->getNewGeneratedPassword(); + } + + /** + * Build new password + * + * @return string Return a new generated password + */ + function getNewGeneratedPassword() + { + $pass = ""; + for($i=0; $i<$this->NbMaj; $i++){ // Y + $pass .= $this->Maj[rand(0,strlen($this->Maj) - 1)]; + } + + for($i=0; $i<$this->NbNum; $i++){ // X + $pass .= $this->Nb[rand(0,strlen($this->Nb) - 1)]; + } + + for($i=0; $i<$this->NbSpe; $i++){ // @ + $pass .= $this->Spe[rand(0,strlen($this->Spe) - 1)]; + } + + for($i=strlen($pass);$i<$this->length2; $i++){ // y + $pass .= $this->All[rand(0,strlen($this->All) -1)]; + } + + $pass = str_shuffle($pass); + + if ($this->validatePassword($pass)) + { + return $pass; + } + + return $this->getNewGeneratedPassword(); + } + + /** + * Validate a password + * + * @param string $password Password to check + * @return int 0 if KO, >0 if OK + */ + function validatePassword($password) + { + $password_a = str_split($password); + $maj = str_split($this->Maj); + $num = str_split($this->Nb); + $spe = str_split($this->Spe); + + if(count(array_intersect($password_a, $maj)) < $this->NbMaj){ + return 0; + } + + if(count(array_intersect($password_a, $num)) < $this->NbNum){ + return 0; + } + + if(count(array_intersect($password_a, $spe)) < $this->NbSpe){ + return 0; + } + + if(!$this->consecutiveInterationSameCharacter($password)){ + return 0; + } + + return 1; + } + + /** + * consecutive iterations of the same character + * + * @param string $password Password to check + * @return int 0 if KO, >0 if OK + */ + function consecutiveInterationSameCharacter($password){ + $last = ""; + $count = 0; + $char = str_split($password); + foreach($char as $c){ + if($c != $last){ + $last = $c; + $count = 0; + }else{ + $count++; + } + + if($count >= $this->NbRepeat) { + return 0; + } + } + return 1; + } +} + diff --git a/htdocs/core/tpl/admin_extrafields_add.tpl.php b/htdocs/core/tpl/admin_extrafields_add.tpl.php index bdced5118679e473c81237b606f64c29164d92be..56cca5af04fb6671098acb4f2afbb47f89118c92 100644 --- a/htdocs/core/tpl/admin_extrafields_add.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_add.tpl.php @@ -87,8 +87,8 @@ </td> <td> <table class="nobordernopadding"> -<tr><td width="30%"> - <textarea name="param" id="param"><?php echo GETPOST('param'); ?></textarea> +<tr><td> + <textarea name="param" id="param" cols="80" rwos="<?php echo ROWS_4 ?>"><?php echo GETPOST('param'); ?></textarea> </td><td id="helpselect"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpselect"),1,0)?></td> <td id="helpsellist"><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelpsellist"),1,0)?></td></tr> </table> diff --git a/htdocs/core/tpl/admin_extrafields_edit.tpl.php b/htdocs/core/tpl/admin_extrafields_edit.tpl.php index dcf1af56ed1661479a3dfd1d007093d06880061a..493634c84a5d7da505c165f62cbdf6e0aec0fde8 100644 --- a/htdocs/core/tpl/admin_extrafields_edit.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_edit.tpl.php @@ -98,8 +98,8 @@ if(($type == 'select') || ($type == 'sellist') || ($type == 'checkbox') ||(($typ </td> <td> <table class="nobordernopadding"> -<tr><td width="30%"> - <textarea name="param" id="param"><?php echo $param_chain; ?></textarea> +<tr><td> + <textarea name="param" id="param" cols="80" rows="<?php echo ROWS_4 ?>"><?php echo $param_chain; ?></textarea> </td><td><?php print $form->textwithpicto('', $langs->trans("ExtrafieldParamHelp".$type),1,0)?></td></tr> </table> </td> diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php index d344ef5eb8270ab0339f1b2e14b4913adb6b4c41..ad2fa068757b96f3f85e3096ed508734daaf4f42 100644 --- a/htdocs/core/tpl/extrafields_view.tpl.php +++ b/htdocs/core/tpl/extrafields_view.tpl.php @@ -1,5 +1,6 @@ <?php /* Copyright (C) 2014 Maxime Kohlhaas <support@atm-consulting.fr> + * 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 @@ -13,7 +14,7 @@ * * 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 @@ -48,18 +49,30 @@ if (empty($reshook) && ! empty($extrafields->attribute_label)) print '<table width="100%" class="nobordernopadding"><tr><td'; if (! empty($extrafields->attribute_required [$key])) print ' class="fieldrequired"'; print '>' . $label . '</td>'; - if (($object->statut == 0 || $extrafields->attribute_alwayseditable[$key]) && $user->rights->{$object->element}->creer && ($action != 'edit_extras' || GETPOST('attribute') != $key)) + + //TODO Improve element and rights detection + //var_dump($user->rights); + $permok=false; + $keyforperm=$object->element; + if ($object->element == 'fichinter') $keyforperm='ficheinter'; + if (isset($user->rights->$keyforperm)) $permok=$user->rights->$keyforperm->creer||$user->rights->$keyforperm->create||$user->rights->$keyforperm->write; + if ($object->element=='order_supplier') $permok=$user->rights->fournisseur->commande->creer; + if ($object->element=='invoice_supplier') $permok=$user->rights->fournisseur->facture->creer; + + if (($object->statut == 0 || $extrafields->attribute_alwayseditable[$key]) + && $permok && ($action != 'edit_extras' || GETPOST('attribute') != $key)) print '<td align="right"><a href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&action=edit_extras&attribute=' . $key . '">' . img_edit().'</a></td>'; - + print '</tr></table>'; print '<td colspan="5">'; - + // Convert date into timestamp format if (in_array($extrafields->attribute_type [$key], array('date','datetime'))) { $value = isset($_POST ["options_" . $key]) ? dol_mktime($_POST ["options_" . $key . "hour"], $_POST ["options_" . $key . "min"], 0, $_POST ["options_" . $key . "month"], $_POST ["options_" . $key . "day"], $_POST ["options_" . $key . "year"]) : $db->jdate($object->array_options ['options_' . $key]); } - if ($action == 'edit_extras' && $user->rights->{$object->element}->creer && GETPOST('attribute') == $key) + //TODO Improve element and rights detection + if ($action == 'edit_extras' && $permok && GETPOST('attribute') == $key) { print '<form enctype="multipart/form-data" action="' . $_SERVER["PHP_SELF"] . '" method="post" name="formextra">'; print '<input type="hidden" name="action" value="update_extras">'; diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php index c4f9ff2b2062f7f8f5aa3dedad063a7342a171cf..23d8dd4f3265c904defa2bdfc9e84b64908f85d1 100644 --- a/htdocs/core/tpl/login.tpl.php +++ b/htdocs/core/tpl/login.tpl.php @@ -83,13 +83,17 @@ $(document).ready(function () { <tr> <td valign="middle" class="loginfield"><strong><label for="username"><?php echo $langs->trans('Login'); ?></label></strong></td> <td valign="middle" class="nowrap"> -<input type="text" id="username" name="username" class="flat" size="15" maxlength="40" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" autofocus="autofocus" /> +<span class="span-icon-user"> +<input type="text" id="username" name="username" class="flat input-icon-user" size="15" maxlength="40" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" autofocus="autofocus" /> +</span> </td> </tr> <!-- Password --> <tr><td valign="middle" class="loginfield nowrap"><strong><label for="password"><?php echo $langs->trans('Password'); ?></label></strong></td> <td valign="middle" class="nowrap"> -<input id="password" name="password" class="flat" type="password" size="15" maxlength="30" value="<?php echo dol_escape_htmltag($password); ?>" tabindex="2" autocomplete="off" /> +<span class="span-icon-password"> +<input id="password" name="password" class="flat input-icon-password" type="password" size="15" maxlength="30" value="<?php echo dol_escape_htmltag($password); ?>" tabindex="2" autocomplete="off" /> +</span> </td></tr> <?php if (! empty($hookmanager->resArray['options'])) { @@ -111,7 +115,11 @@ if (! empty($hookmanager->resArray['options'])) { <td valign="top" class="nowrap none" align="left"> <table class="login_table_securitycode" style="width: 100px;"><tr> - <td><input id="securitycode" class="flat" type="text" size="6" maxlength="5" name="code" tabindex="4" /></td> + <td> + <span class="span-icon-security"> + <input id="securitycode" class="flat input-icon-security" type="text" size="6" maxlength="5" name="code" tabindex="4" /> + </span> + </td> <td><img src="<?php echo DOL_URL_ROOT ?>/core/antispamimage.php" border="0" width="80" height="32" id="img_securitycode" /></td> <td><a href="<?php echo $php_self; ?>"><?php echo $captcha_refresh; ?></a></td> </tr></table> diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index 6af092c7e92107a75cb2df64b3287073f6c60479..86ef648bf947965b932cd17854578f050ccec390 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -61,7 +61,7 @@ if (in_array($object->element,array('propal','facture','invoice','commande','ord if (! empty($usemargins)) { ?> - <td align="right"> + <td align="right" class="margininfos"> <?php echo '<label for="buying_price">'; if ($conf->global->MARGIN_TYPE == "1") @@ -72,8 +72,8 @@ if (in_array($object->element,array('propal','facture','invoice','commande','ord ?> </td> <?php - 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>'; + if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARGIN_RATES)) echo '<td align="right" class="margininfos"><span class="np_marginRate">'.$langs->trans('MarginRate').'</span></td>'; + if ($user->rights->margins->creer && ! empty($conf->global->DISPLAY_MARK_RATES)) echo '<td align="right" class="margininfos"><span class="np_markRate">'.$langs->trans('MarkRate').'</span></td>'; } ?> <td colspan="<?php echo $colspan; ?>"> </td> @@ -217,7 +217,7 @@ else { if (! empty($usemargins)) { ?> - <td align="right"> + <td align="right" class="margininfos"> <!-- 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> @@ -232,12 +232,12 @@ else { { if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { - 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>'; + echo '<td align="right" class="nowrap margininfos"><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" id="np_markRate" name="np_markRate" value="'.(isset($_POST["np_markRate"])?$_POST["np_markRate"]:'').'"><span class="np_markRate hideonsmartphone">%</span></td>'; + echo '<td align="right" class="nowrap margininfos"><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++; } } diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index 68a19c0bb735e6287aa3f01a19b399e515380448..fbe2870a6a4adbfc90f7bd55abb488a0d79e8d6e 100644 --- a/htdocs/core/tpl/objectline_edit.tpl.php +++ b/htdocs/core/tpl/objectline_edit.tpl.php @@ -125,7 +125,7 @@ $coldisplay=-1; // We remove first td if (! empty($usemargins)) { ?> - <td align="right"><?php $coldisplay++; ?> + <td align="right" class="margininfos"><?php $coldisplay++; ?> <!-- 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> @@ -139,9 +139,9 @@ $coldisplay=-1; // We remove first td $margin_rate = (isset($_POST["np_marginRate"])?$_POST["np_marginRate"]:(($line->pa_ht == 0)?'':price($line->marge_tx))); // if credit note, dont allow to modify margin if ($line->subprice < 0) - echo '<td align="right" class="nowrap">'.$margin_rate.'<span class="hideonsmartphone">%</span></td>'; + echo '<td align="right" class="nowrap margininfos">'.$margin_rate.'<span class="hideonsmartphone">%</span></td>'; else - echo '<td align="right" class="nowrap"><input type="text" size="2" name="np_marginRate" value="'.$margin_rate.'"><span class="hideonsmartphone">%</span></td>'; + echo '<td align="right" class="nowrap margininfos"><input type="text" size="2" name="np_marginRate" value="'.$margin_rate.'"><span class="hideonsmartphone">%</span></td>'; $coldisplay++; } elseif (! empty($conf->global->DISPLAY_MARK_RATES)) @@ -149,9 +149,9 @@ $coldisplay=-1; // We remove first td $mark_rate = (isset($_POST["np_markRate"])?$_POST["np_markRate"]:price($line->marque_tx)); // if credit note, dont allow to modify margin if ($line->subprice < 0) - echo '<td align="right" class="nowrap">'.$mark_rate.'<span class="hideonsmartphone">%</span></td>'; + echo '<td align="right" class="nowrap margininfos">'.$mark_rate.'<span class="hideonsmartphone">%</span></td>'; else - echo '<td align="right" class="nowrap"><input type="text" size="2" name="np_markRate" value="'.$mark_rate.'"><span class="hideonsmartphone">%</span></td>'; + echo '<td align="right" class="nowrap margininfos"><input type="text" size="2" name="np_markRate" value="'.$mark_rate.'"><span class="hideonsmartphone">%</span></td>'; $coldisplay++; } } diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php index 777732aa192a2b2a954cfc34c3934cc0239b1f39..1c8bb07f56056eb3fb2790b1c2ad15c4f3a21a2d 100644 --- a/htdocs/core/tpl/objectline_view.tpl.php +++ b/htdocs/core/tpl/objectline_view.tpl.php @@ -141,13 +141,13 @@ if (empty($inputalsopricewithtax)) $inputalsopricewithtax=0; if (! empty($conf->margin->enabled) && empty($user->societe_id)) { $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); ?> - <td align="right" class="nowrap"><?php $coldisplay++; ?><div class="margininfos"><?php echo price($line->pa_ht); ?></div></td> + <td align="right" class="nowrap margininfos"><?php $coldisplay++; ?><?php echo price($line->pa_ht); ?></td> <?php if (! empty($conf->global->DISPLAY_MARGIN_RATES) && $user->rights->margins->liretous) {?> - <td align="right" class="nowrap"><?php $coldisplay++; ?><?php echo (($line->pa_ht == 0)?'n/a':price($line->marge_tx, null, null, null, null, $rounding).'%'); ?></td> + <td align="right" class="nowrap margininfos"><?php $coldisplay++; ?><?php echo (($line->pa_ht == 0)?'n/a':price($line->marge_tx, null, null, null, null, $rounding).'%'); ?></td> <?php } if (! empty($conf->global->DISPLAY_MARK_RATES) && $user->rights->margins->liretous) {?> - <td align="right" class="nowrap"><?php $coldisplay++; ?><?php echo price($line->marque_tx, null, null, null, null, $rounding).'%'; ?></td> + <td align="right" class="nowrap margininfos"><?php $coldisplay++; ?><?php echo price($line->marque_tx, null, null, null, null, $rounding).'%'; ?></td> <?php } } ?> <?php if ($line->special_code == 3) { ?> diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php index 61c0bbe6cfc5b0703b5f90176074c624707198d3..af27aff944b401ad47a761483e30ed0dfe6cd018 100644 --- a/htdocs/core/tpl/passwordforgotten.tpl.php +++ b/htdocs/core/tpl/passwordforgotten.tpl.php @@ -69,7 +69,9 @@ $(document).ready(function () { <tr> <td valign="bottom" class="loginfield nowrap"><strong><label for="username"><?php echo $langs->trans('Login'); ?></label></strong></td> <td valign="bottom" class="nowrap"> -<input type="text" <?php echo $disabled; ?> id="username" name="username" class="flat" size="15" maxlength="40" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" /> +<span class="span-icon-user"> +<input type="text" <?php echo $disabled; ?> id="username" name="username" class="flat input-icon-user" size="15" maxlength="40" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" /> +</span> </td> </tr> @@ -91,7 +93,11 @@ if (! empty($hookmanager->resArray['options'])) { <td valign="top" class="nowrap none" align="left"> <table class="login_table_securitycode" style="width: 100px;"><tr> - <td><input id="securitycode" class="flat" type="text" size="6" maxlength="5" name="code" tabindex="4" /></td> + <td> + <span class="span-icon-security"> + <input id="securitycode" class="flat input-icon-security" type="text" size="6" maxlength="5" name="code" tabindex="4" /> + </span> + </td> <td><img src="<?php echo DOL_URL_ROOT ?>/core/antispamimage.php" border="0" width="80" height="32" id="img_securitycode" /></td> <td><a href="<?php echo $php_self; ?>"><?php echo $captcha_refresh; ?></a></td> </tr></table> diff --git a/htdocs/fichinter/admin/fichinter_extrafields.php b/htdocs/fichinter/admin/fichinter_extrafields.php index cab0886f5ffaf107606ef60a868d3859a84511eb..8cb95a30f633d302f2c9c5c0988b4ca7e806c568 100644 --- a/htdocs/fichinter/admin/fichinter_extrafields.php +++ b/htdocs/fichinter/admin/fichinter_extrafields.php @@ -92,6 +92,7 @@ print '<td>'.$langs->trans("Type").'</td>'; print '<td align="right">'.$langs->trans("Size").'</td>'; print '<td align="center">'.$langs->trans("Unique").'</td>'; print '<td align="center">'.$langs->trans("Required").'</td>'; +print '<td align="center">'.$langs->trans("AlwaysEditable").'</td>'; print '<td width="80"> </td>'; print "</tr>\n"; @@ -107,6 +108,7 @@ foreach($extrafields->attribute_type as $key => $value) print '<td align="right">'.$extrafields->attribute_size[$key]."</td>\n"; print '<td align="center">'.yn($extrafields->attribute_unique[$key])."</td>\n"; print '<td align="center">'.yn($extrafields->attribute_required[$key])."</td>\n"; + print '<td align="center">'.yn($extrafields->attribute_alwayseditable[$key])."</td>\n"; // TODO This must be generalised into all page to admin extrafield. Mutualize code here is easy and will save a lot of code print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=edit&attrname='.$key.'">'.img_edit().'</a>'; print " <a href=\"".$_SERVER["PHP_SELF"]."?action=delete&attrname=$key\">".img_delete()."</a></td>\n"; print "</tr>"; diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index 4bea6c46850a4de2630b807d9f16a7f7ad5d2b6b..524feec13df54984b281adc61c9a2d6156ff8077 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -62,6 +62,13 @@ $search_desc=GETPOST('search_desc','alpha'); $search_status=GETPOST('search_status'); $sall=GETPOST('sall'); +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $search_company=""; + $search_desc=""; + $search_status=""; +} /* * View @@ -131,6 +138,7 @@ if ($result) print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],"fd.duree","",$urlparam,'align="right"',$sortfield,$sortorder); } print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.fk_statut","",$urlparam,'align="right"',$sortfield,$sortorder); + print_liste_field_titre('',$_SERVER["PHP_SELF"], ''); print "</tr>\n"; print '<tr class="liste_titre">'; @@ -151,9 +159,10 @@ if ($result) print '<td class="liste_titre" align="right">'; $liststatus=$interventionstatic->statuts_short; print $form->selectarray('search_status', $liststatus, GETPOST('search_status'), 1, 0, 0, '', 1); - print '<input class="liste_titre" align="right" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; print '</td>'; - print "</tr>\n"; + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; $companystatic=new Societe($db); @@ -184,7 +193,8 @@ if ($result) print '<td align="right">'.convertSecondToTime($objp->duree).'</td>'; } print '<td align="right">'.$interventionstatic->LibStatut($objp->fk_statut,5).'</td>'; - + + print '<td> </td>'; print "</tr>\n"; $total += $objp->duree; @@ -194,10 +204,10 @@ if ($result) if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) { print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").'</td>'; - print '<td align="right" class="nowrap liste_total">'.convertSecondToTime($total).'</td><td> </td>'; + print '<td align="right" class="nowrap liste_total">'.convertSecondToTime($total).'</td><td> </td><td> </td>'; print '</tr>'; } - + print '</table>'; print "</form>\n"; $db->free($result); diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index bd786cfdf4cbcac61181d8f6e6df9e4c8527936d..db4212308deb94e5df11f4c7460e0cc09cf7d603 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -146,7 +146,7 @@ class FactureFournisseur extends CommonInvoice */ function create($user) { - global $langs,$conf; + global $langs,$conf,$hookmanager; $error=0; $now=dol_now(); @@ -255,6 +255,23 @@ class FactureFournisseur extends CommonInvoice $result=$this->update_price(); if ($result > 0) { + // Actions on extra fields (by external module or standard code) + // FIXME le hook fait double emploi avec le trigger !! + $hookmanager->initHooks(array('supplierinvoicedao')); + $parameters=array('socid'=>$this->id); + $reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks + if (empty($reshook)) + { + if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used + { + $result=$this->insertExtraFields(); + if ($result < 0) + { + $error++; + } + } + } + else if ($reshook < 0) $error++; // Call trigger $result=$this->call_trigger('BILL_SUPPLIER_CREATE',$user); if ($result < 0) $error++; diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 58abe4578313113d6e614f3863accc726987eae0..ab0fd08d3f0b3c7f53a4db8193b0a6e568ea127a 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -39,12 +39,11 @@ $langs->load("sendings"); $search_ref=GETPOST('search_ref'); $search_refsupp=GETPOST('search_refsupp'); -$search_nom=GETPOST('search_nom'); +$search_company=GETPOST('search_company'); $search_user=GETPOST('search_user'); $search_ttc=GETPOST('search_ttc'); $sall=GETPOST('search_all'); $search_status=GETPOST('search_status','int'); -if ($search_status == '') $search_status=-1; $page = GETPOST('page','int'); $socid = GETPOST('socid','int'); @@ -58,6 +57,18 @@ $orderid = GETPOST('orderid'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'fournisseur', $orderid, '', 'commande'); +// Purge search criteria +if (GETPOST("button_removefilter")) +{ + $search_ref=''; + $search_refsupp=''; + $search_company=''; + $search_user=''; + $search_ttc=''; + $search_status=''; +} + +if ($search_status == '') $search_status=-1; /* * View @@ -102,9 +113,9 @@ if ($search_ref) { $sql .= natural_search('cf.ref', $search_ref); } -if ($search_nom) +if ($search_company) { - $sql .= natural_search('s.nom', $search_nom); + $sql .= natural_search('s.nom', $search_company); } if ($search_user) { @@ -154,13 +165,14 @@ if ($resql) $i = 0; $param=""; - if ($search_ref) $param.="&search_ref=".$search_ref; - if ($search_nom) $param.="&search_nom=".$search_nom; - if ($search_user) $param.="&search_user=".$search_user; - if ($search_ttc) $param.="&search_ttc=".$search_ttc; - if ($search_refsupp) $param.="&search_refsupp=".$search_refsupp; - if ($socid) $param.="&socid=".$socid; - if ($search_status >= 0) $param.="&search_status=".$search_status; + if ($search_ref) $param.="&search_ref=".$search_ref; + if ($search_company) $param.="&search_company=".$search_company; + if ($search_user) $param.="&search_user=".$search_user; + if ($search_ttc) $param.="&search_ttc=".$search_ttc; + if ($search_refsupp) $param.="&search_refsupp=".$search_refsupp; + if ($socid) $param.="&socid=".$socid; + if ($search_status >= 0) $param.="&search_status=".$search_status; + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords); print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'; print '<table class="noborder" width="100%">'; @@ -180,7 +192,7 @@ if ($resql) print '<td class="liste_titre"><input type="text" class="flat" name="search_ref" value="'.$search_ref.'"></td>'; print '<td class="liste_titre"><input type="text" class="flat" name="search_refsupp" value="'.$search_refsupp.'"></td>'; - print '<td class="liste_titre"><input type="text" class="flat" name="search_nom" value="'.$search_nom.'"></td>'; + print '<td class="liste_titre"><input type="text" class="flat" name="search_company" value="'.$search_company.'"></td>'; print '<td class="liste_titre"><input type="text" class="flat" name="search_user" value="'.$search_user.'"></td>'; print '<td class="liste_titre"><input type="text" class="flat" name="search_ttc" value="'.$search_ttc.'"></td>'; print '<td class="liste_titre"> </td>'; @@ -188,10 +200,9 @@ if ($resql) print '<td class="liste_titre" align="right">'; $formorder->selectSupplierOrderStatus($search_status,1,'search_status'); print '</td>'; - print '<td class="liste_titre" align="right">'; - print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print '</td>'; - print '</tr>'; + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; $var=true; diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index b88fd582400780d8e1da95795732b5be83645eb4..38a0f79a6ea3588973d01e9527c4f29a1be10f23 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -300,10 +300,16 @@ elseif ($action == 'add' && $user->rights->fournisseur->facture->creer) $_GET['socid']=$_POST['socid']; $error++; } - + + // Fill array 'array_options' with data from add form + if (! $error) { $db->begin(); + + $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); + $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + if ($ret < 0) $error ++; $tmpproject = GETPOST('projectid', 'int'); @@ -1077,7 +1083,7 @@ elseif ($action == 'update_extras') { // Actions on extra fields (by external module or standard code) // FIXME le hook fait double emploi avec le trigger !! - $hookmanager->initHooks(array('supplierorderdao')); + $hookmanager->initHooks(array('supplierinvoicedao')); $parameters=array('id'=>$object->id); $reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks @@ -1179,6 +1185,9 @@ llxHeader('','',''); // Mode creation if ($action == 'create') { + $facturestatic = new FactureFournisseur($db); + $extralabels = $extrafields->fetch_name_optionals_label($facturestatic->table_element); + print_fiche_titre($langs->trans('NewBill')); dol_htmloutput_events(); @@ -1419,6 +1428,11 @@ if ($action == 'create') print '</td>'; // print '<td><textarea name="note" wrap="soft" cols="60" rows="'.ROWS_5.'"></textarea></td>'; print '</tr>'; + + if (empty($reshook) && ! empty($extrafields->attribute_label)) + { + print $object->showOptionals($extrafields, 'edit'); + } if (is_object($objectsrc)) { @@ -1530,6 +1544,9 @@ else $societe = new Fournisseur($db); $result=$societe->fetch($object->socid); if ($result < 0) dol_print_error($db); + + // fetch optionals attributes and labels + $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); /* * View card diff --git a/htdocs/fourn/facture/impayees.php b/htdocs/fourn/facture/impayees.php index a80cb00f2d33d071dedeb3a12656afb79e8f6e34..3253a79fcd85abfdfa960d76706c2dc8fc3e38a8 100644 --- a/htdocs/fourn/facture/impayees.php +++ b/htdocs/fourn/facture/impayees.php @@ -47,36 +47,14 @@ if ($user->societe_id > 0) $socid = $user->societe_id; } - -/* - * View - */ - -$now=dol_now(); - -llxHeader('',$langs->trans("BillsSuppliersUnpaid")); - -$title=$langs->trans("BillsSuppliersUnpaid"); - -$facturestatic=new FactureFournisseur($db); -$companystatic=new Societe($db); - - -/*************************************************************************** -* * -* Mode Liste * -* * -***************************************************************************/ - $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $search_ref = GETPOST('search_ref','alpha'); $search_ref_supplier = GETPOST('search_ref_supplier','alpha'); -$search_societe = GETPOST('search_societe','alpha'); -$search_montant_ht = GETPOST('search_montant_ht','int'); -$search_montant_ttc = GETPOST('search_montant_ttc','int'); - +$search_company = GETPOST('search_company','alpha'); +$search_amount_no_tax = GETPOST('search_amount_no_tax','alpha'); +$search_amount_all_tax = GETPOST('search_amount_all_tax','alpha'); $page = GETPOST("page",'int'); if ($page == -1) { $page = 0; } @@ -86,6 +64,28 @@ $pagenext = $page + 1; if (! $sortfield) $sortfield="f.date_lim_reglement"; if (! $sortorder) $sortorder="ASC"; +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $search_ref_supplier=""; + $search_company=""; + $search_amount_no_tax=""; + $search_amount_all_tax=""; +} + +/* + * View + */ + +$now=dol_now(); + +llxHeader('',$langs->trans("BillsSuppliersUnpaid")); + +$title=$langs->trans("BillsSuppliersUnpaid"); + +$facturestatic=new FactureFournisseur($db); +$companystatic=new Societe($db); + if ($user->rights->fournisseur->facture->lire) { $sql = "SELECT s.rowid as socid, s.nom as name,"; @@ -124,19 +124,19 @@ if ($user->rights->fournisseur->facture->lire) $sql .= " AND f.ref_supplier LIKE '%".$search_ref_supplier."%'"; } - if ($search_societe) + if ($search_company) { - $sql .= " AND s.nom LIKE '%".$search_societe."%'"; + $sql .= " AND s.nom LIKE '%".$search_company."%'"; } - if ($search_montant_ht) + if ($search_amount_no_tax) { - $sql .= " AND f.total_ht = '".$search_montant_ht."'"; + $sql .= " AND f.total_ht = '".$search_amount_no_tax."'"; } - if ($search_montant_ttc) + if ($search_amount_all_tax) { - $sql .= " AND f.total_ttc = '".$search_montant_ttc."'"; + $sql .= " AND f.total_ttc = '".$search_amount_all_tax."'"; } if (dol_strlen(GETPOST('sf_re')) > 0) @@ -165,9 +165,9 @@ if ($user->rights->fournisseur->facture->lire) if ($search_ref) $param.='&search_ref='.urlencode($search_ref); if ($search_ref_supplier) $param.='&search_ref_supplier='.urlencode($search_ref_supplier); - if ($search_societe) $param.='&search_societe='.urlencode($search_societe); - if ($search_montant_ht) $param.='&search_montant_ht='.urlencode($search_montant_ht); - if ($search_montant_ttc) $param.='&search_montant_ttc='.urlencode($search_montant_ttc); + if ($search_company) $param.='&search_company='.urlencode($search_company); + if ($search_amount_no_tax) $param.='&search_amount_no_tax='.urlencode($search_amount_no_tax); + if ($search_amount_all_tax) $param.='&search_amount_all_tax='.urlencode($search_amount_all_tax); $param.=($option?"&option=".$option:""); if (! empty($late)) $param.='&late='.urlencode($late); @@ -209,15 +209,15 @@ if ($user->rights->fournisseur->facture->lire) print '<td class="liste_titre"> </td>'; print '<td class="liste_titre"> </td>'; print '<td class="liste_titre" align="left">'; - print '<input class="flat" type="text" size="6" name="search_societe" value="'.$search_societe.'">'; + print '<input class="flat" type="text" size="6" name="search_company" value="'.$search_company.'">'; print '</td><td class="liste_titre" align="right">'; - print '<input class="flat" type="text" size="8" name="search_montant_ht" value="'.$search_montant_ht.'">'; + print '<input class="flat" type="text" size="8" name="search_amount_no_tax" value="'.$search_amount_no_tax.'">'; print '</td><td class="liste_titre" align="right">'; - print '<input class="flat" type="text" size="8" name="search_montant_ttc" value="'.$search_montant_ttc.'">'; + print '<input class="flat" type="text" size="8" name="search_amount_all_tax" value="'.$search_amount_all_tax.'">'; print '</td><td class="liste_titre" colspan="2" align="right">'; print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; - print '</td>'; - print "</tr>\n"; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; if ($num > 0) { diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 9439fc534bd352a7f719dfd81581d77e9bd629d9..616e9690e8af6475f89ac45776bc4807e932b190 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -64,9 +64,26 @@ $pagenext = $page + 1; if (! $sortorder) $sortorder="DESC"; if (! $sortfield) $sortfield="fac.datef,fac.rowid"; -$month = GETPOST('month','int'); -$year = GETPOST('year','int'); - +$search_ref = GETPOST("search_ref","int"); +$search_ref_supplier = GETPOST("search_ref_supplier","alpha"); +$search_label = GETPOST("search_label","alpha"); +$search_company = GETPOST("search_company","alpha"); +$search_amount_no_tax = GETPOST("search_amount_no_tax","alpha"); +$search_amount_all_tax = GETPOST("search_amount_all_tax","alpha"); +$month = GETPOST("month","int"); +$year = GETPOST("year","int"); + +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $search_ref_supplier=""; + $search_label=""; + $search_company=""; + $search_amount_no_tax=""; + $search_amount_all_tax=""; + $year=""; + $month=""; +} /* * Actions @@ -93,9 +110,6 @@ if ($mode == 'search') } } - - - /* * View */ @@ -132,14 +146,14 @@ if (GETPOST('filtre') && GETPOST('filtre') != -1) // GETPOST('filtre') may be a } } -if (GETPOST("search_ref")) +if ($search_ref) { - if (is_numeric(GETPOST("search_ref"))) $sql .= natural_search(array('fac.rowid', 'fac.ref'), GETPOST('search_ref'));// For backward compatibility - else $sql .= natural_search('fac.ref', GETPOST("search_ref")); + if (is_numeric($search_ref)) $sql .= natural_search(array('fac.rowid', 'fac.ref'), $search_ref);// For backward compatibility + else $sql .= natural_search('fac.ref', $search_ref); } -if (GETPOST("search_ref_supplier")) +if (search_ref_supplier) { - $sql .= natural_search('fac.ref_supplier', GETPOST('search_ref_supplier')); + $sql .= natural_search('fac.ref_supplier', $search_ref_supplier); } if ($month > 0) { @@ -152,24 +166,24 @@ else if ($year > 0) { $sql.= " AND fac.datef BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'"; } -if (GETPOST("search_libelle")) +if ($search_label) { - $sql .= natural_search('fac.libelle', GETPOST('search_libelle')); + $sql .= natural_search('fac.libelle', $search_label); } -if (GETPOST("search_societe")) +if ($search_company) { - $sql .= natural_search('s.nom', GETPOST('search_societe')); + $sql .= natural_search('s.nom', $search_company); } -if (GETPOST("search_montant_ht")) +if ($search_amount_no_tax) { - $sql .= " AND fac.total_ht = '".$db->escape(price2num(GETPOST("search_montant_ht")))."'"; + $sql .= " AND fac.total_ht = '".$db->escape(price2num($search_amount_no_tax))."'"; } -if (GETPOST("search_montant_ttc")) +if ($search_amount_all_tax) { - $sql .= " AND fac.total_ttc = '".$db->escape(price2num(GETPOST("search_montant_ttc")))."'"; + $sql .= " AND fac.total_ttc = '".$db->escape(price2num($search_amount_all_tax))."'"; } $nbtotalofrecords = 0; @@ -195,14 +209,14 @@ if ($resql) } $param='&socid='.$socid; - if ($month) $param.='&month='.urlencode($month); - if ($year) $param.='&year=' .urlencode($year); - if (GETPOST("search_ref")) $param.='&search_ref='.urlencode(GETPOST("search_ref")); - if (GETPOST("search_ref_supplier")) $param.='&search_ref_supplier'.urlencode(GETPOST("search_ref_supplier")); - if (GETPOST("search_libelle")) $param.='&search_libelle='.urlencode(GETPOST("search_libelle")); - if (GETPOST("search_societe")) $param.='&search_societe='.urlencode(GETPOST("search_societe")); - if (GETPOST("search_montant_ht")) $param.='&search_montant_ht='.urlencode(GETPOST("search_montant_ht")); - if (GETPOST("search_montant_ttc")) $param.='&search_montant_ttc='.urlencode(GETPOST("search_montant_ttc")); + if ($month) $param.='&month='.urlencode($month); + if ($year) $param.='&year=' .urlencode($year); + if ($search_ref) $param.='&search_ref='.urlencode($search_ref); + if ($search_ref_supplier) $param.='&search_ref_supplier'.urlencode($search_ref_supplier); + if ($search_label) $param.='&search_label='.urlencode($search_label); + if ($search_company) $param.='&search_company='.urlencode($search_company); + if ($search_amount_no_tax) $param.='&search_amount_no_tax='.urlencode($search_amount_no_tax); + if ($search_amount_all_tax) $param.='&search_amount_all_tax='.urlencode($search_amount_all_tax); if (GETPOST("filtre") && GETPOST('filtre') != -1) $param.='&filtre='.urlencode(GETPOST("filtre")); print_barre_liste($langs->trans("BillsSuppliers").($socid?" $soc->name.":""),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords); @@ -218,17 +232,18 @@ if ($resql) if (! empty($conf->global->PROJECT_SHOW_REF_INTO_LISTS)) print_liste_field_titre($langs->trans("Project"),$_SERVER["PHP_SELF"],"p.ref","",$param,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"fac.total_ht","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"fac.total_ttc","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"fk_statut,paye","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"fk_statut,paye","",$param,'align="right"',$sortfield,$sortorder); + print '<td class="liste_titre"> </td>'; print "</tr>\n"; // Lignes des champs de filtre print '<tr class="liste_titre">'; print '<td class="liste_titre" align="left">'; - print '<input class="flat" size="6" type="text" name="search_ref" value="'.GETPOST("search_ref").'">'; + print '<input class="flat" size="6" type="text" name="search_ref" value="'.$search_ref.'">'; print '</td>'; print '<td class="liste_titre" align="left">'; - print '<input class="flat" size="6" type="text" name="search_ref_supplier" value="'.GETPOST("search_ref_supplier").'">'; + print '<input class="flat" size="6" type="text" name="search_ref_supplier" value="'.$search_ref_supplier.'">'; print '</td>'; print '<td class="liste_titre" colspan="1" align="center">'; print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">'; @@ -239,10 +254,10 @@ if ($resql) print '</td>'; print '<td class="liste_titre"> </td>'; print '<td class="liste_titre" align="left">'; - print '<input class="flat" size="16" type="text" name="search_libelle" value="'.GETPOST("search_libelle").'">'; + print '<input class="flat" size="16" type="text" name="search_label" value="'.$search_label.'">'; print '</td>'; print '<td class="liste_titre" align="left">'; - print '<input class="flat" type="text" size="8" name="search_societe" value="'.GETPOST("search_societe").'">'; + print '<input class="flat" type="text" size="8" name="search_company" value="'.$search_company.'">'; print '</td>'; if (! empty($conf->global->PROJECT_SHOW_REF_INTO_LISTS)) { @@ -250,13 +265,15 @@ if ($resql) print '</td>'; } print '<td class="liste_titre" align="right">'; - print '<input class="flat" type="text" size="8" name="search_montant_ht" value="'.GETPOST("search_montant_ht").'">'; + print '<input class="flat" type="text" size="8" name="search_amount_no_tax" value="'.$search_amount_no_tax.'">'; + print '</td><td class="liste_titre" align="right">'; + print '<input class="flat" type="text" size="8" name="search_amount_all_tax" value="'.$search_amount_all_tax.'">'; print '</td><td class="liste_titre" align="right">'; - print '<input class="flat" type="text" size="8" name="search_montant_ttc" value="'.GETPOST("search_montant_ttc").'">'; - print '</td><td class="liste_titre" align="center">'; $liststatus=array('paye:0'=>$langs->trans("Unpayed"), 'paye:1'=>$langs->trans("Payed")); print $form->selectarray('filtre', $liststatus, GETPOST('filtre'), 1); - print '<input type="image" class="liste_titre" align="right" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '</td><td class="liste_titre" align="right">'; + print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print '</td>'; print "</tr>\n"; @@ -312,6 +329,8 @@ if ($resql) //print $facturestatic->LibStatut($obj->paye,$obj->fk_statut,5,$objp->am); print $facturestatic->LibStatut($obj->paye,$obj->fk_statut,5); print '</td>'; + + print '<td align="center"> </td>'; print "</tr>\n"; $i++; @@ -325,6 +344,7 @@ if ($resql) print '<td class="liste_total" align="right">'.price($total).'</td>'; print '<td class="liste_total" align="right">'.price($total_ttc).'</td>'; print '<td class="liste_total" align="center"> </td>'; + print '<td class="liste_total" align="center"> </td>'; print "</tr>\n"; } } diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php index 831749b19043f89986bd3b3970c6674120959fca..f467e9235efee52472b9df6633ca4709123c13b0 100644 --- a/htdocs/fourn/facture/paiement.php +++ b/htdocs/fourn/facture/paiement.php @@ -458,6 +458,15 @@ if (empty($action)) $search_paymenttype=GETPOST('search_paymenttype'); $search_amount=GETPOST('search_amount'); $search_company=GETPOST('search_company'); + + if (GETPOST("button_removefilter")) + { + $search_ref=""; + $search_account=""; + $search_paymenttype=""; + $search_amount=""; + $search_company=""; + } $sql = 'SELECT p.rowid as pid, p.datep as dp, p.amount as pamount, p.num_paiement,'; $sql.= ' s.rowid as socid, s.nom as name,'; @@ -494,7 +503,7 @@ if (empty($action)) } if (! empty($search_amount)) { - $sql .= " AND p.amount=".price2num($search_amount); + $sql .= " AND p.amount='".price2num($search_amount)."'"; } if (! empty($search_company)) { @@ -515,7 +524,7 @@ if (empty($action)) $paramlist=''; $paramlist.=(! empty($search_ref)?"&search_ref=".$search_ref:""); $paramlist.=(! empty($search_company)?"&search_company=".$search_company:""); - $paramlist.=(! empty($search_amount)?"&search_amount=".$search_amount:""); + $paramlist.=(! empty($search_amount)?"&search_amount='".$search_amount:""); print_barre_liste($langs->trans('SupplierPayments'), $page, $_SERVER["PHP_SELF"],$paramlist,$sortfield,$sortorder,'',$num); @@ -529,16 +538,17 @@ if (empty($action)) print_liste_field_titre($langs->trans('Account'),$_SERVER["PHP_SELF"],'ba.label','',$paramlist,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Amount'),$_SERVER["PHP_SELF"],'f.amount','',$paramlist,'align="right"',$sortfield,$sortorder); //print_liste_field_titre($langs->trans('Invoice'),$_SERVER["PHP_SELF"],'ref_supplier','',$paramlist,'',$sortfield,$sortorder); - print "</tr>\n"; + print '<td class="liste_titre"> </td>'; + print "</tr>\n"; // Lines for filters fields print '<tr class="liste_titre">'; print '<td align="left">'; - print '<input class="fat" type="text" size="4" name="search_ref" value="'.$search_ref.'">'; + print '<input class="flat" type="text" size="4" name="search_ref" value="'.$search_ref.'">'; print '</td>'; print '<td> </td>'; print '<td align="left">'; - print '<input class="fat" type="text" size="6" name="search_company" value="'.$search_company.'">'; + print '<input class="flat" type="text" size="6" name="search_company" value="'.$search_company.'">'; print '</td>'; print '<td>'; $form->select_types_paiements($search_paymenttype,'search_paymenttype','',2,1,1); @@ -547,9 +557,11 @@ if (empty($action)) $form->select_comptes($search_account,'search_account',0,'',1); print '</td>'; print '<td align="right">'; - print '<input class="fat" type="text" size="4" name="search_amount" value="'.$search_amount.'">'; - print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" alt="'.$langs->trans("Search").'">'; - print '</td>'; + print '<input class="flat" type="text" size="4" name="search_amount" value="'.$search_amount.'">'; + print '</td><td align="right">'; + print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print '</td>'; print "</tr>\n"; while ($i < min($num,$limit)) @@ -584,7 +596,8 @@ if (empty($action)) print '<td class="nowrap">'; print $invoicesupplierstatic->getNomUrl(1); print '</td>';*/ - + + print '<td> </td>'; print '</tr>'; $i++; } diff --git a/htdocs/fourn/list.php b/htdocs/fourn/list.php index d3f7e55c19976e1723970ceb87cc2fb0b9144e8e..296415c1aee5acc621ed9a35f48686fb878b90ac 100644 --- a/htdocs/fourn/list.php +++ b/htdocs/fourn/list.php @@ -32,15 +32,15 @@ $langs->load("suppliers"); $langs->load("orders"); $langs->load("companies"); -$socname = GETPOST("socname"); -$search_nom = GETPOST("search_nom"); -$search_zipcode = GETPOST("search_zipcode"); -$search_town = GETPOST("search_town"); -$search_code_fournisseur = GETPOST("search_code_fournisseur"); -$search_compta_fournisseur = GETPOST("search_compta_fournisseur"); -$search_datec = GETPOST("search_datec"); -$search_categ = GETPOST('search_categ','int'); -$catid = GETPOST("catid",'int'); +$socname = GETPOST("socname"); +$search_name = GETPOST("search_name"); +$search_zipcode = GETPOST("search_zipcode"); +$search_town = GETPOST("search_town"); +$search_supplier_code = GETPOST("search_supplier_code"); +$search_supplier_accounting = GETPOST("search_supplier_accounting"); +$search_datec = GETPOST("search_datec"); +$search_categ = GETPOST('search_categ','int'); +$catid = GETPOST("catid",'int'); // Security check $socid = GETPOST('socid','int'); @@ -60,6 +60,19 @@ if (! $sortfield) $sortfield="nom"; // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('supplierlist')); +if (GETPOST("button_removefilter_x")) +{ + $socname=""; + $search_name=""; + $search_zipcode=""; + $search_town=""; + $search_supplier_code=""; + $search_supplier_accounting=""; + $search_datec=""; + $search_categ=""; + $catid=""; +} + /* * Actions */ @@ -95,15 +108,15 @@ if ($socname) { $sortfield = "s.nom"; $sortorder = "ASC"; } -if ($search_nom) { - $sql .= natural_search('s.nom', $search_nom); +if ($search_name) { + $sql .= natural_search('s.nom', $search_name); } if ($search_zipcode) $sql .= " AND s.zip LIKE '".$db->escape($search_zipcode)."%'"; if ($search_town) { $sql .= natural_search('s.town', $search_town); } -if ($search_code_fournisseur) $sql .= " AND s.code_fournisseur LIKE '%".$db->escape($search_code_fournisseur)."%'"; -if ($search_compta_fournisseur) $sql .= " AND s.code_compta_fournisseur LIKE '%".$db->escape($search_compta_fournisseur)."%'"; +if ($search_supplier_code) $sql .= " AND s.code_fournisseur LIKE '%".$db->escape($search_supplier_code)."%'"; +if ($search_supplier_accounting) $sql .= " AND s.code_compta_fournisseur LIKE '%".$db->escape($search_supplier_accounting)."%'"; if ($search_datec) $sql .= " AND s.datec LIKE '%".$db->escape($search_datec)."%'"; if ($catid > 0) $sql.= " AND cf.fk_categorie = ".$catid; if ($catid == -2) $sql.= " AND cf.fk_categorie IS NULL"; @@ -126,7 +139,7 @@ if ($resql) $num = $db->num_rows($resql); $i = 0; - $param = "&search_nom=".$search_nom."&search_code_fournisseur=".$search_code_fournisseur."&search_zipcode=".$search_zipcode."&search_town=".$search_town; + $param = "&search_name=".$search_name."&search_supplier_code=".$search_supplier_code."&search_zipcode=".$search_zipcode."&search_town=".$search_town; if ($search_categ != '') $param.='&search_categ='.$search_categ; print_barre_liste($langs->trans("ListOfSuppliers"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords); @@ -166,26 +179,28 @@ if ($resql) print '<tr class="liste_titre">'; - print '<td class="liste_titre"><input type="text" class="flat" name="search_nom" value="'.$search_nom.'"></td>'; + print '<td class="liste_titre"><input type="text" size="10" class="flat" name="search_name" value="'.$search_name.'"></td>'; - print '<td class="liste_titre"><input type="text" class="flat" name="search_zipcode" value="'.$search_zipcode.'"></td>'; + print '<td class="liste_titre"><input type="text" size="10" class="flat" name="search_zipcode" value="'.$search_zipcode.'"></td>'; - print '<td class="liste_titre"><input type="text" class="flat" name="search_town" value="'.$search_town.'"></td>'; + print '<td class="liste_titre"><input type="text" size="10" class="flat" name="search_town" value="'.$search_town.'"></td>'; print '<td align="left" class="liste_titre">'; - print '<input class="flat" type="text" size="10" name="search_code_fournisseur" value="'.$search_code_fournisseur.'">'; + print '<input class="flat" type="text" size="10" name="search_supplier_code" value="'.$search_supplier_code.'">'; print '</td>'; print '<td align="left" class="liste_titre">'; - print '<input class="flat" type="text" size="10" name="search_compta_fournisseur" value="'.$search_compta_fournisseur.'">'; + print '<input class="flat" type="text" size="10" name="search_supplier_accounting" value="'.$search_supplier_accounting.'">'; print '</td>'; print '<td align="right" class="liste_titre">'; print '<input class="flat" type="text" size="10" name="search_datec" value="'.$search_datec.'">'; print '</td>'; - print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'"></td>'; - + print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; + print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; + print "</td></tr>\n"; + $parameters=array(); $formconfirm=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook diff --git a/htdocs/holiday/index.php b/htdocs/holiday/index.php index 04a96a7001df9b8c893d25c11bd21c7a731ae391..e988e6407111d667632e24bac8e12effb286d2be 100644 --- a/htdocs/holiday/index.php +++ b/htdocs/holiday/index.php @@ -64,6 +64,19 @@ $search_employe = GETPOST('search_employe'); $search_valideur = GETPOST('search_valideur'); $search_statut = GETPOST('select_statut'); +if (GETPOST("button_removefilter")) +{ + $search_ref=""; + $month_create=""; + $year_create=""; + $month_start=""; + $year_start=""; + $month_end=""; + $year_end=""; + $search_employe=""; + $search_valideur=""; + $search_statut=""; +} /* * Actions @@ -71,8 +84,6 @@ $search_statut = GETPOST('select_statut'); // None - - /* * View */ @@ -257,7 +268,7 @@ print_liste_field_titre($langs->trans("Employe"),$_SERVER["PHP_SELF"],"cp.fk_use print_liste_field_titre($langs->trans("ValidatorCP"),$_SERVER["PHP_SELF"],"cp.fk_validator","",'','',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateDebCP"),$_SERVER["PHP_SELF"],"cp.date_debut","",'','align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateFinCP"),$_SERVER["PHP_SELF"],"cp.date_fin","",'','align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],'','','','align="right"',$sortfield,$sortorder); +print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],'','','','align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cp.statut","",'','align="center"',$sortfield,$sortorder); print '<td></td>'; print "</tr>\n"; @@ -323,7 +334,8 @@ print '</td>'; // ACTION print '<td align="right">'; -print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" alt="'.$langs->trans('Search').'">'; +print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; +print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print '</td>'; print "</tr>\n"; diff --git a/htdocs/includes/jquery/plugins/multiple-select/LICENSE b/htdocs/includes/jquery/plugins/multiple-select/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..c3ebd2b52488fff10d65fb4ab4d93b1d95665bda --- /dev/null +++ b/htdocs/includes/jquery/plugins/multiple-select/LICENSE @@ -0,0 +1,21 @@ +(The MIT License) + +Copyright (c) 2012-2014 Zhixin Wen <wenzhixin2010@gmail.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/multiple-select/README.md b/htdocs/includes/jquery/plugins/multiple-select/README.md new file mode 100644 index 0000000000000000000000000000000000000000..81b82ba74c0feb6e16a7d12d1974946e6f7e3f7b --- /dev/null +++ b/htdocs/includes/jquery/plugins/multiple-select/README.md @@ -0,0 +1,96 @@ +# Multiple Select + +Multiple select is a jQuery plugin to select multiple elements with checkboxes :). + +To get started checkout examples and documentation at http://wenzhixin.net.cn/p/multiple-select + +## Contributors + +Multiple select is due to the excellent work of the following contributors: + +<table> +<tbody> +<tr><th align="left">文翼</th><td><a href="https://github.com/wenzhixin">GitHub/wenzhixin</a></td></tr> +<tr><th align="left">Gaurav Jassal</th><td><a href="https://github.com/creativeaura">GitHub/creativeaura</a></td><</tr> +<tr><th align="left">guli</th><td><a href="https://github.com/guli">GitHub/guli</a></td></tr> +<tr><th align="left">jwheadon</th><td><a href="https://github.com/jwheadon">GitHub/jwheadon</a></td></tr> +<tr><th align="left">yx</th><td><a href="https://github.com/qqfish">GitHub/qqfish</a></td></tr> +<tr><th align="left">Tobias Macey</th><td><a href="https://github.com/blarghmatey">GitHub/blarghmatey</a></td></tr> +<tr><th align="left">Jona Goldman</th><td><a href="https://github.com/jonagoldman">GitHub/jonagoldman</a></td></tr> +<tr><th align="left">Alex Jeffrey</th><td><a href="https://github.com/ajeffrey">GitHub/ajeffrey</a></td></tr> +</tbody> +</table> + +## Changelog + +### 1.1.0 + +* Fix #63: Add ```keepOpen``` option. +* Fix #62: Fix ```isOpen``` and ```filter``` options are both true bug. +* Fix #57: Fire onCheckAll event when literally select. +* Add data attributes for support. +* Fix #55: Add ```name``` option. + +### 1.0.9 + +* Fix #42: Add ```styler``` option to custom item style. +* Fix firefox click bug. +* Add ```allSelected```, ```minumimCountSelected``` and ```countSelected``` options. +* Fix #35: Add ```onFocus``` and ```onBlur``` events. +* Fix #25: Add ```focus``` and ```blur``` methods. +* Fix #31: Trigger the onCheckAll & onUncheckAll events when use filter to select all. + +### 1.0.8 + +* Update the license to The MIT License. +* Fix #47: Add ```No matches found``` message when there are no results found. +* Fix #43: Add ```position``` option. + +### 1.0.7 + +* Fix #44: The filters not working bugs. + +### 1.0.6 + +* Fix #21: Add ```single``` option. +* Add ```override``` option. +* Add ```container``` option. +* Fix #29: Update the optgroups select text. +* Fix #30: Image is not shown in Firefox 25.0.1. +* Fix #22: fix group filter problem. + +### 1.0.5 + +* Update the button text witdh. +* Add keyboard support. + +### 1.0.4 + +* Fix #12: Add ```width``` option. +* Fix #11: Add callback events. +* Add ```maxHeight``` option. + +### 1.0.3 + +* Fix #4: Add ```filter``` option. +* Support mobile devices. +* Fix #6: Add ```refresh``` method. + +### 1.0.2 + +* Fix #7: Add ```selected``` and ```disabled``` options. +* Fix #5: Add ```checkAll``` and ```uncheckAll``` methods. + +### 1.0.1 + +* Fix #3: Add optgroups support. +* Add ```placeholder``` option. +* Fix #2: use prop method instead of attr. + +### 1.0.0 + +* Initial release + +## LICENSE + +[The MIT License](https://github.com/wenzhixin/multiple-select/blob/master/LICENSE) \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/multiple-select/jquery.multiple.select.js b/htdocs/includes/jquery/plugins/multiple-select/jquery.multiple.select.js new file mode 100644 index 0000000000000000000000000000000000000000..32e6635bbaaab239991f7d0fd4caba89e673647e --- /dev/null +++ b/htdocs/includes/jquery/plugins/multiple-select/jquery.multiple.select.js @@ -0,0 +1,466 @@ +/** + * @author zhixin wen <wenzhixin2010@gmail.com> + * @version 1.1.0 + * + * http://wenzhixin.net.cn/p/multiple-select/ + */ + +(function($) { + + 'use strict'; + + function MultipleSelect($el, options) { + var that = this, + name = $el.attr('name') || options.name || '', + elWidth = $el.width(); + + this.$el = $el.hide(); + this.options = options; + + this.$parent = $('<div class="ms-parent"></div>'); + this.$choice = $('<button type="button" class="ms-choice"><span class="placeholder">' + + options.placeholder + '</span><div></div></button>'); + this.$drop = $('<div class="ms-drop ' + options.position + '"></div>'); + this.$el.after(this.$parent); + this.$parent.append(this.$choice); + this.$parent.append(this.$drop); + + if (this.$el.prop('disabled')) { + this.$choice.addClass('disabled'); + } + this.$choice.css('width', elWidth + 'px'); + this.$drop.css({ + width: (options.width || elWidth) + 'px' + }); + + if (!this.options.keepOpen) { + $('body').click(function(e) { + if ($(e.target)[0] === that.$choice[0] || + $(e.target).parents('.ms-choice')[0] === that.$choice[0]) { + return; + } + if (($(e.target)[0] === that.$drop[0] || + $(e.target).parents('.ms-drop')[0] !== that.$drop[0]) && + that.options.isOpen) { + that.close(); + } + }); + } + + this.selectAllName = 'name="selectAll' + name + '"'; + this.selectGroupName = 'name="selectGroup' + name + '"'; + this.selectItemName = 'name="selectItem' + name + '"'; + } + + MultipleSelect.prototype = { + constructor : MultipleSelect, + + init: function() { + var that = this, + html = []; + if (this.options.filter) { + html.push( + '<div class="ms-search">', + '<input type="text" autocomplete="off" autocorrect="off" autocapitilize="off" spellcheck="false">', + '</div>' + ); + } + html.push('<ul>'); + if (this.options.selectAll && !this.options.single) { + html.push( + '<li>', + '<label>', + '<input type="checkbox" ' + this.selectAllName + ' /> ', + '[' + this.options.selectAllText + ']', + '</label>', + '</li>' + ); + } + $.each(this.$el.children(), function(i, elm) { + html.push(that.optionToHtml(i, elm)); + }); + html.push('<li class="ms-no-results">No matches found</li>'); + html.push('</ul>'); + this.$drop.html(html.join('')); + this.$drop.find('ul').css('max-height', this.options.maxHeight + 'px'); + this.$drop.find('.multiple').css('width', this.options.multipleWidth + 'px'); + + this.$searchInput = this.$drop.find('.ms-search input'); + this.$selectAll = this.$drop.find('input[' + this.selectAllName + ']'); + this.$selectGroups = this.$drop.find('input[' + this.selectGroupName + ']'); + this.$selectItems = this.$drop.find('input[' + this.selectItemName + ']:enabled'); + this.$disableItems = this.$drop.find('input[' + this.selectItemName + ']:disabled'); + this.$noResults = this.$drop.find('.ms-no-results'); + this.events(); + this.update(); + + if (this.options.isOpen) { + this.open(); + } + }, + + optionToHtml: function(i, elm, group, groupDisabled) { + var that = this, + $elm = $(elm), + html = [], + multiple = this.options.multiple, + disabled, + type = this.options.single ? 'radio' : 'checkbox'; + + if ($elm.is('option')) { + var value = $elm.val(), + text = $elm.text(), + selected = $elm.prop('selected'), + style = this.options.styler(value) ? ' style="' + this.options.styler(value) + '"' : ''; + + disabled = groupDisabled || $elm.prop('disabled'); + html.push( + '<li' + (multiple ? ' class="multiple"' : '') + style + '>', + '<label' + (disabled ? ' class="disabled"' : '') + '>', + '<input type="' + type + '" ' + this.selectItemName + ' value="' + value + '"' + + (selected ? ' checked="checked"' : '') + + (disabled ? ' disabled="disabled"' : '') + + (group ? ' data-group="' + group + '"' : '') + + '/> ', + text, + '</label>', + '</li>' + ); + } else if (!group && $elm.is('optgroup')) { + var _group = 'group_' + i, + label = $elm.attr('label'); + + disabled = $elm.prop('disabled'); + html.push( + '<li class="group">', + '<label class="optgroup' + (disabled ? ' disabled' : '') + '" data-group="' + _group + '">', + '<input type="checkbox" ' + this.selectGroupName + + (disabled ? ' disabled="disabled"' : '') + ' /> ', + label, + '</label>', + '</li>'); + $.each($elm.children(), function(i, elm) { + html.push(that.optionToHtml(i, elm, _group, disabled)); + }); + } + return html.join(''); + }, + + events: function() { + var that = this; + this.$choice.off('click').on('click', function(e) { + e.preventDefault(); + that[that.options.isOpen ? 'close' : 'open'](); + }) + .off('focus').on('focus', this.options.onFocus) + .off('blur').on('blur', this.options.onBlur); + + this.$parent.off('keydown').on('keydown', function(e) { + switch (e.which) { + case 27: // esc key + that.close(); + that.$choice.focus(); + break; + } + }); + this.$searchInput.off('keyup').on('keyup', function() { + that.filter(); + }); + this.$selectAll.off('click').on('click', function() { + var checked = $(this).prop('checked'), + $items = that.$selectItems.filter(':visible'); + if ($items.length === that.$selectItems.length) { + that[checked ? 'checkAll' : 'uncheckAll'](); + } else { // when the filter option is true + that.$selectGroups.prop('checked', checked); + $items.prop('checked', checked); + that.options[checked ? 'onCheckAll' : 'onUncheckAll'](); + that.update(); + } + }); + this.$selectGroups.off('click').on('click', function() { + var group = $(this).parent().attr('data-group'), + $items = that.$selectItems.filter(':visible'), + $children = $items.filter('[data-group="' + group + '"]'), + checked = $children.length !== $children.filter(':checked').length; + $children.prop('checked', checked); + that.updateSelectAll(); + that.update(); + that.options.onOptgroupClick({ + label: $(this).parent().text(), + checked: checked, + children: $children.get() + }); + }); + this.$selectItems.off('click').on('click', function() { + that.updateSelectAll(); + that.update(); + that.updateOptGroupSelect(); + that.options.onClick({ + label: $(this).parent().text(), + value: $(this).val(), + checked: $(this).prop('checked') + }); + }); + }, + + open: function() { + if (this.$choice.hasClass('disabled')) { + return; + } + this.options.isOpen = true; + this.$choice.find('>div').addClass('open'); + this.$drop.show(); + if (this.options.container) { + var offset = this.$drop.offset(); + this.$drop.appendTo($(this.options.container)); + this.$drop.offset({ top: offset.top, left: offset.left }); + } + if (this.options.filter) { + this.$searchInput.val(''); + this.filter(); + } + this.options.onOpen(); + }, + + close: function() { + this.options.isOpen = false; + this.$choice.find('>div').removeClass('open'); + this.$drop.hide(); + if (this.options.container) { + this.$parent.append(this.$drop); + this.$drop.css({ + 'top': 'auto', + 'left': 'auto' + }) + } + this.options.onClose(); + }, + + update: function() { + var selects = this.getSelects('text'), + $span = this.$choice.find('>span'); + if (selects.length === this.$selectItems.length + this.$disableItems.length && this.options.allSelected) { + $span.removeClass('placeholder').html(this.options.allSelected); + } else if (selects.length > this.options.minumimCountSelected && this.options.countSelected) { + $span.removeClass('placeholder').html(this.options.countSelected + .replace('#', selects.length) + .replace('%', this.$selectItems.length + this.$disableItems.length)); + } else if (selects.length) { + $span.removeClass('placeholder').html(selects.join(', ')); + } else { + $span.addClass('placeholder').html(this.options.placeholder); + } + // set selects to select + this.$el.val(this.getSelects()); + }, + + updateSelectAll: function() { + var $items = this.$selectItems.filter(':visible'); + this.$selectAll.prop('checked', $items.length && + $items.length === $items.filter(':checked').length); + if (this.$selectAll.prop('checked')) { + this.options.onCheckAll(); + } + }, + + updateOptGroupSelect: function() { + var $items = this.$selectItems.filter(':visible'); + $.each(this.$selectGroups, function(i, val) { + var group = $(val).parent().attr('data-group'), + $children = $items.filter('[data-group="' + group + '"]'); + $(val).prop('checked', $children.length && + $children.length === $children.filter(':checked').length); + }); + }, + + //value or text, default: 'value' + getSelects: function(type) { + var that = this, + texts = [], + values = []; + this.$drop.find('input[' + this.selectItemName + ']:checked').each(function() { + texts.push($(this).parent().text()); + values.push($(this).val()); + }); + + if (type === 'text' && this.$selectGroups.length) { + texts = []; + this.$selectGroups.each(function() { + var html = [], + text = $.trim($(this).parent().text()), + group = $(this).parent().data('group'), + $children = that.$drop.find('[' + that.selectItemName + '][data-group="' + group + '"]'), + $selected = $children.filter(':checked'); + + if ($selected.length === 0) { + return; + } + + html.push('['); + html.push(text); + if ($children.length > $selected.length) { + var list = []; + $selected.each(function() { + list.push($(this).parent().text()); + }); + html.push(': ' + list.join(', ')); + } + html.push(']'); + texts.push(html.join('')); + }); + } + return type === 'text' ? texts : values; + }, + + setSelects: function(values) { + var that = this; + this.$selectItems.prop('checked', false); + $.each(values, function(i, value) { + that.$selectItems.filter('[value="' + value + '"]').prop('checked', true); + }); + this.$selectAll.prop('checked', this.$selectItems.length === + this.$selectItems.filter(':checked').length); + this.update(); + }, + + enable: function() { + this.$choice.removeClass('disabled'); + }, + + disable: function() { + this.$choice.addClass('disabled'); + }, + + checkAll: function() { + this.$selectItems.prop('checked', true); + this.$selectGroups.prop('checked', true); + this.$selectAll.prop('checked', true); + this.update(); + this.options.onCheckAll(); + }, + + uncheckAll: function() { + this.$selectItems.prop('checked', false); + this.$selectGroups.prop('checked', false); + this.$selectAll.prop('checked', false); + this.update(); + this.options.onUncheckAll(); + }, + + focus: function() { + this.$choice.focus(); + this.options.onFocus(); + }, + + blur: function() { + this.$choice.blur(); + this.options.onBlur(); + }, + + refresh: function() { + this.init(); + }, + + filter: function() { + var that = this, + text = $.trim(this.$searchInput.val()).toLowerCase(); + if (text.length === 0) { + this.$selectItems.parent().show(); + this.$disableItems.parent().show(); + this.$selectGroups.parent().show(); + } else { + this.$selectItems.each(function() { + var $parent = $(this).parent(); + $parent[$parent.text().toLowerCase().indexOf(text) < 0 ? 'hide' : 'show'](); + }); + this.$disableItems.parent().hide(); + this.$selectGroups.each(function() { + var $parent = $(this).parent(); + var group = $parent.attr('data-group'), + $items = that.$selectItems.filter(':visible'); + $parent[$items.filter('[data-group="' + group + '"]').length === 0 ? 'hide' : 'show'](); + }); + + //Check if no matches found + if (this.$selectItems.filter(':visible').length) { + this.$selectAll.parent().show(); + this.$noResults.hide(); + } else { + this.$selectAll.parent().hide(); + this.$noResults.show(); + } + } + this.updateOptGroupSelect(); + this.updateSelectAll(); + } + }; + + $.fn.multipleSelect = function() { + var option = arguments[0], + args = arguments, + + value, + allowedMethods = [ + 'getSelects', 'setSelects', + 'enable', 'disable', + 'checkAll', 'uncheckAll', + 'focus', 'blur', + 'refresh' + ]; + + this.each(function() { + var $this = $(this), + data = $this.data('multipleSelect'), + options = $.extend({}, $.fn.multipleSelect.defaults, + $this.data(), typeof option === 'object' && option); + + if (!data) { + data = new MultipleSelect($this, options); + $this.data('multipleSelect', data); + } + + if (typeof option === 'string') { + if ($.inArray(option, allowedMethods) < 0) { + throw "Unknown method: " + option; + } + value = data[option](args[1]); + } else { + data.init(); + } + }); + + return value ? value : this; + }; + + $.fn.multipleSelect.defaults = { + name: '', + isOpen: false, + placeholder: '', + selectAll: true, + selectAllText: 'Select all', + allSelected: 'All selected', + minumimCountSelected: 3, + countSelected: '# of % selected', + multiple: false, + multipleWidth: 80, + single: false, + filter: false, + width: undefined, + maxHeight: 250, + container: null, + position: 'bottom', + keepOpen: false, + + styler: function() {return false;}, + + onOpen: function() {return false;}, + onClose: function() {return false;}, + onCheckAll: function() {return false;}, + onUncheckAll: function() {return false;}, + onFocus: function() {return false;}, + onBlur: function() {return false;}, + onOptgroupClick: function() {return false;}, + onClick: function() {return false;} + }; +})(jQuery); diff --git a/htdocs/includes/jquery/plugins/multiple-select/multiple-select.css b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.css new file mode 100644 index 0000000000000000000000000000000000000000..d824e0c7a2b0d9a796d4390c51eab945ed089d06 --- /dev/null +++ b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.css @@ -0,0 +1,183 @@ +/** + * @author zhixin wen <wenzhixin2010@gmail.com> + */ + +.ms-parent { + display: inline-block; + position: relative; + vertical-align: middle; +} + +.ms-choice { + display: block; + height: 26px; + padding: 0; + overflow: hidden; + cursor: pointer; + border: 1px solid #aaa; + text-align: left; + white-space: nowrap; + line-height: 26px; + color: #444; + text-decoration: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + background-color: #fff; +} + +.ms-choice.disabled { + background-color: #f4f4f4; + background-image: none; + border: 1px solid #ddd; + cursor: default; +} + +.ms-choice > span { + position: absolute; + top: 0; + left: 0; + right: 20px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: block; + padding-left: 8px; +} + +.ms-choice > span.placeholder { + color: #999; +} + +.ms-choice > div { + position: absolute; + top: 0; + right: 0; + width: 20px; + height: 25px; + background: url('multiple-select.png') right top no-repeat; +} + +.ms-choice > div.open { + background: url('multiple-select.png') left top no-repeat; +} + +.ms-drop { + overflow: hidden; + display: none; + margin-top: -1px; + padding: 0; + position: absolute; + z-index: 1000; + background: #fff; + color: #000; + border: 1px solid #aaa; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.ms-drop.bottom { + top: 100%; + -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15); + -moz-box-shadow: 0 4px 5px rgba(0, 0, 0, .15); + box-shadow: 0 4px 5px rgba(0, 0, 0, .15); +} + +.ms-drop.top { + bottom: 100%; + -webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15); + -moz-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15); + box-shadow: 0 -4px 5px rgba(0, 0, 0, .15); +} + +.ms-search { + display: inline-block; + margin: 0; + min-height: 26px; + padding: 4px; + position: relative; + white-space: nowrap; + width: 100%; + z-index: 10000; +} + +.ms-search input { + width: 100%; + height: auto !important; + min-height: 24px; + padding: 0 20px 0 5px; + margin: 0; + outline: 0; + font-family: sans-serif; + font-size: 1em; + border: 1px solid #aaa; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + background: #fff url('multiple-select.png') no-repeat 100% -22px; + background: url('multiple-select.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee)); + background: url('multiple-select.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%); + background: url('multiple-select.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%); + background: url('multiple-select.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%); + background: url('multiple-select.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%); + background: url('multiple-select.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%, #eeeeee 99%); +} + +.ms-search, .ms-search input { + -webkit-box-sizing: border-box; + -khtml-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.ms-drop ul { + overflow: auto; + margin: 0; + padding: 5px 8px; +} + +.ms-drop ul > li { + list-style: none; + display: list-item; + background-image: none; + position: static; +} + +.ms-drop ul > li .disabled { + opacity: .35; + filter: Alpha(Opacity=35); +} + +.ms-drop ul > li.multiple { + display: block; + float: left; +} + +.ms-drop ul > li.group { + clear: both; +} + +.ms-drop ul > li.multiple label { + width: 100%; + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.ms-drop ul > li label.optgroup { + font-weight: bold; +} + +.ms-drop input[type="checkbox"] { + vertical-align: middle; +} + +.ms-drop .ms-no-results { + display: none; +} \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/multiple-select/multiple-select.jquery.json b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.jquery.json new file mode 100644 index 0000000000000000000000000000000000000000..dd636fda7e0beddf36303b2f3c7d9c4c3b5ce4a0 --- /dev/null +++ b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.jquery.json @@ -0,0 +1,28 @@ +{ + "name": "multiple-select", + "version": "1.1.0", + "title": "Multiple Select", + "description": "Multiple select is a jQuery plugin to select multiple elements with checkboxes :).", + "author": { + "name": "zhixin wen", + "email": "wenzhixin2010@gmail.com", + "url": "http://wenzhixin.net.cn/" + }, + "licenses": [ + { + "type": "MIT License", + "url": "http://opensource.org/licenses/MIT" + } + ], + "dependencies": { + "jquery": ">=1.7" + }, + "keywords": ["multiple.select", "select.list", "multiple.choose", "checkbox"], + "homepage": "http://wenzhixin.net.cn/p/multiple-select/", + "demo": "http://wenzhixin.net.cn/p/multiple-select/#examples", + "bugs": { + "url": "https://github.com/wenzhixin/multiple-select/issues" + }, + "docs": "http://wenzhixin.net.cn/p/multiple-select/#documentation", + "download": "https://github.com/wenzhixin/multiple-select/archive/master.zip" +} \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/multiple-select/multiple-select.png b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.png new file mode 100644 index 0000000000000000000000000000000000000000..2a7ba608ea846d4873f84e00455ee2d1bbe4d13a Binary files /dev/null and b/htdocs/includes/jquery/plugins/multiple-select/multiple-select.png differ diff --git a/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt b/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt deleted file mode 100644 index 1076f8b4b2b4994d46d9037c1564fb8760cdf222..0000000000000000000000000000000000000000 --- a/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2009 Michael Aufreiter, http://www.quasipartikel.at - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/multiselect/css/ui.multiselect.css b/htdocs/includes/jquery/plugins/multiselect/css/ui.multiselect.css deleted file mode 100644 index 7d3a44801d24ded885996c6b267178641b1e48e7..0000000000000000000000000000000000000000 --- a/htdocs/includes/jquery/plugins/multiselect/css/ui.multiselect.css +++ /dev/null @@ -1,31 +0,0 @@ -/* Multiselect -----------------------------------*/ - -.ui-multiselect { border: solid 1px; font-size: 0.8em; } -.ui-multiselect ul { -moz-user-select: none; } -.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; padding-right: 18px; overflow: hidden; } -.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;} -.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; } - -.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; } -.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; } - -.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; } -.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; } -.ui-multiselect ul.available li { padding-left: 10px; } - -.ui-multiselect div.right-column { border-left: 1px solid; } - -.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;} -.ui-multiselect .ui-state-hover { border: none; } -.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;} - -.ui-multiselect .add-all { float: right; padding: 7px;} -.ui-multiselect .remove-all { float: right; padding: 7px;} -.ui-multiselect .search { float: left; padding: 4px;} -.ui-multiselect .count { float: left; padding: 7px;} - -.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; } -.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; } - -.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; } \ No newline at end of file diff --git a/htdocs/includes/jquery/plugins/multiselect/js/ui.multiselect.js b/htdocs/includes/jquery/plugins/multiselect/js/ui.multiselect.js deleted file mode 100644 index eb4578fc78227d382d396f9d8b09cda1a64e60a4..0000000000000000000000000000000000000000 --- a/htdocs/includes/jquery/plugins/multiselect/js/ui.multiselect.js +++ /dev/null @@ -1,480 +0,0 @@ -/* - * jQuery UI Multiselect - * - * Authors: - * Michael Aufreiter (quasipartikel.at) - * Yanick Rochon (yanick.rochon[at]gmail[dot]com) - * - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://www.quasipartikel.at/multiselect/ - * - * - * Depends: - * ui.core.js - * ui.sortable.js - * - * Optional: - * localization (http://plugins.jquery.com/project/localisation) - * scrollTo (http://plugins.jquery.com/project/ScrollTo) - * - * Todo: - * Make batch actions faster - * Implement dynamic insertion through remote calls - */ - - -(function($) { - -$.widget("ui.multiselect", { - options: { - sortable: true, - dragToAdd: true, - searchable: true, - doubleClickable: true, - animated: 'fast', - show: 'slideDown', - hide: 'slideUp', - dividerLocation: 0.6, - selectedContainerOnLeft: true, - width: null, - height: null, - nodeComparator: function(node1,node2) { - var text1 = node1.text(), - text2 = node2.text(); - return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1); - }, - includeRemoveAll: true, - includeAddAll: true, - pressEnterKeyToAddAll: false - }, - _create: function() { - this.element.hide(); - this.id = this.element.attr("id"); - this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element); - this.count = 0; // number of currently selected options - this.selectedContainer = $('<div class="selected"></div>'); - if (this.options.selectedContainerOnLeft) { - this.selectedContainer.appendTo(this.container); - this.availableContainer = $('<div class="available"></div>').appendTo(this.container); - this.availableContainer.addClass('right-column'); - } - else - { - this.availableContainer = $('<div class="available"></div>').appendTo(this.container); - this.selectedContainer.appendTo(this.container); - this.selectedContainer.addClass('right-column'); - } - this.selectedActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span>'+(this.options.includeRemoveAll?'<a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a>':'<span class="remove-all"> </span>')+'</div>').appendTo(this.selectedContainer); - this.availableActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/>'+(this.options.includeAddAll?'<a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a>':'<span class="add-all"> </span>')+'</div>').appendTo(this.availableContainer); - this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer); - this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer); - - var that = this; - - var width = this.options.width; - if (!width) { - width = this.element.width(); - } - var height = this.options.height; - if (!height) { - height = this.element.height(); - } - - // set dimensions - this.container.width(width-2); - if (this.options.selectedContainerOnLeft) { - this.selectedContainer.width(Math.floor(width*this.options.dividerLocation)-1); - this.availableContainer.width(Math.floor(width*(1-this.options.dividerLocation))-2); - } - else - { - this.selectedContainer.width(Math.floor(width*this.options.dividerLocation)-2); - this.availableContainer.width(Math.floor(width*(1-this.options.dividerLocation))-1); - } - - // fix list height to match <option> depending on their individual header's heights - this.selectedList.height(Math.max(height-this.selectedActions.height(),1)); - this.availableList.height(Math.max(height-this.availableActions.height(),1)); - - if ( !this.options.animated ) { - this.options.show = 'show'; - this.options.hide = 'hide'; - } - - // init lists - this._populateLists(this.element.find('option')); - - // make selection sortable - if (this.options.sortable) { - this.selectedList.sortable({ - placeholder: 'ui-state-highlight', - axis: 'y', - update: function(event, ui) { - // apply the new sort order to the original selectbox - that.selectedList.find('li').each(function() { - if ($(this).data('optionLink')) - $(this).data('optionLink').remove().appendTo(that.element); - }); - }, - beforeStop: function (event, ui) { - // This lets us recognize which item was just added to - // the list in receive, per the workaround for not being - // able to reference the new element. - ui.item.addClass('dropped'); - }, - receive: function(event, ui) { - ui.item.data('optionLink').attr('selected', true); - // increment count - that.count += 1; - that._updateCount(); - // workaround, because there's no way to reference - // the new element, see http://dev.jqueryui.com/ticket/4303 - that.selectedList.children('.dropped').each(function() { - $(this).removeClass('dropped'); - $(this).data('optionLink', ui.item.data('optionLink')); - $(this).data('idx', ui.item.data('idx')); - that._applyItemState($(this), true); - }); - - // workaround according to http://dev.jqueryui.com/ticket/4088 - setTimeout(function() { ui.item.remove(); }, 1); - }, - stop: function (event, ui) { that.element.change(); } - }); - } - - // set up livesearch - if (this.options.searchable) { - this._registerSearchEvents(this.availableContainer.find('input.search')); - } else { - $('.search').hide(); - } - - // batch actions - this.container.find(".remove-all").click(function() { - that._populateLists(that.element.find('option').removeAttr('selected')); - that.element.trigger('change'); - return false; - }); - - this.container.find(".add-all").click(function() { - var options = that.element.find('option').not(":selected"); - if (that.availableList.children('li:hidden').length > 1) { - that.availableList.children('li').each(function(i) { - if ($(this).is(":visible")) $(options[i-1]).attr('selected', 'selected'); - }); - } else { - options.attr('selected', 'selected'); - } - that._populateLists(that.element.find('option')); - that.element.trigger('change'); - if (that.options.pressEnterKeyToAddAll) { - //clear input after add all - $('input.search').val(""); - } - - return false; - }); - }, - destroy: function() { - this.element.show(); - this.container.remove(); - - $.Widget.prototype.destroy.apply(this, arguments); - }, - addOption: function(option) { - // Append the option - option = $(option); - var select = this.element; - select.append(option); - - var item = this._getOptionNode(option).appendTo(option.attr('selected') ? this.selectedList : this.availableList).show(); - - if (option.attr('selected')) { - this.count += 1; - } - this._applyItemState(item, option.attr('selected')); - item.data('idx', this.count); - - // update count - this._updateCount(); - this._filter.apply(this.availableContainer.find('input.search'), [this.availableList]); - }, - // Redisplay the lists of selected/available options. - // Call this after you've selected/unselected some options programmatically. - // GRIPE This is O(n) where n is the length of the list - seems like - // there must be a smarter way of doing this, but I have not been able - // to come up with one. I see no way to detect programmatic setting of - // the option's selected property, and without that, it seems like we - // can't have a general-case listener that does its thing every time an - // option is selected. - refresh: function() { - // Redisplay our lists. - this._populateLists(this.element.find('option')); - }, - _populateLists: function(options) { - this.selectedList.children('.ui-element').remove(); - this.availableList.children('.ui-element').remove(); - this.count = 0; - - var that = this; - var groups = $(this.element).find("optgroup").map(function(i) { - return that._getOptionGroup($(this)); - }); - groups.appendTo(this.selectedList.add(this.availableList)); - - var items = $(options.map(function(i) { - var item = that._getOptionNode(this).appendTo(that._getOptionList(this)).show(); - - if (this.selected) that.count += 1; - that._applyItemState(item, this.selected); - item.data('idx', i); - return item[0]; - })); - - // update count - this._updateCount(); - that._filter.apply(this.availableContainer.find('input.search'), [that.availableList]); - }, - _getOptionList: function(option) { - var selected = option.selected; - option = $(option); - var $list = selected ? this.selectedList : this.availableList; - var $group = option.closest("optgroup"); - if ($group.length === 0) { - return $list; - } else { - var $groupList = $list.find("ul[title='" + $group.attr("label") + "']"); - if ($groupList.length === 0) { - $groupList = $("<ul class='ui-state-default ui-element available' title='" + $group.attr("label") + "'>" + $group.attr("label") + "</ul>").appendTo($list); - } - $groupList.show(); - return $groupList; - } - }, - _getOptionGroup : function(optgroup) { - var groupNode = $("<ul class='ui-state-default ui-element available' title='" + optgroup.attr("label") + "'>" + optgroup.attr("label") + "</ul>").hide(); - return groupNode[0]; - }, - _updateCount: function() { - this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount); - }, - _getOptionNode: function(option) { - option = $(option); - var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"/>'+option.text()+'<a href="#" class="action"><span class="ui-corner-all ui-icon"/></a></li>').hide(); - node.data('optionLink', option); - return node; - }, - // clones an item with associated data - // didn't find a smarter away around this - _cloneWithData: function(clonee) { - var clone = clonee.clone(false,false); - clone.data('optionLink', clonee.data('optionLink')); - clone.data('idx', clonee.data('idx')); - return clone; - }, - _setSelected: function(item, selected) { - var temp = item.data('optionLink').attr('selected', selected); - var parent = temp.parent(); - temp.detach().appendTo(parent); - this.element.trigger('change'); - - if (selected) { - var selectedItem = this._cloneWithData(item); - item[this.options.hide](this.options.animated, function() { - if (item.siblings().length === 0) { - item.closest("ul[title]").hide(); - } - $(this).remove(); - }); - // get group to add it to... - var $list = this._getOptionList(selectedItem.data("optionLink")[0]); - selectedItem.appendTo($list).hide()[this.options.show](this.options.animated); - - this._applyItemState(selectedItem, true); - return selectedItem; - } else { - - // look for successor based on initial option index - var items = this.availableList.find('li'), comparator = this.options.nodeComparator; - var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i])); - - // TODO: test needed for dynamic list populating - if ( direction ) { - while (i>=0 && i<items.length) { - direction > 0 ? i++ : i--; - if ( direction != comparator(item, $(items[i])) ) { - // going up, go back one item down, otherwise leave as is - succ = items[direction > 0 ? i : i+1]; - var group1 = item.closest("ul[title]"), - group2 = $(succ).closest("ul[title]"); - if (group1.length !== 0 && group2.length !== 0) { - if (group1.attr("title") !== group2.attr("title")) { - succ = null; - } - } - break; - } - } - } else { - succ = items[i]; - } - - var availableItem = this._cloneWithData(item); - var $list = this._getOptionList(availableItem.data("optionLink")[0]); - succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo($list); - item[this.options.hide](this.options.animated, function() { - if (item.siblings().length === 0) { - item.closest("ul[title]").hide(); - } - $(this).remove(); - }); - availableItem.hide()[this.options.show](this.options.animated); - - this._applyItemState(availableItem, false); - return availableItem; - } - }, - _applyItemState: function(item, selected) { - if (selected) { - if (this.options.sortable) - item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon'); - else - item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon'); - item.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus'); - this._registerRemoveEvents(item.find('a.action')); - - } else { - item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon'); - item.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus'); - this._registerAddEvents(item.find('a.action')); - } - - this._registerDoubleClickEvents(item); - this._registerHoverEvents(item); - }, - // taken from John Resig's liveUpdate script - _filter: function(list) { - var input = $(this); - var rows = list.find('li'), - cache = rows.map(function(){ - - return $(this).text().toLowerCase(); - }); - - var term = $.trim(input.val().toLowerCase()), scores = []; - - if (!term) { - rows.show(); - } else { - rows.hide(); - - cache.each(function(i) { - if (this.indexOf(term)>-1) { scores.push(i); } - }); - - $.each(scores, function() { - $(rows[this]).show(); - }); - } - }, - _registerDoubleClickEvents: function(elements) { - if (!this.options.doubleClickable) return; - elements.dblclick(function() { - elements.find('a.action').click(); - }); - }, - _registerHoverEvents: function(elements) { - elements.removeClass('ui-state-hover'); - elements.mouseover(function() { - $(this).addClass('ui-state-hover'); - }); - elements.mouseout(function() { - $(this).removeClass('ui-state-hover'); - }); - }, - _registerAddEvents: function(elements) { - var that = this; - elements.click(function() { - var item = that._setSelected($(this).parent(), true); - that.count += 1; - that._updateCount(); - - // Prevent extra clicks from triggering bogus add events, if a user - // tries clicking during the removal process. - $(this).unbind('click'); - - return false; - }); - - // make draggable - if (this.options.sortable && this.options.dragToAdd) { - elements.each(function() { - $(this).parent().draggable({ - connectToSortable: that.selectedList, - helper: function() { - var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50); - selectedItem.width($(this).width()); - return selectedItem; - }, - appendTo: that.container, - containment: that.container, - revert: 'invalid' - }); - }); - } - }, - _registerRemoveEvents: function(elements) { - var that = this; - elements.click(function() { - that._setSelected($(this).parent(), false); - that.count -= 1; - that._updateCount(); - - // Prevent extra clicks from triggering bogus remove events, if a - // user tries clicking during the removal process. - $(this).unbind('click'); - - return false; - }); - }, - _registerSearchEvents: function(input) { - var that = this; - - input.focus(function() { - $(this).addClass('ui-state-active'); - }) - .blur(function() { - $(this).removeClass('ui-state-active'); - }) - .keypress(function(e) { - if (e.keyCode == 13) { - if (that.options.pressEnterKeyToAddAll) { - //on Enter, if a filter is present add all, then clear the input - var str = $('input.search').val(); - if (str !== undefined && str !== null && str !== "") { - $('a.add-all').click(); - $('input.search').val(""); - } - } - return false; - } - }) - .keyup(function() { - that._filter.apply(this, [that.availableList]); - }); - } -}); - -$.extend($.ui.multiselect, { - locale: { - addAll:'Add all', - removeAll:'Remove all', - itemsCount:'items selected' - } -}); - - -})(jQuery); diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index 225466ca453cbc03ee14244edbc3f505fad905fe..d4b79af8013028bfa20beaa625d58d1b41e6666b 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -610,6 +610,21 @@ IMG; closedir($handle); } } + + /** + * return the value present on odt in [valuename][/valuename] + * @param string $value name balise in the template + * @return string the value inside the balise + * + */ + public function getvalue($valuename) + { + $searchreg="/\\[".$valuename."\\](.*)\\[\\/".$valuename."\\]/"; + preg_match($searchreg, $this->contentXml, $matches); + $this->contentXml = preg_replace($searchreg, "", $this->contentXml); + return $matches[1]; + } + } ?> diff --git a/htdocs/install/mssql/functions/functions.sql b/htdocs/install/mssql/functions/functions.sql index 93766a224064a3dc68cab3dc0878f1477af69f1d..1c2c76996dc312cc2440a2329d46530adb815d7c 100644 Binary files a/htdocs/install/mssql/functions/functions.sql and b/htdocs/install/mssql/functions/functions.sql differ diff --git a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql old mode 100644 new mode 100755 diff --git a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql old mode 100644 new mode 100755 index 4c31bef80557e0e0d99631eaa95821cf5e41091b..e8c77100bf9153b164c8cc43b2d855724150f952 --- a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql +++ b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql @@ -28,6 +28,7 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2); ALTER TABLE llx_notify ADD COLUMN fk_soc integer NULL after fk_action; +ALTER TABLE llx_notify ADD COLUMN type varchar(16) DEFAULT 'email' after fk_soc; ALTER TABLE llx_bank_account ADD COLUMN fk_user_author integer; @@ -55,7 +56,7 @@ ALTER TABLE llx_user ADD COLUMN fk_user_creat integer AFTER tms; ALTER TABLE llx_user ADD COLUMN fk_user_modif integer AFTER fk_user_creat; -- Add module accounting Expert -ALTER TABLE llx_bookkeeping RENAME TO llx_accounting_bookkeeping; -- To update old user of module Accounting Expert +--ALTER TABLE llx_bookkeeping RENAME TO llx_accounting_bookkeeping; -- To update old user of module Accounting Expert -> Line should be added into file sql/x.y.z-a.b.c.sql of module. CREATE TABLE llx_accounting_bookkeeping @@ -181,7 +182,9 @@ ALTER TABLE llx_product MODIFY COLUMN fk_barcode_type INTEGER NULL DEFAULT NULL; UPDATE llx_product SET fk_barcode_type = NULL WHERE fk_barcode_type = 0; ALTER TABLE llx_product ADD INDEX idx_product_fk_barcode_type (fk_barcode_type); UPDATE llx_product SET fk_barcode_type = NULL WHERE fk_barcode_type NOT IN (SELECT rowid from llx_c_barcode_type); -ALTER TABLE llx_product ADD CONSTRAINT fk_product_barcode_type FOREIGN KEY (fk_barcode_type) REFERENCES llx_c_barcode_type (rowid); + +-- This request make mysql drop (mysql bug): +ALTER TABLE llx_product ADD CONSTRAINT fk_product_barcode_type FOREIGN KEY (fk_barcode_type) REFERENCES llx_c_barcode_type(rowid); -- Added missing relations of llx_product_price diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql old mode 100644 new mode 100755 index 57a8944034393ec2a8da21ed38154b59cfca2be8..4083ba2f7b90c56a3f1bebb741a6d21ce746c84d --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -187,3 +187,20 @@ UPDATE llx_projet_task_time set task_datehour = task_date where task_datehour IS -- update llx_facturedet set total_tva = total_ttc - total_ht where total_vat = 0; -- update llx_facture set total = round(total_ttc / 1.2, 5) where total_ht = total_ttc; -- update llx_facture set tva = total_ttc - total where tva = 0; + +-- To insert elements into a category +-- Search idcategory: select rowid from llx_categorie where type=0 and ref like '%xxx%' +-- Select all products to include: select * from llx_product where ref like '%xxx%' +-- If ok, insert: insert into llx_categorie_product(fk_categorie, fk_product) select idcategory, rowid from llx_product where ref like '%xxx%' +-- List of product with a category xxx: select distinct cp.fk_product from llx_categorie_product as cp, llx_categorie as c where cp.fk_categorie = c.rowid and c.label like 'xxx-%' order by fk_product; +-- List of product into 2 categories xxx: select cp.fk_product, count(cp.fk_product) as nb from llx_categorie_product as cp, llx_categorie as c where cp.fk_categorie = c.rowid and c.label like 'xxx-%' group by fk_product having nb > 1; +-- List of product with no category xxx yet: select rowid, ref from llx_product where rowid not in (select distinct cp.fk_product from llx_categorie_product as cp, llx_categorie as c where cp.fk_categorie = c.rowid and c.label like 'xxx-%' order by fk_product); + +-- Replace xxx with your IP Address +-- bind-address = xxx.xxx.xxx.xxx +-- CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass'; +-- CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass'; +-- GRANT ALL ON *.* TO 'myuser'@'localhost'; +-- GRANT ALL ON *.* TO 'myuser'@'%'; +-- flush privileges; + diff --git a/htdocs/install/mysql/tables/llx_notify.sql b/htdocs/install/mysql/tables/llx_notify.sql index 21a7b833dec3e320b1af3be1c90867531fd6b690..1dcfe6af8e616b86f85780ca021e8e3e8ece05e5 100644 --- a/htdocs/install/mysql/tables/llx_notify.sql +++ b/htdocs/install/mysql/tables/llx_notify.sql @@ -1,6 +1,7 @@ -- =================================================================== -- Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- Copyright (C) 2009 Laurent Destailleur <eldy@users.sourceforge.net> +-- 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 @@ -26,6 +27,7 @@ create table llx_notify fk_soc integer NULL, fk_contact integer NULL, fk_user integer NULL, + type varchar(16) DEFAULT 'email', objet_type varchar(24) NOT NULL, objet_id integer NOT NULL, email varchar(255) diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql index 7822ed57a09f61af57c74d2c1a3d1888094e16b6..e28cf0622243205b071eb54a087dd58316bb71ae 100644 --- a/htdocs/install/mysql/tables/llx_societe.sql +++ b/htdocs/install/mysql/tables/llx_societe.sql @@ -3,6 +3,7 @@ -- Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net> -- Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com> -- Copyright (C) 2010 Juanjo Menent <dolibarr@2byte.es> +-- Copyright (C) 2014 Teddy Andreotti <125155@supinfo.com> -- -- 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 @@ -91,7 +92,7 @@ create table llx_societe default_lang varchar(6), -- default language logo varchar(255), canvas varchar(32), -- type of canvas if used (null by default) - import_key varchar(14) -- import key + import_key varchar(14), -- import key webservices_url varchar(255), -- supplier webservice url - webservices_key varchar(128), -- supplier webservice key + webservices_key varchar(128) -- supplier webservice key )ENGINE=innodb; diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php old mode 100644 new mode 100755 index d89596e25e613daa2db265f3c1660f4bc497b7c5..396c9f96b013b39a8835b2ac5f4093360cf11da0 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -50,6 +50,7 @@ error_reporting(0); @set_time_limit(120); error_reporting($err); + $setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):'auto'; $langs->setDefaultLang($setuplang); $versionfrom=GETPOST("versionfrom",'',3)?GETPOST("versionfrom",'',3):(empty($argv[1])?'':$argv[1]); @@ -74,6 +75,22 @@ if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initial * View */ +if (! $versionfrom && ! $versionto) +{ + print 'Error: Parameter versionfrom or versionto missing.'."\n"; + print 'Upgrade must be ran from cmmand line with parameters or called from page install/index.php (like a first install) instead of page install/upgrade.php'."\n"; + // Test if batch mode + $sapi_type = php_sapi_name(); + $script_file = basename(__FILE__); + $path=dirname(__FILE__).'/'; + if (substr($sapi_type, 0, 3) == 'cli') + { + print 'Syntax from command line: '.$script_file." x.y.z a.b.c\n"; + } + exit; +} + + pHeader('',"upgrade2",GETPOST('action'),'versionfrom='.$versionfrom.'&versionto='.$versionto); $actiondone=0; @@ -85,12 +102,6 @@ if (! GETPOST("action") || preg_match('/upgrade/i',GETPOST('action'))) print '<h3>'.$langs->trans("DatabaseMigration").'</h3>'; - if (! $versionfrom && ! $versionto) - { - print '<div class="error">Parameter versionfrom or versionto missing. Upgrade is launched from page install/index.php (like a first install) instead of install/upgrade.php</div>'; - exit; - } - print '<table cellspacing="0" cellpadding="1" border="0" width="100%">'; $error=0; diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php old mode 100644 new mode 100755 index 0bf76c7d729fd3ba745cbd5650a07c2f4017ae7a..3a02a78f9e8fef7ef1156bb95428460e13e24f6c --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -83,6 +83,21 @@ if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initial * View */ +if (! $versionfrom && ! $versionto) +{ + print 'Error: Parameter versionfrom or versionto missing.'."\n"; + print 'Upgrade must be ran from cmmand line with parameters or called from page install/index.php (like a first install) instead of page install/upgrade.php'."\n"; + // Test if batch mode + $sapi_type = php_sapi_name(); + $script_file = basename(__FILE__); + $path=dirname(__FILE__).'/'; + if (substr($sapi_type, 0, 3) == 'cli') + { + print 'Syntax from command line: '.$script_file." x.y.z a.b.c\n"; + } + exit; +} + pHeader('','etape5',GETPOST("action")?GETPOST("action"):'upgrade','versionfrom='.$versionfrom.'&versionto='.$versionto); diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang index 66d8331e72ff3f4658f2326a8ddfb32ec9460049..b1a63938f4479b32fd2a77a91c736e816c8195ac 100644 --- a/htdocs/langs/ar_SA/install.lang +++ b/htdocs/langs/ar_SA/install.lang @@ -25,14 +25,14 @@ ErrorGoBackAndCorrectParameters=العودة إلى الوراء وتصحيح ا ErrorWrongValueForParameter=قد تكون لديكم مطبوعة خاطئة قيمة معلمة '٪ ق. ErrorFailedToCreateDatabase=فشل إنشاء قاعدة بيانات '٪ ق. ErrorFailedToConnectToDatabase=فشل في الاتصال بقاعدة البيانات '٪ ق. -ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required. +ErrorDatabaseVersionTooLow=إصدار قاعدة البيانات (s%) قديمة جدا. مطلوب نسخة s% أو أعلى 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=نسخة قديمة جدا من المتصفح. ننصحك جيدا بترقية متصفحك إلى نسخة حديثة عن فايرفوكس، كروم أو أوبرا PHPVersion=PHP الإصدار YouCanContinue=يمكنك الاستمرار... PleaseBePatient=يرجى التحلي بالصبر... @@ -154,7 +154,7 @@ MigrationShippingDelivery2=ترقية تخزين الشحن 2 MigrationFinished=الانتهاء من الهجرة LastStepDesc=<strong>الخطوة الأخيرة</strong> : تعريف المستخدم وكلمة السر هنا كنت تخطط لاستخدامها للاتصال البرمجيات. لا تفقد هذا كما هو حساب لإدارة جميع الآخرين. ActivateModule=تفعيل وحدة %s -ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode) +ShowEditTechnicalParameters=انقر هنا لعرض/تحرير المعلمات المتقدمة (وضع الخبراء) ######### # upgrade @@ -205,7 +205,7 @@ MigrationProjectUserResp=بيانات fk_user_resp مجال الهجرة من ll MigrationProjectTaskTime=تحديث الوقت الذي يقضيه في ثوان MigrationActioncommElement=تحديث البيانات على الإجراءات MigrationPaymentMode=بيانات الهجرة لطريقة الدفع -MigrationCategorieAssociation=Migration of categories +MigrationCategorieAssociation=تحديث الفئات -ShowNotAvailableOptions=Show not available options -HideNotAvailableOptions=Hide not available options +ShowNotAvailableOptions=عرض خيارات غير متوفرة +HideNotAvailableOptions=إخفاء خيارات غير متوفرة diff --git a/htdocs/langs/ar_SA/projects.lang b/htdocs/langs/ar_SA/projects.lang index 954c1f371f653496439d14ff98bdccbc2f55d2db..34c6bea737f7f0f7665fc71811287106456d7167 100644 --- a/htdocs/langs/ar_SA/projects.lang +++ b/htdocs/langs/ar_SA/projects.lang @@ -14,7 +14,7 @@ TasksDesc=هذا الرأي يعرض جميع المشاريع والمهام ( Myprojects=بلدي المشاريع ProjectsArea=مشاريع المنطقة NewProject=مشروع جديد -AddProject=يضيف المشروع +AddProject=إنشاء مشروع DeleteAProject=حذف مشروع DeleteATask=حذف مهمة ConfirmDeleteAProject=هل أنت متأكد من أنك تريد حذف هذا المشروع؟ @@ -45,7 +45,7 @@ TaskDateStart=Task start date TaskDateEnd=Task end date TaskDescription=Task description NewTask=مهمة جديدة -AddTask=إضافة مهمة +AddTask=خلق مهمة AddDuration=تضاف المدة Activity=النشاط Activities=المهام والأنشطة @@ -85,18 +85,18 @@ ActionsOnProject=الإجراءات على المشروع YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص DeleteATimeSpent=قضى الوقت حذف ConfirmDeleteATimeSpent=هل أنت متأكد أنك تريد حذف هذا الوقت الذي يقضيه؟ -DoNotShowMyTasksOnly=See also tasks not assigned to me -ShowMyTasksOnly=View only tasks assigned to me +DoNotShowMyTasksOnly=انظر أيضا المهام الغير موكلة الي +ShowMyTasksOnly=عرض فقط المهام الموكلة الي TaskRessourceLinks=ملتقيات ProjectsDedicatedToThisThirdParty=مشاريع مخصصة لهذا الطرف الثالث NoTasks=أية مهام لهذا المشروع LinkedToAnotherCompany=ربط طرف ثالث آخر -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAffectedToYou=مهمة غيرموكلة اليك ErrorTimeSpentIsEmpty=الوقت الذي يقضيه فارغة ThisWillAlsoRemoveTasks=وهذا العمل أيضا حذف كافة مهام المشروع <b>(%s</b> المهام في الوقت الحاضر) وجميع المدخلات من الوقت الذي تستغرقه. IfNeedToUseOhterObjectKeepEmpty=إذا كانت بعض الكائنات (فاتورة، والنظام، ...)، الذين ينتمون إلى طرف ثالث آخر، يجب أن تكون مرتبطة بمشروع لإنشاء، والحفاظ على هذا فارغة لديها مشروع كونها متعددة الأطراف الثالثة. -CloneProject=Clone project -CloneTasks=Clone tasks +CloneProject=استنساخ المشروع +CloneTasks=استنساخ المهام CloneContacts=Clone contacts CloneNotes=Clone notes CloneProjectFiles=Clone project joined files diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 152274fc4ec4f8125ccd9d0953ab5a2d702ff0a7..770cb6d25bf6056ebb1b2de15d2806d62db53b6e 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -108,6 +108,7 @@ ErrorWrongAccountancyCodeForCompany=Bad customer accountancy code for %s SuppliersProductsSellSalesTurnover=The generated turnover by the sales of supplier's products. CheckReceipt=Check deposit CheckReceiptShort=Check deposit +LastCheckReceiptShort=Last %s check receipts NewCheckReceipt=New discount NewCheckDeposit=New check deposit NewCheckDepositOn=Create receipt for deposit on account: %s diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index a18522be5f8daf5003e5e12fee03c08c04dadd4a..cbc4deb40d7e0acc23283f63b64cd60a43fe5f59 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -367,6 +367,7 @@ ActionsOnCompany=Events about this third party ActionsOnMember=Events about this member NActions=%s events NActionsLate=%s late +RequestAlreadyDone=Request already recorded Filter=Filter RemoveFilter=Remove filter ChartGenerated=Chart generated diff --git a/htdocs/langs/en_US/margins.lang b/htdocs/langs/en_US/margins.lang index 38b6482a4f3abf341537ff7a1322a4f9d3cdcc43..0cf9bc3441082bcc5dba627f2e391a9286ccd6d7 100644 --- a/htdocs/langs/en_US/margins.lang +++ b/htdocs/langs/en_US/margins.lang @@ -41,3 +41,4 @@ AgentContactType=Commercial agent contact type AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per sale representative rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 +ShowMarginInfos=Show margin infos \ No newline at end of file diff --git a/htdocs/langs/en_US/resource.lang b/htdocs/langs/en_US/resource.lang index fbc55081185016d1b96d2a297f26d28953c3b828..e0a767cc58adaede1dbc5c7ec0983fb83872006f 100755 --- a/htdocs/langs/en_US/resource.lang +++ b/htdocs/langs/en_US/resource.lang @@ -32,4 +32,6 @@ ResourceLinkedWithSuccess=Resource linked with success TitleResourceCard=Resource card ConfirmDeleteResource=Confirm to delete this resource RessourceSuccessfullyDeleted=Resource successfully deleted -DictionaryResourceType=Type of resources \ No newline at end of file +DictionaryResourceType=Type of resources + +SelectResource=Select resource diff --git a/htdocs/langs/en_US/sendings.lang b/htdocs/langs/en_US/sendings.lang index 2ae43f3976607147c1e8fc3a41898f572cee9868..f6111bac6841189e50c3c7fb9028962b56e3997e 100644 --- a/htdocs/langs/en_US/sendings.lang +++ b/htdocs/langs/en_US/sendings.lang @@ -61,6 +61,8 @@ ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is do RelatedShippings=Related shippings ShipmentLine=Shipment line CarrierList=List of transporters +SendingRunning=Product from customer order already sent +SuppliersReceiptRunning=Product from supplier order already received # Sending methods SendingMethodCATCH=Catch by customer diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang index dccee9d0c8eb7068ff487dadf2cc403b796ff1b0..35cfa23d9e2d7ab038ffcfa49664af822e0ddad9 100644 --- a/htdocs/langs/en_US/withdrawals.lang +++ b/htdocs/langs/en_US/withdrawals.lang @@ -16,6 +16,7 @@ WithdrawedBills=Withdrawn invoices WithdrawalsLines=Withdrawal lines RequestStandingOrderToTreat=Request for standing orders to process RequestStandingOrderTreated=Request for standing orders processed +NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Withdraw status must be set to 'credited' before declaring reject on specific lines. CustomersStandingOrders=Customer standing orders CustomerStandingOrder=Customer standing order NbOfInvoiceToWithdraw=Nb. of invoice with withdraw request @@ -76,7 +77,7 @@ WithBankUsingRIB=For bank accounts using RIB WithBankUsingBANBIC=For bank accounts using IBAN/BIC/SWIFT BankToReceiveWithdraw=Bank account to receive withdraws CreditDate=Credit on -WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country +WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported) ShowWithdraw=Show Withdraw IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one withdrawal payment not yet processed, it won't be set as paid to allow prior withdrawal management. DoStandingOrdersBeforePayments=This tab allows you to request a standing order. Once it is complete, you can type the payment to close the invoice. diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 8dfcbfc080f23504e1cf5d5e3cc32ce896773129..79935d143caab6e887ef3784b8bc89c3b08b0f80 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -484,7 +484,7 @@ Module500Desc=Gestión de los gastos especiales como impuestos, gastos sociales, Module510Name=Salarios Module510Desc=Gestión de salarios y pagos Module600Name=Notificaciones -Module600Desc=Envío de notificaciones (por correo electrónico) sobre los eventos de trabajo Dolibarr +Module600Desc=Envío de notificaciones por e-mail en algunos eventos de negocio de Dolibarr a contactos de terceros (configurado en cada tercero) Module700Name=Donaciones Module700Desc=Gestión de donaciones Module1200Name=Mantis @@ -514,16 +514,16 @@ Module5000Name=Multi-empresa Module5000Desc=Permite gestionar varias empresas Module6000Name=Flujo de trabajo Module6000Desc=Gestión del flujo de trabajo -Module20000Name=Días libres -Module20000Desc=Gestión de los días libres de los empleados +Module20000Name=Gestión de días libres retribuidos +Module20000Desc=Gestión de los días libres retribuidos de los empleados Module39000Name=Lotes de productos Module39000Desc=Gestión de lotes y fechas de caducidad y venta de los productos Module50000Name=PayBox Module50000Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paybox Module50100Name=TPV Module50100Desc=Terminal Punto de Venta para la venta en mostrador -Module50200Name= Paypal -Module50200Desc= Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal +Module50200Name=Paypal +Module50200Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal Module50400Name=Contabilidad (avanzada) Module50400Desc=Gestión contable (doble partida) Module54000Name=PrintIPP @@ -611,10 +611,11 @@ Permission162=Crear/modificar contratos de servicio Permission163=Activar los servicios de un contrato Permission164=Desactivar los servicios de un contrato Permission165=Eliminar contratos -Permission171=Leer los desplazamientos -Permission172=Crear/modificar los desplazamientos -Permission173=Eliminar desplazamientos -Permission178=Exportar desplazamientos +Permission171=Leer honorarios (propios y de sus subordinados) +Permission172=Crear/modificar honorarios +Permission173=Eliminar honorarios +Permission174=Leer todos los honorarios +Permission178=Exportar honorarios Permission180=Consultar proveedores Permission181=Consultar pedidos a proveedores Permission182=Crear/modificar pedidos a proveedores @@ -1074,7 +1075,7 @@ ModuleCompanyCodeAquarium=Devuelve un código contable compuesto de<br>%s seguid ModuleCompanyCodePanicum=Devuelve un código contable vacío. ModuleCompanyCodeDigitaria=Devuelve un código contable compuesto siguiendo el código de tercero. El código está formado por carácter ' C ' en primera posición seguido de los 5 primeros caracteres del código tercero. UseNotifications=Usar notificaciones -NotificationsDesc=La función de las notificaciones permite enviar automáticamente un correo electrónico para un determinado evento Dolibarr en las empresas configuradas para ello +NotificationsDesc=La función de las notificaciones permite enviar automáticamente un e-mail para algunos eventos de Dolibarr. Los destinatarios de las notificaciones pueden definirse:<br>* por contactos de terceros (clientes o proveedores), un tercero a la vez.<br>* o configurando un destinatario global en la configuración del módulo. ModelModules=Modelos de documentos DocumentModelOdt=Generación desde los documentos OpenDocument (Archivo .ODT OpenOffice, KOffice, TextEdit,...) WatermarkOnDraft=Marca de agua en los documentos borrador @@ -1146,6 +1147,7 @@ HideTreadedOrders=Ocultar del listado los pedidos tratados o cancelados ValidOrderAfterPropalClosed=Validar el pedido después del cierre del presupuesto, permite no pasar por el pedido provisional FreeLegalTextOnOrders=Texto libre en pedidos WatermarkOnDraftOrders=Marca de agua en pedidos borrador (en caso de estar vacío) +ShippableOrderIconInList=Añadir un icono en el listado de pedidos que indica si el pedido es enviable ##### Clicktodial ##### ClickToDialSetup=Configuración del módulo Click To Dial ClickToDialUrlDesc=URL de llamada haciendo click en el icono teléfono. <br>La URL completa de llamada será: URL?login=...&password=...&caller=...&called=telellamada @@ -1384,7 +1386,8 @@ MailingEMailError=E-Mail de respuesta (Errors-to) para las respuestas acerca de ##### Notification ##### NotificationSetup=Configuración del módulo notificaciones NotificationEMailFrom=E-Mail emisor (From) de los correos enviados a través de notificaciones -ListOfAvailableNotifications=Listado de notificaciones disponibles (depende de los módulos activados) +ListOfAvailableNotifications=Listado de eventos que se pueden configurar para notificar para cada tercero (entrar a la ficha del tercero para configurar) o configurando un e-mail fijo (El listado depende de los módulos activados) +FixedEmailTarget=Destinatario fijo ##### Sendings ##### SendingsSetup=Configuración del módulo Expediciones SendingsReceiptModel=Modelo de notas de entrega @@ -1437,7 +1440,7 @@ DetailEnabled=Condición de mostrar o no DetailRight=Condición de visualización completa o restringida DetailLangs=Archivo .lang para la traducción del título DetailUser=Interno / Externo / Todos -Target=Objetivo +Target=Destinatario DetailTarget=Comportamiento del enlace (_blank para abrir una nueva ventana) DetailLevel=Nivel (-1:menú superior, 0:principal, >0 menú y submenú) ModifMenu=Modificación del menú @@ -1535,6 +1538,7 @@ DeleteFiscalYear=Eliminar año fiscal ConfirmDeleteFiscalYear=¿Está seguro de querer eliminar este año fiscal? Opened=Abierto Closed=Cerrado +AlwaysEditable=Puede editarse siempre Format=Formatear TypePaymentDesc=0:Pago cliente,1:Pago proveedor,2:Tanto pago de cliente como de proveedor diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang index 839bbbdceba44e32ab8831ccb59ffcec89f8c1d8..c357756f95ac823b73128b35afb5640aefdfb2ec 100644 --- a/htdocs/langs/es_ES/agenda.lang +++ b/htdocs/langs/es_ES/agenda.lang @@ -7,10 +7,10 @@ Agendas=Agendas Calendar=Calendario Calendars=Calendarios LocalAgenda=Calendario interno -ActionsOwnedBy=Evento asignado a +ActionsOwnedBy=Acontecimiento asignado a AffectedTo=Asignada a DoneBy=Realizado por -Event=Evento +Event=Acontecimiento Events=Eventos EventsNb=Número de eventos MyEvents=Mis eventos @@ -23,12 +23,12 @@ MenuToDoActions=Eventos incompletos MenuDoneActions=Eventos terminados MenuToDoMyActions=Mis eventos incompletos MenuDoneMyActions=Mis eventos terminados -ListOfEvents=Listado de eventos (calendario interno) +ListOfEvents=lista de acontecimientos (calendario interno) ActionsAskedBy=Eventos registrados por ActionsToDoBy=Eventos asignados a ActionsDoneBy=Eventos realizados por -ActionsForUser=Eventos del usuario -ActionsForUsersGroup=Eventos de todos los usuarios del grupo +ActionsForUser=Acontecimientos del usuario +ActionsForUsersGroup=Acontecimientos de todos los usuarios del grupo AllMyActions= Todos mis eventos/tareas AllActions= Todos los eventos/tareas ViewList=Vista listado @@ -72,7 +72,7 @@ AgendaUrlOptions1=Puede también añadir estos parámetros al filtro de salida: AgendaUrlOptions2=<b>login=%s</b> para restringir inserciones a acciones creadas , que afecten o realizadas por el usuario <b>%s</b>. AgendaUrlOptions3=<b>logina=%s</b> para restringir inserciones a acciones creadas por el usuario <b>%s</b>. AgendaUrlOptions4=<b>logint=%s</b> para restringir inserciones a acciones que afecten al usuario <b>%s</b>. -AgendaUrlOptions5=<b>logind=%s</b> para restringir inserciones a acciones realizadas por el usuario <b>%s</b>. +AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> para restringir inserciones a acciones asociadas al proyecto <b>PROJECT_ID</b>. AgendaShowBirthdayEvents=Mostrar cumpleaños de los contactos AgendaHideBirthdayEvents=Ocultar cumpleaños de los contactos Busy=Ocupado @@ -89,5 +89,5 @@ ExtSiteUrlAgenda=Url de acceso al archivo .ical ExtSiteNoLabel=Sin descripción WorkingTimeRange=Rango temporal WorkingDaysRange=Rango diario -AddEvent=Añadir evento +AddEvent=Crear evento MyAvailability=Mi disponibilidad diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang index f9d7f316b041261623068106e3c0ae47453606d4..e5f939a753f2b64ee6c2c6026daa622c46fa09de 100644 --- a/htdocs/langs/es_ES/bills.lang +++ b/htdocs/langs/es_ES/bills.lang @@ -28,8 +28,8 @@ InvoiceAvoir=Abono InvoiceAvoirAsk=Abono para corregir la factura InvoiceAvoirDesc=El <b>abono</b> es una factura negativa destinada a compensar un importe de factura que difiere del importe realmente pagado (por haber pagado de más o por devolución de productos, por ejemplo). invoiceAvoirWithLines=Crear abono con las líneas de la factura original -invoiceAvoirWithPaymentRestAmount=Crear abono con el importe pendiente de la factura origen -invoiceAvoirLineWithPaymentRestAmount=Abono del importe pendiente de la factura +invoiceAvoirWithPaymentRestAmount=Crear abono con el resto a cobrar de la factura origen +invoiceAvoirLineWithPaymentRestAmount=Abono del resto por cobrar ReplaceInvoice=Rectificar la factura %s ReplacementInvoice=Rectificación factura ReplacedByInvoice=Rectificada por la factura %s @@ -156,9 +156,9 @@ ConfirmCancelBill=¿Está seguro de querer anular la factura <b>%s</b> ? ConfirmCancelBillQuestion=¿Por qué razón quiere abandonar la factura? ConfirmClassifyPaidPartially=¿Está seguro de querer clasificar la factura <b>%s</b> como pagada? ConfirmClassifyPaidPartiallyQuestion=Esta factura no ha sido totalmente pagada. ¿Por qué quiere clasificarla como pagada? -ConfirmClassifyPaidPartiallyReasonAvoir=El resto a pagar <b>(%s %s)</b> se ha regularizado (ya que artículo se ha devuelto, olvidado entregar, descuento no definido...) mediante un abono -ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El resto a pagar <b>(%s %s)</b> es un descuento acordado después de la factura. Acepto perder el IVA de este descuento -ConfirmClassifyPaidPartiallyReasonDiscountVat=El resto a pagar<b>(%s %s)</b> es un descuento +ConfirmClassifyPaidPartiallyReasonAvoir=El resto a pagar <b>(%s %s)</b> es un descuento otorgado por pronto pago. Regularizaré el IVA con un abono. +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El resto a pagar <b>(%s %s)</b> es un descuento otorgado por pronto pago. Acepto perder el IVA en este descuento. +ConfirmClassifyPaidPartiallyReasonDiscountVat=El resto a pagar <b>(%s %s)</b> es un descuento otorgado por pronto pago. Recuperaré el IVA sin usar un abono. ConfirmClassifyPaidPartiallyReasonBadCustomer=Cliente moroso ConfirmClassifyPaidPartiallyReasonProductReturned=Productos devueltos en parte ConfirmClassifyPaidPartiallyReasonOther=Por otra razón @@ -191,9 +191,9 @@ AlreadyPaid=Ya pagado AlreadyPaidBack=Ya reembolsado AlreadyPaidNoCreditNotesNoDeposits=Ya pagado (excluidos los abonos y anticipos) Abandoned=Abandonada -RemainderToPay=Queda por pagar -RemainderToTake=Queda por cobrar -RemainderToPayBack=Queda por reembolsar +RemainderToPay=Resta por pagar +RemainderToTake=Resta por cobrar +RemainderToPayBack=Resta por reembolsar Rest=Pendiente AmountExpected=Importe reclamado ExcessReceived=Recibido en exceso @@ -225,13 +225,13 @@ NonPercuRecuperable=No percibido recuperable SetConditions=Definir condiciones de pago SetMode=Definir modo de pago Billed=Facturado -RepeatableInvoice=Factura recurrente -RepeatableInvoices=Facturas recurrentes -Repeatable=Recurrente -Repeatables=Recurrentes -ChangeIntoRepeatableInvoice=Convertir en recurrente -CreateRepeatableInvoice=Crear factura recurrente -CreateFromRepeatableInvoice=Crear desde factura recurrente +RepeatableInvoice=Plantilla de factura +RepeatableInvoices=Plantilla de facturas +Repeatable=Plantilla +Repeatables=Plantillas +ChangeIntoRepeatableInvoice=Convertir en plantilla +CreateRepeatableInvoice=Crear plantilla de factura +CreateFromRepeatableInvoice=Crear desde plantilla de factura CustomersInvoicesAndInvoiceLines=Facturas a clientes y líneas de facturas CustomersInvoicesAndPayments=Facturas a clientes y pagos ExportDataset_invoice_1=Facturas a clientes y líneas de factura diff --git a/htdocs/langs/es_ES/boxes.lang b/htdocs/langs/es_ES/boxes.lang index 5038f1381139b5f9bbda4edd9aa02113aa134063..56353b2006e94bb62bdacfabe81ca0b021265b07 100644 --- a/htdocs/langs/es_ES/boxes.lang +++ b/htdocs/langs/es_ES/boxes.lang @@ -12,6 +12,7 @@ BoxLastProspects=Últimos clientes potenciales modificados BoxLastCustomers=Últimos clientes modificados BoxLastSuppliers=Últimos proveedores modificados BoxLastCustomerOrders=Últimos pedidos +BoxLastValidatedCustomerOrders=Últimos pedidos de clientes validados BoxLastBooks=Últimos books BoxLastActions=Últimos eventos BoxLastContracts=Últimos contratos @@ -27,26 +28,29 @@ BoxTitleNbOfCustomers=Número de clientes BoxTitleLastRssInfos=Las %s últimas infos de %s BoxTitleLastProducts=Los %s últimos productos/servicios registrados BoxTitleProductsAlertStock=Productos en alerta de stock -BoxTitleLastCustomerOrders=Los %s últimos pedidos de clientes modificados +BoxTitleLastCustomerOrders=Últimos %s pedidos de clientes +BoxTitleLastModifiedCustomerOrders=Últimos %s pedidos de clientes modificados BoxTitleLastSuppliers=Los %s últimos proveedores registrados BoxTitleLastCustomers=Los %s últimos clientes registrados BoxTitleLastModifiedSuppliers=Los %s últimos proveedores modificados BoxTitleLastModifiedCustomers=Los %s últimos clientes modificados -BoxTitleLastCustomersOrProspects=Los %s últimos clientes o clientes potenciales registrados -BoxTitleLastPropals=Los %s últimos presupuestos registrados +BoxTitleLastCustomersOrProspects=Últimos %s clientes o clientes potenciales +BoxTitleLastPropals=Últimos %s presupuestos +BoxTitleLastModifiedPropals=Últimos %s presupuestos modificados BoxTitleLastCustomerBills=Las %s últimas facturas a clientes modificadas +BoxTitleLastModifiedCustomerBills=Últimas %s facturas a clientes modificadas BoxTitleLastSupplierBills=Las %s últimas facturas de proveedores modificadas -BoxTitleLastProspects=Los %s últimos clientes potenciales registrados +BoxTitleLastModifiedSupplierBills=Últimas %s facturas de proveedores modificadas BoxTitleLastModifiedProspects=Los %s últimos clientes potenciales modificados BoxTitleLastProductsInContract=Los %s últimos productos/servicios contratados -BoxTitleLastModifiedMembers=Los %s últimos miembros modificados +BoxTitleLastModifiedMembers=Últimos %s miembros BoxTitleLastFicheInter=Las %s últimas intervenciones modificadas -BoxTitleOldestUnpaidCustomerBills=Las %s facturas más antiguas a clientes pendientes de cobro -BoxTitleOldestUnpaidSupplierBills=Las %s facturas más antiguas de proveedores pendientes de pago +BoxTitleOldestUnpaidCustomerBills=%s facturas a clientes más antiguras pendientes de cobro +BoxTitleOldestUnpaidSupplierBills=%s facturas de proveedores más antiguas pendientes de pago BoxTitleCurrentAccounts=Balances de cuentas abiertas BoxTitleSalesTurnover=Volumen de ventas realizado -BoxTitleTotalUnpaidCustomerBills=Pendiente de clientes -BoxTitleTotalUnpaidSuppliersBills=Pendiente a proveedores +BoxTitleTotalUnpaidCustomerBills=Facturas a clientes pendientes de cobro +BoxTitleTotalUnpaidSuppliersBills=Facturas de proveedores pendientes de pago BoxTitleLastModifiedContacts=Los %s últimos contactos/direcciones modificadas BoxMyLastBookmarks=Mis %s últimos marcadores BoxOldestExpiredServices=Servicios antiguos expirados @@ -76,7 +80,8 @@ NoContractedProducts=Sin productos/servicios contratados NoRecordedContracts=Sin contratos registrados NoRecordedInterventions=Sin intervenciones guardadas BoxLatestSupplierOrders=Últimos pedidos a proveedores -BoxTitleLatestSupplierOrders=Los %s últimos pedidos a proveedores +BoxTitleLatestSupplierOrders=Últimos %s pedidos a proveedores +BoxTitleLatestModifiedSupplierOrders=Últimos %s pedidos a proveedores modificados NoSupplierOrder=Sin pedidos a proveedores BoxCustomersInvoicesPerMonth=Facturas a clientes por mes BoxSuppliersInvoicesPerMonth=Facturas de proveedores por mes diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang index 9fa3e27be1869cee8768bfa7adc44e29c9add45b..f86ea312ac31cf4607284d83f2e9ec4f79d9afcd 100644 --- a/htdocs/langs/es_ES/companies.lang +++ b/htdocs/langs/es_ES/companies.lang @@ -379,7 +379,7 @@ DeliveryAddressLabel=Etiqueta de envío DeleteDeliveryAddress=Eliminar una dirección de envío ConfirmDeleteDeliveryAddress=¿Está seguro de querer eliminar esta dirección de envío? NewDeliveryAddress=Nueva dirección de envío -AddDeliveryAddress=Añadir la dirección +AddDeliveryAddress=Crear dirección AddAddress=Crear dirección NoOtherDeliveryAddress=No hay direcciones alternativas definidas SupplierCategory=Categoría de proveedor diff --git a/htdocs/langs/es_ES/deliveries.lang b/htdocs/langs/es_ES/deliveries.lang index 4cfe6c9006562e875371212dc395c5aca0c108e0..6dbcd26544c8793d96cc6d187f6c074b98791e89 100644 --- a/htdocs/langs/es_ES/deliveries.lang +++ b/htdocs/langs/es_ES/deliveries.lang @@ -24,3 +24,5 @@ Deliverer=Destinatario : Sender=Origen Recipient=Destinatario ErrorStockIsNotEnough=No hay suficiente stock +Shippable=Enviable +NonShippable=No enviable diff --git a/htdocs/langs/es_ES/donations.lang b/htdocs/langs/es_ES/donations.lang index 31c89f7720939a236a9984c4d3ca8126d6c7d07a..064e6587789ea8289fbd9cd5656cadbf8400eb41 100644 --- a/htdocs/langs/es_ES/donations.lang +++ b/htdocs/langs/es_ES/donations.lang @@ -4,7 +4,7 @@ Donations=Donaciones DonationRef=Ref. donación Donor=Donante Donors=Donantes -AddDonation=Añadir donación +AddDonation=Crear una donación NewDonation=Nueva donación ShowDonation=Mostrar donación DonationPromise=Promesa de donación diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index bccee64bcfc8a6da2462bbc76f31ba3ae2c5d6c2..7ac24f97c463df97f96ad20f627638da3da426a7 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -37,7 +37,7 @@ ErrorSupplierCodeRequired=Código proveedor obligatorio ErrorSupplierCodeAlreadyUsed=Código de proveedor ya utilizado ErrorBadParameters=Parámetros incorrectos ErrorBadValueForParameter=Valor '%s' incorrecto para el parámetro '%s' -ErrorBadImageFormat=La imagen no tiene un formato reconocido +ErrorBadImageFormat=El archivo de imagen es de un formato no soportado (Su PHP no soporta las funciones de conversión de este formato de imagen) ErrorBadDateFormat=El valor '%s' tiene un formato de fecha no reconocido ErrorWrongDate=¡La fecha no es correcta! ErrorFailedToWriteInDir=Imposible escribir en el directorio %s @@ -114,6 +114,7 @@ ErrorLoginDoesNotExists=La cuenta de usuario de <b>%s</b> no se ha encontrado. ErrorLoginHasNoEmail=Este usuario no tiene e-mail. Imposible continuar. ErrorBadValueForCode=Valor incorrecto para el código. Vuelva a intentar con un nuevo valor... ErrorBothFieldCantBeNegative=Los campos %s y %s no pueden ser negativos +ErrorQtyForCustomerInvoiceCantBeNegative=Las cantidades en las líneas de facturas a clientes no pueden ser negativas ErrorWebServerUserHasNotPermission=La cuenta de ejecución del servidor web <b>%s</b> no dispone de los permisos para esto ErrorNoActivatedBarcode=No hay activado ningún tipo de código de barras ErrUnzipFails=No se ha podido descomprimir el archivo %s con ZipArchive diff --git a/htdocs/langs/es_ES/holiday.lang b/htdocs/langs/es_ES/holiday.lang index 60e8fc0327f99640686ddb67b96e96547383cecf..99c55188b5a5836c0fa08c113104521c621e48ef 100644 --- a/htdocs/langs/es_ES/holiday.lang +++ b/htdocs/langs/es_ES/holiday.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - holiday HRM=RRHH -Holidays=Vacaciones -CPTitreMenu=Vacaciones +Holidays=Días libres +CPTitreMenu=Días libres MenuReportMonth=Estado mensual -MenuAddCP=Realizar una petición de vacaciones -NotActiveModCP=Debe activar el módulo Vacaciones para ver esta página -NotConfigModCP=Debe configurar el módulo Vacaciones para ver esta página. Para configurarlo, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">haga clic aquí</a>. -NoCPforUser=No tiene peticiones de vacaciones. -AddCP=Realizar una petición de vacaciones +MenuAddCP=Realizar una petición de días libres +NotActiveModCP=Debe activar el módulo Días libres retribuidos para ver esta página +NotConfigModCP=Debe configurar el módulo Días libres retribuidos para ver esta página. Para configurarlo, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">haga clic aquí</a>. +NoCPforUser=No tiene peticiones de días libres. +AddCP=Realizar una petición de días libres Employe=Empleado DateDebCP=Fecha inicio DateFinCP=Fecha fin @@ -18,24 +18,24 @@ ApprovedCP=Aprobada CancelCP=Anulada RefuseCP=Rechazada ValidatorCP=Validador -ListeCP=Listado de vacaciones +ListeCP=Listado de días libres ReviewedByCP=Será revisada por DescCP=Descripción -SendRequestCP=Enviar la petición de vacaciones -DelayToRequestCP=Las peticiones de vacaciones deben realizarse al menos <b>%s días</b> antes. -MenuConfCP=Definir las vacaciones -UpdateAllCP=Actualizar las vacaciones -SoldeCPUser=Su saldo de vacaciones es de <b>%s días</b>. +SendRequestCP=Enviar la petición de días libres +DelayToRequestCP=Las peticiones de días libres deben realizarse al menos <b>%s días</b> antes. +MenuConfCP=Definir los días libres +UpdateAllCP=Actualizar los días libres +SoldeCPUser=Su saldo de días libres es de <b>%s días</b>. ErrorEndDateCP=Debe indicar una fecha de fin superior a la fecha de inicio. ErrorSQLCreateCP=Se ha producido un error de SQL durante la creación : -ErrorIDFicheCP=Se produjo un error, esta solicitud de vacaciones no existe. +ErrorIDFicheCP=Se produjo un error, esta solicitud de días libres no existe. 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 +ErrorUserViewCP=No está autorizado a leer esta petición de días libres. +InfosCP=Información de la petición de días libres InfosWorkflowCP=Información del workflow RequestByCP=Pedido por -TitreRequestCP=Ficha vacaciones -NbUseDaysCP=Número de días de vacaciones consumidos +TitreRequestCP=Ficha días libres +NbUseDaysCP=Número de días libres consumidos EditCP=Modificar DeleteCP=Eliminar ActionValidCP=Validar @@ -43,26 +43,26 @@ ActionRefuseCP=Rechazar ActionCancelCP=Anular StatutCP=Estado SendToValidationCP=Enviar validación -TitleDeleteCP=Eliminar la petición de vacaciones -ConfirmDeleteCP=¿Está seguro de querer eliminar esta petición de vacaciones? -ErrorCantDeleteCP=Error, no tiene permisos para eliminar esta petición de vacaciones. -CantCreateCP=No tiene permisos para realizar peticiones de vacaciones. -InvalidValidatorCP=Debe indicar un validador para su petición de vacaciones. +TitleDeleteCP=Eliminar la petición de días libres +ConfirmDeleteCP=¿Está seguro de querer eliminar esta petición de días libres? +ErrorCantDeleteCP=Error, no tiene permisos para eliminar esta petición de días libres. +CantCreateCP=No tiene permisos para realizar peticiones de días libres. +InvalidValidatorCP=Debe indicar un validador para su petición de días libres. UpdateButtonCP=Actualizar -CantUpdate=No puede actualizar esta petición de vacaciones. +CantUpdate=No puede actualizar esta petición de días libres. NoDateDebut=Debe indicar una fecha de inicio. NoDateFin=Debe indicar una fecha de fin. -ErrorDureeCP=Su petición de vacaciones no contiene ningún día hábil. -TitleValidCP=Validar la petición de vacaciones -ConfirmValidCP=¿Está seguro de querer validar esta petición de vacaciones? +ErrorDureeCP=Su petición de días libres no contiene ningún día hábil. +TitleValidCP=Aprobar la petición de días libres +ConfirmValidCP=¿Está seguro de querer validar esta petición de días libres? DateValidCP=Fecha de validación -TitleToValidCP=Enviar la petición de vacaciones -ConfirmToValidCP=¿Está seguro de querer enviar la petición de vacaciones? -TitleRefuseCP=Rechazar la petición de vacaciones -ConfirmRefuseCP=¿Está seguro de querer rechazar la petición de vacaciones? +TitleToValidCP=Enviar la petición de días libres +ConfirmToValidCP=¿Está seguro de querer enviar la petición de días libres? +TitleRefuseCP=Rechazar la petición de días libres +ConfirmRefuseCP=¿Está seguro de querer rechazar la petición de días libres? NoMotifRefuseCP=Debe seleccionar un motivo para rechazar esta petición. -TitleCancelCP=Anular la petición de vacaciones -ConfirmCancelCP=¿Está seguro de querer anular la petición de vacaciones? +TitleCancelCP=Cancelar la petición de días libres +ConfirmCancelCP=¿Está seguro de querer anular la petición de días libres? DetailRefusCP=Motivo del rechazo DateRefusCP=Fecha del rechazo DateCancelCP=Fecha de la anulación @@ -72,42 +72,42 @@ MotifCP=Motivo UserCP=Usuario ErrorAddEventToUserCP=Se ha producido un error en la asignación del permiso excepcional. AddEventToUserOkCP=Se ha añadido el permiso excepcional. -MenuLogCP=Ver los logs de vacaciones -LogCP=Logs de actualizaciones de vacaciones +MenuLogCP=Ver el historial de días libres +LogCP=Historial de actualizaciones de días libres ActionByCP=Realizado por UserUpdateCP=Para el usuario PrevSoldeCP=Saldo anterior NewSoldeCP=Nuevo saldo -alreadyCPexist=Ya se ha efectuado una petición de vacaciones para este periodo. +alreadyCPexist=Ya se ha efectuado una petición de días libres para este periodo. UserName=Nombre Apellidos Employee=Empleado FirstDayOfHoliday=Primer día libre LastDayOfHoliday=Último día libre HolidaysMonthlyUpdate=Actualización mensual ManualUpdate=Actualización manual -HolidaysCancelation=Anulación vacaciones +HolidaysCancelation=Anulación días libres ## Configuration du Module ## -ConfCP=Configuración del módulo Vacaciones +ConfCP=Configuración del módulo de días libres retribuidos DescOptionCP=Descripción de la opción ValueOptionCP=Valor -GroupToValidateCP=Grupo con posibilidad de aprobar las vacaciones +GroupToValidateCP=Grupo con posibilidad de aprobar los días libres ConfirmConfigCP=Validar la configuración -LastUpdateCP=Última actualización automática de vacaciones +LastUpdateCP=Última actualización automática de días libres UpdateConfCPOK=Actualización efectuada correctamente. ErrorUpdateConfCP=Se ha producido un error durante la actualización, vuélvalo a intentar. -AddCPforUsers=Añada los saldos de vacaciones de los usuarios <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">haciendo clic aquí</a>. -DelayForSubmitCP=Antelación mínima para solicitar vacaciones +AddCPforUsers=Añada los saldos de días libres de los usuarios <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">haciendo clic aquí</a>. +DelayForSubmitCP=Fecha límite para realizar peticiones de días libres AlertapprobatortorDelayCP=Advertir al validador si la petición no corresponde a la fecha límite AlertValidatorDelayCP=Advertir al usuario validador si la petición no respeta el límite previsto -AlertValidorSoldeCP=Advertir al usuario validador si el usuario pide vacaciones superiores a su saldo -nbUserCP=Número de usuarios tomados en cuenta en el módulo vacaciones -nbHolidayDeductedCP=Número de días retribuídos a deducir por día de vacaciones -nbHolidayEveryMonthCP=Número de días de vacaciones añadidos por mes -Module27130Name= Gestion de las vacaciones +AlertValidorSoldeCP=Advertir al usuario validador si el usuario pide días libres superiores a su saldo +nbUserCP=Número de usuarios tomados en cuenta en el módulo días libres retribuidos +nbHolidayDeductedCP=Número de días retribuídos a deducir por día líbre +nbHolidayEveryMonthCP=Número de días libres añadidos por mes +Module27130Name= Gestión de los días libres Module27130Desc= Gestión de días libres -TitleOptionMainCP=Ajustes principales de vacaciones -TitleOptionEventCP=Ajustes de vacaciones enlazados a eventos +TitleOptionMainCP=Ajustes principales de días libres +TitleOptionEventCP=Ajustes de días libres enlazados a eventos ValidEventCP=Validar UpdateEventCP=Actualizar los eventos CreateEventCP=Crear @@ -125,25 +125,25 @@ TitleUpdateEventCP=Modificar o eliminar un permiso excepcional DeleteEventOptionCP=Eliminar UpdateEventOptionCP=Actualizar ErrorMailNotSend=Se ha producido un error en el envío del e-mail : -NoCPforMonth=Sin vacaciones este mes. +NoCPforMonth=Sin días libres este mes. nbJours=Número de días -TitleAdminCP=Configuración de las vacaciones +TitleAdminCP=Configuración de los días libres retribuidos #Messages Hello=Hola -HolidaysToValidate=Días retribuidos a validar -HolidaysToValidateBody=A continuación encontrará una solicitud de días retribuidos para validar -HolidaysToValidateDelay=Esta solicitud de días retribuidos tendrá lugar en un plazo de menos de %s días. -HolidaysToValidateAlertSolde=El usuario que ha realizado la solicitud de días retribuidos no dispone de suficientes días disponibles. -HolidaysValidated=Días retribuidos validados -HolidaysValidatedBody=Su solicitud de días retribuidos desde el %s al %s ha sido validada. -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. -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=Leer informe mensual de días retribuidos +HolidaysToValidate=Días libres retribuidos a validar +HolidaysToValidateBody=A continuación encontrará una solicitud de días libres retribuidos para validar +HolidaysToValidateDelay=Esta solicitud de días libres retribuidos tendrá lugar en un plazo de menos de %s días. +HolidaysToValidateAlertSolde=El usuario que ha realizado la solicitud de días libres retribuidos no dispone de suficientes días disponibles. +HolidaysValidated=Días libres retribuidos validados +HolidaysValidatedBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido validada. +HolidaysRefused=Días libres retribuidos denegados +HolidaysRefusedBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido denegada por el siguiente motivo : +HolidaysCanceled=Días libres retribuidos cancelados +HolidaysCanceledBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido cancelada. +Permission20000=Leer sus propios días libres retribuidos +Permission20001=Crear/modificar sus días libres retribuidos +Permission20002=Crear/modificar días libres retribuidos para todos +Permission20003=Eliminar peticiones de días libres retribuidos +Permission20004=Configurar días libres retribuidos de usuarios +Permission20005=Consultar el historial de modificaciones de días libres retribuídos +Permission20006=Leer informe mensual de días libres retribuidos diff --git a/htdocs/langs/es_ES/interventions.lang b/htdocs/langs/es_ES/interventions.lang index 4f838816de27a902c09801bdbae4e306373f03e1..f973ac56e78e668c65b3287d2c69706caf04c344 100644 --- a/htdocs/langs/es_ES/interventions.lang +++ b/htdocs/langs/es_ES/interventions.lang @@ -30,6 +30,7 @@ StatusInterInvoiced=Facturado RelatedInterventions=Intervenciones adjuntas ShowIntervention=Mostrar intervención SendInterventionRef=Envío de la intervención %s +SendInterventionByMail=Enviar intervención por e-mail ##### Types de contacts ##### TypeContact_fichinter_internal_INTERREPFOLL=Responsable seguimiento de la intervención TypeContact_fichinter_internal_INTERVENING=Interventor diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang index 9c2dd9f8d4e7225029466abe177eb0824531c4e7..531f4ce42d5457d941f7062d731abd00ec88d953 100644 --- a/htdocs/langs/es_ES/mails.lang +++ b/htdocs/langs/es_ES/mails.lang @@ -133,6 +133,6 @@ Notifications=Notificaciones NoNotificationsWillBeSent=Ninguna notificación por e-mail está prevista para este evento y empresa ANotificationsWillBeSent=1 notificación va a ser enviada por e-mail SomeNotificationsWillBeSent=%s notificaciones van a ser enviadas por e-mail -AddNewNotification=Activar una nueva solicitud de notificación -ListOfActiveNotifications=Lista de las solicitudes de notificaciones activas -ListOfNotificationsDone=Lista de notificaciones de e-mails enviadas +AddNewNotification=Activar un nuevo destinatario de notificaciones +ListOfActiveNotifications=Listado de todos los destinatarios de notificaciones +ListOfNotificationsDone=Listado de notificaciones enviadas diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index a9f20e07d72861e5cbeb30a17caff7abfbed09d0..862ed1a9495640f9432c7e119fd092ee4b3ecd91 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -58,12 +58,12 @@ ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar el usuario <b>%s</b> e ErrorNoVATRateDefinedForSellerCountry=Error, ningún tipo de IVA definido para el país '%s'. ErrorNoSocialContributionForSellerCountry=Error, ningún tipo de carga social definida para el país '%s'. ErrorFailedToSaveFile=Error, el registro del archivo falló. -ErrorOnlyPngJpgSupported=Error, solamente se soportan los formatos de imagen jpg y png. -ErrorImageFormatNotSupported=Su PHP no soporta las funciones de conversión de este formato de imagen. SetDate=Fijar fecha SelectDate=Seleccione una fecha SeeAlso=Ver también %s BackgroundColorByDefault=Color de fondo +FileNotUploaded=No se ha subido el archivo +FileUploaded=El archivo se ha subido correctamente FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo" para ello. NbOfEntries=Nº de entradas GoToWikiHelpPage=Consultar la ayuda (puede requerir acceso a Internet) @@ -341,6 +341,7 @@ FullList=Listado completo Statistics=Estadísticas OtherStatistics=Otras estadísticas Status=Estado +Favorite=Favorito ShortInfo=Info. Ref=Ref. RefSupplier=Ref. proveedor diff --git a/htdocs/langs/es_ES/margins.lang b/htdocs/langs/es_ES/margins.lang index 23b8e9acd904d69297a325135896a64c325bf94c..f1c356ab87190bc01a9438145f5291ca20030255 100644 --- a/htdocs/langs/es_ES/margins.lang +++ b/htdocs/langs/es_ES/margins.lang @@ -38,4 +38,6 @@ BuyingCost=Costos UnitCharges=Carga unitaria Charges=Cargas AgentContactType=Tipo de contacto comisionado -AgentContactTypeDetails=Indica el tipo de contacto enlazado a las facturas que serán asociados a los agentes comerciales +AgentContactTypeDetails=Indique qué tipo de contacto (enlazado a las facturas) será el utilizado para el informe de márgenes de agentes comerciales +rateMustBeNumeric=El margen debe ser un valor numérico +markRateShouldBeLesserThan100=El margen tiene que ser menor que 100 diff --git a/htdocs/langs/es_ES/members.lang b/htdocs/langs/es_ES/members.lang index ebccec6be148158c5e6b5b92d682c800502be57a..dd1989dbb48bee73a63ec85636d6fa3fd3f086b7 100644 --- a/htdocs/langs/es_ES/members.lang +++ b/htdocs/langs/es_ES/members.lang @@ -85,7 +85,7 @@ SubscriptionLateShort=En retraso SubscriptionNotReceivedShort=No recibida ListOfSubscriptions=Listado de afiliaciones SendCardByMail=Enviar ficha por e-mail -AddMember=Añadir miembro +AddMember=Crear miembro NoTypeDefinedGoToSetup=Ningún tipo de miembro definido. Vaya a Configuración -> Tipos de miembros NewMemberType=Nuevo tipo de miembro WelcomeEMail=E-mail @@ -125,7 +125,7 @@ Date=Fecha DateAndTime=Fecha y hora PublicMemberCard=Ficha pública miembro MemberNotOrNoMoreExpectedToSubscribe=No sometida a cotización -AddSubscription=Añadir afiliación +AddSubscription=Crear afiliación ShowSubscription=Mostrar afiliación MemberModifiedInDolibarr=Miembro modificado en Dolibarr SendAnEMailToMember=Enviar e-mail de información al miembro (E-mail: <b>%s</b>) diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang index 107c47e0cf8cf5a2fdf482bf8790a0dad3caadde..9de70d01f95edaaeeca195c4c2c216eeda637082 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - other SecurityCode=Código seguridad Calendar=Calendario -AddTrip=Crear honorario Tools=Utilidades ToolsDesc=Esta área está dedicada al reagrupamiento de diversas utilidades no disponibles en las otras entradas de menú.<br><br>La lista de estas utilidades es accesible mediante el menú de al lado. Birthday=Aniversario @@ -48,6 +47,7 @@ Notify_PROJECT_CREATE=Creación de proyecto Notify_TASK_CREATE=Tarea creada Notify_TASK_MODIFY=Tarea modificada Notify_TASK_DELETE=Tarea eliminada +SeeModuleSetup=Consulte la configuración del módulo NbOfAttachedFiles=Número archivos/documentos adjuntos TotalSizeOfAttachedFiles=Tamaño total de los archivos/documentos adjuntos MaxSize=Tamaño máximo diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang index c07cb7c7485ca543b7fd0228fd5e770e6a8b0010..1a4726afcc20365219df6a21effa3f8ac244fb82 100644 --- a/htdocs/langs/es_ES/products.lang +++ b/htdocs/langs/es_ES/products.lang @@ -117,12 +117,12 @@ ServiceLimitedDuration=Si el servicio es de duración limitada : MultiPricesAbility=Varios niveles de precio por producto/servicio MultiPricesNumPrices=Nº de precios MultiPriceLevelsName=Categoría de precios -AssociatedProductsAbility=Activar productos compuestos -AssociatedProducts=Productos compuestos +AssociatedProductsAbility=Activar la funcionalidad de productos compuestos +AssociatedProducts=Producto compuesto AssociatedProductsNumber=Nº de productos que componen este producto ParentProductsNumber=Nº de productos que este producto compone -IfZeroItIsNotAVirtualProduct=Si 0, este producto no es un producto virtual -IfZeroItIsNotUsedByVirtualProduct=Si 0, este producto no está siendo utilizado por ningún producto virtual +IfZeroItIsNotAVirtualProduct=Si 0, este producto no es un producto compuesto +IfZeroItIsNotUsedByVirtualProduct=Si 0, este producto no puede ser usado por ningún producto compuesto EditAssociate=Componer Translation=Traducción KeywordFilter=Filtro por clave @@ -179,7 +179,7 @@ CloneProduct=Clonar producto/servicio ConfirmCloneProduct=¿Está seguro de querer clonar el producto o servicio <b>%s</b>? CloneContentProduct=Clonar solamente la información general del producto/servicio ClonePricesProduct=Clonar la información general y los precios -CloneCompositionProduct=Clonar producto/servicio virtual +CloneCompositionProduct=Clonar productos/servicios compuestos ProductIsUsed=Este producto es utilizado NewRefForClone=Ref. del nuevo producto/servicio CustomerPrices=Precios clientes diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang index 6a1cf66ddd0be8d5db0baee06aefe183ff1af14e..da5a65ceb968ad98816bb3e8a6bf7360c55a72a8 100644 --- a/htdocs/langs/es_ES/projects.lang +++ b/htdocs/langs/es_ES/projects.lang @@ -45,7 +45,7 @@ TaskDateStart=Fecha inicio TaskDateEnd=Fecha finalización TaskDescription=Descripción tarea NewTask=Nueva tarea -AddTask=Añadir tarea +AddTask=Crear tarea AddDuration=Indicar duración Activity=Actividad Activities=Tareas/actividades diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang index b90258f504997175a0a90e4ac9dff75c499f0fd5..2dc1897235906be2aab54d19d1ceabd518c730e1 100644 --- a/htdocs/langs/es_ES/propal.lang +++ b/htdocs/langs/es_ES/propal.lang @@ -55,8 +55,6 @@ NoOpenedPropals=Sin presupuestos abiertos NoOtherOpenedPropals=Ningún otro presupuesto abierto RefProposal=Ref. presupuesto SendPropalByMail=Enviar presupuesto por e-mail -FileNotUploaded=No se ha subido el archivo -FileUploaded=El archivo se ha subido correctamente AssociatedDocuments=Documentos asociados al presupuesto: ErrorCantOpenDir=Imposible abrir el directorio DatePropal=Fecha presupuesto @@ -83,7 +81,7 @@ ProposalsAndProposalsLines=Presupuestos a clientes y líneas de presupuestos ProposalLine=Línea de presupuesto AvailabilityPeriod=Tiempo de entrega SetAvailability=Definir el tiempo de entrega -AfterOrder=despues del pedido +AfterOrder=desde la firma ##### Availability ##### AvailabilityTypeAV_NOW=Inmediata AvailabilityTypeAV_1W=1 semana diff --git a/htdocs/langs/es_ES/suppliers.lang b/htdocs/langs/es_ES/suppliers.lang index 1998f61ac0cbbbfae982ef1e88a829347993b7b6..06079f228741c62188f13d4ef75c2b583f06239c 100644 --- a/htdocs/langs/es_ES/suppliers.lang +++ b/htdocs/langs/es_ES/suppliers.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - suppliers Suppliers=Proveedores Supplier=Proveedor -AddSupplier=Añadir proveedor +AddSupplier=Crear un proveedor SupplierRemoved=Proveedor eliminado SuppliersInvoice=Factura proveedor NewSupplier=Nuevo proveedor diff --git a/htdocs/langs/es_ES/users.lang b/htdocs/langs/es_ES/users.lang index 65b6d8ed0a07cff626b469ddd0efdaffc8dd4065..e27f8b111e5d4fc79f4d1506b551f7eb7f8f3ed1 100644 --- a/htdocs/langs/es_ES/users.lang +++ b/htdocs/langs/es_ES/users.lang @@ -120,3 +120,4 @@ UseTypeFieldToChange=Modificar el campo Tipo para cambiar OpenIDURL=Dirección OpenID LoginUsingOpenID=Usar OpenID para iniciar sesión WeeklyHours=Horas semanales +ColorUser=Color para el usuario diff --git a/htdocs/langs/es_ES/withdrawals.lang b/htdocs/langs/es_ES/withdrawals.lang index 6e12cbccf4771a2452039a73dc593d2ea699f50c..5c241d7655335a55796bdc6f865d9be8da910f22 100644 --- a/htdocs/langs/es_ES/withdrawals.lang +++ b/htdocs/langs/es_ES/withdrawals.lang @@ -14,8 +14,8 @@ WithdrawalReceiptShort=Orden LastWithdrawalReceipts=Las %s últimas órdenes de domiciliación WithdrawedBills=Facturas domiciliadas WithdrawalsLines=Lineas de domiciliación -RequestStandingOrderToTreat=Pedidos de domiciliaciones a tratar -RequestStandingOrderTreated=Pedidos de domiciliaciones procesados +RequestStandingOrderToTreat=Peticiones de domiciliaciones a procesar +RequestStandingOrderTreated=Peticiones de domiciliaciones procesadas CustomersStandingOrders=Domiciliaciones de clientes CustomerStandingOrder=Domiciliación cliente NbOfInvoiceToWithdraw=Nº de facturas pendientes de domiciliación diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 28edf08867b26e9b87db49af02dbdc4c613c33f7..c3bf53a2f1699a6b09bd2b25bba6b84a4f8bfe37 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -484,7 +484,7 @@ Module500Desc=Gestion des dépenses spéciales comme les taxes, charges sociales Module510Name=Salaires Module510Desc=Gestion des paiements des salaires des employés Module600Name=Notifications -Module600Desc=Envoi de notifications (par email) aux contacts de tiers sur certains événements métiers +Module600Desc=Envoi de notifications Email sur certains événements métiers Dolibarr, aux contacts de tiers (configuration réalisé sur chaque tiers) Module700Name=Dons Module700Desc=Gestion des dons Module1200Name=Mantis @@ -514,7 +514,7 @@ Module5000Name=Multi-société Module5000Desc=Permet de gérer plusieurs sociétés Module6000Name=Workflow Module6000Desc=Gérer le Workflow -Module20000Name=Congés +Module20000Name=Gestion de la demande de congès Module20000Desc=Déclaration et suivi des congès des employés Module39000Name=Lot Module39000Desc=Gestion de numéro de lot ou date de péremption pour les produits @@ -522,8 +522,8 @@ Module50000Name=PayBox Module50000Desc=Module permettant d'offrir en ligne une page de paiement par carte de crédit avec PayBox Module50100Name=Point de vente Module50100Desc=Caisse enregistreuse de point de vente -Module50200Name= Paypal -Module50200Desc= Module permettant d'offrir en ligne une page de paiement par carte de crédit avec Paypal +Module50200Name=Paypal +Module50200Desc=Module permettant d'offrir en ligne une page de paiement par carte de crédit avec Paypal Module50400Name=Comptabilité (avancée) Module50400Desc=Gestion de la comptabilité (doubles parties) Module54000Name=PrintIPP @@ -611,10 +611,11 @@ Permission162=Créer/modifier les contrats de services Permission163=Activer les services d'un contrat Permission164=Désactiver les services d'un contrat Permission165=Supprimer les contrats -Permission171=Consulter les déplacements -Permission172=Créer/modifier les déplacements -Permission173=Supprimer les déplacements -Permission178=Exporter les déplacements +Permission171=Lire les notes de frais (Les vôtres et les utilisateurs autorisés) +Permission172=Créer/modifier les notes de frais / déplacements +Permission173=Supprimer les notes de frais / déplacements +Permission174=Lire toutes les notes de frais +Permission178=Exporter les notes de frais / déplacements Permission180=Consulter les fournisseurs Permission181=Consulter les commandes fournisseurs Permission182=Créer/modifier les commandes fournisseurs @@ -1074,7 +1075,7 @@ ModuleCompanyCodeAquarium=Renvoie un code comptable composé de :<br>%s suivi du ModuleCompanyCodePanicum=Renvoie un code comptable vide. ModuleCompanyCodeDigitaria=Renvoie un code comptable composé suivant le code tiers. Le code est composé du caractère 'C' en première position suivi des 5 premiers caractères du code tiers. UseNotifications=Utiliser les notifications -NotificationsDesc=La fonction des notifications par emails permet d'envoyer automatiquement un email, pour certains événements Dolibarr, aux tiers (sociétés clients, prospects ou fournisseurs) configurés pour. Le choix des notifications et contacts destinataires se fait tiers par tiers. +NotificationsDesc=La fonction des notifications par emails permet d'envoyer automatiquement un email, lors de certains événements Dolibarr. La cible des notifications peut être défini:<br>* par contacts de tiers (clients, prospects ou fournisseurs), tiers par tiers.<br>* ou en positionnant un email en paramètre global sur la page de configuration du module notification. ModelModules=Modèle de documents DocumentModelOdt=Génération depuis des modèles OpenDocument (Fichier .ODT ou .ODS OpenOffice, KOffice, TextEdit…) WatermarkOnDraft=Filigrane sur les documents brouillons @@ -1146,6 +1147,7 @@ HideTreadedOrders=Cacher les commandes traitées ou annulées de la liste ValidOrderAfterPropalClosed=Valider la commande après la clôture de la proposition commerciale, permet de ne pas passer par la commande provisoire FreeLegalTextOnOrders=Mention complémentaire sur les commandes WatermarkOnDraftOrders=Filigrane sur les brouillons de commandes (aucun si vide) +ShippableOrderIconInList=Ajouter un icône dans la liste des commandes qui indique si la commande est expédiable. ##### Clicktodial ##### ClickToDialSetup=Configuration du module Click To Dial ClickToDialUrlDesc=URL appelée lors d'un clic sur le pictogramme téléphone. Dans l'URL, vous pouvez utiliser les balises<br><b>__PHONETO__</b> qui sera remplacée par le téléphone de l'appelé<br><b>__PHONEFROM__</b> qui sera remplacée par le téléphone de l'appelant (le votre, défini sur votre fiche utilisateur)<br><b>__LOGIN__</b> qui sera remplacée par votre identifiant clicktodial (défini sur votre fiche utilisateur)<br><b>__PASS__</b> qui sera remplacée par votre mot de passe clicktodial (défini sur votre fiche utilisateur). @@ -1382,9 +1384,10 @@ MailingSetup=Configuration du module Emailing MailingEMailFrom=Email émetteur (From) des emails envoyés par Emailing MailingEMailError=Email retour (Errors-to) pour les réponses lors des envois par Emailing en erreur ##### Notification ##### -NotificationSetup=Configuration du module Notification +NotificationSetup=Configuration du module Notification EMail NotificationEMailFrom=Email émetteur (From) des mails envoyés lors des notifications -ListOfAvailableNotifications=Liste des notifications disponibles (cette liste dépend des modules actifs) +ListOfAvailableNotifications=Liste des événements sur lesquels vous pouvez configurer une notification, pour chaque tiers (aller dans la fiche tiers pour cela) ou en réglant un email fixe (Liste dépendant de modules activés) +FixedEmailTarget=EMail fixe cible destinataires ##### Sendings ##### SendingsSetup=Configuration du module Expédition/Livraison SendingsReceiptModel=Modèles de bordereau d'expédition @@ -1535,6 +1538,7 @@ DeleteFiscalYear=Effacer année fiscale ConfirmDeleteFiscalYear=Êtes-vous sûr de vouloir supprimer cette année fiscale ? Opened=Ouverte Closed=Clôturé +AlwaysEditable=Peut toujours être édité Format=Format TypePaymentDesc=0:Type de paiement client, 1:Type de paiement fournisseur, 2:Paiement de type client et fournisseur diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index 2e765e5e76570f7abf1ce42997b48d37d9299cf1..71ea27767b830438b3b5bf05ebd0ea06d6006749 100644 --- a/htdocs/langs/fr_FR/agenda.lang +++ b/htdocs/langs/fr_FR/agenda.lang @@ -70,10 +70,9 @@ DateActionStart= Date de début DateActionEnd= Date de fin AgendaUrlOptions1=Vous pouvez aussi ajouter les paramètres suivants pour filtrer les réponses : AgendaUrlOptions2=<b>login=%s</b> pour limiter l'export aux actions créées, affectées ou réalisées par l'utilisateur <b>%s</b>. -AgendaUrlOptions3=<b>logina=%s</b> pour limiter l'export aux actions créées par l'utilisateur <b>%s</b>. +AgendaUrlOptions3=<b>logina=%s</b> pour limiter l'export aux actions dont l'utilisateur <b>%s</b> est propriétaire. AgendaUrlOptions4=<b>logint=%s</b> pour limiter l'export aux actions affectées à l'utilisateur <b>%s</b>. -AgendaUrlOptions5=<b>logind=%s</b> pour limiter l'export aux actions réalisées par l'utilisateur <b>%s</b>. -AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> pour limiter l'export aux actions associées au projet dont l'identifiant est <b>PROJECT_ID</b>. +AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> pour restreindre aux écévements associés au projet <b>PROJECT_ID</b>. AgendaShowBirthdayEvents=Afficher l'anniversaire des contacts AgendaHideBirthdayEvents=Cacher l'anniversaire des contacts Busy=Occupé @@ -90,5 +89,5 @@ ExtSiteUrlAgenda=URL d'accès au fichier ical ExtSiteNoLabel=Aucune description WorkingTimeRange=Plage d'heures travaillées WorkingDaysRange=Plage de jours travaillés -AddEvent=Créer événement +AddEvent=Créer un événement MyAvailability=Ma disponibilité diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 44cc5cab6565d7e73db63be535846c8b2bdd881e..d45a9a3b0251df03fab49c7f9797199a444e0f4d 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -29,7 +29,7 @@ InvoiceAvoirAsk=Facture avoir pour correction de la facture InvoiceAvoirDesc=La <b>facture d'avoir</b> est une facture négative destinée à compenser un montant de facture qui diffère du montant réellement versé (suite à un trop versé par le client par erreur ou un manque non versé par le client suite à un retour produit par exemple). invoiceAvoirWithLines=Créer l'avoir avec les même lignes que la factures dont il est issu invoiceAvoirWithPaymentRestAmount=Créer l'avoir avec le montant restant à payer de la facture dont il est issu. -invoiceAvoirLineWithPaymentRestAmount=Avoir du montant du reste à payer des factures dues. +invoiceAvoirLineWithPaymentRestAmount=Avoir sur le reste à payer ReplaceInvoice=Remplace la facture %s ReplacementInvoice=Remplacement facture ReplacedByInvoice=Remplacée par la facture %s @@ -87,7 +87,7 @@ ClassifyCanceled=Classer 'Abandonnée' ClassifyClosed=Classer 'Fermée' ClassifyUnBilled=Classer 'Non facturée' CreateBill=Créer Facture -AddBill=Créer facture ou avoir +AddBill=Créer une facture ou un avoir AddToDraftInvoices=Ajouter à facture brouillon DeleteBill=Supprimer facture SearchACustomerInvoice=Rechercher une facture client @@ -156,7 +156,7 @@ ConfirmCancelBill=Êtes-vous sûr de vouloir annuler la facture <b>%s</b> ? ConfirmCancelBillQuestion=Pour quelle raison voulez-vous classer la facture abandonnée ? ConfirmClassifyPaidPartially=Êtes-vous sûr de vouloir classer la facture <b>%s</b> comme payée ? ConfirmClassifyPaidPartiallyQuestion=Cette facture n'a pas été payée à hauteur du montant initial. Pour quelle raison voulez-vous la classer malgré tout ? -ConfirmClassifyPaidPartiallyReasonAvoir=Le reste à payer <b>(%s %s)</b> est un trop facturé (car article retourné, oubli, escompte non défini...) régularisé par un avoir +ConfirmClassifyPaidPartiallyReasonAvoir=Le reste à payer <b>(%s %s)</b> est un trop facturé (car article retourné, oubli, escompte réalisé...), régularisé par un avoir ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Le reste à payer <b>(%s %s)</b> est un escompte accordé après facture. J'accepte de perdre la TVA sur cet escompte ConfirmClassifyPaidPartiallyReasonDiscountVat=Le reste à payer <b>(%s %s)</b> est un escompte ConfirmClassifyPaidPartiallyReasonBadCustomer=Mauvais payeur @@ -191,9 +191,9 @@ AlreadyPaid=Déjà réglé AlreadyPaidBack=Déjà remboursé AlreadyPaidNoCreditNotesNoDeposits=Déjà réglé (hors avoirs et acomptes) Abandoned=Abandonné -RemainderToPay=Reste à payer -RemainderToTake=Reste à encaisser -RemainderToPayBack=Reste à rembourser +RemainderToPay=Restant impayé +RemainderToTake=Montant restant à percevoir +RemainderToPayBack=Montant à rembourser Rest=Créance AmountExpected=Montant réclamé ExcessReceived=Trop perçu @@ -225,13 +225,13 @@ NonPercuRecuperable=Non perçue réc. SetConditions=Définir conditions de règlement SetMode=Définir mode de règlement Billed=Facturé -RepeatableInvoice=Facture prédéfinie -RepeatableInvoices=Factures prédéfinies -Repeatable=Prédéfinie -Repeatables=Prédéfinies -ChangeIntoRepeatableInvoice=Convertir en prédéfinie -CreateRepeatableInvoice=Créer facture prédéfinie -CreateFromRepeatableInvoice=Créer depuis facture prédéfinie +RepeatableInvoice=Facture modèle +RepeatableInvoices=Factures modèles +Repeatable=Modèle +Repeatables=Modèles +ChangeIntoRepeatableInvoice=Convertir en facture modèle +CreateRepeatableInvoice=Créer facture modèle +CreateFromRepeatableInvoice=Créer depuis facture modèle CustomersInvoicesAndInvoiceLines=Factures clients et lignes de factures CustomersInvoicesAndPayments=Factures clients et règlements ExportDataset_invoice_1=Factures clients et lignes de facture diff --git a/htdocs/langs/fr_FR/commercial.lang b/htdocs/langs/fr_FR/commercial.lang index 15851bcc37b08c78b6ffe177d7196b3550474a2a..d3125a8edd6f99a93320a9d5d928ac5f1cd31a01 100644 --- a/htdocs/langs/fr_FR/commercial.lang +++ b/htdocs/langs/fr_FR/commercial.lang @@ -9,8 +9,8 @@ Prospect=Prospect Prospects=Prospects DeleteAction=Effacer un événement/tâche NewAction=Nouvel événement -AddAction=Créer événement -AddAnAction=Créer un événement +AddAction=Créer un événement / une tâche +AddAnAction=Créer un événement / une tâche AddActionRendezVous=Créer un rendez-vous Rendez-Vous=Rendez-vous ConfirmDeleteAction=Êtes-vous sûr de vouloir effacer cet événement ? @@ -44,8 +44,8 @@ DoneActions=Liste des événements réalisés DoneActionsFor=Liste des événements réalisés pour %s ToDoActions=Liste des événements incomplets ToDoActionsFor=Liste des événements incomplets pour %s -SendPropalRef=Envoi proposition commerciale %s -SendOrderRef=Envoi commande %s +SendPropalRef=Envoi de la proposition commerciale %s +SendOrderRef=Envoi de la commande %s StatusNotApplicable=Non applicable StatusActionToDo=À faire StatusActionDone=Réalisé @@ -62,7 +62,7 @@ LastProspectContactDone=Prospects contactés DateActionPlanned=Date réalisation prévue DateActionDone=Date réalisation effective ActionAskedBy=Action enregistrée par -ActionAffectedTo=Action affectée à +ActionAffectedTo=Propriétaire de l'événement ActionDoneBy=Action faite par ActionUserAsk=Enregistré par ErrorStatusCantBeZeroIfStarted=Si le champ '<b>Date début réalisation réelle</b>' est renseigné alors l'action est commencée voire finie, aussi le champ 'État' ne peut être 0%%. diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index bcfe356e10a74becc6fccc081d4ce07d8716739f..af76117f2132014412804ee85a2bffbdebe5dd3d 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -379,7 +379,7 @@ DeliveryAddressLabel=Libellé de l'adresse DeleteDeliveryAddress=Supprimer une adresse de livraison ConfirmDeleteDeliveryAddress=Êtes-vous sûr de vouloir supprimer cette adresse de livraison ? NewDeliveryAddress=Nouvelle adresse de livraison -AddDeliveryAddress=Ajouter l'adresse +AddDeliveryAddress=Créer adresse AddAddress=Créer adresse NoOtherDeliveryAddress=Pas d'adresse alternative définie SupplierCategory=Catégorie du fournisseur diff --git a/htdocs/langs/fr_FR/deliveries.lang b/htdocs/langs/fr_FR/deliveries.lang index 4f61426e83cdee643150ed38ece838e687685f97..02dd54275f6ebc0e7ca010c355a71947b7096f6d 100644 --- a/htdocs/langs/fr_FR/deliveries.lang +++ b/htdocs/langs/fr_FR/deliveries.lang @@ -24,3 +24,5 @@ Deliverer=Livreur(s) : Sender=Expéditeur Recipient=Destinataire ErrorStockIsNotEnough=Le stock est insuffisant +Shippable=Expédiable +NonShippable=Non Expédiable diff --git a/htdocs/langs/fr_FR/donations.lang b/htdocs/langs/fr_FR/donations.lang index c1601b1bb2719cc282a87d3f2a1f88a6bb4ef732..e4348ab6ffaa11785b19909a7eca1bdab814f002 100644 --- a/htdocs/langs/fr_FR/donations.lang +++ b/htdocs/langs/fr_FR/donations.lang @@ -4,7 +4,7 @@ Donations=Dons DonationRef=Réf. donation Donor=Donateur Donors=Donateurs -AddDonation=Ajouter don +AddDonation=Créer un don NewDonation=Nouveau don ShowDonation=Montrer don DonationPromise=Promesse de don diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index eaa79b0fc00c39c78bdbf95fbb1aebbd8ef1ff85..0ccafc3843cdec9c5e875b91029efed2503d515e 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -37,7 +37,7 @@ ErrorSupplierCodeRequired=Code fournisseur obligatoire ErrorSupplierCodeAlreadyUsed=Code fournisseur déjà utilisé ErrorBadParameters=Paramètres incorrects ErrorBadValueForParameter=Valeur '%s' incorrecte pour le paramètre '%s' -ErrorBadImageFormat=L'image n'a pas un format reconnu +ErrorBadImageFormat=Cet image a un format non supporté (Votre PHP ne supporte pas les fonctions de conversion de ce format d'image). ErrorBadDateFormat=La valeur '%s' a un format de date non reconnu ErrorWrongDate=La date est incorrecte ErrorFailedToWriteInDir=Impossible d'écrire dans le répertoire %s @@ -114,6 +114,7 @@ ErrorLoginDoesNotExists=Le compte utilisateur de login <b>%s</b> n'a pu être tr ErrorLoginHasNoEmail=Cet utilisateur n'a pas d'email. Impossible de continuer. ErrorBadValueForCode=Mauvaise valeur saisie pour le code. Réessayez avec une nouvelle valeur... ErrorBothFieldCantBeNegative=Les champs %s et %s ne peuvent être tous deux négatifs +ErrorQtyForCustomerInvoiceCantBeNegative=La quantité d'une ligne ne peut pas être négative dans les factures clients ErrorWebServerUserHasNotPermission=Le compte d'exécution du serveur web <b>%s</b> n'a pas les permissions pour cela ErrorNoActivatedBarcode=Aucun type de code-barres activé ErrUnzipFails=Impossible de décompresser le fichier %s avec ZipArchive diff --git a/htdocs/langs/fr_FR/holiday.lang b/htdocs/langs/fr_FR/holiday.lang index f391c3bffa0b240cd1055c470890a1cc620394ea..43e43277b3e1b27343365f9d3f3466bc2f9eafec 100644 --- a/htdocs/langs/fr_FR/holiday.lang +++ b/htdocs/langs/fr_FR/holiday.lang @@ -53,15 +53,15 @@ CantUpdate=Vous ne pouvez pas mettre à jour cette demande de congés. NoDateDebut=Vous devez choisir une date de début. NoDateFin=Vous devez choisir une date de fin. ErrorDureeCP=Votre demande de congés payés ne contient aucun jour ouvré. -TitleValidCP=Valider la demande de Congés Payés +TitleValidCP=Approuver la demande de congès ConfirmValidCP=Êtes-vous sûr de vouloir approuver la demande de congés ? DateValidCP=Date d'approbation TitleToValidCP=Send leave request ConfirmToValidCP=Êtes-vous sûr de vouloir valider la demande de congés ? -TitleRefuseCP=Refuser la demande de Congés Payés +TitleRefuseCP=Refuser la demande de congès ConfirmRefuseCP=Êtes-vous sûr de vouloir valider la demande de congés ? NoMotifRefuseCP=Vous devez choisir un motif pour refuser cette demande. -TitleCancelCP=Annuler la demande de Congés Payés +TitleCancelCP=Annuler la demande de dongès ConfirmCancelCP=Êtes-vous sûr de vouloir annuler la demande de congés ? DetailRefusCP=Motif du refus DateRefusCP=Date du refus @@ -78,7 +78,7 @@ ActionByCP=Réalisée par UserUpdateCP=Pour l'utilisateur PrevSoldeCP=Précédent Solde NewSoldeCP=Nouveau Solde -alreadyCPexist=Une demande de congés à déjà été effectuée sur cette période. +alreadyCPexist=Une demande de congés a déjà été faite sur cette période. UserName=Nom Prénom Employee=Salarié FirstDayOfHoliday=Premier jour de congès @@ -88,25 +88,25 @@ ManualUpdate=Mise à jour manuelle HolidaysCancelation=Annulation de la demande de congès ## Configuration du Module ## -ConfCP=Configuration du module Congés +ConfCP=Configuration du module congès DescOptionCP=Description de l'option ValueOptionCP=Valeur GroupToValidateCP=Groupe ayant la possibilité d'approuver les congés ConfirmConfigCP=Valider la configuration -LastUpdateCP=Notification automatique +LastUpdateCP=Dernière mise à jour automatique de l'allocation des congès UpdateConfCPOK=Mise à jour effectuée avec succès. ErrorUpdateConfCP=Une erreur à eu lieu durant la mise à jour, merci de réessayer. AddCPforUsers=Veuillez ajouter le solde des congés des utilisateurs en <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">cliquant ici</a>. -DelayForSubmitCP=Délai pour faire une demande de congés avant ceux-ci +DelayForSubmitCP=Délai pour faire des demandes de congés AlertapprobatortorDelayCP=Prévenir le validateur si la demande de congés ne correspond pas à la date limite AlertValidatorDelayCP=Prévenir le valideur si la demande de congés ne respecte pas le délai prévu AlertValidorSoldeCP=Prévenir le valideur si l'utilisateur demande des congés dépassant son solde nbUserCP=Nombre d'utilisateur pris en charge dans le module congés nbHolidayDeductedCP=Nombre de congés payés à déduire par jour de congé pris -nbHolidayEveryMonthCP=Nombre de congés payés ajoutés chaque mois +nbHolidayEveryMonthCP=Nombre de congés ajoutés chaque mois Module27130Name= Gestion des demandes de congès Module27130Desc= Ce module permet de gérer les demandes, approbations de congès. -TitleOptionMainCP=Réglages principaux des demande de congès +TitleOptionMainCP=Réglages principaux des demandes de congès TitleOptionEventCP=Réglages des congés liés à des évènements ValidEventCP=Valider UpdateEventCP=Mettre à jour les évènements diff --git a/htdocs/langs/fr_FR/interventions.lang b/htdocs/langs/fr_FR/interventions.lang index d9a9b0f856e78639c47028e7f6d4bc34b27ad34f..aa0db5b2355de7e9c88b532e42467b03996c64ce 100644 --- a/htdocs/langs/fr_FR/interventions.lang +++ b/htdocs/langs/fr_FR/interventions.lang @@ -30,6 +30,7 @@ StatusInterInvoiced=Facturée RelatedInterventions=Interventions rattachées ShowIntervention=Afficher intervention SendInterventionRef=Envoi de la fiche intervention %s +SendInterventionByMail=Envoyer l'intervention par email ##### Types de contacts ##### TypeContact_fichinter_internal_INTERREPFOLL=Responsable suivi de l'intervention TypeContact_fichinter_internal_INTERVENING=Intervenant diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang index 9bc53fc6293ec6afbe926193e720c742d4cf4f8c..425a4504a6efa657cb98ef5c3fc7888b44a7360f 100644 --- a/htdocs/langs/fr_FR/mails.lang +++ b/htdocs/langs/fr_FR/mails.lang @@ -133,6 +133,6 @@ Notifications=Notifications NoNotificationsWillBeSent=Aucune notification par email n'est prévue pour cet événement et société ANotificationsWillBeSent=1 notification va être envoyée par email SomeNotificationsWillBeSent=%s notifications vont être envoyées par email -AddNewNotification=Activer une nouvelle demande de notification email -ListOfActiveNotifications=Liste des demandes de notifications emails actives +AddNewNotification=Activer une nouvelle cible de notification email +ListOfActiveNotifications=Liste des cibles de notifications emails actives ListOfNotificationsDone=Liste des notifications emails envoyées diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index 4bfd1addf7e266358c68971d291070a00d1f6f6b..c665de8ffeca9879b04b788a7c139e2dc56f622e 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -58,12 +58,12 @@ ErrorCantLoadUserFromDolibarrDatabase=Impossible de trouver l'utilisateur <b>%s< ErrorNoVATRateDefinedForSellerCountry=Erreur, aucun taux tva défini pour le pays '%s'. ErrorNoSocialContributionForSellerCountry=Erreur, aucun type de charges défini pour le pays '%s'. ErrorFailedToSaveFile=Erreur, l'enregistrement du fichier a échoué. -ErrorOnlyPngJpgSupported=Erreur, seuls les formats images .jpg et .png sont supportés. -ErrorImageFormatNotSupported=Votre PHP ne supporte pas les fonctions de conversion de ce format d'image. SetDate=Définir date SelectDate=Sélectionnez une date SeeAlso=Voir aussi %s BackgroundColorByDefault=Couleur de fond +FileNotUploaded=Le fichier n'a pas été téléchargé +FileUploaded=Le fichier a été transféré avec succès FileWasNotUploaded=Un fichier a été sélectionné pour attachement mais n'a pas encore été uploadé. Cliquez sur "Joindre ce fichier" pour cela. NbOfEntries=Nb d'entrées GoToWikiHelpPage=Consulter l'aide (nécessite un accès internet) @@ -266,6 +266,7 @@ Afternoon=Après-midi Quadri=Trimestre MonthOfDay=Mois du jour HourShort=H +MinuteShort=mn Rate=Taux UseLocalTax=Inclure taxe Bytes=Octets @@ -340,6 +341,7 @@ FullList=Liste complète Statistics=Statistiques OtherStatistics=Autres statistiques Status=État +Favorite=Favori ShortInfo=Infos Ref=Réf. RefSupplier=Réf. fournisseur @@ -679,7 +681,7 @@ ViewPrivateNote=Voir les notes XMoreLines=%s ligne(s) cachées PublicUrl=URL publique AddBox=Ajouter boite - +SelectElementAndClickRefresh=Sélectionnez un élément et cliquez sur Rafraichir # Week day Monday=Lundi Tuesday=Mardi diff --git a/htdocs/langs/fr_FR/margins.lang b/htdocs/langs/fr_FR/margins.lang index dabd381ab1af4c5ab81e5becaba8a4e384fcc095..6244b0b14ae2dab89e2819fbd266b5da5c44dfcc 100644 --- a/htdocs/langs/fr_FR/margins.lang +++ b/htdocs/langs/fr_FR/margins.lang @@ -10,24 +10,18 @@ MarkRate=Taux de marque DisplayMarginRates=Afficher les taux de marge DisplayMarkRates=Afficher les taux de marque InputPrice=Saisir un prix - margin=Gestion des marges margesSetup=Paramétrage de la gestion des marges - MarginDetails=Détails des marges réalisées - ProductMargins=Marges par produit CustomerMargins=Marges par client SalesRepresentativeMargins=Marges commerciaux - ProductService=Produit ou Service AllProducts=Tous les produits et services ChooseProduct/Service=Choisissez le produit ou le service - StartDate=Date de début EndDate=Date de fin Launch=Démarrer - ForceBuyingPriceIfNull=Forcer le prix d'achat si non renseigné ForceBuyingPriceIfNullDetails=Si "ON", la ligne sera prise en compte avec une marge nulle (on forcera le prix d'achat avec le prix de vente) , sinon ("OFF") la marge sera égale au prix de vente pour cette ligne (prix d'achat à zéro). MARGIN_METHODE_FOR_DISCOUNT=Méthode de gestion des remises globales @@ -35,16 +29,15 @@ UseDiscountAsProduct=Comme un produit UseDiscountAsService=Comme un service UseDiscountOnTotal=Sur le total MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Définit si une remise globale est prise en compte comme un produit, comme un service ou uniquement sur le total lors du calcul des marges. - MARGIN_TYPE=Type de marge gérée MargeBrute=Marge brute MargeNette=Marge nette MARGIN_TYPE_DETAILS=Marge brute : Prix de vente HT - Prix d'achat HT<br/>Marge nette : Prix de vente HT - Coût de revient - CostPrice=Prix de revient BuyingCost=Coût de revient UnitCharges=Charge unitaire Charges=Charges - AgentContactType=Type de contact agent commercial -AgentContactTypeDetails=Permet de définir le type de contact associé aux factures qui sera utilisé pour le rapport de marges par agent commercial +AgentContactTypeDetails=Définissez quel type de contact (lié aux factures) sera utiliser pour le reporting des marges par commercial +rateMustBeNumeric=Le taux doit être une valeure numérique +markRateShouldBeLesserThan100=Le taux de marque doit être inférieur à 100 diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index 608af130b481faed529dd94a7ab63e0a81258599..3404ee5d3cba232263baefa55ca2f45b626649a9 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -85,7 +85,7 @@ SubscriptionLateShort=En retard SubscriptionNotReceivedShort=Non reçue ListOfSubscriptions=Liste des cotisations SendCardByMail=Envoyer fiche par mail -AddMember=Ajouter adhérent +AddMember=Créer adhérent NoTypeDefinedGoToSetup=Aucun type d'adhérent défini. Allez dans le menu "Types d'adhérents" NewMemberType=Nouveau type de membre WelcomeEMail=Email d'accueil @@ -125,7 +125,7 @@ Date=Date DateAndTime=Date et heure PublicMemberCard=Fiche adhérent publique MemberNotOrNoMoreExpectedToSubscribe=Non soumis ou plus soumis à cotisation -AddSubscription=Ajouter adhésion/cotisation +AddSubscription=Créer cotisation ShowSubscription=Afficher adhésion MemberModifiedInDolibarr=Adhérent modifié dans Dolibarr SendAnEMailToMember=Envoyer email d'information à l'adhérent diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index f5a83e574a62b34b5379335b8d85079ce3efd8a8..2156b451102d7fb8700115152bc54ac8740cfa82 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - other SecurityCode=Code de sécurité Calendar=Calendrier -AddTrip=Créer note de frais Tools=Outils ToolsDesc=Cet espace est dédié au regroupement d'outils divers non disponibles dans les autres entrées du menu.<br><br>La liste de ces outils est accessible par le menu sur le côté. Birthday=Anniversaire @@ -48,6 +47,7 @@ Notify_PROJECT_CREATE=Création de projet Notify_TASK_CREATE=Tâche créée Notify_TASK_MODIFY=Tâche modifiée Notify_TASK_DELETE=Tâche supprimée +SeeModuleSetup=Voir la configuration du module NbOfAttachedFiles=Nombre de fichiers/documents liés TotalSizeOfAttachedFiles=Taille totale fichiers/documents liés MaxSize=Taille maximum @@ -80,6 +80,16 @@ ModifiedBy=Modifié par %s ValidatedBy=Validé par %s CanceledBy=Annulé par %s ClosedBy=Clôturé par %s +CreatedById=Id utilisateur créateur +ModifiedById=Id utilisateur du dernier changement +ValidatedById=ID utilisateur qui a validé +CanceledById=Id utilisateur qui a annulé +ClosedById=Id utilisateur qui a fermé +CreatedByLogin=Login utilisateur créateur +ModifiedByLogin=Login utilisateur du dernier changement +ValidatedByLogin=Login utilisateur qui a validé +CanceledByLogin=Login utilisateur qui a annulé +ClosedByLogin=Login utilisateur qui a fermé FileWasRemoved=Le fichier %s a été supprimé DirWasRemoved=Le répertoire %s a été supprimé FeatureNotYetAvailableShort=Disponible dans une prochaine version diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index df04e0b689aa173f70facc76abcfe81020f1992b..58dcbb0844e3f56a85a7a4dc63a6401fb779982c 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -117,12 +117,12 @@ ServiceLimitedDuration=Si produit de type service à durée limitée : MultiPricesAbility=Plusieurs niveaux de prix par produit/service MultiPricesNumPrices=Nombre de prix MultiPriceLevelsName=Catégorie de prix -AssociatedProductsAbility=Prise en charge des produits virtuels -AssociatedProducts=Produit virtuel -AssociatedProductsNumber=Nbre de sous-produits constituant ce produit virtuel -ParentProductsNumber=Nbre de produits virtuels parent -IfZeroItIsNotAVirtualProduct=Si 0, ce produit n'est pas un produit virtuel -IfZeroItIsNotUsedByVirtualProduct=Si 0, ce produit n'est pas utilisé par un produit virtuel +AssociatedProductsAbility=Prise en charge des produits virtuels/packs +AssociatedProducts=Produit virtual/package +AssociatedProductsNumber=Nbre de sous-produits constituant ce produit virtuel/package +ParentProductsNumber=Nbre de produits virtuels/packages parent +IfZeroItIsNotAVirtualProduct=Si 0, ce produit n'est pas un produit virtuel/package +IfZeroItIsNotUsedByVirtualProduct=Si 0, ce produit n'est pas utilisé par un produit virtuel/package EditAssociate=Composer comme produit virtuel Translation=Traduction KeywordFilter=Filtre par mot-clé @@ -132,7 +132,7 @@ AddDel=Ajouter/Retirer Quantity=Quantité NoMatchFound=Aucun résultat n'a été trouvé ProductAssociationList=Liste des produits/services composant ce produit virtuel: Le nombre entre parenthèse est la quantité affectée dans cette composition. -ProductParentList=Liste des produits/services virtuels avec ce produit comme composante +ProductParentList=Liste des produits/services virtuels/packages avec ce produit comme composante ErrorAssociationIsFatherOfThis=L'un des produits sélectionnés est parent du produit en cours DeleteProduct=Supprimer un produit/service ConfirmDeleteProduct=Êtes-vous sûr de vouloir supprimer ce produit/service ? @@ -179,7 +179,7 @@ CloneProduct=Cloner produit/service ConfirmCloneProduct=Êtes-vous sûr de vouloir cloner le produit ou service <b>%s</b> ? CloneContentProduct=Cloner les informations générales du produit/service ClonePricesProduct=Cloner les informations générales et les prix -CloneCompositionProduct=Cloner les produits/services virtuels +CloneCompositionProduct=Cloner les produits/services composant ce produit ProductIsUsed=Ce produit est utilisé NewRefForClone=Réf. du nouveau produit/service CustomerPrices=Prix clients diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang index 598a7a8fcfcdae0dbaf28c0a8f034156d19ec75b..e8a475282027ac9c81cfd3145cba9b49b60317f4 100644 --- a/htdocs/langs/fr_FR/propal.lang +++ b/htdocs/langs/fr_FR/propal.lang @@ -16,7 +16,7 @@ Prospect=Prospect ProspectList=Liste des prospects DeleteProp=Supprimer proposition ValidateProp=Valider proposition -AddProp=Créer proposition +AddProp=Créer une proposition ConfirmDeleteProp=Êtes-vous sûr de vouloir effacer cette proposition commerciale ? ConfirmValidateProp=Êtes-vous sûr de vouloir valider cette proposition commerciale sous la référence <b>%s</b> ? LastPropals=Les %s dernières propales @@ -55,8 +55,6 @@ NoOpenedPropals=Pas de proposition ouverte NoOtherOpenedPropals=Pas d'autre proposition brouillon RefProposal=Réf. proposition commerciale SendPropalByMail=Envoyer proposition commerciale par email -FileNotUploaded=Le fichier n'a pas été envoyé -FileUploaded=Le fichier a été envoyé correctement AssociatedDocuments=Documents associés à la proposition : ErrorCantOpenDir=Impossible d'ouvrir le répertoire DatePropal=Date de proposition diff --git a/htdocs/langs/fr_FR/resource.lang b/htdocs/langs/fr_FR/resource.lang index e4c8a6ade874b620dc2be4451e005ceb2e89ce0a..5059d628092327031428e7562579572337c067a6 100755 --- a/htdocs/langs/fr_FR/resource.lang +++ b/htdocs/langs/fr_FR/resource.lang @@ -32,4 +32,6 @@ ResourceLinkedWithSuccess=Ressource liée avec succès TitleResourceCard=Fiche ressource ConfirmDeleteResource=Confirmer la suppression de cette ressource? RessourceSuccessfullyDeleted=Ressource effacée avec succès -DictionaryResourceType=Type de ressources \ No newline at end of file +DictionaryResourceType=Type de ressources + +SelectResource=Sélectionner la ressource diff --git a/htdocs/langs/fr_FR/sendings.lang b/htdocs/langs/fr_FR/sendings.lang index 47b359318e41339aaf992bf0d16f1621750eb87b..3f839ba9416c66f9b78ac98d600560dc5c8e5724 100644 --- a/htdocs/langs/fr_FR/sendings.lang +++ b/htdocs/langs/fr_FR/sendings.lang @@ -61,6 +61,8 @@ ShipmentCreationIsDoneFromOrder=Pour le moment, la création d'une nouvelle exp RelatedShippings=Expédition(s) associée(s) ShipmentLine=Ligne d'expédition CarrierList=Liste des transporteurs +SendingRunning=Produits de commandes clients déjà expédiés +SuppliersReceiptRunning=Produits de commandes fournisseurs déjà réceptionnés # Sending methods SendingMethodCATCH=Enlèvement par le client diff --git a/htdocs/langs/fr_FR/suppliers.lang b/htdocs/langs/fr_FR/suppliers.lang index 8f7304b676a7e9424515676c0e27101c13d6e389..dab237aeb2d3b4856d02740bf3f1c6bf03d96266 100644 --- a/htdocs/langs/fr_FR/suppliers.lang +++ b/htdocs/langs/fr_FR/suppliers.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - suppliers Suppliers=Fournisseurs Supplier=Fournisseur -AddSupplier=Ajouter un fournisseur +AddSupplier=Créer un fournisseur SupplierRemoved=Fournisseur supprimé SuppliersInvoice=Facture fournisseur NewSupplier=Nouveau fournisseur diff --git a/htdocs/langs/fr_FR/users.lang b/htdocs/langs/fr_FR/users.lang index 447f5b661f86cedbcf3fd12be854863e59529824..a41a33da48dba06731219c8de15a255481df5b6d 100644 --- a/htdocs/langs/fr_FR/users.lang +++ b/htdocs/langs/fr_FR/users.lang @@ -120,3 +120,4 @@ UseTypeFieldToChange=Modifier le champ Type pour changer OpenIDURL=URL OpenID LoginUsingOpenID=Se connecter par OpenID WeeklyHours=Heures de travail hebdomadaires +ColorUser=Couleur de l'utilisateur diff --git a/htdocs/langs/id_ID/link.lang b/htdocs/langs/id_ID/link.lang index 8b1efb75ef372daf24c660017c22d0cda43189b8..c3ac00b7f99ed07a395dc1ff73bf859e6de7d2d7 100644 --- a/htdocs/langs/id_ID/link.lang +++ b/htdocs/langs/id_ID/link.lang @@ -1,8 +1,8 @@ -LinkANewFile=Link a new file/document -LinkedFiles=Linked files and documents -NoLinkFound=No registered links -LinkComplete=The file has been linked successfully -ErrorFileNotLinked=The file could not be linked -LinkRemoved=The link %s has been removed -ErrorFailedToDeleteLink= Failed to remove link '<b>%s</b>' -ErrorFailedToUpdateLink= Failed to update link '<b>%s</b>' +LinkANewFile=Tautan untuk berkas/dokumen baru +LinkedFiles=Tautan berkas dan dokumen +NoLinkFound=Link tidak terdaftar +LinkComplete=Berkas telah berhasil ditautkan +ErrorFileNotLinked=Berkas tidak dapat ditautkan +LinkRemoved=Tautan %s telah dihapus +ErrorFailedToDeleteLink= gagal untuk menghapus tautan '<b>%s</b>' +ErrorFailedToUpdateLink= Gagal untuk memperbaharui tautan '<b>%s</b>' diff --git a/htdocs/langs/id_ID/salaries.lang b/htdocs/langs/id_ID/salaries.lang index edca71a18298c2a2c2f4f3d92ce10dd130ab2335..666632bf28e8b4ce4572c9f7a67fd7d516103b9a 100644 --- a/htdocs/langs/id_ID/salaries.lang +++ b/htdocs/langs/id_ID/salaries.lang @@ -1,8 +1,12 @@ # Dolibarr language file - Source file is en_US - users -Salary=Salary -Salaries=Salaries -Employee=Employee -NewSalaryPayment=New salary payment -SalaryPayment=Salary payment -SalariesPayments=Salaries payments -ShowSalaryPayment=Show salary payment +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Kode Akuntansi untuk pembayaran gaji +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=kode akuntansi untuk pembiayaan keuangan +Salary=Gaji +Salaries=Gaji +Employee=karyawan +NewSalaryPayment=Pembayaran Gaji Baru +SalaryPayment=Pembayaran Gaji +SalariesPayments=Pembayaran Gaji +ShowSalaryPayment=Menampilkan Pembayaran Gaji +THM=rata - rata per jam +TJM=rata - rata per hari diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang index 8cab9d2b651d75b0721d76fda619e2034e4509b4..83602dd0bab7acf9263a125dc11a3fe5f52e3818 100644 --- a/htdocs/langs/sv_SE/accountancy.lang +++ b/htdocs/langs/sv_SE/accountancy.lang @@ -1,158 +1,158 @@ # Dolibarr language file - en_US - Accounting Expert CHARSET=UTF-8 -Accounting=Accounting -Globalparameters=Global parameters -Chartofaccounts=Chart of accounts -Fiscalyear=Fiscal years -Menuaccount=Accounting accounts -Menuthirdpartyaccount=Thirdparty accounts -MenuTools=Tools - -ConfigAccountingExpert=Configuration of the module accounting expert -Journaux=Journals -JournalFinancial=Financial journals -Exports=Exports -Modelcsv=Model of export -Selectmodelcsv=Select a model of export -Modelcsv_normal=Classic export -Modelcsv_CEGID=Export towards CEGID Expert -BackToChartofaccounts=Return chart of accounts -Back=Return - -Definechartofaccounts=Define a chart of accounts -Selectchartofaccounts=Select a chart of accounts -Validate=Validate -Addanaccount=Add an accounting account -AccountAccounting=Accounting account +Accounting=Redovisning +Globalparameters=Globala parametrar +Chartofaccounts=Kontoplan +Fiscalyear=Räkenskapsår +Menuaccount=Redovisnings konton +Menuthirdpartyaccount=Tredjeparts konton +MenuTools=Verktyg + +ConfigAccountingExpert=Konfiguration av modulen redovisningsexpert +Journaux=Journaler +JournalFinancial=Finansiella journaler +Exports=Export +Modelcsv=Modell av export +Selectmodelcsv=Välj en modell av export +Modelcsv_normal=Klassisk export +Modelcsv_CEGID=Export mot CEGID Expert +BackToChartofaccounts=Avkastning kontoplan +Back=Avkastning + +Definechartofaccounts=Definiera en kontoplan +Selectchartofaccounts=Välj en kontoplan +Validate=Validera +Addanaccount=Lägg till ett redovisningskonto +AccountAccounting=Redovisningskonto Ventilation=Ventilation -ToDispatch=To dispatch -Dispatched=Dispatched - -CustomersVentilation=Ventilation customers -SuppliersVentilation=Ventilation suppliers -TradeMargin=Trade margin -Reports=Reports -ByCustomerInvoice=By invoices customers -ByMonth=By Month -NewAccount=New accounting account -Update=Update -List=List -Create=Create -UpdateAccount=Modification of an accounting account -UpdateMvts=Modification of a movement -WriteBookKeeping=Record accounts in general ledger -Bookkeeping=General ledger -AccountBalanceByMonth=Account balance by month - -AccountingVentilation=Accounting ventilation -AccountingVentilationSupplier=Accounting ventilation supplier -AccountingVentilationCustomer=Accounting ventilation customer -Line=Line - -CAHTF=Total purchase supplier HT -InvoiceLines=Lines of invoice to be ventilated -InvoiceLinesDone=Ventilated lines of invoice -IntoAccount=In the accounting account - -Ventilate=Ventilate -VentilationAuto=Automatic ventilation - -Processing=Processing -EndProcessing=The end of processing -AnyLineVentilate=Any lines to ventilate -SelectedLines=Selected lines -Lineofinvoice=Line of invoice -VentilatedinAccount=Ventilated successfully in the accounting account -NotVentilatedinAccount=Not ventilated in the accounting account +ToDispatch=Avsändandet +Dispatched=Levereras + +CustomersVentilation=Ventilationskunder +SuppliersVentilation=Ventilations leverantörer +TradeMargin=Handelsmarginal +Reports=Rapporter +ByCustomerInvoice=Enligt faktura kunder +ByMonth=Enligt månad +NewAccount=Nytt redovisningskonto +Update=Uppdatera +List=Lista +Create=Skapa +UpdateAccount=Ändring av ett redovisningskonto +UpdateMvts=Ändring av en rörelse +WriteBookKeeping=Record konton i huvudboken +Bookkeeping=Huvudbok +AccountBalanceByMonth=Saldo per månad + +AccountingVentilation=Redovisning ventilation +AccountingVentilationSupplier=Redovisning ventilations leverantör +AccountingVentilationCustomer=Redovisning ventilations kund +Line=Linje + +CAHTF=Totala köpesleverantörs HT +InvoiceLines=Linjer av faktura som ska ventileras +InvoiceLinesDone=Ventilerade linjer faktura +IntoAccount=I bokföringskonto + +Ventilate=Ventilera +VentilationAuto=Automatisk ventilation + +Processing=Bearbetning +EndProcessing=I slutet av behandlingen +AnyLineVentilate=Några rader för att ventilera +SelectedLines=Valda linjer +Lineofinvoice=Line of faktura +VentilatedinAccount=Ventilerade framgångsrikt i redovisningskonto +NotVentilatedinAccount=Inte ventilerad i redovisningskonto ACCOUNTING_SEPARATORCSV=Separator CSV -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to be ventilated shown by page (maximum recommended : 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the pages of ventilation "Has to ventilate" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the pages of ventilation "Ventilated" by the most recent elements +ACCOUNTING_LIMIT_LIST_VENTILATION=Antal element som skall ventil visas av sidan (max rekommenderad: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Börja sorteringen av sidorna i ventilations "Måste ventilera" av de senaste delarna +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Börja sorteringen av sidorna i ventilation "Ventilerade" av de senaste delarna -AccountLength=Length of the accounting accounts shown in Dolibarr -AccountLengthDesc=Function allowing to feign a length of accounting account by replacing spaces by the zero figure. This function touches only the display, it does not modify the accounting accounts registered in Dolibarr. For the export, this function is necessary to be compatible with certain software. -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounts +AccountLength=Längd på redovisningen redovisning i Dolibarr +AccountLengthDesc=Funktion som gör det möjligt att låtsas en längd av bokföringskonto genom att ersätta mellanslag med noll siffra. Den här funktionen berör endast displayen, det ändrar inte redovisningskonton registrerade i Dolibarr. För export, är nödvändigt denna funktion för att vara kompatibel med viss programvara. +ACCOUNTING_LENGTH_GACCOUNT=Längd på de allmänna räkenskaperna +ACCOUNTING_LENGTH_AACCOUNT=Längd av tredjepartskonton -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_BANK_JOURNAL=Bank journal +ACCOUNTING_SELL_JOURNAL=Sell tidskrift +ACCOUNTING_PURCHASE_JOURNAL=Bara tidskrift +ACCOUNTING_BANK_JOURNAL=Bank tidskrift ACCOUNTING_CASH_JOURNAL=Cash journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal - -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account of transfer -ACCOUNTING_ACCOUNT_SUSPENSE=Account of wait - -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (if not defined in the service sheet) - -Doctype=Type of document -Docdate=Date -Docref=Reference -Numerocompte=Account -Code_tiers=Thirdparty -Labelcompte=Label account +ACCOUNTING_MISCELLANEOUS_JOURNAL=Diverse tidskrift +ACCOUNTING_SOCIAL_JOURNAL=Social tidskrift + +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Redogörelse för överföring +ACCOUNTING_ACCOUNT_SUSPENSE=Redogörelse för vänta + +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Redovisning kontot som standard för köpta produkter (om den inte anges i produktbladet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Redovisning kontot som standard för de sålda produkterna (om den inte anges i produktbladet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Redovisning konto som standard för de köpte tjänster (om den inte anges i servicebladet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Redovisning kontot som standard för sålda tjänster (om den inte anges i servicebladet) + +Doctype=Typ av dokument +Docdate=Datum +Docref=Referens +Numerocompte=Konto +Code_tiers=Tredjeparts +Labelcompte=Etikett konto Debit=Debit -Credit=Credit -Amount=Amount +Credit=Kredit +Amount=Belopp Sens=Sens Codejournal=Journal -DelBookKeeping=Delete the records of the general ledger +DelBookKeeping=Ta bort posterna i huvudboken -SellsJournal=Sells journal -PurchasesJournal=Purchases journal -DescSellsJournal=Sells journal -DescPurchasesJournal=Purchases journal -BankJournal=Bank journal -DescBankJournal=Bank journal including all the types of payments other than cash +SellsJournal=Försäljnings journal +PurchasesJournal=Inköp tidskrift +DescSellsJournal=Sells tidskrift +DescPurchasesJournal=Inköp tidskrift +BankJournal=Bank tidskrift +DescBankJournal=Bank journal inklusive alla typer av annat än pengar betalningar CashJournal=Cash journal -DescCashJournal=Cash journal including the type of payment cash +DescCashJournal=Cash journal inklusive typ av betalning kontant -CashPayment=Cash Payment +CashPayment=Kontantbetalning -SupplierInvoicePayment=Payment of invoice supplier -CustomerInvoicePayment=Payment of invoice customer +SupplierInvoicePayment=Betalning av leverantörsfaktura +CustomerInvoicePayment=Betalning av faktura kund -ThirdPartyAccount=Thirdparty account +ThirdPartyAccount=Tredjeparts konto -NewAccountingMvt=New movement -NumMvts=Number of movement -ListeMvts=List of the movement -ErrorDebitCredit=Debit and Credit cannot have a value at the same time +NewAccountingMvt=Ny rörelse +NumMvts=Antal rörelse +ListeMvts=Lista över rörelsen +ErrorDebitCredit=Debit och kredit kan inte ha ett värde på samma gång -ReportThirdParty=List thirdparty account -DescThirdPartyReport=Consult here the list of the thirdparty customers and the suppliers and their accounting accounts +ReportThirdParty=Listan tredjeparts konto +DescThirdPartyReport=Konsul här listan över de tredjeparts kunder och leverantörer och deras bokföringskonton -ListAccounts=List of the accounting accounts +ListAccounts=Förteckning över redovisningskonton -Pcgversion=Version of the plan -Pcgtype=Class of account -Pcgsubtype=Under class of account -Accountparent=Root of the account -Active=Statement +Pcgversion=Version av planen +Pcgtype=Klass konto +Pcgsubtype=Under klass konto +Accountparent=Roten till kontot +Active=Uttalande -NewFiscalYear=New fiscal year +NewFiscalYear=Nytt räkenskapsår -DescVentilCustomer=Consult here the annual accounting ventilation of your invoices customers -TotalVente=Total turnover HT -TotalMarge=Total sales margin -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their accounting account -DescVentilTodoCustomer=Ventilate your lines of customer invoice with an accounting account -ChangeAccount=Change the accounting account for lines selected by the account: +DescVentilCustomer=Rådgör här den årliga redovisningen ventilation av dina fakturor kunder +TotalVente=Total omsättning HT +TotalMarge=Total försäljning marginal +DescVentilDoneCustomer=Konsul här listan med linjerna av fakturor kunder och deras bokföringskonto +DescVentilTodoCustomer=Ventilera dina rader av kundfaktura med en redovisningskonto +ChangeAccount=Ändra bokföringskonto för linjer som valts ut av kontot: Vide=- -DescVentilSupplier=Consult here the annual accounting ventilation of your invoices suppliers -DescVentilTodoSupplier=Ventilate your lines of invoice supplier with an accounting account -DescVentilDoneSupplier=Consult here the list of the lines of invoices supplier and their accounting account +DescVentilSupplier=Rådgör här den årliga redovisningen ventilation av dina fakturor leverantörer +DescVentilTodoSupplier=Ventilera dina rader av leverantörsfaktura med en redovisningskonto +DescVentilDoneSupplier=Konsul här listan med linjerna av fakturor leverantör och deras bokföringskonto -ValidateHistory=Validate Automatically +ValidateHistory=Validera Automatiskt -ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used +ErrorAccountancyCodeIsAlreadyUse=Fel, du kan inte ta bort denna redovisningskonto eftersom den används -FicheVentilation=Ventilation card +FicheVentilation=Ventilation kort diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index bab67d2c1ad75c4f1cc70cb804d408879557168c..b67c53cc77eb6889dae550e6b2b3039c1b1eaa72 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -43,19 +43,19 @@ SecuritySetup=Säkerhet setup ErrorModuleRequirePHPVersion=Fel, kräver denna modul PHP version %s eller högre ErrorModuleRequireDolibarrVersion=Fel, kräver denna modul Dolibarr version %s eller högre ErrorDecimalLargerThanAreForbidden=Fel, en precision högre än <b>%s</b> stöds inte. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -Chartofaccounts=Chart of accounts -Fiscalyear=Fiscal years +DictionarySetup=Lexikon inställnings +Dictionary=Ordböcker +Chartofaccounts=Kontoplan +Fiscalyear=Räkenskapsår ErrorReservedTypeSystemSystemAuto=Värdena "system" och "systemauto" för typ är reserverade. Du kan använda "user" som värde för att lägga till en egen post. ErrorCodeCantContainZero=Kod får inte innehålla värdet 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) +DisableJavascript=Inaktivera JavaScript och Ajax-funktioner (rekommenderas för blinda personer eller textbaserade webbläsare) ConfirmAjax=Använd Ajax bekräftelse popups -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=Även om du har ett stort antal tredje parter (> 100 000), kan du öka hastigheten genom att sätta konstant COMPANY_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen. +UseSearchToSelectCompany=Använd automatisk komplettering fält för att välja tredje man istället för att använda en listruta. ActivityStateToSelectCompany= Lägg till ett filter alternativ för att visa / dölja thirdparties som för närvarande är i aktivitet eller har upphört att -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=Även om du har ett stort antal tredje parter (> 100 000), kan du öka hastigheten genom att sätta konstant CONTACT_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen. +UseSearchToSelectContact=Använd automatisk komplettering fält för att välja kontakt (istället för att använda en listruta). SearchFilter=Sök filter alternativ NumberOfKeyToSearch=NBR tecken för att utlösa Sök: %s ViewFullDateActions=Visa fullständig datum åtgärder i tredje blad @@ -67,8 +67,8 @@ ShowPreview=Visa förhandsgranskning PreviewNotAvailable=Förhandsgranska inte tillgänglig ThemeCurrentlyActive=Tema för tillfället CurrentTimeZone=PHP server tidszon -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). +MySQLTimeZone=Timezone MySql (databas) +TZHasNoEffect=Datum lagras och returneras av databasserver som om de hålls som LAGTS sträng. Den tidszon har effekt endast vid användning UNIX_TIMESTAMP funktion (som inte bör användas av Dolibarr, så databas TZ ska ha någon effekt, även om det ändras efter uppgifterna angavs). Space=Space Table=Tabell Fields=Fält @@ -77,8 +77,8 @@ Mask=Mask NextValue=Nästa värde NextValueForInvoices=Nästa värde (fakturor) NextValueForCreditNotes=Nästa värde (kreditnotor) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) +NextValueForDeposit=Nästa värde (deposition) +NextValueForReplacements=Nästa värde (ersättare) MustBeLowerThanPHPLimit=Obs: Din PHP gränser varje filuppladdning storlek till <b>%s</b> %s, oavsett denna parameter värde är NoMaxSizeByPHPLimit=Obs: Ingen gräns som anges i din PHP konfiguration MaxSizeForUploadedFiles=Maximala storleken för uppladdade filer (0 att förkasta varje uppladdning) @@ -107,8 +107,8 @@ OtherSetup=Andra setup CurrentValueSeparatorDecimal=Decimaltecken CurrentValueSeparatorThousand=Tusentalsavgränsare Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID +IdModule=Modul ID +IdPermissions=Behörighet ID Modules=Moduler ModulesCommon=Huvudmoduler ModulesOther=Andra moduler @@ -120,7 +120,7 @@ LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Lokalisering parametrar ClientTZ=Kund tidzon (användare) ClientHour=Kund tid (användare) -OSTZ=Server OS Time Zone +OSTZ=Server OS tidszon PHPTZ=Tidszon PHP server PHPServerOffsetWithGreenwich=PHP server offset bredd Greenwich (sekunder) ClientOffsetWithGreenwich=Klient / Browser offset bredd Greenwich (sekunder) @@ -129,7 +129,7 @@ CurrentHour=PHP server timme CompanyTZ=Tidszon företag (huvudföretag) CompanyHour=Hour företag (huvudföretag) CurrentSessionTimeOut=Aktuell session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=För att ställa in en annan PHP tidszon (inget krav), kan du försöka lägga till en fil .htacces med en rad som denna "setenv TZ Europe / Paris" OSEnv=OS Miljö Box=Låda Boxes=Lådor @@ -219,7 +219,7 @@ AutomaticIfJavascriptDisabled=Automatisk om Javascript är avstängt AvailableOnlyIfJavascriptNotDisabled=Endast tillgängligt om JavaScript är inte oduglig AvailableOnlyIfJavascriptAndAjaxNotDisabled=Endast tillgängligt om JavaScript är inte oduglig Required=Obligatorisk -UsedOnlyWithTypeOption=Used by some agenda option only +UsedOnlyWithTypeOption=Används av en viss agenda alternativet Security=Säkerhet Passwords=Lösenord DoNotStoreClearPassword=Har ingen butik tydlig lösenord i databasen, men endast lagra krypterade värde (Aktiverad rekommenderas) @@ -238,7 +238,7 @@ OfficialWebSiteFr=Officiella franska hemsida OfficialWiki=Dolibarr Wiki OfficialDemo=Dolibarr online demo OfficialMarketPlace=Officiella marknadsplats för externa moduler / addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) +OfficialWebHostingService=Refererade webbhotell (Cloud hosting) ReferencedPreferredPartners=Preferred Partners OtherResources=Autres ressources ForDocumentationSeeWiki=För användarens eller utvecklarens dokumentation (Doc, FAQs ...), <br> ta en titt på Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a> @@ -260,9 +260,9 @@ MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPs Host (Ej definierad i MAIN_MAIL_EMAIL_FROM=Avsändare e-post för automatisk e-post (som standard i php.ini: <b>%s)</b> MAIN_MAIL_ERRORS_TO=Avsändarens e-postadress används för fel returer e-post skickas MAIN_MAIL_AUTOCOPY_TO= Skicka systematiskt en dold kol-kopia av alla skickade email till -MAIN_MAIL_AUTOCOPY_PROPOSAL_TO= Send systematically a hidden carbon-copy of proposals sent by email to -MAIN_MAIL_AUTOCOPY_ORDER_TO= Send systematically a hidden carbon-copy of orders sent by email to -MAIN_MAIL_AUTOCOPY_INVOICE_TO= Send systematically a hidden carbon-copy of invoice sent by emails to +MAIN_MAIL_AUTOCOPY_PROPOSAL_TO= Skicka systematiskt en dold kol-kopia av förslag skickas med e-post till +MAIN_MAIL_AUTOCOPY_ORDER_TO= Skicka systematiskt en dold kol-kopia av order skickas med e-post till +MAIN_MAIL_AUTOCOPY_INVOICE_TO= Skicka systematiskt en dold kol-kopia på faktura skickas med e-post till MAIN_DISABLE_ALL_MAILS=Inaktivera alla e-postmeddelanden sendings (på försök eller demos) MAIN_MAIL_SENDMODE=Metod för att skicka e-post MAIN_MAIL_SMTPS_ID=SMTP-ID om autentisering krävs @@ -296,13 +296,13 @@ UnpackPackageInDolibarrRoot=Packa upp paketet fil till Dolibarr s katalog <b>%s< SetupIsReadyForUse=Installera är klar och Dolibarr är klar att användas med den nya komponenten. NotExistsDirect=Den alternativa rotkatalogen är inte definierad.<br> InfDirAlt=Sedab version 3 är det möjligt att definiera en alternativ rotkatalog. Detta medger en gemensam plats att lagra plugin och anpassade mallar.<br>Skapa en katalog i Dolibarrs rot (t.ex. custom).<br> -InfDirExample=<br>Then declare it in the file conf.php<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>*These lines are commented with "#", to uncomment only remove the character. +InfDirExample=<br> Sedan förklara den i filen conf.php <br> $ Dolibarr_main_url_root_alt = 'http: // myserver / anpassad " <br> $ Dolibarr_main_document_root_alt = '/ sökväg / till / Dolibarr / htdocs / anpassad " <br> * Dessa linjer kommen med "#", för att kommentera bort bara ta bort tecknet. YouCanSubmitFile=Välj modul: CurrentVersion=Dolibarr nuvarande version CallUpdatePage=Gå till sidan som uppdaterar databasen struktur och data: %s. LastStableVersion=Senaste stabila version GenericMaskCodes=Du kan ange någon numrering mask. I denna mask skulle följande taggar användas: <br> <b>(000000)</b> motsvarar ett antal som kommer att ökas på varje %s. Ange så många nollor som den önskade längden på disken. Räknaren kommer att fyllas ut med nollor från vänster för att få så många nollor som masken. <br> <b>(000000 000)</b> samma som tidigare men en kompensation som motsvarar det antal till höger om tecknet + tillämpas med början den första %s. <br> <b>(000000 @ x)</b> samma som tidigare, men räknaren återställs till noll när månaden x uppnås (x mellan 1 och 12). Om detta alternativ används och x är 2 eller högre, då sekvensen (yy) (mm) eller (ÅÅÅÅ) (mm) krävs också. <br> <b>(Dd)</b> dag (01 till 31). <br> <b>(Mm)</b> månad (01 till 12). <br> <b>(Yy), (ÅÅÅÅ) eller (y)</b> år under 2, 4 eller ett nummer. <br> -GenericMaskCodes2=<b>{cccc}</b> the client code on n characters<br><b>{cccc000}</b> the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.<br><b>{tttt}</b> The code of thirdparty type on n characters (see dictionary-thirdparty types).<br> +GenericMaskCodes2=<b>{Cccc}</b> klientkoden på n tecken <br> <b>{Cccc000}</b> klientkoden på n tecken följs av en räknare dedikerad för kunden. Denna räknare tillägnad kund återställs vid samma tidpunkt än den globala räknare. <br> <b>{Tttt}</b> Koden för tredjeparts typ på n tecken (se ordlistan-tredjeparts typer). <br> GenericMaskCodes3=Alla andra tecken i masken förblir intakt. <br> Blanksteg är inte tillåtna. <br> GenericMaskCodes4a=<u>Exempel på 99. %s den tredje part TheCompany gjort 2007/01/31:</u> <br> GenericMaskCodes4b=<u>Exempel på tredje part som har skapats på 2007/03/01:</u> <br> @@ -314,7 +314,7 @@ ServerNotAvailableOnIPOrPort=Servern är inte tillgänglig på adress <b>%s</b> DoTestServerAvailability=Test serveranslutning DoTestSend=Testa att skicka DoTestSendHTML=Testa att skicka HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. +ErrorCantUseRazIfNoYearInMask=Fel, kan inte använda alternativet @ för att återställa räknaren varje år om sekvens {åå} eller {yyyy} inte är i mask. ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fel, kan inte använda alternativet @ om sekvensen (yy) (mm) eller (ÅÅÅÅ) (mm) inte är i mask. UMask=Umask parameter för nya filer på Unix / Linux / BSD-filsystemet. UMaskExplanation=Denna parameter gör att du kan definiera behörigheter som standard på filer skapade av Dolibarr på servern (under upp till exempel). <br> Det måste vara det oktala värdet (till exempel 0666 innebär läsa och skriva för alla). <br> Denna parameter är meningslöst på en Windows server. @@ -362,7 +362,7 @@ GetSecuredUrl=Få beräknat URL ButtonHideUnauthorized=Visa ej knappar för åtgärder för vilka behörighet saknas istället för att visa knapparna inaktiverade OldVATRates=Gammal momssats NewVATRates=Ny momssats -PriceBaseTypeToChange=Modify on prices with base reference value defined on +PriceBaseTypeToChange=Ändra om priser med bas referensvärde som definieras på MassConvert=Starta masskonvertering String=String TextLong=Lång text @@ -379,29 +379,29 @@ ExtrafieldSelectList = Välj från tabell ExtrafieldSeparator=Avskiljare ExtrafieldCheckBox=Kryssruta ExtrafieldRadio=Radioknapp -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 +ExtrafieldParamHelpselect=Parametrar listan måste vara som nyckel, värde <br><br> till exempel: <br> 1, value1 <br> 2, värde2 <br> 3, value3 <br> ... <br><br> För att få en lista beroende på en annan: <br> 1, value1 | parent_list_code: parent_key <br> 2, värde2 | parent_list_code: parent_key +ExtrafieldParamHelpcheckbox=Parametrar listan måste vara som nyckel, värde <br><br> till exempel: <br> 1, value1 <br> 2, värde2 <br> 3, value3 <br> ... +ExtrafieldParamHelpradio=Parametrar listan måste vara som nyckel, värde <br><br> till exempel: <br> 1, value1 <br> 2, värde2 <br> 3, value3 <br> ... +ExtrafieldParamHelpsellist=Parametrar lista kommer från en tabell <br> Syntax: tabellnamn: label_field: id_field :: filtrering <br> Exempel: c_typent: libelle: id :: filter <br><br> Filtret kan vara ett enkelt test (t.ex. aktiv = 1) för att visa endast aktiv värde <br> Om du vill filtrera på extrafields använder syntaxt extra.fieldcode = ... (där fältkoden är koden för Mig &) <br><br> För att få en lista beroende på en annan: <br> c_typent: libelle: id: parent_list_code | parent_column: filter LibraryToBuildPDF=Katalog som används för att skapa 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> -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax) +WarningUsingFPDF=Varning: Din <b>conf.php</b> innehåller direktiv <b>dolibarr_pdf_force_fpdf = 1.</b> Detta innebär att du använder fpdf bibliotek för att generera PDF-filer. Detta bibliotek är gammalt och inte stöder en mängd funktioner (Unicode, bild öppenhet, kyrilliska, arabiska och asiatiska språk, ...), så att du kan uppleva fel under PDF generation. <br> För att lösa detta och ha ett fullt stöd för PDF-generering, ladda ner <a href="http://www.tcpdf.org/" target="_blank">TCPDF bibliotek</a> , sedan kommentera eller ta bort linjen <b>$ dolibarr_pdf_force_fpdf = 1,</b> och lägg istället <b>$ dolibarr_lib_TCPDF_PATH = 'path_to_TCPDF_dir'</b> +LocalTaxDesc=Vissa länder tillämpar 2 eller 3 skatter på varje fakturarad. Om så är fallet, välj typ för andra och tredje skatte- och dess hastighet. Möjlig typ är: <br> 1: lokal skatt tillämpas på produkter och tjänster utan moms (moms inte tillämpas på lokal skatt) <br> 2: lokal skatt tillämpas på produkter och tjänster innan moms (moms beräknas på beloppet + localtax) <br> 3: lokal skatt tillämpas på produkter utan moms (moms inte tillämpas på lokal skatt) <br> 4: lokal skatt tillämpas på produkter innan moms (moms beräknas på beloppet + localtax) <br> 5: lokal skatt tillämpas på tjänster utan moms (moms inte tillämpas på lokal skatt) <br> 6: lokal skatt tillämpas på tjänster innan moms (moms beräknas på beloppet + localtax) SMS=SMS LinkToTestClickToDial=Skriv in ett telefonnummer att ringa upp för att visa en länk för att prova ClickToDial url för användare <strong>%s</strong> RefreshPhoneLink=Uppdatera länk LinkToTest=Väljbar länk genererad för användare <strong>%s</strong> (klicka på tfn-nummer för att prova) KeepEmptyToUseDefault=Lämna tom för standardvärde DefaultLink=Standardlänk -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> records on <strong>%s</strong> %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records +ValueOverwrittenByUserSetup=Varning, kan detta värde skrivas över av användarspecifik installation (varje användare kan ställa in sin egen clicktodial url) +ExternalModule=Extern modul - Installerad i katalogen %s +BarcodeInitForThirdparties=Mäss streckkod init för thirdparties +BarcodeInitForProductsOrServices=Mass streckkod init eller återställning efter produkter eller tjänster +CurrentlyNWithoutBarCode=För närvarande har <strong>du% s</strong> skivor <strong>på% s%</strong> s utan streckkod definieras. +InitEmptyBarCode=Init värde för nästa% s tomma poster EraseAllCurrentBarCode=Radera alla nuvarande streckkoder ConfirmEraseAllCurrentBarCode=Vill du radera alla nuvarande streckkoder? AllBarcodeReset=Alla värden för streckkod har raderats -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. +NoBarcodeNumberingTemplateDefined=Ingen numrering streckkod mall aktiverat i streckkodsmodul setup. NoRecordWithoutBarcodeDefined=Ingen post utan angivet värde för streckkod. # Modules @@ -480,11 +480,11 @@ Module400Desc=Projektets ledning innanför andra moduler Module410Name=WebCalendar Module410Desc=WebCalendar integration Module500Name=Speciella utgifter (skatt, sociala avgifter, utdelningar) -Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries +Module500Desc=Förvaltning av särskilda kostnader som skatter, sociala avgifter, utdelningar och löner Module510Name=Löner -Module510Desc=Management of employees salaries and payments +Module510Desc=Förvaltning av de anställdas löner och betalningar Module600Name=Anmälningar -Module600Desc=Skicka meddelanden via e-post på några Dolibarr affärshändelser till annans kontakter +Module600Desc=Skicka e-postmeddelanden på vissa Dolibarr affärshändelser till kontakter tredjeparts (inställnings definieras på varje tredjeparts) Module700Name=Donationer Module700Desc=Donation ledning Module1200Name=Mantis @@ -505,37 +505,37 @@ Module2600Name=WebServices Module2600Desc=Aktivera Dolibarr webbtjänster server Module2700Name=Gravatar Module2700Desc=Använder online Gravatar tjänst (www.gravatar.com) för att visa foto av användare / medlemmar (hittade med sin e-post). Behöver en internet -Module2800Desc=FTP Client +Module2800Desc=FTP-klient Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind omvandlingar kapacitet Module3100Name=Skype -Module3100Desc=Add a Skype button into card of adherents / third parties / contacts +Module3100Desc=Lägga till en Skype-knapp i kort anhängare / tredje man / kontakter Module5000Name=Multi-bolag Module5000Desc=Gör att du kan hantera flera företag Module6000Name=Workflow Module6000Desc=Workflow management -Module20000Name=Ledighet -Module20000Desc=Deklarera och följ anställdas ledighet -Module39000Name=Product batch -Module39000Desc=Batch number, eat-by and sell-by date management on products +Module20000Name=Lämna Framställningar förvaltning +Module20000Desc=Deklarera och följ de anställda lämnar förfrågningar +Module39000Name=Produktsats +Module39000Desc=Batchnummer, äter-by och bäst före-datum hantering av produkter Module50000Name=Paybox Module50000Desc=Modul för att erbjuda en online-betalning sidan genom kreditkort med Paybox Module50100Name=Point of sales Module50100Desc=Point of sales modul -Module50200Name= Paypal -Module50200Desc= Modul för att erbjuda en online-betalning sidan med kreditkort med Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50200Name=Paypal +Module50200Desc=Modul för att erbjuda en online-betalning sidan med kreditkort med Paypal +Module50400Name=Redovisning (avancerad) +Module50400Desc=Bokföring och redovisning (dubbla parter) Module54000Name=PrintIPP -Module54000Desc=Print via Cups IPP Printer. -Module55000Name=Open Poll -Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module150010Name=Batch number, eat-by date and sell-by date -Module150010Desc=batch number, eat-by date and sell-by date management for product +Module54000Desc=Skriv ut via Cups IPP-skrivare. +Module55000Name=Öppen Poll +Module55000Desc=Modul för att göra online omröstningar (som Doodle, öar Rdvz, ...) +Module59000Name=Marginaler +Module59000Desc=Modul för att hantera marginaler +Module60000Name=Provision +Module60000Desc=Modul för att hantera uppdrag +Module150010Name=Batchnummer, äter före-datum och bäst före-datum +Module150010Desc=batchnummer, äter före-datum och bäst före-datum hantering för produkt Permission11=Läs fakturor Permission12=Skapa / ändra fakturor Permission13=Unvalidate fakturor @@ -584,7 +584,7 @@ Permission95=Läs rapporter Permission101=Läs sendings Permission102=Skapa / ändra sendings Permission104=Validate sendings -Permission106=Export sendings +Permission106=Exportsend Permission109=Ta bort sendings Permission111=Läs finansiella räkenskaper Permission112=Skapa / ändra / radera och jämför transaktioner @@ -611,10 +611,11 @@ Permission162=Skapa / ändra avtal Permission163=Aktivera en tjänst av ett kontrakt Permission164=Inaktivera en tjänst av ett kontrakt Permission165=Radera kontrakt -Permission171=Läs resor -Permission172=Skapa / modifiera resor -Permission173=Ta bort resor -Permission178=Export resor +Permission171=Läs resor och utgifter (eget och hans underordnade) +Permission172=Skapa / ändra resor och kostnader +Permission173=Ta bort resor och kostnader +Permission174=Läsa alla resor och kostnader +Permission178=Export resor och kostnader Permission180=Läs leverantörer Permission181=Läs leverantör order Permission182=Skapa / ändra leverantör order @@ -641,9 +642,9 @@ Permission221=Läs emailings Permission222=Skapa / ändra emailings (ämne, mottagare ...) Permission223=Validera emailings (medger sändning) Permission229=Ta bort emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent +Permission237=Visa mottagare och info +Permission238=Skicka försändelserna manuellt +Permission239=Radera utskick efter validering eller skickas Permission241=Läs kategorier Permission242=Skapa / ändra kategorier Permission243=Ta bort kategorier @@ -688,10 +689,10 @@ Permission401=Läs rabatter Permission402=Skapa / ändra rabatter Permission403=Validate rabatter Permission404=Ta bort rabatter -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries +Permission510=Läs Löner +Permission512=Skapa / ändra löner +Permission514=Radera löner +Permission517=Export löner Permission531=Läs tjänster Permission532=Skapa / modifiera tjänster Permission534=Ta bort tjänster @@ -725,7 +726,7 @@ Permission1233=Validate leverantörsfakturor Permission1234=Ta bort leverantörsfakturor Permission1235=Skicka leverantörsfakturor via e-post Permission1236=Export leverantörsfakturor, attribut och betalningar -Permission1237=Export supplier orders and their details +Permission1237=Export leverantörsorder och tillhörande information Permission1251=Kör massiv import av externa data till databasen (data last) Permission1321=Export kundfakturor, attribut och betalningar Permission1421=Export kundorder och attribut @@ -743,44 +744,44 @@ Permission2501=Läsa dokument Permission2502=Skicka eller ta bort dokument Permission2503=Lämna eller ta bort dokument Permission2515=Setup dokument kataloger -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales +Permission2801=Använd FTP-klient i läsläge (bläddra och ladda endast) +Permission2802=Använd FTP-klient i skrivläge (radera eller ladda upp filer) +Permission50101=Användning Försäljningsställen Permission50201=Läs transaktioner Permission50202=Importera transaktioner Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -DictionaryCompanyType=Thirdparties type -DictionaryCompanyJuridicalType=Juridical kinds of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Cantons -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Civility title -DictionaryActions=Type of agenda events -DictionarySocialContributions=Social contributions types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFees=Type of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods +Permission55001=Läs omröstningar +Permission55002=Skapa / ändra omröstningar +Permission59001=Läs kommersiella marginaler +Permission59002=Definiera kommersiella marginaler +DictionaryCompanyType=Thirdparties typ +DictionaryCompanyJuridicalType=Juridiska sorters thirdparties +DictionaryProspectLevel=Prospect potentiella nivå +DictionaryCanton=Statliga / kantoner +DictionaryRegion=Regioner +DictionaryCountry=Länder +DictionaryCurrency=Valutor +DictionaryCivility=Civility titel +DictionaryActions=Typ av dagordningen händelser +DictionarySocialContributions=Sociala avgifter typer +DictionaryVAT=Moms Priser och Sales Tax Rates +DictionaryRevenueStamp=Mängd skattestämpel +DictionaryPaymentConditions=Betalningsvillkor +DictionaryPaymentModes=Betalningssätten +DictionaryTypeContact=Kontakt / adresstyper +DictionaryEcotaxe=Miljöskatt (WEEE) +DictionaryPaperFormat=Pappersformat +DictionaryFees=Typ av avgifter +DictionarySendingMethods=Fraktmetoder +DictionaryStaff=Personal +DictionaryAvailability=Leveransförsening +DictionaryOrderMethods=Beställningsmetoder DictionarySource=Ursprung av affärsförslag / beställning -DictionaryAccountancyplan=Chart of accounts -DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyplan=Kontoplan +DictionaryAccountancysystem=Modeller för kontoplan SetupSaved=Setup sparas BackToModuleList=Tillbaka till moduler lista -BackToDictionaryList=Back to dictionaries list +BackToDictionaryList=Tillbaka till ordböcker listan VATReceivedOnly=Särskilda räntesats inte VATManagement=Moms Management VATIsUsedDesc=Den momssats som standard när du skapar framtidsutsikter, fakturor, order etc följa aktiva standard regeln: <br> Om säljaren är föremål för mervärdesskatt, då moms som standard = 0. Slut på regeln. <br> Om (den som säljer land = köparlandet), sedan den mervärdesskatt som standard = mervärdesskatt av produkten vid försäljning landet. Slut på regeln. <br> Om säljaren och köparen i Europeiska gemenskapen och varor transporttjänster (bil, fartyg, flygplan), standard moms = 0 (Den mervärdesskatt som skall betalas av köparen vid customoffice av sitt land och inte på säljaren). Slut på regeln. <br> Om säljaren och köparen i Europeiska gemenskapen och köparen är inte ett företag, sedan den mervärdesskatt som standard = moms på produkt som säljs. Slut på regeln. <br> Om säljaren och köparen i Europeiska gemenskapen och köparen är ett företag, då moms som standard = 0. Slut på regeln. <br> Else föreslagna standard moms = 0. Slut på regeln. @@ -788,19 +789,19 @@ VATIsNotUsedDesc=Som standard föreslås moms 0 som kan användas för de fall s VATIsUsedExampleFR=I Frankrike betyder det företag eller organisationer som har en verklig skattesystemet (förenklad verkliga eller normal verklig). Ett system där mervärdesskatt ska deklareras. VATIsNotUsedExampleFR=I Frankrike betyder det föreningar som inte är moms deklarerats eller företag, organisationer eller fria yrken som har valt mikroföretag skattesystemet (mervärdesskatt i franchise) och betalade en franchise moms utan momsdeklaration. Detta val kommer att visa referens "Ej tillämpligt mervärdesskatt - konst-293B av CGI" på fakturorna. ##### Local Taxes ##### -LTRate=Rate -LocalTax1IsUsed=Use second tax -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax +LTRate=Betyg +LocalTax1IsUsed=Använda andra skatte +LocalTax1IsNotUsed=Använd inte andra skatte +LocalTax1IsUsedDesc=Använd en annan typ av skatt (exklusive moms) +LocalTax1IsNotUsedDesc=Använd inte andra typer av skatt (exklusive moms) +LocalTax1Management=Andra typen av skatt LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= -LocalTax2IsUsed=Use third tax -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax +LocalTax2IsUsed=Använd tredje skatt +LocalTax2IsNotUsed=Använd inte tredje skatt +LocalTax2IsUsedDesc=Använd en tredje typ av skatt (exklusive moms) +LocalTax2IsNotUsedDesc=Använd inte andra typer av skatt (exklusive moms) +LocalTax2Management=Tredje typen av skatt LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= LocalTax1ManagementES= RE Förvaltning @@ -813,13 +814,13 @@ LocalTax2IsUsedDescES= RE räntesats som standard när du skapar framtidsutsikte LocalTax2IsNotUsedDescES= Som standard föreslås IRPF är 0. Slut på regeln. LocalTax2IsUsedExampleES= I Spanien, frilansare och oberoende yrkesutövare som tillhandahåller tjänster och företag som har valt skattesystemet i moduler. LocalTax2IsNotUsedExampleES= I Spanien de bussines inte omfattas av skattesystemet i moduler. -CalcLocaltax=Reports -CalcLocaltax1ES=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2ES=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3ES=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales +CalcLocaltax=Rapporter +CalcLocaltax1ES=Försäljning - Inköp +CalcLocaltax1Desc=Lokala skatter rapporter beräknas med skillnaden mellan localtaxes försäljning och localtaxes inköp +CalcLocaltax2ES=Inköp +CalcLocaltax2Desc=Lokala skatter rapporter är summan av localtaxes inköp +CalcLocaltax3ES=Försäljning +CalcLocaltax3Desc=Lokala skatter rapporter är summan av localtaxes försäljning LabelUsedByDefault=Etikett som används som standard om ingen översättning kan hittas för kod LabelOnDocuments=Etikett på dokument NbOfDays=Nb dagar @@ -844,7 +845,7 @@ PhpConf=Conf PhpWebLink=Webb-php länk Pear=Päron PearPackages=Päron paket -Browser=Browser +Browser=Webbläsare Server=Server Database=Databas DatabaseServer=Databas värd @@ -871,7 +872,7 @@ MenuCompanySetup=Företag / stiftelsen MenuNewUser=Ny användare MenuTopManager=Toppmenyn chef MenuLeftManager=Vänstermenyn chef -MenuManager=Menu manager +MenuManager=Menyhanteraren MenuSmartphoneManager=Smartphone menyhanteraren DefaultMenuTopManager=Toppmenyn chef DefaultMenuLeftManager=Vänstermenyn chef @@ -930,14 +931,14 @@ SetupDescription5=Andra menyalternativ hantera valfria parametrar. EventsSetup=Setup för händelser stockar LogEvents=Säkerhetsgranskning evenemang Audit=Revision -InfoDolibarr=Infos Dolibarr -InfoBrowser=Infos Browser -InfoOS=Infos OS -InfoWebServer=Infos web server -InfoDatabase=Infos database -InfoPHP=Infos PHP -InfoPerf=Infos performances -BrowserName=Browser name +InfoDolibarr=Information Dolibarr +InfoBrowser=Information Browser +InfoOS=Information om OS +InfoWebServer=Information om webbserver +InfoDatabase=Information om databasen +InfoPHP=Information om PHP +InfoPerf=Information om uppträdanden +BrowserName=Browser namn BrowserOS=Browser OS ListEvents=Revision evenemang ListOfSecurityEvents=Förteckning över Dolibarr säkerhetshändelser @@ -959,7 +960,7 @@ TriggerDisabledAsModuleDisabled=Triggers i denna fil är funktionshindrade modul TriggerAlwaysActive=Triggers i denna fil är alltid aktiva, oavsett är det aktiverade Dolibarr moduler. TriggerActiveAsModuleActive=Triggers i denna fil är verksamma som modul <b>%s</b> är aktiverat. GeneratedPasswordDesc=Ange här vilken regel du vill använda för att generera nytt lösenord om du begära att få automatiskt genererat lösenord -DictionaryDesc=Define here all reference datas. You can complete predefined value with yours. +DictionaryDesc=Här definierar du alla referens datas. Du kan komplettera fördefinierat värde med din. ConstDesc=Denna sida kan du redigera alla andra parametrar som inte fanns i tidigare sidor. De är reserverade parametrar för avancerade utvecklare eller troubleshouting. OnceSetupFinishedCreateUsers=Varning, du är en Dolibarr administratör. Administratör användare används för att ställa in Dolibarr. För en vanlig användning av Dolibarr, rekommenderas att använda en icke administratör skapas från Användare & Grupper menyn. MiscellaneousDesc=Ange här alla andra parametrar som rör säkerhet. @@ -981,7 +982,7 @@ BackupDesc2=* Spara innehållet i de dokument katalog <b>(%s)</b> som innehålle BackupDesc3=* Spara innehållet i din databas till en soptipp fil. för detta kan du använda följande assistent. BackupDescX=Arkiverade katalogen bör förvaras på ett säkert ställe. BackupDescY=Den genererade dumpfilen bör förvaras på ett säkert ställe. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one +BackupPHPWarning=Backup kan inte guaranted med denna metod. Föredrar tidigare ett RestoreDesc=Om du vill återställa en Dolibarr säkerhetskopia måste du: RestoreDesc2=* Återställ arkivfil (zip-fil till exempel) av handlingar katalog att extrahera träd av filer i dokument katalog med en ny Dolibarr anläggning eller i den här aktuella dokument directoy <b>(%s).</b> RestoreDesc3=* Återställ data från en säkerhetskopia dumpfil in i databasen av den nya Dolibarr installationen eller i databasen för den aktuella installationen. Varning när återställningen är klar måste du använda ett användarnamn / lösenord, som fanns när säkerhetskopian gjordes, att ansluta igen. Om du vill återställa en backup databas i den nuvarande installationen kan du följa denna assistent. @@ -995,9 +996,9 @@ YourPHPDoesNotHaveSSLSupport=SSL-funktioner inte är tillgängliga i din PHP DownloadMoreSkins=Mer skinn att ladda ner SimpleNumRefModelDesc=Returnera referensnummer format %syymm-nnnn där YY är år, mm månaden och nnnn är en sekvens utan hål och utan återställning ShowProfIdInAddress=Visa branschorganisationer id med adresser på dokument -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents +ShowVATIntaInAddress=Dölj moms Intra num med adresser på dokument TranslationUncomplete=Partiell översättning -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="http://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>. +SomeTranslationAreUncomplete=Vissa språk kan vara delvis översatt eller maj innehåller fel. Om du upptäcker några, kan du fixa språkfiler som registrerar till <a href="http://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a> . MenuUseLayout=Gör vertikal meny hidable (tillval Javascript måste inte inaktiveras) MAIN_DISABLE_METEO=Inaktivera meteo vy TestLoginToAPI=Testa logga in API @@ -1010,18 +1011,18 @@ MAIN_PROXY_USER=Logga in för att använda proxyservern MAIN_PROXY_PASS=Lösenord för att använda proxyservern DefineHereComplementaryAttributes=Här definierar du alla atributes inte redan finns tillgänglig som standard, och att du vill bli stöd för %s. ExtraFields=Komplementära egenskaper -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerOrders=Complementary attributes (orders) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. +ExtraFieldsLines=Kompletterande attribut (rader) +ExtraFieldsThirdParties=Kompletterande attribut (tredjeparts) +ExtraFieldsContacts=Kompletterande attribut (kontaktperson / adress) +ExtraFieldsMember=Kompletterande attribut (medlem) +ExtraFieldsMemberType=Kompletterande attribut (ledamot typ) +ExtraFieldsCustomerOrders=Kompletterande attribut (beslut) +ExtraFieldsCustomerInvoices=Kompletterande attribut (fakturor) +ExtraFieldsSupplierOrders=Kompletterande attribut (beslut) +ExtraFieldsSupplierInvoices=Kompletterande attribut (fakturor) +ExtraFieldsProject=Kompletterande attribut (projekt) +ExtraFieldsProjectTask=Kompletterande attribut (arbetsuppgifter) +ExtraFieldHasWrongValue=Attribut% s har ett felaktigt värde. AlphaNumOnlyCharsAndNoSpace=endast alfanumeriska tecken utan mellanslag AlphaNumOnlyLowerCharsAndNoSpace=endast gemena alfanumeriska tecken utan mellanslag SendingMailSetup=Inställning av sändningarna via e-post @@ -1030,30 +1031,30 @@ PathToDocuments=Sökväg till handlingar PathDirectory=Directory SendmailOptionMayHurtBuggedMTA=Funktion för att skicka e-post med hjälp av metoden "PHP mail direkt" kommer att generera ett e-postmeddelande som kanske inte korrekt tolkas av vissa som får e-postservrar. Resultatet är att vissa post inte kan läsas av människor som tillhandahålls av thoose avlyssnat plattformar. Det är fallet för vissa Internetleverantörer (Ex: Orange i Frankrike). Detta är inte ett problem till Dolibarr heller i PHP, men på inkommande e-post server. Du kan dock lägga möjlighet MAIN_FIX_FOR_BUGGED_MTA till 1 i Setup - andra att ändra Dolibarr att undvika detta. Du kan dock uppleva problem med andra servrar som strikt respektera SMTP standard. Den andra lösningen (Rekomenderad) är att använda metoden "SMTP socket bibliotek" som inte har några nackdelar. TranslationSetup=Konfigurera översättning -TranslationDesc=Choice of language visible on screen can be modified:<br>* Globally from menu <strong>Home - Setup - Display</strong><br>* For user only from tab <strong>User display</strong> of user card (click on login on top of screen). -TotalNumberOfActivatedModules=Total number of activated feature modules: <b>%s</b> +TranslationDesc=Val av språk visas på skärmen kan ändras: <br> * Globalt från menyn <strong>Hem - Inställningar - Display</strong> <br> * För användaren endast från fliken <strong>Användar visning</strong> av användarkort (klicka på inloggning på toppen av skärmen). +TotalNumberOfActivatedModules=Totalt antal aktiverade <b>funktionsmoduler:% s</b> YouMustEnableOneModule=Minst 1 modul måste aktiveras ClassNotFoundIntoPathWarning=Klass %s inte funnen i PHP-sökvägen YesInSummer=Ja, under sommaren -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users): -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 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 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 -FixTZ=TimeZone fix -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -EmptyNumRefModelDesc=The code is free. This code can be modified at any time. +OnlyFollowingModulesAreOpenedToExternalUsers=Obs, endast följande moduler öppnas för externa användare (oavsett är tillstånd från sådana användare): +SuhosinSessionEncrypt=Session lagring krypteras av Suhosin +ConditionIsCurrently=Condition är för närvarande% s +TestNotPossibleWithCurrentBrowsers=Automatisk identifiering inte är möjlig +YouUseBestDriver=Du använder drivrutinen %s som är bäst drivrutin tillgänglig för tillfället. +YouDoNotUseBestDriver=Du använder enhet %s men förar %s rekommenderas. +NbOfProductIsLowerThanNoPb=Du har bara %s produkter / tjänster i databasen. Detta innebär inte behövs någon särskild optimering. +SearchOptim=Sökoptimering +YouHaveXProductUseSearchOptim=Du har %s produkter i databasen. Du bör lägga den ständiga PRODUCT_DONOTSEARCH_ANYWHERE till 1 till Home-Setup-Övrigt begränsar du sökningen till början av strängar som gör möjligt för databasen att använda index och du bör få ett omedelbart svar. +BrowserIsOK=Du använder webbläsaren %s. Denna webbläsare är ok för säkerhet och prestanda. +BrowserIsKO=Du använder webbläsaren %s. Denna webbläsare är känt för att vara ett dåligt val för säkerhet, prestanda och tillförlitlighet. Vi rekommendera att du använder Firefox, Chrome, Opera eller Safari. +XDebugInstalled=Xdebug är laddad. +XCacheInstalled=Xcache är laddad. +AddRefInList=Display kund / leverantörs ref i listan (välj lista eller kombinationsrutan) och de flesta av hyperlänk +FieldEdition=Edition av fält %s +FixTZ=Timezone fix +FillThisOnlyIfRequired=Exempel: +2 (fyll endast om tidszon offset problem är erfarna) +GetBarCode=Få streckkod +EmptyNumRefModelDesc=Koden är fri. Koden kan ändras när som helst. ##### Module password generation PasswordGenerationStandard=Återgå ett lösenord som genererats enligt interna Dolibarr algoritm: 8 tecken som innehåller delade siffror och tecken med gemener. PasswordGenerationNone=Tyder inte på någon genererade lösenord. Lösenord måste skriva in manuellt. @@ -1074,11 +1075,11 @@ ModuleCompanyCodeAquarium=Avkastningen en bokföring kod byggd med %s följt av ModuleCompanyCodePanicum=Avkastningen en tom bokföring kod. ModuleCompanyCodeDigitaria=Bokföring kod beror på tredje part kod. Koden består av tecknet "C" i den första positionen och därefter det första fem bokstäver av tredje part koden. UseNotifications=Använd anmälningar -NotificationsDesc=E-post meddelanden funktionen kan du tyst skicka automatiska e-post, för vissa Dolibarr evenemang, till tredje man (kunder eller leverantörer) som är konfigurerade för. Val av aktiva anmälan och mål kontakter görs en tredje part i taget. +NotificationsDesc=E-post meddelanden funktionen kan du tyst skicka automatiska e-post, för vissa Dolibarr händelser. Mål av anmälningar kan definieras: <br> * Per tredje parter kontakter (kunder eller leverantörer), en tredje part vid tidpunkten. <br> * Eller genom att sätta ett globalt mål e-postadress på modulens inställningssida. ModelModules=Dokument mallar -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) +DocumentModelOdt=Generera dokument från OpenDocuments mallar (.odt eller .ods filer för Openoffice, KOffice, Textedit, ...) WatermarkOnDraft=Vattenstämpel utkast -JSOnPaimentBill=Activate feature to autofill payment lines on payment form +JSOnPaimentBill=Aktivera funktionen för att fylla automatiskt betalningslinjer på inbetalningskort CompanyIdProfChecker=Professionell Id unik MustBeUnique=Måste vara unikt? MustBeMandatory=Obligatoriskt att skapa tredje part? @@ -1096,7 +1097,7 @@ WebCalServer=Server-hosting kalender databas WebCalDatabaseName=Databas namn WebCalUser=Användaren tillgång till databasen WebCalSetupSaved=WebCalendar setup sparats. -WebCalTestOk=Connection to server '%s' on database '%s' with user '%s' successful. +WebCalTestOk=Anslutning till servern "% s" på databasen "% s" med användare "% s framgångsrika. WebCalTestKo1=Anslutning till servern "%s" lyckas, men databas %s "kunde inte nås. WebCalTestKo2=Anslutning till servern "%s" med användare "%s" misslyckades. WebCalErrorConnectOkButWrongDatabase=Anslutning lyckats men databasen inte ser ut att vara en WebCalendar databas. @@ -1142,10 +1143,11 @@ WatermarkOnDraftProposal=Vattenstämpel på utkast till affärsförslag (ingen o OrdersSetup=Beställ ledning setup OrdersNumberingModules=Beställningar numrering moduler OrdersModelModule=Beställ dokument modeller -HideTreadedOrders=Hide the treated or cancelled orders in the list +HideTreadedOrders=Dölja de behandlade eller annullerade order i listan ValidOrderAfterPropalClosed=Att godkänna beställningen efter förslaget närmare, gör det möjligt att inte steg av den provisoriska ordning FreeLegalTextOnOrders=Fri text på order WatermarkOnDraftOrders=Vattenstämpel på utkast till beställningar (ingen om tom) +ShippableOrderIconInList=Lägg en ikon i Order lista som anger om beställningen är shippable ##### Clicktodial ##### ClickToDialSetup=Klicka för att Dial modul setup ClickToDialUrlDesc=Url anropas när ett klick på telefon picto görs. I URL kan du använda taggar <br> <b>__PHONETO__</b> Som kommer att ersättas med telefonnumret för personen att ringa <br> <b>__PHONEFROM__</b> Som ska ersättas med telefonnummer att ringa person (er) <br> <b>__LOGIN__</b> Som ska ersättas med clicktodial inloggning (definierad på ditt användarnamn kort) <br> <b>__PASS__</b> Som ska ersättas med ditt clicktodial lösenord (definierad på ditt användarnamn kort). @@ -1160,9 +1162,9 @@ WatermarkOnDraftInterventionCards=Vattenstämpel på åtgärdskort dokument (ing ##### Contracts ##### ContractsSetup=Kontrakt modul konfiguration ContractsNumberingModules=Kontrakt numrering moduler -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) +TemplatePDFContracts=Contract documents modeller +FreeLegalTextOnContracts=Fritext om avtal +WatermarkOnDraftContractCards=Vattenstämpel på kontraktsförslag (inget om de är tomma) ##### Members ##### MembersSetup=Medlemmar modul setup MemberMainOptions=Huvudalternativ @@ -1231,15 +1233,15 @@ LDAPTestSynchroContact=Test kontakts synkronisering LDAPTestSynchroUser=Test användarens synkronisering LDAPTestSynchroGroup=Test gruppens synkronisering LDAPTestSynchroMember=Test medlemmens synkronisering -LDAPTestSearch= Test a LDAP search +LDAPTestSearch= Testa en LDAP-sökning LDAPSynchroOK=Synkronisering test framgångsrika LDAPSynchroKO=Misslyckades synkronisering test LDAPSynchroKOMayBePermissions=Misslyckades synkronisering test. Kontrollera att connexion att servern är korrekt konfigurerad och tillåter LDAP udpates LDAPTCPConnectOK=TCP ansluta till LDAP-servern framgångsrika (Server = %s, Port = %s) LDAPTCPConnectKO=TCP ansluta till LDAP-servern misslyckades (Server = %s, Port = %s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) +LDAPBindOK=Anslut / Authentificate till LDAP-servern framgångsrik (Server =%s, Port =%s, Admin =%s, Lösenord = %s) LDAPBindKO=Anslut / Authentificate till LDAP-servern misslyckades (Server = %s, Port = %s, Admin = %s, Lösenord = %s) -LDAPUnbindSuccessfull=Disconnect successful +LDAPUnbindSuccessfull=Koppla framgångsrik LDAPUnbindFailed=Koppla misslyckades LDAPConnectToDNSuccessfull=Anslutning au DN (%s) ri ¿½ ussie LDAPConnectToDNFailed=Anslutning au DN (%s) ï ¿½ chouï ¿½ e @@ -1295,8 +1297,8 @@ LDAPFieldSid=SID LDAPFieldSidExample=Exempel: objectsid LDAPFieldEndLastSubscription=Datum för teckning slut LDAPFieldTitle=Post / Funktion -LDAPFieldTitleExample=Example: title -LDAPParametersAreStillHardCoded=LDAP parameters are still hardcoded (in contact class) +LDAPFieldTitleExample=Exempel: titel +LDAPParametersAreStillHardCoded=LDAP parametrar fortfarande hårdkodad (i kontakt klass) LDAPSetupNotComplete=LDAP setup komplett inte (gå på andra flikar) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Ingen administratör eller lösenord anges. LDAP tillgång kommer att bli anonym och i skrivskyddat läge. LDAPDescContact=På denna sida kan du ange LDAP-attribut namn i LDAP träd för varje data finns på Dolibarr kontakter. @@ -1305,24 +1307,24 @@ LDAPDescGroups=På denna sida kan du ange LDAP-attribut namn i LDAP träd för v LDAPDescMembers=På denna sida kan du ange LDAP-attribut namn i LDAP träd för varje data finns på Dolibarr medlemmar modul. LDAPDescValues=Exempel på värden är avsedda för <b>OpenLDAP</b> med följande laddade scheman: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Om du använder thoose värderingar och OpenLDAP, ändra LDAP-fil <b>slapd.conf</b> config att ha alla thoose scheman laddad. ForANonAnonymousAccess=För en bestyrkt tillbehör (för en skrivåtkomst till exempel) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -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=Automatic detection not possible +PerfDolibarr=Prestanda inställningar / optimering rapport +YouMayFindPerfAdviceHere=Du kommer att hitta på den här sidan vissa kontroller eller råd relaterade till prestanda. +NotInstalled=Inte installerat, så din server inte sakta ner av detta. +ApplicativeCache=Applikativ cache +MemcachedNotAvailable=Ingen applikativ cache hittades. Du kan förbättra prestanda genom att installera en cache-server Memcached och en modul kunna använda denna cache-server. <br> Mer information här <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a> . <br> Observera att en hel del webbhotell leverantör inte lämnar sådana cache-server. +MemcachedModuleAvailableButNotSetup=Modul memcached för applikativ cache hittades men installationen av modulen är inte fullständig. +MemcachedAvailableAndSetup=Modul memcached tillägnad använda memcached server är aktiverad. +OPCodeCache=OPCODE cache +NoOPCodeCacheFound=Ingen opkod cache hittades. Får du använda en annan opcode cache än xcache eller eAccelerator (bra), kanske du inte har opkod cache (mycket dåligt). +HTTPCacheStaticResources=HTTP-cache för statiska resurser (css, img, javascript) +FilesOfTypeCached=Filer av typen %s cachelagras av HTTP-server +FilesOfTypeNotCached=Filer av typen %s är inte cachas av HTTP-server +FilesOfTypeCompressed=Filer av typen %s komprimeras med HTTP-server +FilesOfTypeNotCompressed=Filer av typen %s är inte komprimerade av HTTP-server +CacheByServer=Cache med server +CacheByClient=Cache med browser +CompressionOfResources=Komprimering av HTTP-svar +TestNotPossibleWithCurrentBrowsers=Automatisk identifiering inte är möjlig ##### Products ##### ProductSetup=Produkter modul setup ServiceSetup=Tjänster modul konfiguration @@ -1332,13 +1334,13 @@ ConfirmDeleteProductLineAbility=Bekräftelse vid borttagning produktserier i for ModifyProductDescAbility=Anpassning av produktbeskrivning i former ViewProductDescInFormAbility=Visualisering av produktbeskrivning i formulären (i övrigt enligt popup tooltip) ViewProductDescInThirdpartyLanguageAbility=Visualisering av produktbeskrivningar på tredjeparts språket -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=Även om du har ett stort antal produkter (> 100 000), kan du öka hastigheten genom att sätta konstant PRODUCT_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen. +UseSearchToSelectProduct=Använd ett sökformuläret för att välja en produkt (i stället för en listruta). UseEcoTaxeAbility=Stöd Eco-Taxe (WEEE) SetDefaultBarcodeTypeProducts=Standard streckkod som ska användas för produkter SetDefaultBarcodeTypeThirdParties=Standard streckkod som ska användas för tredje part -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration +ProductCodeChecker= Modul för produkt kodgenerering och kontroll (produkt eller tjänst) +ProductOtherConf= Produkt / tjänst konfiguration ##### Syslog ##### SyslogSetup=Syslog-modul setup SyslogOutput=Logga utgång @@ -1349,7 +1351,7 @@ SyslogSimpleFile=Arkiv SyslogFilename=Filnamn och sökväg YouCanUseDOL_DATA_ROOT=Du kan använda DOL_DATA_ROOT / dolibarr.log för en loggfil i Dolibarr "dokument" katalogen. Du kan ställa in en annan väg för att lagra den här filen. ErrorUnknownSyslogConstant=Konstant %s är inte en känd syslog konstant -OnlyWindowsLOG_USER=Windows only supports LOG_USER +OnlyWindowsLOG_USER=Endast Windows stöder LOG_USER ##### Donations ##### DonationsSetup=Donation modul setup DonationsReceiptModel=Mall för donation kvitto @@ -1368,23 +1370,24 @@ BarcodeDescISBN=Barcode av typ ISBN BarcodeDescC39=Streckkod av typen C39 BarcodeDescC128=Barcode av typ C128 GenbarcodeLocation=Bar kodgenerering kommandoradsverktyg (som används av phpbarcode motor för vissa typer streckkod) -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers +BarcodeInternalEngine=Intern motor +BarCodeNumberManager=Manager för att automatiskt definiera streckkodsnummer ##### Prelevements ##### WithdrawalsSetup=Återkallelse modul setup ##### ExternalRSS ##### ExternalRSSSetup=Externa RSS import setup NewRSS=Nytt RSS-flöde RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed +RSSUrlExample=En intressant RSS-flöde ##### Mailing ##### MailingSetup=E-post modul setup MailingEMailFrom=Avsändare Epost (från) för e-post skickas via e-post modul MailingEMailError=Retur-e (fel-till) för e-post med fel ##### Notification ##### -NotificationSetup=Anmälan bu e-modul setup +NotificationSetup=EMail modul anmälan inställnings NotificationEMailFrom=Avsändare Epost (från) för e-post som skickas till anmälningar -ListOfAvailableNotifications=Lista över tillgängliga anmälningar (Denna listan beror på aktiverade moduler) +ListOfAvailableNotifications=Förteckning över händelser som du kan ställa in en anmälan om, för varje tredjeparts (gå in tredjeparts kort att installera) eller genom att ange en fast e-post (Lista beror på aktiverade moduler) +FixedEmailTarget=Fast e målet ##### Sendings ##### SendingsSetup=Sända modul setup SendingsReceiptModel=Att skicka kvitto modell @@ -1404,8 +1407,8 @@ FCKeditorForCompany=WYSIWYG skapande / upplaga av Companie beskrivning och noter FCKeditorForProduct=WYSIWYG skapande / upplaga av produkter / tjänster: s beskrivning och anteckning FCKeditorForProductDetails=WYSIWYG skapande / utgåva av produkter detaljer linjer för alla enheter (förslag, order, fakturor, etc. ..). <font class="warning">Varning: Använd detta alternativ för det här fallet är allvarligt inte rekommenderat eftersom det kan skapa problem med specialtecken och sida formationen för att bygga PDF filer.</font> FCKeditorForMailing= WYSIWYG skapande / utgåva av försändelser -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Outils->eMailing) +FCKeditorForUserSignature=WYSIWYG skapande / upplaga av signatur +FCKeditorForMail=WYSIWYG skapande / utgåva för alla mail (utom Outils-> mejla) ##### OSCommerce 1 ##### OSCommerceErrorConnectOkButWrongDatabase=Anslutning lyckats men databasen ser inte ut att vara en OSCommerce databas (Key %s som inte finns i tabellen %s). OSCommerceTestOk=Anslutning till servern "%s" på databas %s "med användare" %s framgångsrika. @@ -1448,11 +1451,11 @@ ConfirmDeleteLine=Är du säker på att du vill ta bort denna linje? ##### Tax ##### TaxSetup=Skatter, sociala avgifter och utdelningar modul setup OptionVatMode=Mervärdesskatt -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis +OptionVATDefault=Kontantmetoden +OptionVATDebitOption=Periodiseringsprincipen OptionVatDefaultDesc=Mervärdesskatt skall betalas: <br> - Om leverans / betalning för varor <br> - Bestämmelser om betalningar för tjänster OptionVatDebitOptionDesc=Mervärdesskatt skall betalas: <br> - Om leverans / betalning för varor <br> - På fakturan (debet) för tjänster -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: +SummaryOfVatExigibilityUsedByDefault=Tid för moms exigibility standard enligt vald alternativ: OnDelivery=Vid leverans OnPayment=Mot betalning OnInvoice=På faktura @@ -1463,16 +1466,16 @@ Sell=Sälj InvoiceDateUsed=Fakturadatum används YourCompanyDoesNotUseVAT=Ditt företag har definierats att inte använda moms (Hem - Setup - Företaget / Foundation), så det finns ingen mervärdesskatt alternativ för installationen. AccountancyCode=Bokföring kod -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code +AccountancyCodeSell=Försäljning konto. kod +AccountancyCodeBuy=Köpa konto. kod ##### Agenda ##### AgendaSetup=Åtgärder och dagordning modul setup PasswordTogetVCalExport=Viktiga att tillåta export länk PastDelayVCalExport=Inte exporterar fall äldre än -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda +AGENDA_USE_EVENT_TYPE=Använd händelser typer (hanteras i inställningsmenyn -> ordlista -> Typ av dagordningen händelser) +AGENDA_DEFAULT_FILTER_TYPE=Ställs in automatiskt denna typ av händelse till sökfilter av dagordning view +AGENDA_DEFAULT_FILTER_STATUS=Ställs in automatiskt denna status för evenemang till sökfilter av dagordning view +AGENDA_DEFAULT_VIEW=Vilken flik vill du öppna som standard vid val av meny Agenda ##### ClickToDial ##### ClickToDialDesc=Denna modul gör det möjligt att lägga till en ikon efter telefonnummer. Ett klick på denna ikon för att kalla en server med en viss webbadress du anger nedan. Detta kan användas för att ringa ett system call center från Dolibarr som kan ringa upp telefonnumret på en SIP-system till exempel. ##### Point Of Sales (CashDesk) ##### @@ -1506,10 +1509,10 @@ MultiCompanySetup=Multi-bolag modul setup SuppliersSetup=Leverantör modul setup SuppliersCommandModel=Fullständig mall av leverantör för (logo. ..) SuppliersInvoiceModel=Komplett mall leverantörsfaktura (logo. ..) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models +SuppliersInvoiceNumberingModel=Leverantörsfakturor numrerings modeller ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind modul setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat +PathToGeoIPMaxmindCountryDataFile=Sökväg till fil innehåller MaxMind ip till land översättning. <br> Exempel: <br> /usr/local/share/GeoIP/GeoIP.dat <br> /usr/share/GeoIP/GeoIP.dat NoteOnPathLocation=Observera att ditt ip till land datafil måste vara inne i en katalog din PHP kan läsa (Kolla din PHP open_basedir inställningar och behörigheter filsystem). YouCanDownloadFreeDatFileTo=Du kan ladda ner en <b>gratis demoversion</b> av Maxmind GeoIP landet filen på %s. YouCanDownloadAdvancedDatFileTo=Du kan också ladda ner en mer <b>komplett version, med uppdateringar av</b> de Maxmind GeoIP landet filen på %s. @@ -1518,23 +1521,24 @@ TestGeoIPResult=Test av en omvandling IP -> land ProjectsNumberingModules=Projekt numrering modul ProjectsSetup=Projekt modul setup ProjectsModelModule=S rapport dokument modell -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model +TasksNumberingModules=Uppgifter nummermodulen +TaskModelModule=Uppgifter rapporter dokumentmodell ##### ECM (GED) ##### ECMSetup = GED Setup -ECMAutoTree = Automatic tree folder and document +ECMAutoTree = Automatisk träd mapp och dokument ##### Fiscal Year ##### -FiscalYears=Fiscal years -FiscalYear=Fiscal year -FiscalYearCard=Fiscal year card -NewFiscalYear=New fiscal year -EditFiscalYear=Edit fiscal year -OpenFiscalYear=Open fiscal year -CloseFiscalYear=Close fiscal year -DeleteFiscalYear=Delete fiscal year -ConfirmDeleteFiscalYear=Are you sure to delete this fiscal year ? -Opened=Opened -Closed=Closed +FiscalYears=Räkenskapsår +FiscalYear=Räkenskapsåret +FiscalYearCard=Räkenskapsår kort +NewFiscalYear=Nytt räkenskapsår +EditFiscalYear=Redigera räkenskapsår +OpenFiscalYear=Öppet räkenskapsår +CloseFiscalYear=Close räkenskapsår +DeleteFiscalYear=Radera räkenskapsår +ConfirmDeleteFiscalYear=Är du säker på att du vill ta bort detta verksamhetsår? +Opened=Öppnad +Closed=Stängt +AlwaysEditable=Kan alltid redigeras Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type +TypePaymentDesc=0: Kundbetalning typ, 1: Leverantörsbetalnings typ, 2: Både kunder och leverantörer betalnings typ diff --git a/htdocs/langs/sv_SE/agenda.lang b/htdocs/langs/sv_SE/agenda.lang index 131080c5c8f6aff1bc85a74f3fd2763c77686cb6..0051929cd9d47b5d12284b065fa79878abd2638b 100644 --- a/htdocs/langs/sv_SE/agenda.lang +++ b/htdocs/langs/sv_SE/agenda.lang @@ -1,18 +1,18 @@ # Dolibarr language file - Source file is en_US - agenda -IdAgenda=ID event +IdAgenda=ID händelse Actions=Åtgärder ActionsArea=Åtgärder område (händelser och uppgifter) Agenda=Agenda Agendas=Dagordningar Calendar=Kalender Calendars=Kalendrar -LocalAgenda=Internal calendar -ActionsOwnedBy=Event owned by +LocalAgenda=Intern kalender +ActionsOwnedBy=Händelse som ägs av AffectedTo=Påverkas i DoneBy=Utfärdat av -Event=Event +Event=Händelse Events=Evenemang -EventsNb=Number of events +EventsNb=Antal händelser MyEvents=Mina aktiviteter OtherEvents=Övriga händelser ListOfActions=Lista över evenemang @@ -23,12 +23,12 @@ MenuToDoActions=Alla ofullständiga handlingar MenuDoneActions=Alla avslutade åtgärder MenuToDoMyActions=Min ofullständiga handlingar MenuDoneMyActions=Min avslutas åtgärder -ListOfEvents=List of events (internal calendar) +ListOfEvents=Förteckning över händelser (intern kalender) ActionsAskedBy=Åtgärder som registrerats av ActionsToDoBy=Åtgärder påverkas ActionsDoneBy=Åtgärder som utförs av -ActionsForUser=Events for user -ActionsForUsersGroup=Events for all users of group +ActionsForUser=Händelser för användaren +ActionsForUsersGroup=Händelser för alla användare av grupp AllMyActions= Alla mina handlingar och uppgifter AllActions= Alla åtgärder / uppgifter ViewList=Visa lista @@ -45,10 +45,10 @@ ActionsEvents= Händelser som Dolibarr kommer att skapa en talan i agenda automa PropalValidatedInDolibarr= Förslag %s validerade InvoiceValidatedInDolibarr= Faktura %s validerade InvoiceBackToDraftInDolibarr=Faktura %s gå tillbaka till förslaget status -InvoiceDeleteDolibarr=Invoice %s deleted +InvoiceDeleteDolibarr=Faktura %s raderas OrderValidatedInDolibarr= Beställ %s validerade OrderApprovedInDolibarr=Ordningens %s godkänd -OrderRefusedInDolibarr=Order %s refused +OrderRefusedInDolibarr=Order %s vägrade OrderBackToDraftInDolibarr=Beställ %s gå tillbaka till förslaget status OrderCanceledInDolibarr=Beställ %s avbryts InterventionValidatedInDolibarr=Intervention %s validerade @@ -58,9 +58,9 @@ InvoiceSentByEMail=Kundfaktura %s via e-post SupplierOrderSentByEMail=Leverantör beställa %s via e-post SupplierInvoiceSentByEMail=Leverantörsfaktura %s via e-post ShippingSentByEMail=Frakt %s via e-post -ShippingValidated= Shipping %s validated +ShippingValidated= Frakt %s validerade InterventionSentByEMail=Intervention %s via e-post -InterventionClassifiedBilled=Intervention %s classified as Billed +InterventionClassifiedBilled=Intervention %s sekretessbelagda som fakturerad NewCompanyToDolibarr= Tredje part har skapats DateActionPlannedStart= Planerat startdatum DateActionPlannedEnd= Planerat slutdatum @@ -70,24 +70,24 @@ DateActionStart= Startdatum DateActionEnd= Slutdatum AgendaUrlOptions1=Du kan också lägga till följande parametrar för att filtrera utgång: AgendaUrlOptions2=<b>login = %s</b> att begränsa produktionen till åtgärder inrättade av, påverkas eller göras av användaren <b>%s.</b> -AgendaUrlOptions3=<b>logina = %s</b> att begränsa produktionen till åtgärder som skapats av användaren <b>%s.</b> +AgendaUrlOptions3=<b>Logina =%s</b> att begränsa produktionen till åtgärder som ägs av en användare<b>%s.</b> AgendaUrlOptions4=<b>logint = %s</b> att begränsa produktionen till handlande påverkade användarnas <b>%s.</b> -AgendaUrlOptions5=<b>logind = %s</b> att begränsa produktionen till åtgärder som utförts av användaren <b>%s.</b> +AgendaUrlOptionsProject=<b>projekt = PROJECT_ID</b> att begränsa produktionen till åtgärder i samband med projektet <b>PROJECT_ID.</b> AgendaShowBirthdayEvents=Visa födelsedag kontakter AgendaHideBirthdayEvents=Dölj födelsedag kontakter -Busy=Busy -ExportDataset_event1=List of agenda events -DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6) -DefaultWorkingHours=Default working hours in day (Example: 9-18) +Busy=Upptagen +ExportDataset_event1=Lista över dagordningen händelser +DefaultWorkingDays=Standard arbetsdagar varierar i veckan (exempel: 1-5, 1-6) +DefaultWorkingHours=Standard arbetstiden i dag (exempel: 9-18) # External Sites ical ExportCal=Export kalender ExtSites=Importera externa kalendrar -ExtSitesEnableThisTool=Show external calendars (defined into global setup) into agenda. Does not affect external calendars defined by users. +ExtSitesEnableThisTool=Visa externa kalendrar (definierade i globala inställningar) i dagordningen. Påverkar inte externa kalendrar definierat av användare. ExtSitesNbOfAgenda=Antal kalendrar AgendaExtNb=Kalender nb %s ExtSiteUrlAgenda=URL att komma åt. Ical-fil ExtSiteNoLabel=Ingen beskrivning -WorkingTimeRange=Working time range -WorkingDaysRange=Working days range -AddEvent=Add event -MyAvailability=My availability +WorkingTimeRange=Arbetstid intervall +WorkingDaysRange=Arbetsdagar sträcker +AddEvent=Skapa event +MyAvailability=Min tillgänglighet diff --git a/htdocs/langs/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang index e738ac615a3a7f4803e859e58227eac772a00c7c..34167669685b323b7e9cd5a02eab30023acbfced 100644 --- a/htdocs/langs/sv_SE/banks.lang +++ b/htdocs/langs/sv_SE/banks.lang @@ -19,8 +19,8 @@ SavingAccount=Sparkonto SavingAccounts=Sparkonton ErrorBankLabelAlreadyExists=Finansiell balans etikett finns redan BankBalance=Balans -BankBalanceBefore=Balance before -BankBalanceAfter=Balance after +BankBalanceBefore=Balans innan +BankBalanceAfter=Balans efter BalanceMinimalAllowed=Minsta tillåtna balans BalanceMinimalDesired=Lägsta önskvärd balans InitialBankBalance=Initial jämvikt @@ -28,7 +28,7 @@ EndBankBalance=Avsluta balans CurrentBalance=Aktuellt saldo FutureBalance=Framtida balans ShowAllTimeBalance=Visa balans från start -AllTime=From start +AllTime=Från början Reconciliation=Avstämning RIB=Bankkontonummer IBAN=IBAN-nummer @@ -105,7 +105,7 @@ ConciliatedBy=Förenas med DateConciliating=Reconcile datum BankLineConciliated=Transaktion förenas CustomerInvoicePayment=Kundbetalning -CustomerInvoicePaymentBack=Customer payment back +CustomerInvoicePaymentBack=Kund betalning tillbaka SupplierInvoicePayment=Leverantör betalning WithdrawalPayment=Tillbakadragande betalning SocialContributionPayment=Sociala avgifter betalas @@ -133,14 +133,14 @@ CashBudget=Cash budget PlannedTransactions=Planerade transaktioner Graph=Grafiken ExportDataset_banque_1=Bank transaktioner och kontoutdrag -ExportDataset_banque_2=Deposit slip +ExportDataset_banque_2=Insättningsblankett TransactionOnTheOtherAccount=Transaktionen på det andra kontot TransactionWithOtherAccount=Kontoöverföring PaymentNumberUpdateSucceeded=Betalning nummer uppdaterats PaymentNumberUpdateFailed=Betalningsnummer kunde inte uppdateras PaymentDateUpdateSucceeded=Betalningsdag uppdatera framgångsrikt PaymentDateUpdateFailed=Betalningsdagen kunde inte uppdateras -Transactions=Transactions +Transactions=Transaktioner BankTransactionLine=Bank transaktion AllAccounts=Alla bank / Likvida medel BackToAccount=Tillbaka till konto @@ -149,12 +149,12 @@ FutureTransaction=Transaktioner i Futur. Inget sätt att blidka. SelectChequeTransactionAndGenerate=Välj / Filtret kontrollerar att inkludera i kontrollen insättning kvittot och klicka på "Skapa". InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value (such as, YYYYMM) EventualyAddCategory=Eventually, specify a category in which to classify the records -ToConciliate=To conciliate? +ToConciliate=För att förena? ThenCheckLinesAndConciliate=Then, check the lines present in the bank statement and click -BankDashboard=Bank accounts summary -DefaultRIB=Default BAN -AllRIB=All BAN -LabelRIB=BAN Label -NoBANRecord=No BAN record -DeleteARib=Delete BAN record -ConfirmDeleteRib=Are you sure you want to delete this BAN record ? +BankDashboard=Bankkonton sammandrag +DefaultRIB=Standard BAN +AllRIB=Alla BAN +LabelRIB=BAN etikett +NoBANRecord=Inget BAN rad +DeleteARib=Radera BAN rad +ConfirmDeleteRib=Är du säker på att du vill ta bort denna BAN rad? diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang index 92d9bde0b0292e848d739a1f4f5b95314a3ce903..b90a2d0faa20f20320a125e93cbf9aeaacdfa2d9 100644 --- a/htdocs/langs/sv_SE/bills.lang +++ b/htdocs/langs/sv_SE/bills.lang @@ -23,13 +23,13 @@ InvoiceProFormaAsk=Proforma faktura InvoiceProFormaDesc=<b>Proforma faktura</b> är en bild av en sann faktura men har ingen bokföring värde. InvoiceReplacement=Ersättning faktura InvoiceReplacementAsk=Ersättning faktura för faktura -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=<b> Ersättning faktura </b> används för att avbryta och byta helt en faktura utan betalningar.<br><br>Anmärkning: Endast fakturor utan betalningar kan bytas ut. Om fakturan du ersätter är ännu inte avslutat, kommer den automatiskt att stängas av "övergivna". InvoiceAvoir=Kreditnota InvoiceAvoirAsk=Kreditnota att korrigera fakturan InvoiceAvoirDesc=Den <b>kreditnota</b> är en negativ faktura används för att lösa det faktum att en faktura har ett värde som skiljer än beloppet verkligen betalat (eftersom kunden betalat för mycket av misstag, eller kommer inte betalas helt sedan han återvände vissa produkter till exempel). invoiceAvoirWithLines=Skapa kreditnota med innehållet i originalfakturan -invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake -invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake +invoiceAvoirWithPaymentRestAmount=Skapa kreditnota med återstående obetald faktura ursprung +invoiceAvoirLineWithPaymentRestAmount=Kredit notering för återstående obetalda beloppet ReplaceInvoice=Byt faktura %s ReplacementInvoice=Ersättning faktura ReplacedByInvoice=Ersatt av faktura %s @@ -73,21 +73,21 @@ PaymentsReports=Betalningar rapporter PaymentsAlreadyDone=Betalningar redan gjort PaymentsBackAlreadyDone=Återbetalningar är utförda tidigare PaymentRule=Betalningsregel -PaymentMode=Betalning typ +PaymentMode=Betalningssätt PaymentConditions=Betalningsvillkor PaymentConditionsShort=Betalningsvillkor PaymentAmount=Betalningsbelopp ValidatePayment=Bekräfta betalning PaymentHigherThanReminderToPay=Betalning högre än påminnelse att betala HelpPaymentHigherThanReminderToPay=Uppmärksamheten är för betalning är en eller flera räkningar högre än resten att betala. <br> Redigera din post, bekräfta något annat och tänka på att skapa en kreditnota det felaktigt erhållna beloppet för varje överskjutande fakturor. -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm. -ClassifyPaid=Klassificera "Betalda" -ClassifyPaidPartially=Klassificera "Betalda delvis" -ClassifyCanceled=Klassificera "svikna" -ClassifyClosed=Klassificera "sluten" -ClassifyUnBilled=Classify 'Unbilled' +HelpPaymentHigherThanReminderToPaySupplier=Obs, betalningsbeloppet av en eller flera räkningar är högre än återstående belopp att betala. <br> Redigera din post, annars bekräfta. +ClassifyPaid=Klassificera "betalda" +ClassifyPaidPartially=Klassificera "betalda delvis" +ClassifyCanceled=Klassificera "övergivna" +ClassifyClosed=Klassificera "avsluten" +ClassifyUnBilled=Klassificera 'ofakturerade' CreateBill=Skapa faktura -AddBill=Lägg till faktura eller kreditnota +AddBill=Skapa faktura eller en kredit nota AddToDraftInvoices=Lägg till faktura-utkast DeleteBill=Ta bort faktura SearchACustomerInvoice=Sök efter en kundfaktura @@ -99,7 +99,7 @@ DoPaymentBack=Gör betalning tillbaka ConvertToReduc=Konvertera till framtida rabatt EnterPaymentReceivedFromCustomer=Skriv in avgifter från kunderna EnterPaymentDueToCustomer=Gör betalning till kunden -DisabledBecauseRemainderToPayIsZero=Funktionshindrade eftersom resten att betala är noll +DisabledBecauseRemainderToPayIsZero=Inaktiverad pga återstående obetalt är noll Amount=Belopp PriceBase=Prisbasbelopp BillStatus=Faktura status @@ -156,9 +156,9 @@ ConfirmCancelBill=Är du säker på att du vill avbryta faktura <b>%s?</b> ConfirmCancelBillQuestion=Varför vill du att klassificera denna faktura "svikna"? ConfirmClassifyPaidPartially=Är du säker på att du vill ändra faktura <b>%s</b> till status betalas? ConfirmClassifyPaidPartiallyQuestion=Denna faktura inte har betalats helt. Vad finns skäl för dig att stänga denna faktura? -ConfirmClassifyPaidPartiallyReasonAvoir=Återstår att betala <b>(%s %s)</b> är en rabatt som beviljats på grund av betalningen gjordes före sikt. Jag reglera moms med en kreditnota. -ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Återstår att betala <b>(%s %s)</b> är en rabatt som beviljats på grund av betalningen gjordes före sikt. Jag accepterar att förlora mervärdesskatten på denna rabatt. -ConfirmClassifyPaidPartiallyReasonDiscountVat=Återstår att betala <b>(%s %s)</b> är en rabatt som beviljats på grund av betalningen gjordes före sikt. Jag återfå mervärdesskatten på denna rabatt utan en kreditnota. +ConfirmClassifyPaidPartiallyReasonAvoir=Återstående obetalt <b>(%s %s)</ b> är en rabatt som beviljats eftersom betalningen gjordes före villkoren. Jag reglerar momsen med en kreditnota. +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Återstående obetalt <b>(%s %s)</ b> är en rabatt som beviljats eftersom betalningen gjordes före villkoren. Jag godkänner förlust av momsen på denna rabatt. +ConfirmClassifyPaidPartiallyReasonDiscountVat=Återstående obetalt <b>(%s %s)</ b> är en rabatt som beviljats eftersom betalningen gjordes före villkoren. Jag återskapar momsen på denna rabatt med en kreditnota. ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad kund ConfirmClassifyPaidPartiallyReasonProductReturned=Produkter som returneras delvis ConfirmClassifyPaidPartiallyReasonOther=Belopp övergivna av annan orsak @@ -173,7 +173,7 @@ ConfirmClassifyAbandonReasonOtherDesc=Detta val kommer att användas i alla andr ConfirmCustomerPayment=Har du bekräfta denna betalning ingång för <b>%s</b> %s? ConfirmSupplierPayment=Bekräftar du denna betalning för <b>%s</b> %s? ConfirmValidatePayment=Är du säker på att du vill godkänna denna betalning? Inga ändringar kan göras efter det att betalning är godkänd. -ValidateBill=Validate faktura +ValidateBill=Validera faktura UnvalidateBill=Unvalidate faktura NumberOfBills=Nb av fakturor NumberOfBillsByMonth=Nb av fakturor per månad @@ -191,29 +191,29 @@ AlreadyPaid=Redan betalats ut AlreadyPaidBack=Redan återbetald AlreadyPaidNoCreditNotesNoDeposits=Redan betalats (utan kreditnotor och inlåning) Abandoned=Övergiven -RemainderToPay=Återstår att betala -RemainderToTake=Återstår att ta -RemainderToPayBack=Påminnelse om återbetalning +RemainderToPay=Återstående obetalt +RemainderToTake=Återstående belopp att ta +RemainderToPayBack=Återstående belopp att återbetala Rest=Avvaktande AmountExpected=Yrkade beloppet ExcessReceived=Överskott fått EscompteOffered=Rabatterna (betalning innan terminen) -SendBillRef=Submission of invoice %s -SendReminderBillRef=Submission of invoice %s (reminder) +SendBillRef=Inlämning av faktura %s +SendReminderBillRef=Inlämning av faktura %s (påminnelse) StandingOrders=Stående order StandingOrder=Stående order NoDraftBills=Inget förslag fakturor NoOtherDraftBills=Inga andra förslag fakturor NoDraftInvoices=Inget faktura-utkast RefBill=Faktura ref -ToBill=Till Bill +ToBill=Fakturamottagare RemainderToBill=Återstår att räkningen SendBillByMail=Skicka faktura via e-post SendReminderBillByMail=Skicka påminnelse via e-post RelatedCommercialProposals=Relaterade kommersiella förslag MenuToValid=Till giltiga DateMaxPayment=Betalning innan -DateEcheance=Förfallodagen gräns +DateEcheance=Förfallodag DateInvoice=Fakturadatum NoInvoice=Ingen faktura ClassifyBill=Klassificera faktura @@ -225,18 +225,18 @@ NonPercuRecuperable=Icke återvinningsbara SetConditions=Ställ betalningsvillkor SetMode=Ställ betalningssätt Billed=Fakturerade -RepeatableInvoice=Fördefinierade faktura -RepeatableInvoices=Fördefinierade fakturor -Repeatable=Fördefinierade -Repeatables=Fördefinierade -ChangeIntoRepeatableInvoice=Konvertera till fördefinierade -CreateRepeatableInvoice=Skapa fördefinierade faktura -CreateFromRepeatableInvoice=Skapa från fördefinierade faktura +RepeatableInvoice=Fakturamall +RepeatableInvoices=Fakturamallar +Repeatable=Mall +Repeatables=Mallar +ChangeIntoRepeatableInvoice=Konvertera till fakturamall +CreateRepeatableInvoice=Skapa fakturamall +CreateFromRepeatableInvoice=Skapa från fakturamall CustomersInvoicesAndInvoiceLines=Kundfakturor och fakturornas linjer CustomersInvoicesAndPayments=Kund fakturor och betalningar ExportDataset_invoice_1=Kundfakturor listan och fakturornas linjer ExportDataset_invoice_2=Kund fakturor och betalningar -ProformaBill=Proforma Bill: +ProformaBill=Proforma faktura: Reduction=Minskning ReductionShort=Minskningar. Reductions=Minskningar @@ -263,12 +263,12 @@ AbsoluteDiscountUse=Denna typ av krediter kan användas på fakturan innan valid CreditNoteDepositUse=Fakturan ska valideras för att använda denna kung av tillgodohavanden NewGlobalDiscount=Ny fix rabatt NewRelativeDiscount=Nya relativa rabatt -NoteReason=Not / Reason -ReasonDiscount=Reason +NoteReason=Not/orsak +ReasonDiscount=Orsak DiscountOfferedBy=Beviljats av DiscountStillRemaining=Rabatt återstår fortfarande DiscountAlreadyCounted=Rabatt räknas redan -BillAddress=Bill adress +BillAddress=Faktureringsadress HelpEscompte=Denna rabatt är en rabatt som kund eftersom betalningen gjordes före sikt. HelpAbandonBadCustomer=Detta belopp har övergivits (kund sägs vara en dålig kund) och anses som en exceptionell lös. HelpAbandonOther=Detta belopp har övergivits eftersom det var ett misstag (fel kund eller faktura ersättas av en annan till exempel) @@ -287,8 +287,8 @@ InvoiceNotChecked=Faktura vald CloneInvoice=Klon faktura ConfirmCloneInvoice=Är du säker på att du vill klona denna faktura <b>%s?</b> DisabledBecauseReplacedInvoice=Åtgärd funktionshindrade eftersom faktura har ersatts -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here. -NbOfPayments=Nb av utbetalningar +DescTaxAndDividendsArea=Detta område ger en sammanfattning av alla betalningar för särskilda utgifter. Endast poster med betalning under fasta året ingår här. +NbOfPayments=Antal utbetalningar SplitDiscount=Split rabatt i två ConfirmSplitDiscount=Är du säker på att du vill dela denna rabatt <b>%s</b> %s i två lägre rabatter? TypeAmountOfEachNewDiscount=Ingång belopp för var och en av två delar: @@ -296,8 +296,8 @@ TotalOfTwoDiscountMustEqualsOriginal=Totalt för två nya rabatt måste vara lik ConfirmRemoveDiscount=Är du säker på att du vill ta bort denna rabatt? RelatedBill=Relaterade faktura RelatedBills=Relaterade fakturor -LatestRelatedBill=Latest related invoice -WarningBillExist=Warning, one or more invoice already exist +LatestRelatedBill=Senast relaterad faktura +WarningBillExist=Varning, en eller flera fakturor finns redan # PaymentConditions PaymentConditionShortRECEP=Omedelbar @@ -333,14 +333,14 @@ PaymentTypeTIP=TIPS PaymentTypeShortTIP=TIPS PaymentTypeVAD=På rad betalning PaymentTypeShortVAD=På rad betalning -PaymentTypeTRA=Bill betalning -PaymentTypeShortTRA=Bill +PaymentTypeTRA=Faktura betalning +PaymentTypeShortTRA=Faktura BankDetails=Bankuppgifter BankCode=Bankkod DeskCode=Reception kod BankAccountNumber=Kontonummer BankAccountNumberKey=Nyckel -Residence=Domiciliation +Residence=Säte IBANNumber=IBAN-nummer IBAN=IBAN BIC=BIC / SWIFT @@ -351,7 +351,7 @@ ChequeNumber=Kontrollera nr ChequeOrTransferNumber=Kontrollera / Transfer nr ChequeMaker=Kontrollera sändare ChequeBank=Bank av Check -NetToBePaid=Net som skall betalas +NetToBePaid=Netto som skall betalas PhoneNumber=Tel FullPhoneNumber=Telefon TeleFax=Fax @@ -384,7 +384,7 @@ UsBillingContactAsIncoiveRecipientIfExist=Använda kundens faktureringsadress ad ShowUnpaidAll=Visa alla obetalda fakturor ShowUnpaidLateOnly=Visa sent obetald faktura endast PaymentInvoiceRef=Betalning faktura %s -ValidateInvoice=Validate faktura +ValidateInvoice=Validera faktura Cash=Kontanter Reported=Försenad DisabledBecausePayments=Inte möjlig eftersom det inte finns några betalningar @@ -397,12 +397,12 @@ AllCompletelyPayedInvoiceWillBeClosed=Alla fakturor utan återstår att betala k ToMakePayment=Betala ToMakePaymentBack=Återbetala ListOfYourUnpaidInvoices=Lista över obetalda fakturor -NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative. -RevenueStamp=Revenue stamp -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of thirdparty +NoteListOfYourUnpaidInvoices=OBS: Denna lista innehåller bara fakturor för tredje parti som du är kopplade till som en försäljning representant. +RevenueStamp=Intäkt stämpel +YouMustCreateInvoiceFromThird=Det här alternativet är endast tillgängligt när du skapar faktura från fliken "kund" hos tredje parts PDFCrabeDescription=Faktura modell Crabe. En fullständig faktura modell (Stöd moms alternativet, rabatter, betalningar villkor, logotyp, etc. ..) -TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for credit notes and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +TerreNumRefModelDesc1=Återger nummer med formatet %syymm-nnnn för standardfakturor och %syymm-NNNN för kreditnotor där yy är året, mm månaden och nnnn är en sekvens med ingen paus och ingen återgång till 0 +MarsNumRefModelDesc1=Återger nummer med formatet %syymm-nnnn för standardfakturor, %syymm-nnnn för kreditnotor där åå är år, är mm %syymm-nnnn för ersättningsfakturor, %syymm-nnnn för kreditnotor och månad och nnnn är en sekvens utan sönder och ingen återgång till 0 TerreNumRefModelError=Ett lagförslag som börjar med $ syymm finns redan och är inte förenligt med denna modell för sekvens. Ta bort den eller byta namn på den för att aktivera denna modul. ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representanten uppföljning kundfaktura diff --git a/htdocs/langs/sv_SE/boxes.lang b/htdocs/langs/sv_SE/boxes.lang index 6f03c265227d60921e313f3435a0ba324de2e40b..3c949332eb6e0fe1f8a822e8fc2587943dd12f30 100644 --- a/htdocs/langs/sv_SE/boxes.lang +++ b/htdocs/langs/sv_SE/boxes.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - boxes BoxLastRssInfos=RSS-information BoxLastProducts=Senaste %s produkter / tjänster -# BoxProductsAlertStock=Products in stock alert +BoxProductsAlertStock=Produkter i lager alert BoxLastProductsInContract=Senaste %s avtalade produkter / tjänster BoxLastSupplierBills=Senaste leverantörens fakturor BoxLastCustomerBills=Senaste kundens fakturor @@ -12,13 +12,14 @@ BoxLastProspects=Senast uppdaterad framtidsutsikter BoxLastCustomers=Senast uppdaterad kunder BoxLastSuppliers=Senast uppdaterad leverantörer BoxLastCustomerOrders=Senaste kundorder +BoxLastValidatedCustomerOrders=Senast validerade kundorder BoxLastBooks=Senast böcker BoxLastActions=Senaste åtgärder BoxLastContracts=Senaste kontrakt BoxLastContacts=Senaste kontakter / adresser BoxLastMembers=Sista medlemmar -# BoxFicheInter=Last interventions -# BoxCurrentAccounts=Opened accounts balance +BoxFicheInter=Sista interventioner +BoxCurrentAccounts=Öppnade balans konton BoxSalesTurnover=Omsättningen BoxTotalUnpaidCustomerBills=Totalt obetalda kundens fakturor BoxTotalUnpaidSuppliersBills=Totalt obetalda leverantörs fakturor @@ -26,27 +27,30 @@ BoxTitleLastBooks=Senaste %s inspelade böcker BoxTitleNbOfCustomers=Nombre de klient BoxTitleLastRssInfos=Senaste %s nyheter från %s BoxTitleLastProducts=Senast %s modifierade produkter / tjänster -# BoxTitleProductsAlertStock=Products in stock alert -BoxTitleLastCustomerOrders=Senast %s uppdaterad kundorder +BoxTitleProductsAlertStock=Produkter i lager alert +BoxTitleLastCustomerOrders=Senaste %s kundorder +BoxTitleLastModifiedCustomerOrders=Senaste %s modifierade kundorder BoxTitleLastSuppliers=Senaste %s registreras leverantörer BoxTitleLastCustomers=Senaste %s registreras kunder BoxTitleLastModifiedSuppliers=Senast %s uppdaterad leverantörer BoxTitleLastModifiedCustomers=Senast %s uppdaterad kunder -BoxTitleLastCustomersOrProspects=Senast %s modifierade eller tilltänkta kunder -BoxTitleLastPropals=Senaste %s registreras förslag +BoxTitleLastCustomersOrProspects=Senaste %s kunder eller framtidsutsikter +BoxTitleLastPropals=Senaste %s förslag +BoxTitleLastModifiedPropals=Senaste %s ändrade förslag BoxTitleLastCustomerBills=Senaste %s kundens fakturor +BoxTitleLastModifiedCustomerBills=Senaste %s modifierade kundfakturor BoxTitleLastSupplierBills=Senaste %s leverantörens fakturor -BoxTitleLastProspects=Senaste %s registreras framtidsutsikter +BoxTitleLastModifiedSupplierBills=Senaste %s modifierade leverantörsfakturor BoxTitleLastModifiedProspects=Senast %s uppdaterad framtidsutsikter BoxTitleLastProductsInContract=Senaste %s produkter / tjänster i ett avtal -BoxTitleLastModifiedMembers=Sista %s modifierade medlemmar -# BoxTitleLastFicheInter=Last %s modified intervention -BoxTitleOldestUnpaidCustomerBills=Äldsta %s obetalda kundens fakturor -BoxTitleOldestUnpaidSupplierBills=Äldsta %s obetalda leverantörs fakturor -# BoxTitleCurrentAccounts=Opened account's balances +BoxTitleLastModifiedMembers=Senaste %s medlemmar +BoxTitleLastFicheInter=Senaste %s modifierade ingripande +BoxTitleOldestUnpaidCustomerBills=Äldsta %s obetalda kundfakturor +BoxTitleOldestUnpaidSupplierBills=Äldsta %s obetalda leverantörsfakturor +BoxTitleCurrentAccounts=Öppnade kontots saldon BoxTitleSalesTurnover=Omsättningen -BoxTitleTotalUnpaidCustomerBills=Obetalda kundens fakturor -BoxTitleTotalUnpaidSuppliersBills=Obetalda leverantörs fakturor +BoxTitleTotalUnpaidCustomerBills=Obetalda kundfakturor +BoxTitleTotalUnpaidSuppliersBills=Obetalda leverantörsfakturor BoxTitleLastModifiedContacts=Senaste %s modifierade kontakter / adresser BoxMyLastBookmarks=Min sista %s bokmärken BoxOldestExpiredServices=Äldsta aktiva passerat tjänster @@ -55,7 +59,7 @@ BoxTitleLastActionsToDo=Senaste %s åtgärder för att göra BoxTitleLastContracts=Senaste %s kontrakt BoxTitleLastModifiedDonations=Sista %s modifierad donationer BoxTitleLastModifiedExpenses=Sista %s modifierad kostnader -# BoxGlobalActivity=Global activity (invoices, proposals, orders) +BoxGlobalActivity=Global aktivitet (fakturor, förslag, order) FailedToRefreshDataInfoNotUpToDate=Misslyckades med att uppdatera RSS-flöde. Senaste framgångsrika uppdatera datum: %s LastRefreshDate=Senaste uppdateringen datum NoRecordedBookmarks=Inga bokmärken definieras. Klicka <a href="%s">här</a> för att lägga till bokmärken. @@ -74,18 +78,19 @@ NoRecordedProducts=Inga registrerade produkter / tjänster NoRecordedProspects=Inga registrerade framtidsutsikter NoContractedProducts=Inga produkter / tjänster avtalade NoRecordedContracts=Inga registrerade kontrakt -# NoRecordedInterventions=No recorded interventions -# BoxLatestSupplierOrders=Latest supplier orders -# BoxTitleLatestSupplierOrders=%s latest supplier orders -# NoSupplierOrder=No recorded supplier order -# BoxCustomersInvoicesPerMonth=Customer invoices per month -# BoxSuppliersInvoicesPerMonth=Supplier invoices per month -# BoxCustomersOrdersPerMonth=Customer orders per month -# BoxSuppliersOrdersPerMonth=Supplier orders per month -# BoxProposalsPerMonth=Proposals per month -# NoTooLowStockProducts=No product under the low stock limit -# BoxProductDistribution=Products/Services distribution -# BoxProductDistributionFor=Distribution of %s for %s +NoRecordedInterventions=Inga inspelade interventioner +BoxLatestSupplierOrders=Senaste leverantörs order +BoxTitleLatestSupplierOrders=Senaste %s leverantörsorder +BoxTitleLatestModifiedSupplierOrders=Senaste %s modifierade leverantörs order +NoSupplierOrder=Inga inspelade leverantör ordning +BoxCustomersInvoicesPerMonth=Kund fakturor per månad +BoxSuppliersInvoicesPerMonth=Leverantörs fakturor per månad +BoxCustomersOrdersPerMonth=Kundorder per månad +BoxSuppliersOrdersPerMonth=Leverantörs order per månad +BoxProposalsPerMonth=Förslag per månad +NoTooLowStockProducts=Ingen produkt under den låga aktiegränsen +BoxProductDistribution=Produkter / tjänster fördelning +BoxProductDistributionFor=Fördelning av %s för %s ForCustomersInvoices=Kundens fakturor -# ForCustomersOrders=Customers orders +ForCustomersOrders=Kund beställningar ForProposals=Förslag diff --git a/htdocs/langs/sv_SE/cashdesk.lang b/htdocs/langs/sv_SE/cashdesk.lang index 9dc083d5e4421246b5266223e8dab71df827f801..b423702c634b55343169ac58f49d6c613bdc739f 100644 --- a/htdocs/langs/sv_SE/cashdesk.lang +++ b/htdocs/langs/sv_SE/cashdesk.lang @@ -12,7 +12,7 @@ CashDeskProducts=Produkter CashDeskStock=Lager CashDeskOn=på CashDeskThirdParty=Tredje part -# CashdeskDashboard=Point of sale access +CashdeskDashboard=Försäljningsställe ShoppingCart=Kundvagn NewSell=Nya säljer BackOffice=Back office @@ -36,5 +36,5 @@ BankToPay=KONTO ShowCompany=Visar företaget ShowStock=Visar lagret DeleteArticle=Klicka här för att ta bort den här artikeln -# FilterRefOrLabelOrBC=Search (Ref/Label) -# UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock. +FilterRefOrLabelOrBC=Sök (Ref / etikett) +UserNeedPermissionToEditStockToUsePos=Du ber att minska lager på faktura skapelse, så användare som använder POS behöver ha behörighet att redigera lager. diff --git a/htdocs/langs/sv_SE/categories.lang b/htdocs/langs/sv_SE/categories.lang index 34f80e7f951161a12b2cddb3adeb3f04a0f5df25..42ef6bd5d47c15726740a4cb843bcf5c5a830399 100644 --- a/htdocs/langs/sv_SE/categories.lang +++ b/htdocs/langs/sv_SE/categories.lang @@ -111,4 +111,4 @@ ExtraFieldsCategories=Extra attibut CategoriesSetup=Kategorier, inställningar CategorieRecursiv=Länka automatiskt med förälderkategori CategorieRecursivHelp=Om aktiverad kommer produkten även länkas till förälderkategori när den läggs i en underkategori -AddProductServiceIntoCategory=Add the following product/service +AddProductServiceIntoCategory=Lägg till följande produkt / tjänst diff --git a/htdocs/langs/sv_SE/commercial.lang b/htdocs/langs/sv_SE/commercial.lang index db67958f331202fa90f52ab5c657730300eb2b0f..4e4fd7f51aa22d645870f4ac49f66bd5765f302b 100644 --- a/htdocs/langs/sv_SE/commercial.lang +++ b/htdocs/langs/sv_SE/commercial.lang @@ -9,9 +9,9 @@ Prospect=Prospect Prospects=Framtidsutsikter DeleteAction=Ta bort en handling / uppgift NewAction=Ny åtgärd / uppgift -AddAction=Lägg till åtgärd / uppgift -AddAnAction=Lägg till en handling / uppgift -AddActionRendezVous=Lägg till en Rendezvous uppgift +AddAction=Skapa händelse / uppgift +AddAnAction=Skapa en händelse / uppgift +AddActionRendezVous=Skapa en Rendez-vous händelse Rendez-Vous=Rendezvous ConfirmDeleteAction=Är du säker på att du vill ta bort denna uppgift? CardAction=Action-kort @@ -44,8 +44,8 @@ DoneActions=Genomförda åtgärder DoneActionsFor=Genomförda åtgärder för %s ToDoActions=Ofullständig åtgärder ToDoActionsFor=Ofullständiga åtgärder för %s -SendPropalRef=Skicka kommersiella förslag %s -SendOrderRef=Skicka beställningen %s +SendPropalRef=Inlämning av kommersiella förslag %s +SendOrderRef=Inlämning av ordning %s StatusNotApplicable=Ej tillämpligt StatusActionToDo=För att göra StatusActionDone=Komplett @@ -62,7 +62,7 @@ LastProspectContactDone=Kontakta gjort DateActionPlanned=Datum planerade åtgärder för DateActionDone=Datum insatser görs ActionAskedBy=Åtgärd bad -ActionAffectedTo=Åtgärd påverkas +ActionAffectedTo=Händelse som ägs av ActionDoneBy=Åtgärder som utförs av ActionUserAsk=Registrerats av ErrorStatusCantBeZeroIfStarted=Om fältet <b>"Datum gjort"</b> är fylld, är arbetet igång (eller färdiga), så fältet <b>"Status"</b> kan inte 0%%. @@ -71,7 +71,7 @@ ActionAC_FAX=Skicka fax ActionAC_PROP=Skicka förslag via e-post ActionAC_EMAIL=Skicka e-post ActionAC_RDV=Möten -ActionAC_INT=Intervention on site +ActionAC_INT=Intervention på plats ActionAC_FAC=Skicka kundfaktura med post ActionAC_REL=Skicka kundfaktura via post (påminnelse) ActionAC_CLO=Stäng diff --git a/htdocs/langs/sv_SE/companies.lang b/htdocs/langs/sv_SE/companies.lang index 54df1904f2676d3d00f495f9079c223d484664e3..1e640e1b80e08092b046df761074bc26894ee7b4 100644 --- a/htdocs/langs/sv_SE/companies.lang +++ b/htdocs/langs/sv_SE/companies.lang @@ -91,9 +91,9 @@ LocalTax2IsUsedES= IRPF används LocalTax2IsNotUsedES= IRPF används inte LocalTax1ES=RE LocalTax2ES=IRPF -TypeLocaltax1ES=RE Type -TypeLocaltax2ES=IRPF Type -TypeES=Type +TypeLocaltax1ES=RE Typ +TypeLocaltax2ES=IRPF Typ +TypeES=Typ ThirdPartyEMail=%s WrongCustomerCode=Kundkod ogiltig WrongSupplierCode=Leverantörkod ogiltig @@ -259,8 +259,8 @@ AvailableGlobalDiscounts=Absoluta rabatter DiscountNone=Ingen Supplier=Leverantör CompanyList=Företagslista -AddContact=Lägg till kontakt -AddContactAddress=Lägg till kontakt / adress +AddContact=Skapa kontakt +AddContactAddress=Skapa kontakt / adress EditContact=Redigera kontakt / adress EditContactAddress=Redigera kontakt / adress Contact=Kontakt @@ -268,8 +268,8 @@ ContactsAddresses=Kontakt / Adresser NoContactDefinedForThirdParty=Ingen kontakt inlagd för denna tredje part NoContactDefined=Ingen kontakt inlagd DefaultContact=Standard kontakt / adress -AddCompany=Lägg till företag -AddThirdParty=Lägg till tredje part +AddCompany=Skapa företag +AddThirdParty=Skapa tredje part DeleteACompany=Ta bort ett företag PersonalInformations=Personuppgifter AccountancyCode=Bokföring kod @@ -379,8 +379,8 @@ DeliveryAddressLabel=Leverans adresskortet DeleteDeliveryAddress=Ta bort en leveransadress ConfirmDeleteDeliveryAddress=Är du säker på att du vill ta bort denna leveransadress? NewDeliveryAddress=Ny leveransadress -AddDeliveryAddress=Lägg till adress -AddAddress=Lägg till adress +AddDeliveryAddress=Skapa adress +AddAddress=Skapa adress NoOtherDeliveryAddress=Ingen alternativ leveransadress definierad SupplierCategory=Leverantör kategori JuridicalStatus200=Oberoende @@ -397,18 +397,18 @@ YouMustCreateContactFirst=Du måste först skapa e-postkontakter för tredje par ListSuppliersShort=Lista över leverantörer ListProspectsShort=Lista över möjliga kunder ListCustomersShort=Lista över kunder -ThirdPartiesArea=Third parties and contact area +ThirdPartiesArea=Tredje part och kontaktyta LastModifiedThirdParties=Senaste %s modifierade tredje part UniqueThirdParties=Totalt unika tredje part InActivity=Öppet ActivityCeased=Stängt ActivityStateFilter=Sysselsättningsstatus -ProductsIntoElements=List of products into %s +ProductsIntoElements=Lista produkter till %s CurrentOutstandingBill=Obetalda fakturor OutstandingBill=Max för obetald faktura OutstandingBillReached=Upnått tak för obetalda fakturor MonkeyNumRefModelDesc=Ger nummer med format %syymm-nnnn för kundnummer och %syymm-nnnn för leverantörnummer där YY är år, mm månad och nnnn är en sekvens utan avbrott och utan återgång till 0. LeopardNumRefModelDesc=Kund / leverantör-nummer är ledig. Denna kod kan ändras när som helst. ManagingDirectors=Företagledares namn (vd, direktör, ordförande ...) -SearchThirdparty=Search thirdparty -SearchContact=Search contact +SearchThirdparty=Sök tredjeparts +SearchContact=Sök kontakt diff --git a/htdocs/langs/sv_SE/contracts.lang b/htdocs/langs/sv_SE/contracts.lang index 98e98e079c66c1319d3b370a491d6b9187871713..9329c9a9701d6c9e7a01fc6a0721c9797ca01976 100644 --- a/htdocs/langs/sv_SE/contracts.lang +++ b/htdocs/langs/sv_SE/contracts.lang @@ -27,7 +27,7 @@ MenuRunningServices=Löpande tjänster MenuExpiredServices=Utlöpta tjänster MenuClosedServices=Stängda tjänster NewContract=Nytt kontrakt -AddContract=Lägg till kontrakt +AddContract=Skapa kontrakt SearchAContract=Sök ett kontrakt DeleteAContract=Ta bort ett kontrakt CloseAContract=Stäng ett kontrakt @@ -89,8 +89,8 @@ ListOfServicesToExpireWithDuration=Förteckning över tjänster som löper ut in ListOfServicesToExpireWithDurationNeg=Förteckning över tjänster som löpt ut sedan mer än %s dagar ListOfServicesToExpire=Förteckning över tjänster som löper ut NoteListOfYourExpiredServices=Denna förteckning omfattar endast tjänster från avtal med tredje part i förhållande till vilka du är säljare. -StandardContractsTemplate=Standard contracts template -ContactNameAndSignature=For %s, name and signature: +StandardContractsTemplate=Standardkontrakt mall +ContactNameAndSignature=För %s, namn och underskrift: ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Säljare som tecknar avtal diff --git a/htdocs/langs/sv_SE/cron.lang b/htdocs/langs/sv_SE/cron.lang index 518d8c5695f5208f07c46d8dd17a176c09c28855..0857c69559756cdb4efbe506c82e91ae688ef75e 100644 --- a/htdocs/langs/sv_SE/cron.lang +++ b/htdocs/langs/sv_SE/cron.lang @@ -1,42 +1,40 @@ # Dolibarr language file - Source file is en_US - cron -# # About page About = Om CronAbout = Om Cron -CronAboutPage = Cron about page - +CronAboutPage = Cron om sidan # Right -Permission23101 = Read Scheduled task -Permission23102 = Create/update Scheduled task -Permission23103 = Delete Scheduled task -Permission23104 = Execute Scheduled task +Permission23101 = Läs schedulerad uppgift +Permission23102 = Skapa / uppdatera Schemalagd aktivitet +Permission23103 = Ta bort schemalagd aktivitet +Permission23104 = Kör schemalagd aktivitet # Admin -CronSetup= Scheduled job management setup -URLToLaunchCronJobs=URL to check and launch cron jobs if required -OrToLaunchASpecificJob=Or to check and launch a specific job -KeyForCronAccess=Security key for URL to launch cron jobs +CronSetup= Planerad jobbhantering installation +URLToLaunchCronJobs=URL för att kontrollera och starta cron-jobb om det behövs +OrToLaunchASpecificJob=Eller för att kontrollera och starta ett specifikt arbete +KeyForCronAccess=Säkerhetsnyckel för URL för att lansera cron-jobb FileToLaunchCronJobs=Kommandorad för att starta cron jobb -CronExplainHowToRunUnix=On Unix environment you should use crontab to run Command line each minutes -CronExplainHowToRunWin=On Microsoft(tm) Windows environement you can use Scheduled task tools to run Command line each minutes +CronExplainHowToRunUnix=På Unix-miljö bör du använda crontab för att köra kommandoraden varje minuter +CronExplainHowToRunWin=På Microsoft (tm) Windows environement kan du använda schemalagd aktivitet verktyg för att köra kommandoraden varje minuter # Menu -CronJobs=Scheduled jobs -CronListActive= List of active jobs -CronListInactive= List of disabled jobs -CronListActive= List of active jobs +CronJobs=Schemalagda jobb +CronListActive= Lista över aktiva jobb +CronListInactive= Lista över handikappade jobb +CronListActive= Lista över aktiva jobb # Page list CronDateLastRun=Senaste körning -CronLastOutput=Last run output -CronLastResult=Last result code -CronListOfCronJobs=List of scheduled jobs +CronLastOutput=Sista loppet utgång +CronLastResult=Senaste resultat code +CronListOfCronJobs=Lista över schemalagda jobb CronCommand=Kommando -CronList=Jobs list -CronDelete= Delete cron jobs -CronConfirmDelete= Are you sure you want to delete this cron job ? -CronExecute=Launch job -CronConfirmExecute= Are you sure to execute this job now -CronInfo= Jobs allow to execute task that have been planned -CronWaitingJobs=Wainting jobs -CronTask=Job +CronList=Listan Jobb +CronDelete= Radera cron-jobb +CronConfirmDelete= Är du säker på att du vill ta bort denna cron-jobb? +CronExecute=Starta jobb +CronConfirmExecute= Är du säker på att utföra detta jobb nu +CronInfo= Jobb möjligt att utföra uppgiften som har planerats +CronWaitingJobs=Wainting jobb +CronTask=Jobb CronNone= Ingen CronDtStart=Startdatum CronDtEnd=Slutdatum @@ -46,44 +44,44 @@ CronFrequency=Frekvens CronClass=Klass CronMethod=Metod CronModule=Modul -CronAction=Action +CronAction=Åtgärd CronStatus=Status CronStatusActive=Aktiverat CronStatusInactive=Funktionshindrade -CronNoJobs=No jobs registered +CronNoJobs=Inga jobb registrerade CronPriority=Prioritet CronLabel=Beskrivning -CronNbRun=Nb. launch +CronNbRun=Nb. lanseringen CronEach=Varje -JobFinished=Job launched and finished +JobFinished=Job lanserad och klar #Page card -CronAdd= Add jobs -CronHourStart= Start Hour and date of task -CronEvery= And execute task each -CronObject= Instance/Object to create +CronAdd= Lägg till jobb +CronHourStart= Start Hour och datum för uppgiften +CronEvery= Och köra uppgiften varje +CronObject= Instans / Object för att skapa CronArgs=Parametrar -CronSaveSucess=Save succesfully +CronSaveSucess=Spara framgångsrikt CronNote=Kommentar -CronFieldMandatory=Fields %s is mandatory -CronErrEndDateStartDt=End date cannot be before start date +CronFieldMandatory=Fält %s är obligatoriskt +CronErrEndDateStartDt=Slutdatum kan inte vara före startdatum CronStatusActiveBtn=Aktivera CronStatusInactiveBtn=Inaktivera -CronTaskInactive=This job is disabled -CronDtLastResult=Last result date +CronTaskInactive=Det här jobbet är avaktiverat +CronDtLastResult=Senaste resultatet datum CronId=Id CronClassFile=Klasser (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module). <BR> For exemple to fetch method of Dolibarr Product object /htdocs/<u>product</u>/class/product.class.php, the value of module is <i>product</i> -CronClassFileHelp=The file name to load. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/<u>product.class.php</u>, the value of class file name is <i>product.class.php</i> -CronObjectHelp=The object name to load. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is <i>Product</i> -CronMethodHelp=The object method to launch. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is <i>fecth</i> -CronArgsHelp=The method arguments. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be <i>0, ProductRef</i> -CronCommandHelp=The system command line to execute. +CronModuleHelp=Namn på Dolibarr modul katalog (även arbeta med extern Dolibarr modul). <BR> För exemple att hämta metod för Dolibarr Produkt objektet / htdocs / <u>produkt</u> /class/product.class.php, värdet av modulen är <i>produkten</i> +CronClassFileHelp=Filnamnet för att ladda. <BR> För exemple att hämta metod för Dolibarr Produkt objektet / htdocs / produkt / klass / <u>product.class.php,</u> är värdet av klass filnamn <i>product.class.php</i> +CronObjectHelp=Det objektnamn som ska läsas in. <BR> För exemple att hämta metod för Dolibarr Produktobjekt /htdocs/product/class/product.class.php, är värdet av klass filnamn <i>Produkt</i> +CronMethodHelp=Objektet metod för att starta. <BR> För exemple att hämta metod för Dolibarr Produktobjekt /htdocs/product/class/product.class.php, värdet av metoden är är <i>fecth</i> +CronArgsHelp=Metoden argument. <BR> Till exemple att hämta förfarande för Dolibarr Produkt objekt /htdocs/product/class/product.class.php kan värdet av paramters vara <i>0, ProductRef</i> +CronCommandHelp=Systemet kommandoraden som ska köras. # Info CronInfoPage=Information # Common -CronType=Task type -CronType_method=Call method of a Dolibarr Class -CronType_command=Shell command +CronType=Task typ +CronType_method=Call metod för en Dolibarr klass +CronType_command=Skalkommando CronMenu=Cron -CronCannotLoadClass=Cannot load class %s or object %s -UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Modules tools - Job list" to see and edit scheduled jobs. +CronCannotLoadClass=Det går inte att läsa in klassen% s eller objekt% s +UseMenuModuleToolsToAddCronJobs=Gå in på menyn "Home - Moduler verktyg - Job list" för att se och redigera schemalagda jobb. diff --git a/htdocs/langs/sv_SE/deliveries.lang b/htdocs/langs/sv_SE/deliveries.lang index 393ba2ebbcca1a5863a59dd5ad10ae0ed57ecedd..315f3668602d59ff1d23121c2d4f234bf9b800b3 100644 --- a/htdocs/langs/sv_SE/deliveries.lang +++ b/htdocs/langs/sv_SE/deliveries.lang @@ -24,3 +24,5 @@ Deliverer=Utlämnad av: Sender=Avsändare Recipient=Mottagare ErrorStockIsNotEnough=Det finns inte tillräckligt i lager +Shippable=Sändbara +NonShippable=Inte sändbara diff --git a/htdocs/langs/sv_SE/dict.lang b/htdocs/langs/sv_SE/dict.lang index c69b273c44a35e1e4a531f6286e6d09f1036606e..1c6f314ac0fadbef704476625e117498d734947d 100644 --- a/htdocs/langs/sv_SE/dict.lang +++ b/htdocs/langs/sv_SE/dict.lang @@ -6,7 +6,7 @@ CountryES=Spanien CountryDE=Tyskland CountryCH=Schweiz CountryGB=STORBRITANNIEN -# CountryUK=United Kingdom +CountryUK=United Kingdom CountryIE=Irland CountryCN=Kina CountryTN=Tunisien @@ -252,8 +252,7 @@ CivilityMME=Mrs CivilityMR=Mr CivilityMLE=Ms CivilityMTRE=Master -# CivilityDR=Doctor - +CivilityDR=Doktor ##### Currencies ##### Currencyeuros=Euro CurrencyAUD=AU dollar @@ -290,10 +289,10 @@ CurrencyXOF=FCFA BCEAO CurrencySingXOF=CFA Franc BCEAO CurrencyXPF=Fiskeripolitiken franc CurrencySingXPF=CFP-franc - -# CurrencyCentSingEUR=cent -# CurrencyThousandthSingTND=thousandth - +CurrencyCentSingEUR=cent +CurrencyCentINR=paisa +CurrencyCentSingINR=paise +CurrencyThousandthSingTND=tusendel #### Input reasons ##### DemandReasonTypeSRC_INTE=Internet DemandReasonTypeSRC_CAMP_MAIL=Post kampanj @@ -302,28 +301,27 @@ DemandReasonTypeSRC_CAMP_PHO=Telefonen kampanj DemandReasonTypeSRC_CAMP_FAX=Fax kampanjen DemandReasonTypeSRC_COMM=Kommersiella kontakt DemandReasonTypeSRC_SHOP=Handla kontakt -# DemandReasonTypeSRC_WOM=Word of mouth -# DemandReasonTypeSRC_PARTNER=Partner -# DemandReasonTypeSRC_EMPLOYEE=Employee -# DemandReasonTypeSRC_SPONSORING=Sponsorship - +DemandReasonTypeSRC_WOM=Word of mouth +DemandReasonTypeSRC_PARTNER=Partner +DemandReasonTypeSRC_EMPLOYEE=Anställd +DemandReasonTypeSRC_SPONSORING=Sponsor #### Paper formats #### -# PaperFormatEU4A0=Format 4A0 -# PaperFormatEU2A0=Format 2A0 -# PaperFormatEUA0=Format A0 -# PaperFormatEUA1=Format A1 -# PaperFormatEUA2=Format A2 -# PaperFormatEUA3=Format A3 -# PaperFormatEUA4=Format A4 -# PaperFormatEUA5=Format A5 -# PaperFormatEUA6=Format A6 -# PaperFormatUSLETTER=Format Letter US -# PaperFormatUSLEGAL=Format Legal US -# PaperFormatUSEXECUTIVE=Format Executive US -# PaperFormatUSLEDGER=Format Ledger/Tabloid -# PaperFormatCAP1=Format P1 Canada -# PaperFormatCAP2=Format P2 Canada -# PaperFormatCAP3=Format P3 Canada -# PaperFormatCAP4=Format P4 Canada -# PaperFormatCAP5=Format P5 Canada -# PaperFormatCAP6=Format P6 Canada +PaperFormatEU4A0=Format 4A0 +PaperFormatEU2A0=Format 2A0 +PaperFormatEUA0=Format A0 +PaperFormatEUA1=Format A1 +PaperFormatEUA2=Format A2 +PaperFormatEUA3=Format A3 +PaperFormatEUA4=Format A4 +PaperFormatEUA5=Format A5 +PaperFormatEUA6=A6-format +PaperFormatUSLETTER=Format Letter US +PaperFormatUSLEGAL=Format Legal US +PaperFormatUSEXECUTIVE=Format Executive US +PaperFormatUSLEDGER=Formatet Ledger / Tabloid +PaperFormatCAP1=Format P1 Kanada +PaperFormatCAP2=Format P2 Kanada +PaperFormatCAP3=Format P3 Kanada +PaperFormatCAP4=Format P4 Kanada +PaperFormatCAP5=Format P5 Kanada +PaperFormatCAP6=Format P6 Kanada diff --git a/htdocs/langs/sv_SE/donations.lang b/htdocs/langs/sv_SE/donations.lang index dbce6c624028a0007b13a94da66250c4511d62d1..de829e62d03a3d0f6f01990c47ef8397f671a762 100644 --- a/htdocs/langs/sv_SE/donations.lang +++ b/htdocs/langs/sv_SE/donations.lang @@ -4,9 +4,9 @@ Donations=Donationer DonationRef=Donation ref. Donor=Givare Donors=Givare -AddDonation=Lägg till en donation +AddDonation=Skapa en donation NewDonation=Ny donation -ShowDonation=Show donation +ShowDonation=Visa donation DonationPromise=Gift löfte PromisesNotValid=Inte validerade löften PromisesValid=Validerad löften @@ -22,12 +22,12 @@ DonationStatusPromiseNotValidatedShort=Förslag DonationStatusPromiseValidatedShort=Validerad DonationStatusPaidShort=Mottagna ValidPromess=Validate löfte -DonationReceipt=Donation receipt +DonationReceipt=Donation kvitto BuildDonationReceipt=Bygg kvitto DonationsModels=Dokument modeller för donation kvitton LastModifiedDonations=Sista %s modifierad donationer SearchADonation=Sök en donation -DonationRecipient=Donation recipient -ThankYou=Thank You -IConfirmDonationReception=The recipient declare reception, as a donation, of the following amount -MinimumAmount=Minimum amount is %s +DonationRecipient=Donation mottagaren +ThankYou=Tack +IConfirmDonationReception=Mottagaren förklarar mottagning, som en donation, av följande belopp +MinimumAmount=Minsta belopp är% s diff --git a/htdocs/langs/sv_SE/ecm.lang b/htdocs/langs/sv_SE/ecm.lang index 5b61533edd0589bd5a6ec0b4253927c4f1561f57..7010cddbf8da63104cf838bda150811782c2053e 100644 --- a/htdocs/langs/sv_SE/ecm.lang +++ b/htdocs/langs/sv_SE/ecm.lang @@ -23,10 +23,10 @@ ECMNewDocument=Nytt dokument ECMCreationDate=Datum för skapande ECMNbOfFilesInDir=Antalet filer i katalogen ECMNbOfSubDir=Antal underkataloger -# ECMNbOfFilesInSubDir=Number of files in sub-directories +ECMNbOfFilesInSubDir=Antalet filer i underkataloger ECMCreationUser=Creator -# ECMArea=EDM area -# ECMAreaDesc=The EDM (Electronic Document Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. +ECMArea=EDM område +ECMAreaDesc=EDM (Electronic Document Management) området kan du spara, dela och snabbt söka alla typer av dokument i Dolibarr. ECMAreaDesc2=* Automatisk kataloger fylls automatiskt när man lägger till dokument från kort av ett element. <br> * Manuell kataloger kan användas för att spara dokument inte är knutna till ett visst element. ECMSectionWasRemoved=Nummer <b>%s</b> har tagits bort. ECMDocumentsSection=Dokument om katalogen @@ -35,14 +35,14 @@ ECMSearchByEntity=Sök på objektet ECMSectionOfDocuments=Register över handlingar ECMTypeManual=Manuell ECMTypeAuto=Automatisk -# ECMDocsBySocialContributions=Documents linked to social contributions +ECMDocsBySocialContributions=Handlingar som är kopplade till sociala avgifter ECMDocsByThirdParties=Dokument med koppling till tredje part ECMDocsByProposals=Dokument med koppling till förslagen ECMDocsByOrders=Dokument med koppling till kunderna order ECMDocsByContracts=Handlingar som är kopplade till kontrakt ECMDocsByInvoices=Dokument med koppling till kunderna fakturor ECMDocsByProducts=Dokument med koppling till produkter -# ECMDocsByProjects=Documents linked to projects +ECMDocsByProjects=Handlingar som är kopplade till projekt ECMNoDirectoryYet=Ingen katalog skapas ShowECMSection=Visa katalog DeleteSection=Ta bort katalog @@ -51,5 +51,5 @@ ECMDirectoryForFiles=Relativ katalog för filer CannotRemoveDirectoryContainsFiles=Flyttat inte möjligt eftersom det innehåller några filer ECMFileManager=Filhanteraren ECMSelectASection=Välj en katalog på vänster träd ... -# DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Refresh" button first to synchronize disk and database to get content of this directory. +DirNotSynchronizedSyncFirst=Denna katalog verkar skapas eller ändras utanför ECM-modulen. Du måste klicka på "Uppdatera" knappen först att synkronisera disk och databas för att få innehållet i den här katalogen. diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang index bac137d98a17912af84b217c0c59c6f2860ed932..230f6f748892a7981d32b41a46e383358edc860b 100644 --- a/htdocs/langs/sv_SE/errors.lang +++ b/htdocs/langs/sv_SE/errors.lang @@ -1,11 +1,11 @@ # Dolibarr language file - Source file is en_US - errors # No errors -NoErrorCommitIsDone=No error, we commit +NoErrorCommitIsDone=Inget fel # Errors Error=Fel Errors=Fel -ErrorButCommitIsDone=Errors found but we validate despite this +ErrorButCommitIsDone=Fel hittades men vi validera trots detta ErrorBadEMail=EMail %s är fel ErrorBadUrl=Url %s är fel ErrorLoginAlreadyExists=Logga %s finns redan. @@ -23,23 +23,23 @@ ErrorThisContactIsAlreadyDefinedAsThisType=Denna kontakt redan har definierats s ErrorCashAccountAcceptsOnlyCashMoney=Detta bankkonto är en kontant-konto, så det tar emot betalningar av typ kontanter endast. ErrorFromToAccountsMustDiffers=Källa och mål bankkonton måste vara olika. ErrorBadThirdPartyName=Felaktigt värde för tredje part namn -ErrorProdIdIsMandatory=The %s is mandatory +ErrorProdIdIsMandatory=%s är obligatoriskt ErrorBadCustomerCodeSyntax=Dålig syntax för kundkod -ErrorBadBarCodeSyntax=Bad syntax for bar code +ErrorBadBarCodeSyntax=Dålig syntax för streckkod ErrorCustomerCodeRequired=Kunden som erfordras -ErrorBarCodeRequired=Bar code required +ErrorBarCodeRequired=Streckkod krävs ErrorCustomerCodeAlreadyUsed=Kund-kod som används redan -ErrorBarCodeAlreadyUsed=Bar code already used +ErrorBarCodeAlreadyUsed=Streckkod som redan används ErrorPrefixRequired=Prefix krävs ErrorUrlNotValid=Webbplatsen adressen är felaktig ErrorBadSupplierCodeSyntax=Bad syntax för leverantör kod ErrorSupplierCodeRequired=Leverantör som erfordras ErrorSupplierCodeAlreadyUsed=Leverantör kod som används redan -ErrorBadParameters=Bad parametrar +ErrorBadParameters=Dåliga parametrar ErrorBadValueForParameter=Fel värde "%s" för parameter oriktiga "%s kallad konventionen -ErrorBadImageFormat=Bildfil har inte ett format som stöds +ErrorBadImageFormat=Bildfilen har inte ett format som stöds (Din PHP stöder inte funktioner för att konvertera bilder av det här formatet) ErrorBadDateFormat=Värde "%s" har fel datumformat -ErrorWrongDate=Date is not correct! +ErrorWrongDate=Datum är inte korrekt! ErrorFailedToWriteInDir=Misslyckades med att skriva i katalogen %s ErrorFoundBadEmailInFile=Hittade felaktig e-syntax för %s rader i filen (t.ex. linje %s med email = %s) ErrorUserCannotBeDelete=Användaren kan inte tas bort. Får den hör samman på Dolibarr enheter. @@ -60,21 +60,21 @@ ErrorUploadBlockedByAddon=Ladda upp blockeras av en PHP / Apache plugin. ErrorFileSizeTooLarge=Filen är för stor. ErrorSizeTooLongForIntType=Storlek för lång för int typ (%s siffror max) ErrorSizeTooLongForVarcharType=Storlek för lång för sträng typ (%s tecken max) -ErrorNoValueForSelectType=Please fill value for select list -ErrorNoValueForCheckBoxType=Please fill value for checkbox list -ErrorNoValueForRadioType=Please fill value for radio list -ErrorBadFormatValueList=The list value cannot have more than one come : <u>%s</u>, but need at least one: llave,valores +ErrorNoValueForSelectType=Vänligen fyll i värde för utvald lista +ErrorNoValueForCheckBoxType=Vänligen fyll i värde för krysslista +ErrorNoValueForRadioType=Vänligen fyll i värde för radiolista +ErrorBadFormatValueList=Listans värd kan inte ha mer än ett komma: <u>%s</u>, men behöver åtminstone en: Llave, valores ErrorFieldCanNotContainSpecialCharacters=Fält <b>%s</b> inte innehåller specialtecken. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contains special characters, nor upper case characters. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Fältet <b>%s</b> får inte innehåller specialtecken eller versaler. ErrorNoAccountancyModuleLoaded=Ingen bokföring modul aktiverad -ErrorExportDuplicateProfil=This profile name already exists for this export set. +ErrorExportDuplicateProfil=Detta profilnamn finns redan för denna export. ErrorLDAPSetupNotComplete=Dolibarr-LDAP matchning inte är fullständig. ErrorLDAPMakeManualTest=A. LDIF filen har genererats i katalogen %s. Försök att läsa in den manuellt från kommandoraden för att få mer information om fel. ErrorCantSaveADoneUserWithZeroPercentage=Kan inte spara en åtgärd med "inte Statut startade" om fältet "görs av" är också fylld. ErrorRefAlreadyExists=Ref används för att skapa finns redan. ErrorPleaseTypeBankTransactionReportName=Skriv namn bank kvitto där transaktionen rapporteras (Format ÅÅÅÅMM eller ÅÅÅÅMMDD) ErrorRecordHasChildren=Misslyckades med att radera poster eftersom det har några barns. -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object. +ErrorRecordIsUsedCantDelete=Kan inte ta bort posten. Den används redan eller ingå i annat föremål. ErrorModuleRequireJavascript=Javascript måste inte avaktiveras att ha denna funktion fungerar. Aktivera / inaktivera Javascript, gå till menyn Hem-> Inställningar-> Display. ErrorPasswordsMustMatch=Båda skrivit lösenord måste matcha varandra ErrorContactEMail=Ett tekniskt fel uppstod. Vänligen kontakta administratören att följa <b>e-%s</b> en ge <b>%s</b> felkod i ditt meddelande, eller ännu bättre genom att lägga till en skärm kopia av denna sida. @@ -114,32 +114,33 @@ ErrorLoginDoesNotExists=Användaren med inloggning <b>%s</b> kunde inte hittas. ErrorLoginHasNoEmail=Denna användare har inga e-postadress. Process avbruten. ErrorBadValueForCode=Dåligt värde typer för kod. Försök igen med ett nytt värde ... ErrorBothFieldCantBeNegative=Fält %s och %s kan inte vara både negativt +ErrorQtyForCustomerInvoiceCantBeNegative=Kvantitet för linje i kundfakturor kan inte vara negativt ErrorWebServerUserHasNotPermission=Användarkonto <b>%s</b> användas för att exekvera webbserver har ingen behörighet för den ErrorNoActivatedBarcode=Ingen streckkod typ aktiveras -ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP -ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package -ErrorFileRequired=It takes a package Dolibarr file -ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal -ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base -ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base -ErrorNewValueCantMatchOldValue=New value can't be equal to old one -ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process. -ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check Mysql server is running (in most cases, you can launch it from command line with 'sudo /etc/init.d/mysql start'). -ErrorFailedToAddContact=Failed to add contact -ErrorDateMustBeBeforeToday=The date can not be greater than today -ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode. -ErrorPHPNeedModule=Error, your PHP must have module <b>%s</b> installed to use this feature. -ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s -ErrorWarehouseMustDiffers=Source and target warehouses must differs -ErrorBadFormat=Bad format! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any thirdparty. Link member to an existing third party or create a new thirdparty before creating subscription with invoice. -ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused. -ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank transaction that was conciliated -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed +ErrUnzipFails=Det gick inte att packa upp %s med ZipArchive +ErrNoZipEngine=Ingen motor att packa upp %s fil i denna PHP +ErrorFileMustBeADolibarrPackage=Filen %s måste vara ett Dolibarr zip-paket +ErrorFileRequired=Det tar ett paket Dolibarr fil +ErrorPhpCurlNotInstalled=PHP CURL är inte installerat, detta är viktigt för att prata med Paypal +ErrorFailedToAddToMailmanList=Det gick inte att lägga till post %s till Mailman listan %s eller SPIP bas +ErrorFailedToRemoveToMailmanList=Det gick inte att ta bort posten %s till Mailman listan %s eller SPIP bas +ErrorNewValueCantMatchOldValue=Nytt värde kan inte vara lika med gamla +ErrorFailedToValidatePasswordReset=Det gick inte att REINIT lösenord. Kan vara reinit var redan gjort (den här länken kan bara användas en gång). Om inte, försök att starta om reinit processen. +ErrorToConnectToMysqlCheckInstance=Anslut till databasen misslyckas. Kolla Mysql servern är igång (i de flesta fall kan du starta det från kommandoraden med "sudo /etc/init.d/mysql start"). +ErrorFailedToAddContact=Det gick inte att lägga till kontakt +ErrorDateMustBeBeforeToday=Datumet kan inte vara större än i dag +ErrorPaymentModeDefinedToWithoutSetup=Ett betalningsläge var inställt för att skriva %s, men installationen av modulens faktura fördes inte att definiera informationen som ska visas för den här betalningsläget. +ErrorPHPNeedModule=Fel, din PHP måste ha modul <b>%s</b> installerad för att använda den här funktionen. +ErrorOpenIDSetupNotComplete=Du inställning för Dolibarr konfigurationsfil möjliggör OpenID autentisering, men webbadressen OpenID tjänsten definieras inte i ständig %s +ErrorWarehouseMustDiffers=Källa och mål lager måste skiljer +ErrorBadFormat=Dåligt format! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fel, denna medlem ännu kopplad till någon tredjeparts. Länka medlem i en befintlig tredje part eller skapa en ny tredjeparts innan du skapar abonnemang med faktura. +ErrorThereIsSomeDeliveries=Fel, det finns några leveranser kopplade till denna sändning. Radering vägrade. +ErrorCantDeletePaymentReconciliated=Kan inte ta bort en betalning som hade genererat en banktransaktion som conciliated +ErrorCantDeletePaymentSharedWithPayedInvoice=Kan inte ta bort en betalning som delas av minst en faktura med status betalt # Warnings -WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined +WarningMandatorySetupNotComplete=Obligatoriska inställningsparametrarna har ännu inte definierat WarningSafeModeOnCheckExecDir=Varning, PHP alternativ <b>safe_mode</b> är på så kommando måste stoppas in i en katalog som deklarerats av php parameter <b>safe_mode_exec_dir.</b> WarningAllowUrlFopenMustBeOn=Parameter <b>allow_url_fopenär</b> måste vara <b>aktiverat</b> i filer <b>php.ini</b> för att ha den här modulen att fungera. Du måste ändra denna fil manuellt. WarningBuildScriptNotRunned=Script <b>%s</b> ännu inte sprang för att bygga grafik eller det inte finns några data att visa. @@ -148,12 +149,12 @@ WarningPassIsEmpty=Varning, är databasen lösenord tom. Detta är ett säkerhet WarningConfFileMustBeReadOnly=Varning, konfigurationsfilen <b>(htdocs / conf / conf.php)</b> kan din skrivas över av den webbserver. Detta är ett allvarligt säkerhetshål. Ändra behörigheter på fil för att vara i skrivskyddat läge för operativsystem som användare som används av webbservern. Om du använder Windows och FAT format för din disk, måste du veta att det här filsystemet inte är möjligt att lägga till behörigheter för filen, så kan inte vara helt säker. WarningsOnXLines=Varningar om <b>%s</b> källrader WarningNoDocumentModelActivated=Ingen modell för handling generation, har aktiverats. En modell kommer att valde som standard tills du kontrollera din modul konfiguration. -WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole. +WarningLockFileDoesNotExists=Varning, när installationen är klar måste du inaktivera installera / migrera verktyg genom att lägga till en fil <b>install.lock</b> i <b>katalogen %s.</b> Saknas denna fil så är det ett säkerhetshål. WarningUntilDirRemoved=Alla säkerhetsvarningar (synlig av admin-användare) förblir aktiv så länge sårbarheten är närvarande (eller att konstant MAIN_REMOVE_INSTALL_WARNING läggs i Start-> Other Setup). -WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. -WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. -WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card). -WarningNotRelevant=Irrelevant operation for this dataset -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers. -WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s. -WarningTooManyDataPleaseUseMoreFilters=Too many data. Please use more filters +WarningCloseAlways=Varning, är stängning göras även om beloppet varierar mellan källa och mål element. Aktivera den här funktionen med försiktighet. +WarningUsingThisBoxSlowDown=Varning, använder denna ruta bromsa allvarligt alla sidor som visar lådan. +WarningClickToDialUserSetupNotComplete=Inställning av ClickToDial informationen för ditt användarkonto är inte fullständiga (se fliken ClickToDial på din användarkortet). +WarningNotRelevant=Irrelevant operation för denna datamängd +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature inaktiveras när display inställning är optimerad för blinda personer eller textbaserade webbläsare. +WarningPaymentDateLowerThanInvoiceDate=Betalningsdag (%s) är tidigare än fakturadatum (%s) för faktura %s. +WarningTooManyDataPleaseUseMoreFilters=För många uppgifter. Använd flera filter diff --git a/htdocs/langs/sv_SE/externalsite.lang b/htdocs/langs/sv_SE/externalsite.lang index 005efed679664663925ab1e7a197d90c9dbcf3e6..9c74706c846789eef2f4b51e62b804034896ed8f 100644 --- a/htdocs/langs/sv_SE/externalsite.lang +++ b/htdocs/langs/sv_SE/externalsite.lang @@ -1,4 +1,4 @@ # Dolibarr language file - Source file is en_US - externalsite ExternalSiteSetup=Setup länk till extern webbplats ExternalSiteURL=Extern webbplats URL -# ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. +ExternalSiteModuleNotComplete=Modul ExternalSite var inte korrekt konfigurerad. diff --git a/htdocs/langs/sv_SE/ftp.lang b/htdocs/langs/sv_SE/ftp.lang index 6699a7be8ef64f8c62e71ff57bc5ba9cc5a16142..17a8cfaf43601594ff8e964b72da02678be2e057 100644 --- a/htdocs/langs/sv_SE/ftp.lang +++ b/htdocs/langs/sv_SE/ftp.lang @@ -9,4 +9,4 @@ FailedToConnectToFTPServer=Misslyckades att ansluta till FTP-server (%s server p FailedToConnectToFTPServerWithCredentials=Det gick inte att logga in på FTP-servern med definierade login / lösenord FTPFailedToRemoveFile=Misslyckades med att ta bort fil <b>%s.</b> FTPFailedToRemoveDir=Misslyckades med att ta bort katalogen <b>%s</b> (Kontrollera behörigheter och att katalogen är tom). -# FTPPassiveMode=Passive mode +FTPPassiveMode=Passivt läge diff --git a/htdocs/langs/sv_SE/help.lang b/htdocs/langs/sv_SE/help.lang index 0c590f1337eed396b7f42d42a90d7142f5e1688c..be926acaa146e7be6103dc52091cef6b7591b28e 100644 --- a/htdocs/langs/sv_SE/help.lang +++ b/htdocs/langs/sv_SE/help.lang @@ -24,5 +24,5 @@ BackToHelpCenter=Annars, här klickar du gå <a href="%s">tillbaka för att hjä LinkToGoldMember=Du kan ringa en av de tränare förvalda genom Dolibarr för ditt språk (%s) genom att klicka på hans Widget (status och högsta pris uppdateras automatiskt): PossibleLanguages=Språk som stöds MakeADonation=Hjälp Dolibarr projekt, göra en donation -# SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation -# SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b> +SubscribeToFoundation=Hjälp Dolibarr projektet, prenumerera på stiftelsen +SeeOfficalSupport=För officiell Dolibarr support på ditt språk: <br><b><a href="%s" target="_blank">%s</a></b> diff --git a/htdocs/langs/sv_SE/holiday.lang b/htdocs/langs/sv_SE/holiday.lang index fb2f003cfcbc5ef4a47962931d6aee1f409b577d..b28cbbb5fbbd8b30eb8d0aee9d42c0eb649b5937 100644 --- a/htdocs/langs/sv_SE/holiday.lang +++ b/htdocs/langs/sv_SE/holiday.lang @@ -1,149 +1,149 @@ # Dolibarr language file - Source file is en_US - holiday HRM=HRM -Holidays=Leaves -CPTitreMenu=Leaves -MenuReportMonth=Monthly statement -MenuAddCP=Make a leave request -NotActiveModCP=You must enable the module Leaves to view this page. -NotConfigModCP=You must configure the module Leaves 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 any available day. -AddCP=Make a leave request -Employe=Employee +Holidays=Löv +CPTitreMenu=Löv +MenuReportMonth=Månatlig rapport +MenuAddCP=Gör en förfrågan ledighet +NotActiveModCP=Du måste aktivera modulen Löv att se denna sida. +NotConfigModCP=Du måste konfigurera modulen Lämnar för att se den här sidan. För att göra detta, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">klicka här</a> </ a> <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">.</a> +NoCPforUser=Du har inte någon tillgänglig dag. +AddCP=Gör en förfrågan ledighet +Employe=Anställd DateDebCP=Startdatum DateFinCP=Slutdatum DateCreateCP=Datum för skapande DraftCP=Utkast -ToReviewCP=Awaiting approval +ToReviewCP=Väntar på godkännande ApprovedCP=Godkänd CancelCP=Annullerad RefuseCP=Refused ValidatorCP=Approbator -ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ListeCP=Lista över blad +ReviewedByCP=Kommer att granskas av DescCP=Beskrivning -SendRequestCP=Create leave request -DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them. -MenuConfCP=Edit balance of leaves -UpdateAllCP=Update the leaves -SoldeCPUser=Leaves 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 leave request does not exist. -ReturnCP=Return to previous page -ErrorUserViewCP=You are not authorized to read this leave request. -InfosCP=Information of the leave request +SendRequestCP=Skapa permission begäran +DelayToRequestCP=Lämna begäran måste göras <b>minst %s dag (ar) </b> före dem. +MenuConfCP=Redigera balans blad +UpdateAllCP=Uppdatera bladen +SoldeCPUser=Lämnar balans <b>är %s</b> dagar. +ErrorEndDateCP=Du måste välja ett slutdatum senare än startdatum. +ErrorSQLCreateCP=Ett SQL-fel uppstod under skapandet: +ErrorIDFicheCP=Ett fel har uppstått, inte existerar begäran ledighet. +ReturnCP=Tillbaka till föregående sida +ErrorUserViewCP=Du har inte behörighet att läsa denna ledighet begäran. +InfosCP=Information om begäran ledigheten InfosWorkflowCP=Information Workflow -RequestByCP=Requested by -TitreRequestCP=Leave request -NbUseDaysCP=Number of days of vacation consumed +RequestByCP=Begäran från +TitreRequestCP=Lämna begäran +NbUseDaysCP=Antal dagars semester konsumeras EditCP=Redigera DeleteCP=Ta bort ActionValidCP=Validate -ActionRefuseCP=Refuse +ActionRefuseCP=Vägra ActionCancelCP=Avbryt StatutCP=Status -SendToValidationCP=Send to validation -TitleDeleteCP=Delete the leave request -ConfirmDeleteCP=Confirm the deletion of this leave request? -ErrorCantDeleteCP=Error you don't have the right to delete this leave request. -CantCreateCP=You don't have the right to make leave requests. -InvalidValidatorCP=You must choose an approbator to your leave request. +SendToValidationCP=Skicka till validering +TitleDeleteCP=Radera begäran ledighet +ConfirmDeleteCP=Bekräfta raderingen av denna ledighet förfrågan? +ErrorCantDeleteCP=Fel att du inte har rätt att ta bort denna ledighet begäran. +CantCreateCP=Du har inte rätt att göra ledighet förfrågningar. +InvalidValidatorCP=Du måste välja en approbator till din ledighet förfrågan. UpdateButtonCP=Uppdatera -CantUpdate=You cannot update this leave request. -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 leave request? -DateValidCP=Date approved -TitleToValidCP=Send leave request -ConfirmToValidCP=Are you sure you want to send the leave request? -TitleRefuseCP=Refuse the request holidays -ConfirmRefuseCP=Are you sure you want to refuse the leave request? -NoMotifRefuseCP=You must choose a reason for refusing the request. -TitleCancelCP=Cancel the request holidays -ConfirmCancelCP=Are you sure you want to cancel the leave request? -DetailRefusCP=Reason for refusal -DateRefusCP=Date of refusal -DateCancelCP=Date of cancellation -DefineEventUserCP=Assign an exceptional leave for a user -addEventToUserCP=Assign leave +CantUpdate=Du kan inte uppdatera denna ledighet begäran. +NoDateDebut=Du måste välja ett startdatum. +NoDateFin=Du måste välja ett slutdatum. +ErrorDureeCP=Din ledighet framställningen inte innehåller arbetsdag. +TitleValidCP=Godkänna begäran ledighet +ConfirmValidCP=Är du säker på att du vill godkänna begäran ledighet? +DateValidCP=Datum godkänd +TitleToValidCP=Skicka permission begäran +ConfirmToValidCP=Är du säker på att du vill skicka en begäran ledighet? +TitleRefuseCP=Avslå begäran ledighet +ConfirmRefuseCP=Är du säker på att du vill avslå begäran ledighet? +NoMotifRefuseCP=Du måste välja ett skäl för att vägra begäran. +TitleCancelCP=Avbryta begäran ledighet +ConfirmCancelCP=Är du säker på att du vill avbryta din semester? +DetailRefusCP=Orsak till avslag +DateRefusCP=Datum för avslag +DateCancelCP=Datum för annullering +DefineEventUserCP=Tilldela en exceptionell ledighet för en användare +addEventToUserCP=Tilldela ledighet MotifCP=Reason UserCP=Användare -ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. -AddEventToUserOkCP=The addition of the exceptional leave has been completed. -MenuLogCP=View logs of leave requests -LogCP=Log of updates of available vacation days -ActionByCP=Performed by -UserUpdateCP=For the user -PrevSoldeCP=Previous Balance +ErrorAddEventToUserCP=Ett fel uppstod när den exceptionella ledighet. +AddEventToUserOkCP=Tillägget av den exceptionella ledigheten har slutförts. +MenuLogCP=Visa loggar för ledighet förfrågningar +LogCP=Log av uppdateringar av tillgängliga semesterdagar +ActionByCP=Framförd av +UserUpdateCP=För användaren +PrevSoldeCP=Föregående Balance NewSoldeCP=New Balance -alreadyCPexist=A request for holidays has already been done on this period. +alreadyCPexist=En begäran ledigheten har redan gjorts på denna period. UserName=Namn -Employee=Employee -FirstDayOfHoliday=First day of vacation -LastDayOfHoliday=Last day of vacation -HolidaysMonthlyUpdate=Monthly update -ManualUpdate=Manual update -HolidaysCancelation=Leave request cancelation +Employee=Anställd +FirstDayOfHoliday=Första dagen på semestern +LastDayOfHoliday=Sista dagen på semestern +HolidaysMonthlyUpdate=Månads uppdatering +ManualUpdate=Manuell uppdatering +HolidaysCancelation=Lämna begäran Spärr ## Configuration du Module ## -ConfCP=Configuration of holidays module -DescOptionCP=Description of the option +ConfCP=Konfiguration av ledighet begäran modul +DescOptionCP=Beskrivning av alternativ ValueOptionCP=Värde -GroupToValidateCP=Group with the ability to approve vacation -ConfirmConfigCP=Validate the configuration -LastUpdateCP=Last automatic update of vacation -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 leave request exceed delay -AlertValidorSoldeCP=Prevent the approbator if the leave request exceed the balance -nbUserCP=Number of users supported in the module Leaves -nbHolidayDeductedCP=Number of holidays to be deducted per day of vacation taken -nbHolidayEveryMonthCP=Number of vacation days added every month -Module27130Name= Management of leave requests -Module27130Desc= Management of leave requests -TitleOptionMainCP=Main settings of Leave request -TitleOptionEventCP=Settings of leave requets for events +GroupToValidateCP=Grupp med möjlighet att godkänna ledighet förfrågningar +ConfirmConfigCP=Bekräfta konfigurationen +LastUpdateCP=Senast automatisk uppdatering av löv fördelning +UpdateConfCPOK=Uppdaterats. +ErrorUpdateConfCP=Ett fel uppstod under uppdateringen, vänligen försök igen. +AddCPforUsers=Vänligen lägg till balansen i bladen fördelning av användare genom <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">att klicka här</a> . +DelayForSubmitCP=Sista dag för att göra en ledighet förfrågningar +AlertapprobatortorDelayCP=Förhindra approbator om begäran ledigheten inte matchar den tidsfrist +AlertValidatorDelayCP=Préevent den approbator om begäran ledigheten överskrider fördröjning +AlertValidorSoldeCP=Förhindra approbator om begäran ledigheten överstiga balansen +nbUserCP=Antal användare stöds i modul Löv +nbHolidayDeductedCP=Antal semesterdagar som skall dras av per dag semester tas +nbHolidayEveryMonthCP=Antal semesterdagar till varje månad +Module27130Name= Hantering av ledighet förfrågningar +Module27130Desc= Hantering av ledighet förfrågningar +TitleOptionMainCP=Huvudinställningar ledighet begäran +TitleOptionEventCP=Inställningar av ledighets begäran därom för evenemang ValidEventCP=Validate -UpdateEventCP=Update events +UpdateEventCP=Uppdateringshändelser CreateEventCP=Skapa -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=Händelsenamn +OkCreateEventCP=Tillsatsen av händelsen gick bra. +ErrorCreateEventCP=Fel skapa händelsen. +UpdateEventOkCP=Uppdateringen av händelsen gick bra. +ErrorUpdateEventCP=Fel vid uppdatering av händelsen. +DeleteEventCP=Radera Händelse +DeleteEventOkCP=Händelsen har tagits bort. +ErrorDeleteEventCP=Fel vid borttagning av händelsen. +TitleDeleteEventCP=Radera ett särskilt tillstånd +TitleCreateEventCP=Skapa ett särskilt tillstånd +TitleUpdateEventCP=Redigera eller ta bort ett särskilt tillstånd DeleteEventOptionCP=Ta bort UpdateEventOptionCP=Uppdatera -ErrorMailNotSend=An error occurred while sending email: -NoCPforMonth=No leave this month. -nbJours=Number days -TitleAdminCP=Configuration of Leaves +ErrorMailNotSend=Ett fel uppstod när du skickar e-post: +NoCPforMonth=Ingen lämnar denna månad. +nbJours=Antal dagar +TitleAdminCP=Konfiguration av Leaves #Messages -Hello=Hello -HolidaysToValidate=Validate leave requests -HolidaysToValidateBody=Below is a leave request to validate -HolidaysToValidateDelay=This leave request will take place within a period of less than %s days. -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days. -HolidaysValidated=Validated leave requests -HolidaysValidatedBody=Your leave request for %s to %s has been validated. -HolidaysRefused=Request denied -HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason : -HolidaysCanceled=Canceled leaved request -HolidaysCanceledBody=Your leave request for %s to %s has been canceled. -Permission20000=Read you own leave requests -Permission20001=Create/modify your leave requests -Permission20002=Create/modify leave requests for everybody -Permission20003=Delete leave requests -Permission20004=Setup users available vacation days -Permission20005=Review log of modified leave requests -Permission20006=Read leaves monthly report +Hello=Hallå +HolidaysToValidate=Validera ledighets förfrågningar +HolidaysToValidateBody=Nedan finns en ledighet begäran om att validera +HolidaysToValidateDelay=Denna ledighet begäran kommer att ske inom en period på mindre än %s dagar. +HolidaysToValidateAlertSolde=Användaren som gjort detta lämnar de krävs inte har tillräckligt med tillgängliga dagar. +HolidaysValidated=Validerade ledighets förfrågningar +HolidaysValidatedBody=Din ledighets begäran om %s till %s har validerats. +HolidaysRefused=Begäran nekades +HolidaysRefusedBody=Din ledighet begäran om %s till %s har nekats av följande skäl: +HolidaysCanceled=Annulleras leaved begäran +HolidaysCanceledBody=Din ledighet begäran om %s till %s har avbrutits. +Permission20000=Läs du äger ledighet förfrågningar +Permission20001=Skapa / ändra dina ledighet förfrågningar +Permission20002=Skapa / ändra ledighetsansökningar för alla +Permission20003=Radera ledighets förfrågningar +Permission20004=Setup användare tillgängliga semesterdagar +Permission20005=Omdöme logg över modifierade ledighets förfrågningar +Permission20006=Läs lämnar månadsrapport diff --git a/htdocs/langs/sv_SE/languages.lang b/htdocs/langs/sv_SE/languages.lang index 40613aa97b2443342bfe1495ca04505129f77853..1c0bdd80aa2d6de3c98230c0aca1f7ca447c0c51 100644 --- a/htdocs/langs/sv_SE/languages.lang +++ b/htdocs/langs/sv_SE/languages.lang @@ -10,7 +10,7 @@ Language_da_DA=Danska Language_da_DK=Danskt Language_de_DE=Tyska Language_de_AT=Tyska (Österrike) -Language_de_CH=German (Switzerland) +Language_de_CH=Tyska (Schweiz) Language_el_GR=Grekiska Language_en_AU=Engelska (Australien) Language_en_GB=Engelska (Storbritannien) @@ -20,7 +20,7 @@ Language_en_SA=Engelska (Saudiarabien) Language_en_US=Engelska (USA) Language_en_ZA=Engelska (Sydafrika) Language_es_ES=Spanska -Language_es_DO=Spanish (Dominican Republic) +Language_es_DO=Spanska (Dominikanska republiken) Language_es_AR=Spanska (Argentina) Language_es_CL=Spanska (Chile) Language_es_HN=Spanska (Honduras) @@ -40,7 +40,7 @@ Language_fr_NC=Franska (Nya Kaledonien) Language_he_IL=Hebreiska Language_hr_HR=Kroatiska Language_hu_HU=Ungerska -Language_id_ID=Indonesian +Language_id_ID=Indonesiska Language_is_IS=Isländska Language_it_IT=Italienska Language_ja_JP=Japanska diff --git a/htdocs/langs/sv_SE/link.lang b/htdocs/langs/sv_SE/link.lang index 8b1efb75ef372daf24c660017c22d0cda43189b8..8601aba8abf99a574ec63ff382c87cd1a9268708 100644 --- a/htdocs/langs/sv_SE/link.lang +++ b/htdocs/langs/sv_SE/link.lang @@ -1,8 +1,8 @@ -LinkANewFile=Link a new file/document -LinkedFiles=Linked files and documents -NoLinkFound=No registered links -LinkComplete=The file has been linked successfully -ErrorFileNotLinked=The file could not be linked -LinkRemoved=The link %s has been removed -ErrorFailedToDeleteLink= Failed to remove link '<b>%s</b>' -ErrorFailedToUpdateLink= Failed to update link '<b>%s</b>' +LinkANewFile=Länka en ny fil / dokument +LinkedFiles=Länkade filer och dokument +NoLinkFound=Inga registrerade länkar +LinkComplete=Filen har kopplats framgångsrikt +ErrorFileNotLinked=Filen kunde inte kopplas +LinkRemoved=Länken %s har tagits bort +ErrorFailedToDeleteLink= Det gick inte att ta bort länk '<b>%s</b>' +ErrorFailedToUpdateLink= Det gick inte att uppdatera länken '<b>%s</b>' diff --git a/htdocs/langs/sv_SE/mailmanspip.lang b/htdocs/langs/sv_SE/mailmanspip.lang index 4df2bf08bdec544402c982fa574935c5d9dd6eb4..1568d28175bc11751f7d9fa4d328f44568f14bc9 100644 --- a/htdocs/langs/sv_SE/mailmanspip.lang +++ b/htdocs/langs/sv_SE/mailmanspip.lang @@ -1,27 +1,27 @@ # Dolibarr language file - Source file is en_US - mailmanspip -# MailmanSpipSetup=Mailman and SPIP module Setup -# MailmanTitle=Mailman mailing list system -# TestSubscribe=To test subscription to Mailman lists -# TestUnSubscribe=To test unsubscribe from Mailman lists -# MailmanCreationSuccess=Subscription test was executed succesfully -# MailmanDeletionSuccess=Unsubscription test was executed succesfully -# SynchroMailManEnabled=A Mailman update will be performed -# SynchroSpipEnabled=A Spip update will be performed -# DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password -# DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions -# DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions -# DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) -# SPIPTitle=SPIP Content Management System -# DescADHERENT_SPIP_SERVEUR=SPIP Server -# DescADHERENT_SPIP_DB=SPIP database name -# DescADHERENT_SPIP_USER=SPIP database login -# DescADHERENT_SPIP_PASS=SPIP database password -# AddIntoSpip=Add into SPIP -# AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP? -# AddIntoSpipError=Failed to add the user in SPIP -# DeleteIntoSpip=Remove from SPIP -# DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP? -# DeleteIntoSpipError=Failed to suppress the user from SPIP -# SPIPConnectionFailed=Failed to connect to SPIP -# SuccessToAddToMailmanList=Add of %s to mailman list %s or SPIP database done -# SuccessToRemoveToMailmanList=Removal of %s from mailman list %s or SPIP database done +MailmanSpipSetup=Brevbärare och SPIP modul Setup +MailmanTitle=Mailman sändlista systemet +TestSubscribe=För att testa prenumeration på Mailman listor +TestUnSubscribe=För att testa unsubscribe från Mailman listor +MailmanCreationSuccess=Prenumerations testet utfördes framgångsrikt +MailmanDeletionSuccess=Avbeställning testet utfördes framgångsrikt +SynchroMailManEnabled=En Mailman uppdatering kommer att utföras +SynchroSpipEnabled=En SPIP uppdatering kommer att utföras +DescADHERENT_MAILMAN_ADMINPW=Mailman administratörslösenord +DescADHERENT_MAILMAN_URL=URL för Mailman prenumerationer +DescADHERENT_MAILMAN_UNSUB_URL=URL för Mailman unsubscriptions +DescADHERENT_MAILMAN_LISTS=List (ar) för automatisk inskription av nya medlemmar (separerade med ett kommatecken) +SPIPTitle=SPIP Content Management System +DescADHERENT_SPIP_SERVEUR=SPIP Server +DescADHERENT_SPIP_DB=SPIP databasnamn +DescADHERENT_SPIP_USER=SPIP databas inloggning +DescADHERENT_SPIP_PASS=SPIP databas lösenord +AddIntoSpip=Lägg till SPIP +AddIntoSpipConfirmation=Är du säker på att du vill lägga till denna medlem i SPIP? +AddIntoSpipError=Det gick inte att lägga till användaren i SPIP +DeleteIntoSpip=Ta bort från SPIP +DeleteIntoSpipConfirmation=Är du säker på att du vill ta bort den här medlemmen från SPIP? +DeleteIntoSpipError=Det gick inte att undertrycka användaren från SPIP +SPIPConnectionFailed=Det gick inte att ansluta till SPIP +SuccessToAddToMailmanList=Lägg till %s till mailman listan %s eller SPIP databas gjort +SuccessToRemoveToMailmanList=Borttagning av %s från mailman listan %s eller SPIP databas gjort diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang index 15fde81699e7862bf44f744089e77978537c02f4..968cc1fc3d869ca200bc66dd03b6e87cad1d3e6e 100644 --- a/htdocs/langs/sv_SE/main.lang +++ b/htdocs/langs/sv_SE/main.lang @@ -58,12 +58,12 @@ ErrorCantLoadUserFromDolibarrDatabase=Det gick inte att hitta användare <b>%s</ ErrorNoVATRateDefinedForSellerCountry=Fel, ingen moms har definierats för landet '%s'. ErrorNoSocialContributionForSellerCountry=Fel, inga sociala avgifter har definierats för land '%s'. ErrorFailedToSaveFile=Fel, kunde inte spara filen. -ErrorOnlyPngJpgSupported=Fel, endast .png och .jpg-bild-fil stöds. -ErrorImageFormatNotSupported=Din PHP stöder inte funktioner för att konvertera bilder av detta format. SetDate=Ställ in datum SelectDate=Välj datum SeeAlso=Se även %s BackgroundColorByDefault=Standard bakgrundsfärg +FileNotUploaded=Filen har inte laddats upp +FileUploaded=Filen har laddats upp FileWasNotUploaded=En fil är vald att bifogas, men har ännu inte laddats upp. Klicka på 'Bifoga fil' för detta. NbOfEntries=Antal värden GoToWikiHelpPage=Läs online hjälp (kräver tillgång till Internet) @@ -206,7 +206,7 @@ Limit=Gräns Limits=Gränser DevelopmentTeam=Development Team Logout=Logga ut -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode <b>%s</b> +NoLogoutProcessWithAuthMode=Ingen applikativ koppling funktionen med autentisering läge <b>%s</b> Connection=Anslutning Setup=Setup Alert=Alert @@ -266,6 +266,7 @@ Afternoon=Eftermiddag Quadri=Quadri MonthOfDay=Dagens månad HourShort=H +MinuteShort=mn Rate=Sats UseLocalTax=Inkludera skatt Bytes=Bytes @@ -314,7 +315,7 @@ Total=Summa SubTotal=Delsumma TotalHTShort=Summa (netto) TotalTTCShort=Summa (inkl. moms) -TotalHT=Total (netto efter skatt) +TotalHT=Totalt (netto) TotalHTforthispage=Summa (exkl. skatt) för denna sida TotalTTC=Summa (inkl. moms) TotalTTCToYourCredit=Summa kredit (inkl. moms) @@ -340,6 +341,7 @@ FullList=Fullständig lista Statistics=Statistik OtherStatistics=Övrig statistik Status=Status +Favorite=Favorit ShortInfo=Info Ref=Ref. RefSupplier=Ref. leverantör @@ -356,7 +358,7 @@ ActionNotApplicable=Ej tillämpligt ActionRunningNotStarted=Inte påbörjats ActionRunningShort=Började ActionDoneShort=Färdiga -ActionUncomplete=Uncomplete +ActionUncomplete=Icke klar CompanyFoundation=Företag / stiftelse ContactsForCompany=Kontakter till denna tredje part ContactsAddressesForCompany=Kontakter / adresser för denna tredje part @@ -508,7 +510,7 @@ NbOfCustomers=Antal kunder NbOfLines=Antal rader NbOfObjects=Antal objekt NbOfReferers=Antal hänvisningsadresserna -Referers=Refering objects +Referers=Hänvisnings objekt TotalQuantity=Total kvantitet DateFromTo=Från %s till %s DateFrom=Från %s @@ -541,7 +543,7 @@ Undo=Ångra Redo=Gör om ExpandAll=Expandera alla UndoExpandAll=Ångra expandera -Reason=Reason +Reason=Orsak FeatureNotYetSupported=Funktionen inte stöds ännu CloseWindow=Stäng fönster Question=Fråga @@ -552,16 +554,16 @@ MailSentBy=E-post skickas med TextUsedInTheMessageBody=E-organ SendAcknowledgementByMail=Skicka Ack. via e-post NoEMail=Ingen e-post -NoMobilePhone=No mobile phone +NoMobilePhone=Ingen mobiltelefon Owner=Ägare -DetectedVersion=Upptäckta version +DetectedVersion=Upptäckt version FollowingConstantsWillBeSubstituted=Följande konstanter kommer att ersätta med motsvarande värde. Refresh=Uppdatera BackToList=Tillbaka till listan GoBack=Gå tillbaka CanBeModifiedIfOk=Kan ändras om det är giltigt CanBeModifiedIfKo=Kan ändras om inte giltigt -RecordModifiedSuccessfully=Record ändrades korrekt +RecordModifiedSuccessfully=Post ändrades korrekt RecordsModified=%s poster ändrade AutomaticCode=Automatisk kod NotManaged=Inte lyckats @@ -578,7 +580,7 @@ TotalWoman=Totalt TotalMan=Totalt NeverReceived=Aldrig fick Canceled=Annullerad -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=Du kan ändra värden för denna lista från menyinställning - ordbok Color=Färg Documents=Länkade filer DocumentsNb=Länkade filer (%s) @@ -593,7 +595,7 @@ ThisLimitIsDefinedInSetup=Dolibarr gräns (meny hem-setup-säkerhet): %s Kb, PHP NoFileFound=Inga dokument har sparats i denhär katalogen CurrentUserLanguage=Nuvarande språk CurrentTheme=Nuvarande tema -CurrentMenuManager=Current menu manager +CurrentMenuManager=Nuvarande menyhanterare DisabledModules=Avaktiverade moduler For=För ForCustomer=För kund @@ -607,13 +609,13 @@ Notes=Anteckningar AddNewLine=Lägg till ny rad AddFile=Lägg till fil ListOfFiles=Förteckning över tillgängliga filer -FreeZone=Free entry -FreeLineOfType=Free entry of type +FreeZone=Fritt inlägg +FreeLineOfType=Fritt inlägg typ CloneMainAttributes=Klona objekt med dess viktigaste attribut PDFMerge=PDF-dokument Merge=Sammanfoga PrintContentArea=Visa sidan för att skriva ut huvudinnehållet -MenuManager=Menu manager +MenuManager=Menyhanteraren NoMenu=Ingen undermeny WarningYouAreInMaintenanceMode=Varning, du är i en underhållsmode, så bara login <b>%s</b> får använda tillämpningen för tillfället. CoreErrorTitle=Systemfel @@ -645,6 +647,7 @@ OptionalFieldsSetup=Extra attribut inställning URLPhoto=URL foto / logo SetLinkToThirdParty=Länk till en annan tredje part CreateDraft=Skapa utkast +SetToDraft=Tillbaka till utkast ClickToEdit=Klicka för att redigera ObjectDeleted=Objekt %s raderad ByCountry=Per land @@ -663,7 +666,7 @@ ModulesSystemTools=Modulverktyg Test=Test Element=Element NoPhotoYet=Inga bilder tillgängliga -HomeDashboard=Home summary +HomeDashboard=Hem översikt Deductible=Avdragsgill from=från toward=mot @@ -672,13 +675,13 @@ HelpCopyToClipboard=Använd Ctrl+C för att kopiera till klippbordet SaveUploadedFileWithMask=Spara filen på servern med namnet "<strong>%s</strong>" (annars "%s") OriginFileName=Ursprungligt filnamn SetDemandReason=Ställ in källa -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency +SetBankAccount=Definiera bankkonto +AccountCurrency=Konto valuta ViewPrivateNote=Se noter XMoreLines=%s rader osynliga PublicUrl=Offentlig webbadress -AddBox=Add box - +AddBox=Lägg till låda +SelectElementAndClickRefresh=Välj ett element och klicka på uppdatera # Week day Monday=Måndag Tuesday=Tisdag diff --git a/htdocs/langs/sv_SE/members.lang b/htdocs/langs/sv_SE/members.lang index 63e23311d96412264bf1de59f52d0fea4a2e07db..6110d5aa422abeadadb3ad3d4501c0d820e6eb37 100644 --- a/htdocs/langs/sv_SE/members.lang +++ b/htdocs/langs/sv_SE/members.lang @@ -85,7 +85,7 @@ SubscriptionLateShort=Sent SubscriptionNotReceivedShort=Aldrig fått ListOfSubscriptions=Förteckning över abonnemang SendCardByMail=Sänd kort via e-post -AddMember=Lägg till medlem +AddMember=Skapa medlem NoTypeDefinedGoToSetup=Ingen medlem definierade typer. Gå till Setup - Medlemmar typer NewMemberType=Ny medlemstyp WelcomeEMail=Välkomst e-post @@ -125,7 +125,7 @@ Date=Datum DateAndTime=Datum och tid PublicMemberCard=Medlem offentlig kort MemberNotOrNoMoreExpectedToSubscribe=Medlem som inte eller inte mer förväntas prenumerera -AddSubscription=Lägg till prenumeration +AddSubscription=Skapa prenumeration ShowSubscription=Visa prenumeration MemberModifiedInDolibarr=Medlem ändrad i Dolibarr SendAnEMailToMember=Skicka informations-e-post till medlem diff --git a/htdocs/langs/sv_SE/opensurvey.lang b/htdocs/langs/sv_SE/opensurvey.lang index ea04e5fd922d8af52b8fb265dadd40c7f9256166..c5403b5cff729e155fa49443099d35cde18e5934 100644 --- a/htdocs/langs/sv_SE/opensurvey.lang +++ b/htdocs/langs/sv_SE/opensurvey.lang @@ -1,66 +1,66 @@ # Dolibarr language file - Source file is en_US - opensurvey -# Survey=Poll -# Surveys=Polls -# OrganizeYourMeetingEasily=Organize your meetings and polls easily. First select type of poll... -# NewSurvey=New poll -# NoSurveysInDatabase=%s poll(s) into database. -# OpenSurveyArea=Polls area -# AddACommentForPoll=You can add a comment into poll... -# AddComment=Add comment -# CreatePoll=Create poll -# PollTitle=Poll title -# ToReceiveEMailForEachVote=Receive an email for each vote -# TypeDate=Type date -# TypeClassic=Type standard -# OpenSurveyStep2=Select your dates amoung the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it -# RemoveAllDays=Remove all days -# CopyHoursOfFirstDay=Copy hours of first day -# RemoveAllHours=Remove all hours -# SelectedDays=Selected days -# TheBestChoice=The best choice currently is -# TheBestChoices=The best choices currently are -# with=with -# OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line. -# CommentsOfVoters=Comments of voters -# ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes) -# RemovePoll=Remove poll -# UrlForSurvey=URL to communicate to get a direct access to poll -# PollOnChoice=You are creating a poll to make a multi-choice for a poll. First enter all possible choices for your poll: -# CreateSurveyDate=Create a date poll -# CreateSurveyStandard=Create a standard poll -# CheckBox=Simple checkbox -# YesNoList=List (empty/yes/no) -# PourContreList=List (empty/for/against) -# AddNewColumn=Add new column -# TitleChoice=Choice label -# ExportSpreadsheet=Export result spreadsheet +Survey=Enkät +Surveys=Enkäter +OrganizeYourMeetingEasily=Organisera dina möten och enkäter lätt. Först välj typ av enkät ... +NewSurvey=Ny enkät +NoSurveysInDatabase=%s enkät (er) i databasen. +OpenSurveyArea=Enkät område +AddACommentForPoll=You can add a comment into poll... +AddComment=Lägg till kommentar +CreatePoll=Skapa enkät +PollTitle=Enkät titel +ToReceiveEMailForEachVote=Receive an email for each vote +TypeDate=Typ Datum +TypeClassic=Typ standard +OpenSurveyStep2=Select your dates amoung the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it +RemoveAllDays=Ta bort alla dagar +CopyHoursOfFirstDay=Kopiera timmar av första dagen +RemoveAllHours=Remove all hours +SelectedDays=Selected days +TheBestChoice=The best choice currently is +TheBestChoices=The best choices currently are +with=med +OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line. +CommentsOfVoters=Comments of voters +ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes) +RemovePoll=Radera enkäten +UrlForSurvey=URL to communicate to get a direct access to poll +PollOnChoice=You are creating a poll to make a multi-choice for a poll. First enter all possible choices for your poll: +CreateSurveyDate=Skapa en datum enkät +CreateSurveyStandard=Skapa en vanlig enkät +CheckBox=Enkel checkbox +YesNoList=List (tom/ja/nej) +PourContreList=Lista (tom/för/emot) +AddNewColumn=Lägg till ny kolumn +TitleChoice=Val av etikett +ExportSpreadsheet=Export result spreadsheet ExpireDate=Begränsa datum -# NbOfSurveys=Number of polls -# NbOfVoters=Nb of voters -# SurveyResults=Results -# PollAdminDesc=You are allowed to change all vote lines of this poll with button "Edit". You can, as well, remove a column or a line with %s. You can also add a new column with %s. -# 5MoreChoices=5 more choices -# Abstention=Abstention -# Against=Against -# YouAreInivitedToVote=You are invited to vote for this poll -# VoteNameAlreadyExists=This name was already used for this poll -# ErrorPollDoesNotExists=Error, poll <strong>%s</strong> does not exists. -# OpenSurveyNothingToSetup=There is no specific setup to do. -# PollWillExpire=Your poll will expire automatically <strong>%s</strong> days after the last date of your poll. -# AddADate=Add a date -# AddStartHour=Add start hour -# AddEndHour=Add end hour -# votes=vote(s) -# NoCommentYet=No comments have been posted for this poll yet -# CanEditVotes=Can change vote of others -# CanComment=Voters can comment in the poll -# CanSeeOthersVote=Voters can see other people's vote -# SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :<br>- empty,<br>- "8h", "8H" or "8:00" to give a meeting's start hour,<br>- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,<br>- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. -# BackToCurrentMonth=Back to current month -# ErrorOpenSurveyFillFirstSection=You haven't filled the first section of the poll creation -# ErrorOpenSurveyOneChoice=Enter at least one choice -# ErrorOpenSurveyDateFormat=Date must have the format YYYY-MM-DD -# ErrorInsertingComment=There was an error while inserting your comment -# MoreChoices=Enter more choices for the voters -# SurveyExpiredInfo=The voting time of this poll has expired. -# EmailSomeoneVoted=%s has filled a line.\nYou can find your poll at the link: \n%s +NbOfSurveys=Antal enkäter +NbOfVoters=Antal av väljarna +SurveyResults=Resultat +PollAdminDesc=You are allowed to change all vote lines of this poll with button "Edit". You can, as well, remove a column or a line with %s. You can also add a new column with %s. +5MoreChoices=5 more choices +Abstention=Abstention +Against=Mot +YouAreInivitedToVote=You are invited to vote for this poll +VoteNameAlreadyExists=This name was already used for this poll +ErrorPollDoesNotExists=Error, poll <strong>%s</strong> does not exists. +OpenSurveyNothingToSetup=Det finns ingen specifik inställning att göra. +PollWillExpire=Your poll will expire automatically <strong>%s</strong> days after the last date of your poll. +AddADate=Lägg till ett datum +AddStartHour=Lägg till start tid +AddEndHour=Lägg till slut tid +votes=röst (er) +NoCommentYet=No comments have been posted for this poll yet +CanEditVotes=Can change vote of others +CanComment=Voters can comment in the poll +CanSeeOthersVote=Voters can see other people's vote +SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :<br>- empty,<br>- "8h", "8H" or "8:00" to give a meeting's start hour,<br>- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,<br>- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. +BackToCurrentMonth=Back to current month +ErrorOpenSurveyFillFirstSection=You haven't filled the first section of the poll creation +ErrorOpenSurveyOneChoice=Ange minst ett val +ErrorOpenSurveyDateFormat=Datum måste ha formatet ÅÅÅÅ-MM-DD +ErrorInsertingComment=Det uppstod ett fel när du skapa din kommentar +MoreChoices=Enter more choices for the voters +SurveyExpiredInfo=The voting time of this poll has expired. +EmailSomeoneVoted=%s has filled a line.\nYou can find your poll at the link: \n%s diff --git a/htdocs/langs/sv_SE/orders.lang b/htdocs/langs/sv_SE/orders.lang index 6ea791fb21238e5ccb1f1f0e96a4c1f67c9a0410..892578e5a6c3acff7adaccbdfc6ce70722c34af0 100644 --- a/htdocs/langs/sv_SE/orders.lang +++ b/htdocs/langs/sv_SE/orders.lang @@ -2,7 +2,7 @@ OrdersArea=Kunder order område SuppliersOrdersArea=Leverantörer order område OrderCard=Beställ kort -# OrderId=Order Id +OrderId=Order Id Order=Beställ Orders=Beställningar OrderLine=Orderrad @@ -28,7 +28,7 @@ StatusOrderCanceledShort=Annullerad StatusOrderDraftShort=Förslag StatusOrderValidatedShort=Validerad StatusOrderSentShort=I processen -# StatusOrderSent=Shipment in process +StatusOrderSent=Sändning pågår StatusOrderOnProcessShort=Den process StatusOrderProcessedShort=Bearbetade StatusOrderToBillShort=Till Bill @@ -53,9 +53,9 @@ ShippingExist=En sändning föreligger DraftOrWaitingApproved=Förslag eller godkänts ännu ej beställas DraftOrWaitingShipped=Förslag eller godkännas ännu inte sändas MenuOrdersToBill=Order till faktura -# MenuOrdersToBill2=Orders to bill +MenuOrdersToBill2=Order till faktura SearchOrder=Sök ordning -# SearchACustomerOrder=Search a customer order +SearchACustomerOrder=Sök en kundorder ShipProduct=Ship produkt Discount=Rabatt CreateOrder=Skapa ordning @@ -65,14 +65,14 @@ ValidateOrder=Verifiera att UnvalidateOrder=Unvalidate För DeleteOrder=Radera ordning CancelOrder=Avbryt för -AddOrder=Lägg ordning +AddOrder=Skapa order AddToMyOrders=Lägg till i mitt order AddToOtherOrders=Lägg till övriga beställningar -# AddToDraftOrders=Add to draft order +AddToDraftOrders=Lägg till förlags order ShowOrder=Visa att NoOpenedOrders=Ingen öppnade order NoOtherOpenedOrders=Ingen annan öppnas order -# NoDraftOrders=No draft orders +NoDraftOrders=Inga förslag till beslut OtherOrders=Övriga beställningar LastOrders=Senaste %s order LastModifiedOrders=Senast %s uppdaterad order @@ -82,7 +82,7 @@ NbOfOrders=Antal order OrdersStatistics=Beställ statistik OrdersStatisticsSuppliers=Leverantören för statistik NumberOfOrdersByMonth=Antal beställningar per månad -# AmountOfOrdersByMonthHT=Amount of orders by month (net of tax) +AmountOfOrdersByMonthHT=Mängd order per månad (netto efter skatt) ListOfOrders=Lista över beställningar CloseOrder=Stäng ordning ConfirmCloseOrder=Är du säker på att du vill stänga denna beställning? När en order är stängd, kan den bara faktureras. @@ -93,7 +93,7 @@ ConfirmUnvalidateOrder=Är du säker på att du vill återställa ordningen <b>% ConfirmCancelOrder=Är du säker på att du vill avbryta denna order? ConfirmMakeOrder=Är du säker på att du vill bekräfta att du gjort detta beställning på <b>%s?</b> GenerateBill=Skapa faktura -# ClassifyShipped=Classify delivered +ClassifyShipped=Klassificera levereras ClassifyBilled=Klassificera "Fakturerade" ComptaCard=Bokföring kort DraftOrders=Förslag till beslut @@ -101,7 +101,6 @@ RelatedOrders=Relaterade order OnProcessOrders=I processen order RefOrder=Ref. För RefCustomerOrder=Ref. kundorder -CustomerOrder=Kundorder RefCustomerOrderShort=Ref. cust. För SendOrderByMail=Skicka beställningen per post ActionsOnOrder=Åtgärder för att @@ -131,9 +130,7 @@ Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Konstant COMMANDE_SUPPLIER_ADDON inte d Error_COMMANDE_ADDON_NotDefined=Konstant COMMANDE_ADDON inte definierat Error_FailedToLoad_COMMANDE_SUPPLIER_ADDON_File=Kunde inte ladda modulen fil %s Error_FailedToLoad_COMMANDE_ADDON_File=Kunde inte ladda modulen fil %s -# Error_OrderNotChecked=No orders to invoice selected - - +Error_OrderNotChecked=Inga order att fakturera valda # Sources OrderSource0=Kommersiella förslag OrderSource1=Internet @@ -144,25 +141,23 @@ OrderSource5=Kommersiella OrderSource6=Store QtyOrdered=Antal beställda AddDeliveryCostLine=Lägg till en line-kostnad som visar vikten av beslutet - # Documents models PDFEinsteinDescription=En fullständig för-modellen (logo. ..) PDFEdisonDescription=En enkel ordning modell -# PDFProformaDescription=A complete proforma invoice (logo…) +PDFProformaDescription=En fullständig proforma faktura (logo ...) # Orders modes OrderByMail=Post OrderByFax=Faxa OrderByEMail=EMail OrderByWWW=Nätet OrderByPhone=Telefonen - -# CreateInvoiceForThisCustomer=Bill orders -# NoOrdersToInvoice=No orders billable -# CloseProcessedOrdersAutomatically=Classify "Processed" all selected orders. -# MenuOrdersToBill2=Orders to bill -# OrderCreation=Order creation -# Ordered=Ordered -# OrderCreated=Your orders have been created -# OrderFail=An error happened during your orders creation -# CreateOrders=Create orders -# ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s". +CreateInvoiceForThisCustomer=Faktura order +NoOrdersToInvoice=Inga order fakturerbar +CloseProcessedOrdersAutomatically=Klassificera "bearbetade" alla valda order. +MenuOrdersToBill2=Order till faktura +OrderCreation=Order skapning +Ordered=Beställt +OrderCreated=Din order har skapats +OrderFail=Ett fel inträffade under din order skapande +CreateOrders=Skapa order +ToBillSeveralOrderSelectCustomer=För att skapa en faktura för flera ordrar, klicka först på kunden och välj sedan "%s". diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang index fe9d174153f1e90a3af190f6532d367bd9f3a3ac..5b39504e9352f4233a0eec8a6699809f4687ddc8 100644 --- a/htdocs/langs/sv_SE/other.lang +++ b/htdocs/langs/sv_SE/other.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - other SecurityCode=Säkerhetskod Calendar=Kalender -AddTrip=Lägg resa Tools=Verktyg ToolsDesc=Detta område är avsedd för gruppen diverse verktyg som inte finns i andra menyposter. <br><br> Dessa verktyg kan nås från menyn på sidan. Birthday=Födelsedag @@ -10,21 +9,21 @@ DateToBirth=Datum för födelse BirthdayAlertOn= födelsedag alert aktiva BirthdayAlertOff= födelsedag alert inaktiv Notify_FICHINTER_VALIDATE=Intervention validerade -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail +Notify_FICHINTER_SENTBYMAIL=Ingripande skickas per post Notify_BILL_VALIDATE=Kundfaktura validerade -Notify_BILL_UNVALIDATE=Customer invoice unvalidated +Notify_BILL_UNVALIDATE=Kundfakturan Fraktpris saknas Notify_ORDER_SUPPLIER_APPROVE=Leverantör för godkänd Notify_ORDER_SUPPLIER_REFUSE=Leverantör för vägrat Notify_ORDER_VALIDATE=Kundorder validerade Notify_PROPAL_VALIDATE=Kunden förslag validerade -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused +Notify_PROPAL_CLOSE_SIGNED=Kunden propal stängd tecknat +Notify_PROPAL_CLOSE_REFUSED=Kunden propal stängd vägrade Notify_WITHDRAW_TRANSMIT=Överföring tillbakadragande Notify_WITHDRAW_CREDIT=Credit tillbakadragande Notify_WITHDRAW_EMIT=Isue tillbakadragande Notify_ORDER_SENTBYMAIL=Kundorder skickas per post Notify_COMPANY_CREATE=Tredje part som skapats -Notify_COMPANY_SENTBYMAIL=Mails sent from third party card +Notify_COMPANY_SENTBYMAIL=Post som skickas från tredjepartskort Notify_PROPAL_SENTBYMAIL=Kommersiell förslag skickas per post Notify_BILL_PAYED=Kundfaktura betalade Notify_BILL_CANCEL=Kundfaktura avbryts @@ -34,20 +33,21 @@ Notify_ORDER_SUPPLIER_SENTBYMAIL=Leverantör beställning skickas per post Notify_BILL_SUPPLIER_VALIDATE=Leverantörsfaktura validerade Notify_BILL_SUPPLIER_PAYED=Leverantörsfaktura betalas Notify_BILL_SUPPLIER_SENTBYMAIL=Leverantör faktura skickas per post -Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled +Notify_BILL_SUPPLIER_CANCELED=Leverantör faktura annulleras Notify_CONTRACT_VALIDATE=Kontrakt validerade Notify_FICHEINTER_VALIDATE=Intervention validerade Notify_SHIPPING_VALIDATE=Frakt validerade Notify_SHIPPING_SENTBYMAIL=Leverans skickas per post Notify_MEMBER_VALIDATE=Medlem validerade -Notify_MEMBER_MODIFY=Member modified +Notify_MEMBER_MODIFY=Medlem modifierad Notify_MEMBER_SUBSCRIPTION=Medlem tecknat Notify_MEMBER_RESILIATE=Medlem resiliated Notify_MEMBER_DELETE=Elementet bort -Notify_PROJECT_CREATE=Project creation -Notify_TASK_CREATE=Task created -Notify_TASK_MODIFY=Task modified -Notify_TASK_DELETE=Task deleted +Notify_PROJECT_CREATE=Projekt skapande +Notify_TASK_CREATE=Task skapade +Notify_TASK_MODIFY=Task modifierad +Notify_TASK_DELETE=Uppgift utgår +SeeModuleSetup=Se modul inställnings NbOfAttachedFiles=Antal bifogade filer / dokument TotalSizeOfAttachedFiles=Total storlek på bifogade filer / dokument MaxSize=Maximal storlek @@ -57,15 +57,15 @@ Miscellaneous=Diverse NbOfActiveNotifications=Antal anmälningar PredefinedMailTest=Detta är en test post. \\ NDet två linjerna är åtskilda av en vagnretur. PredefinedMailTestHtml=Detta är en <b>test</b> post (ordet Provningen skall i fetstil). <br> De två linjerna är åtskilda av en vagnretur. -PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __FACREF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ Här hittar du fakturan __FACREF__ __PERSONALIZED__Sincerely __SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ Vi vill varna er att fakturan __FACREF__ tycks inte betalt. Så detta är fakturan i bilagan igen, som en påminnelse. __PERSONALIZED__Sincerely __SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__ Här hittar du det kommersiella förslaget __PROPREF__ __PERSONALIZED__Sincerely __SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__ Här hittar ordern __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ Här hittar du vår ordning __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ Här hittar du fakturan __FACREF__ __PERSONALIZED__Sincerely __SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__ Här hittar sjöfarten __SHIPPINGREF__ __PERSONALIZED__Sincerely __SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ Här hittar interventionen __FICHINTERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ +PredefinedMailContentThirdparty=__CONTACTCIVNAME__ __PERSONALIZED__ __SIGNATURE__ DemoDesc=Dolibarr är en kompakt ERP / CRM består av flera funktionella moduler. En demo som inkluderar alla moduler inte betyder något som detta inträffar aldrig. Så, flera demo profiler finns tillgängliga. ChooseYourDemoProfil=Välj demo profil som matchar din aktivitet ... DemoFundation=Hantera medlemmar av en stiftelse @@ -80,6 +80,16 @@ ModifiedBy=Uppdaterad av %s ValidatedBy=Bekräftad av %s CanceledBy=Annullerats av %s ClosedBy=Stängt av %s +CreatedById=Användarkod som skapade +ModifiedById=Användarkod som gjorde förra förändring +ValidatedById=Användarkod som validerats +CanceledById=Användar-ID som annulleras +ClosedById=Användar-ID som stängd +CreatedByLogin=Användarinloggning som skapade +ModifiedByLogin=Användarinloggning som gjorde förra förändring +ValidatedByLogin=Användarinloggning som validerats +CanceledByLogin=Användarinloggning som annullerats +ClosedByLogin=Användarinloggning som stängde FileWasRemoved=Arkiv %s togs bort DirWasRemoved=Nummer %s togs bort FeatureNotYetAvailableShort=Finns i en kommande version @@ -133,7 +143,7 @@ SizeUnitcm=cm SizeUnitmm=mm SizeUnitinch=tum SizeUnitfoot=fot -SizeUnitpoint=point +SizeUnitpoint=poäng BugTracker=Bug tracker SendNewPasswordDesc=Denna blankett kan du begära ett nytt lösenord. Det kommer att skickas till din e-postadress. <br> Förändring kommer att ha verkan först efter att klicka på bekräftelse länk inne i den här e-postmeddelandet. <br> Kontrollera dina program e läsare. BackToLoginPage=Tillbaka till inloggningssidan @@ -147,12 +157,12 @@ StatsByNumberOfEntities=Statistik på antalet nationella enheter NumberOfProposals=Antal förslag om senaste 12 månaderna NumberOfCustomerOrders=Antal kundorder på senaste 12 månaderna NumberOfCustomerInvoices=Antal kundfakturor den senaste 12 månaderna -NumberOfSupplierOrders=Number of supplier orders on last 12 month +NumberOfSupplierOrders=Antal leverantörsorder på senaste 12 månaderna NumberOfSupplierInvoices=Antal leverantörsfakturor på senaste 12 månaderna NumberOfUnitsProposals=Antal enheter på förslag om senaste 12 månaderna NumberOfUnitsCustomerOrders=Antal enheter på kundens order på senaste 12 månaderna NumberOfUnitsCustomerInvoices=Antal enheter på kundernas fakturor senaste 12 månaderna -NumberOfUnitsSupplierOrders=Number of units on supplier orders on last 12 month +NumberOfUnitsSupplierOrders=Antal enheter på leverantörsorder på senaste 12 månaderna NumberOfUnitsSupplierInvoices=Antal enheter på leverantörsfakturor på senaste 12 månaderna EMailTextInterventionValidated=Interventionen %s har validerats. EMailTextInvoiceValidated=Fakturan %s har validerats. @@ -162,7 +172,7 @@ EMailTextOrderApproved=Ordern %s har godkänts. EMailTextOrderApprovedBy=Ordern %s har godkänts av %s. EMailTextOrderRefused=Ordern %s har avslagits. EMailTextOrderRefusedBy=Ordern %s har avslagits %s. -EMailTextExpeditionValidated=The shipping %s has been validated. +EMailTextExpeditionValidated=Leveransen %s har validerats. ImportedWithSet=Import dataunderlaget DolibarrNotification=Automatisk anmälan ResizeDesc=Ange nya <b>bredd</b> eller ny höjd. Förhållandet kommer att hållas under storleksändring ... @@ -184,12 +194,12 @@ StartUpload=Starta upp CancelUpload=Avbryt upp FileIsTooBig=Filer är för stor PleaseBePatient=Ha tålamod ... -RequestToResetPasswordReceived=A request to change your Dolibarr password has been received -NewKeyIs=This is your new keys to login -NewKeyWillBe=Your new key to login to software will be -ClickHereToGoTo=Click here to go to %s -YouMustClickToChange=You must however first click on the following link to validate this password change -ForgetIfNothing=If you didn't request this change, just forget this email. Your credentials are kept safe. +RequestToResetPasswordReceived=En begäran om att ändra Dolibarr lösenord har mottagits +NewKeyIs=Det här är din nya nycklar för att logga in +NewKeyWillBe=Din nya knappen för att logga in på programvaran kommer att vara +ClickHereToGoTo=Klicka här för att gå till %s +YouMustClickToChange=Du måste dock först klicka på följande länk för att bekräfta detta lösenord förändring +ForgetIfNothing=Om du inte har begärt denna förändring, bara glömma detta mail. Dina referenser förvaras säkert. ##### Calendar common ##### AddCalendarEntry=Lägg till post i kalendern %s @@ -211,7 +221,7 @@ MemberResiliatedInDolibarr=Medlem %s resiliated i Dolibarr MemberDeletedInDolibarr=Medlem %s bort från Dolibarr MemberSubscriptionAddedInDolibarr=Teckning av medlem %s till i Dolibarr ShipmentValidatedInDolibarr=Transport %s validerats i Dolibarr -ShipmentDeletedInDolibarr=Shipment %s deleted from Dolibarr +ShipmentDeletedInDolibarr=Leverans %s har raderats från Dolibarr ##### Export ##### Export=Exportera ExportsArea=Export område diff --git a/htdocs/langs/sv_SE/paypal.lang b/htdocs/langs/sv_SE/paypal.lang index a4d576e7f5a2c87e7568dbf804b19190c87f3f42..d9b9f5962b73026dd031da4aa5597703ffbe82f9 100644 --- a/htdocs/langs/sv_SE/paypal.lang +++ b/htdocs/langs/sv_SE/paypal.lang @@ -10,16 +10,16 @@ PAYPAL_API_PASSWORD=API-lösenord PAYPAL_API_SIGNATURE=API signatur PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Erbjuder betalning "integrerad" (Kreditkort + Paypal) eller "Paypal" endast PaypalModeIntegral=Integral -PaypalModeOnlyPaypal=PayPal only +PaypalModeOnlyPaypal=PayPal endast PAYPAL_CSS_URL=Optionnal Url av CSS-formatmall om betalning sidan ThisIsTransactionId=Detta är id transaktion: <b>%s</b> PAYPAL_ADD_PAYMENT_URL=Lägg till URL Paypal betalning när du skickar ett dokument per post PAYPAL_IPN_MAIL_ADDRESS=E-postadress att omedelbart anmälan av betalning (IPN) -PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n +PredefinedMailContentLink=Du kan klicka på den säkra länken nedan för att göra din betalning (PayPal), om det inte redan är gjort.\n\n %s\n\n YouAreCurrentlyInSandboxMode=Du är för närvarande i "sandlåda"-läget -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed -PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) -ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +NewPaypalPaymentReceived=Nya Paypal mottagen betalning +NewPaypalPaymentFailed=Nya Paypal betalning försökt men misslyckats +PAYPAL_PAYONLINE_SENDEMAIL=EMail att varna efter en betalning (framgång eller ej) +ReturnURLAfterPayment=Återgå URL efter betalning +ValidationOfPaypalPaymentFailed=Validering av Paypal betalning misslyckades +PaypalConfirmPaymentPageWasCalledButFailed=Betalning bekräftelsesidan för Paypal kallades av Paypal utan bekräftelse misslyckades diff --git a/htdocs/langs/sv_SE/propal.lang b/htdocs/langs/sv_SE/propal.lang index 1dcf8a037fdc3c2a6fee2ce3f0f8781e6fffb15f..c4a0da04ecb6b6553d9f18e6dfbf277c31d67e34 100644 --- a/htdocs/langs/sv_SE/propal.lang +++ b/htdocs/langs/sv_SE/propal.lang @@ -16,7 +16,7 @@ Prospect=Prospect ProspectList=Prospect lista DeleteProp=Ta bort kommersiella förslag ValidateProp=Validate kommersiella förslag -AddProp=Lägg till förslaget +AddProp=Skapa förslag ConfirmDeleteProp=Är du säker på att du vill ta bort denna kommersiella förslag? ConfirmValidateProp=Är du säker på att du vill validera denna kommersiella förslag? LastPropals=Senaste %s förslag @@ -55,8 +55,6 @@ NoOpenedPropals=Ingen öppnade kommersiella förslag NoOtherOpenedPropals=Ingen annan öppnas kommersiella förslag RefProposal=Kommersiella förslag ref SendPropalByMail=Skicka kommersiella förslag per post -FileNotUploaded=Filen var inte upp -FileUploaded=Filen har lagts upp AssociatedDocuments=Handlingar i samband med förslaget: ErrorCantOpenDir=Kan inte öppna katalog DatePropal=Datum för förslag diff --git a/htdocs/langs/sv_SE/salaries.lang b/htdocs/langs/sv_SE/salaries.lang index edca71a18298c2a2c2f4f3d92ce10dd130ab2335..f2fc8c20068e58645ffb0a3d673a31768fd3d98a 100644 --- a/htdocs/langs/sv_SE/salaries.lang +++ b/htdocs/langs/sv_SE/salaries.lang @@ -1,8 +1,12 @@ # Dolibarr language file - Source file is en_US - users -Salary=Salary -Salaries=Salaries -Employee=Employee -NewSalaryPayment=New salary payment -SalaryPayment=Salary payment -SalariesPayments=Salaries payments -ShowSalaryPayment=Show salary payment +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Bokförings kod för löne utbetalningar +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Bokförings kod för finansiell kostnad +Salary=Lön +Salaries=Löner +Employee=Anställd +NewSalaryPayment=Ny löneutbetalning +SalaryPayment=Lönebetalning +SalariesPayments=Löneutbetalningar +ShowSalaryPayment=Visa löneutbetalning +THM=Genomsnitt timpris +TJM=Genomsnittlig dagligt pris diff --git a/htdocs/langs/sv_SE/sendings.lang b/htdocs/langs/sv_SE/sendings.lang index 5c81077a14ec1490682746c0c4600493b1a22f64..fdb12324479f2b0d65b978c5353a8c0b321f609d 100644 --- a/htdocs/langs/sv_SE/sendings.lang +++ b/htdocs/langs/sv_SE/sendings.lang @@ -13,7 +13,7 @@ LastSendings=Senaste %s transporter SearchASending=Sök efter transport StatisticsOfSendings=Statistik för transporter NbOfSendings=Antal transporter -NumberOfShipmentsByMonth=Number of shipments by month +NumberOfShipmentsByMonth=Antal leveranser per månad SendingCard=Frakt-kort NewSending=Ny leverans CreateASending=Skapa en sändning @@ -50,17 +50,17 @@ Enlevement=Fått av kunden DocumentModelSimple=Enkel förlagan DocumentModelMerou=Merou A5-modellen WarningNoQtyLeftToSend=Varning, att inga produkter väntar sändas. -StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). +StatsOnShipmentsOnlyValidated=Statistik utförda på försändelser endast valideras. Datum som används är datum för godkännandet av leveransen (planerat leveransdatum är inte alltid känt). DateDeliveryPlanned=Hyvlat leveransdatum DateReceived=Datum leverans fick SendShippingByEMail=Skicka leverans via e-post -SendShippingRef=Submission of shipment %s +SendShippingRef=Inlämning av leveransen %s ActionsOnShipping=Evenemang på leverans LinkToTrackYourPackage=Länk till spåra ditt paket ShipmentCreationIsDoneFromOrder=För närvarande är skapandet av en ny leverans sker från ordern kortet. -RelatedShippings=Related shippings -ShipmentLine=Shipment line -CarrierList=List of transporters +RelatedShippings=Relaterade sändningar +ShipmentLine=Transport linje +CarrierList=Lista över transportörer # Sending methods SendingMethodCATCH=Fångst av kunden @@ -70,9 +70,9 @@ SendingMethodCOLSUI=Colissimo DocumentModelSirocco=Enkel handling modell för leverans kvitton DocumentModelTyphon=Mer komplett dokument modell för leverans intäkter (logo. ..) Error_EXPEDITION_ADDON_NUMBER_NotDefined=Konstant EXPEDITION_ADDON_NUMBER definieras inte -SumOfProductVolumes=Sum of product volumes -SumOfProductWeights=Sum of product weights +SumOfProductVolumes=Summan av produktvolymer +SumOfProductWeights=Summan av produktvikter # warehouse details -DetailWarehouseNumber= Warehouse details -DetailWarehouseFormat= W:%s (Qty : %d) +DetailWarehouseNumber= Lagerinformation +DetailWarehouseFormat= W:%s (Antal : %d) diff --git a/htdocs/langs/sv_SE/stocks.lang b/htdocs/langs/sv_SE/stocks.lang index 481efd59b1b688bf50979f86905c4ba821412adb..92b0bda1f1bfeb60a78b71255917741bdf6e4ce0 100644 --- a/htdocs/langs/sv_SE/stocks.lang +++ b/htdocs/langs/sv_SE/stocks.lang @@ -62,8 +62,8 @@ OrderStatusNotReadyToDispatch=Beställningen har ännu inte / inte längre statu StockDiffPhysicTeoric=Orsak till skillnad mellan verklig och beräknad lagerställning NoPredefinedProductToDispatch=Inga fördefinierade produkter för det här objektet. Så ingen sändning till lager krävs. DispatchVerb=Sändning -StockLimitShort=Limit for alert -StockLimit=Stock limit for alert +StockLimitShort=Gräns för varning +StockLimit=Stock gräns för larm PhysicalStock=Fysisk lager RealStock=Real Stock VirtualStock=Virtuellt lager @@ -99,7 +99,7 @@ UseVirtualStockByDefault=Use virtual stock by default, instead of physical stock UseVirtualStock=Använd virtuellt lager UsePhysicalStock=Use physical stock CurentSelectionMode=Curent selection mode -CurentlyUsingVirtualStock=Virtual stock +CurentlyUsingVirtualStock=Virtuell lager CurentlyUsingPhysicalStock=Physical stock RuleForStockReplenishment=Regel för påfyllning av lager SelectProductWithNotNullQty=Välj minst en produkt med antal skilt från noll samt leverantör @@ -112,7 +112,7 @@ ReplenishmentOrdersDesc=Detta är en lista över alla öppna leverantörsorder Replenishments=Påfyllningar NbOfProductBeforePeriod=Antal av produkt %s i lager före vald period (< %s) NbOfProductAfterPeriod=Antal av produkt %s i lager efter vald period (> %s) -MassMovement=Mass movement +MassMovement=Massrörelse MassStockMovement=Mass stock movement SelectProductInAndOutWareHouse=Välj produkt, antal, ursprungslager och mållager och klicka "%s". När det är gjort för alla lageröverföringar klicka på "%s". RecordMovement=Spela in överföring diff --git a/htdocs/langs/sv_SE/users.lang b/htdocs/langs/sv_SE/users.lang index da62d760f12e15d8873445030fc3f1fcdd6ccca3..bab31f4892162773c6959c86b30347e27bd815c7 100644 --- a/htdocs/langs/sv_SE/users.lang +++ b/htdocs/langs/sv_SE/users.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - users -HRMArea=HRM area +HRMArea=HRM område UserCard=Användarkort ContactCard=Kontaktkort GroupCard=Grupp kort @@ -87,7 +87,7 @@ MyInformations=Mina uppgifter ExportDataset_user_1=Dolibarr-användarnas behov och egenskaper DomainUser=Domän användare %s Reactivate=Återaktivera -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +CreateInternalUserDesc=Detta formulär tillåter dig att skapa en användare internt på ditt företag / stiftelse. För att skapa en extern användare (kund, leverantör, ...) använder du knappen "Skapa Dolibarr användare" från tredje parts kontaktkort. InternalExternalDesc=En <b>intern</b> användare är en användare som är en del av ert företag / stiftelse. <br> En <b>extern</b> användare är en kund, leverantör eller annan. <br><br> I båda fallen definierar behörigheter rättigheter Dolibarr, även externa användare kan ha en annan meny manager än interna användare (Se startsida - Setup - Display) PermissionInheritedFromAGroup=Tillstånd beviljas, eftersom ärvt från en av en användares grupp. Inherited=Ärvda @@ -114,8 +114,10 @@ YourRole=Din roller YourQuotaOfUsersIsReached=Din kvot på aktiva användare är nådd! NbOfUsers=Nb av användare DontDowngradeSuperAdmin=Endast en SuperAdmin kan nedgradera en SuperAdmin -HierarchicalResponsible=Hierarkiskt ansvarig +HierarchicalResponsible=Handledare HierarchicView=Hierarkisk vy UseTypeFieldToChange=Använd fält Typ för att ändra OpenIDURL=OpenID URL LoginUsingOpenID=Logga in med OpenID +WeeklyHours=Vecko timmar +ColorUser=Färg på användaren diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang index fbbd8502a48fca39cb4684d6b00940616c78fb80..c6d4a63456064fb95a8ddb987b4b4092791f6abe 100644 --- a/htdocs/langs/tr_TR/accountancy.lang +++ b/htdocs/langs/tr_TR/accountancy.lang @@ -25,12 +25,12 @@ Selectchartofaccounts=Hesap planı seç Validate=Doğrula Addanaccount=Muhasebe hesabı ekle AccountAccounting=Muhasebe hesabı -Ventilation=Ventilation +Ventilation=Analiz ToDispatch=Gönderilecek Dispatched=Gönderilmiş -CustomersVentilation=Ventilation customers -SuppliersVentilation=Ventilation suppliers +CustomersVentilation=Müşteri analizi +SuppliersVentilation=Tedarikçi analizi TradeMargin=Ticaret marjı Reports=Raporlar ByCustomerInvoice=Müşteri faturalarına göre @@ -45,52 +45,52 @@ WriteBookKeeping=Büyük defter hesap kayıtları Bookkeeping=Büyük Defter AccountBalanceByMonth=Aylık hesap bakiyesi -AccountingVentilation=Accounting ventilation -AccountingVentilationSupplier=Accounting ventilation supplier -AccountingVentilationCustomer=Accounting ventilation customer +AccountingVentilation=Analiz muhasebesi +AccountingVentilationSupplier=Teadrikçi hesabı analizi +AccountingVentilationCustomer=Müşteri hesabı analizi Line=Satır -CAHTF=Total purchase supplier HT -InvoiceLines=Lines of invoice to be ventilated -InvoiceLinesDone=Ventilated lines of invoice +CAHTF=Tedarikçi HT toplam sipariş +InvoiceLines=Analiz edilecek fatura kalemleri +InvoiceLinesDone=Analiz edilen fatura kalemleri IntoAccount=Muhasebe hesabında -Ventilate=Ventilate -VentilationAuto=Automatic ventilation +Ventilate=Analiz +VentilationAuto=Otomatik analiz Processing=İşleme EndProcessing=İşleme sonu -AnyLineVentilate=Any lines to ventilate +AnyLineVentilate=Analiz edilecek herhangi bir kalem SelectedLines=Seçilen satırlar Lineofinvoice=Fatura satırı -VentilatedinAccount=Ventilated successfully in the accounting account -NotVentilatedinAccount=Not ventilated in the accounting account +VentilatedinAccount=Muhasebe hesabında başarıyla analiz edildi +NotVentilatedinAccount=Muhasebe hesabında analiz edilmedi. -ACCOUNTING_SEPARATORCSV=Separator CSV +ACCOUNTING_SEPARATORCSV=CSV Ayırıcı -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to be ventilated shown by page (maximum recommended : 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the pages of ventilation "Has to ventilate" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the pages of ventilation "Ventilated" by the most recent elements +ACCOUNTING_LIMIT_LIST_VENTILATION=Bir sayfada gösterilecek analiz edilen öğe sayısı (önerilen ençok:50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO="Analizlenecek" analiz sayfalarının sıralamasını son öğelerden başlat +ACCOUNTING_LIST_SORT_VENTILATION_DONE="Analizlenen" analiz sayfalarının sıralamasını son öğelerden başlat AccountLength=Dolibarr'da gösterilen muhasebe hesapları uzunluğu -AccountLengthDesc=Function allowing to feign a length of accounting account by replacing spaces by the zero figure. This function touches only the display, it does not modify the accounting accounts registered in Dolibarr. For the export, this function is necessary to be compatible with certain software. -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounts +AccountLengthDesc=Boşlukların sıfır figürü ile değiştirilmesiyle muhasebe hesap uzunluğunun uydurulmasını sağlayan işlevdir. Bu işlev yalnızca görüntüyü değiştirir, Dolibarr'da kayıtlı muhasebe hesaplarını değiştirmez. Dışaaktarma için bu fonksiyonun belirli yazılımla uyumlu olması gerekir. +ACCOUNTING_LENGTH_GACCOUNT=Genel hesapların uzunluğu +ACCOUNTING_LENGTH_AACCOUNT=Üçüncü parti hesaplarının uzunluğu -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_BANK_JOURNAL=Bank journal -ACCOUNTING_CASH_JOURNAL=Cash journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_SELL_JOURNAL=Satış günlüğü +ACCOUNTING_PURCHASE_JOURNAL=Satınalma günlüğü +ACCOUNTING_BANK_JOURNAL=Banka günlüğü +ACCOUNTING_CASH_JOURNAL=Kasa günlüğü +ACCOUNTING_MISCELLANEOUS_JOURNAL=Çeşitli günlük +ACCOUNTING_SOCIAL_JOURNAL=Sosyal günlük -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Account of transfer -ACCOUNTING_ACCOUNT_SUSPENSE=Account of wait +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Transfer hesabı +ACCOUNTING_ACCOUNT_SUSPENSE=Bekleme hesabı -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (if not defined in the service sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Satınalınan ürünler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Satılan ürünler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Satınalınan hizmetler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Satılan hizmetler için varsayılan muhasebe kodu (hizmet sayfasında tanımlanmamışsa) Doctype=Belge türü Docdate=Tarih @@ -128,7 +128,7 @@ ListeMvts=Hareket listesi ErrorDebitCredit=Borç ve Alacak aynı anda bir değere sahip olamaz ReportThirdParty=Üçüncü parti hesabını listele -DescThirdPartyReport=Consult here the list of the thirdparty customers and the suppliers and their accounting accounts +DescThirdPartyReport=Burada üçüncü parti müşterileri ve tedarikçileri ile onların muhasebe hesaplarının listesine bakın ListAccounts=Muhasebe hesapları listesi @@ -140,15 +140,15 @@ Active=Hesap özeti NewFiscalYear=Yeni mali yıl -DescVentilCustomer=Consult here the annual accounting ventilation of your invoices customers +DescVentilCustomer=Burada müşteri faturalarınızın yıllık hesap analizine bakın TotalVente=Toplam ciro HT TotalMarge=Toplam satışlar oranı -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their accounting account -DescVentilTodoCustomer=Ventilate your lines of customer invoice with an accounting account -ChangeAccount=Change the accounting account for lines selected by the account: +DescVentilDoneCustomer=Burada müşteri faturaları satırlarına ve onların muhasebe hesaplarının listesine bakın. +DescVentilTodoCustomer=Bir muhasebe hesabıyla müşteri faturanızın kalemlerini analiz edin +ChangeAccount=Muhasebe hesabını, hesap tarafından seçilen satırlar için değiştirin: Vide=- -DescVentilSupplier=Consult here the annual accounting ventilation of your invoices suppliers -DescVentilTodoSupplier=Ventilate your lines of invoice supplier with an accounting account +DescVentilSupplier=Burada tedarikçi faturalarınızın yıllık hesap analizine bakın +DescVentilTodoSupplier=Bir muhasebe hesabıyla tedarikçi faturanızın kalemlerini analiz edin DescVentilDoneSupplier=Burada tedarikçi faturaları ve muhasebe hesapları satırları listesine başvurun ValidateHistory=Otomatikman doğrula diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index 1cb78579d3338726abbf483fb52197e980a84451..d1ee8c4ac6e37177ca03ce8552ca39840dd36bae 100644 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -3,13 +3,13 @@ Foundation=Dernek Version=Sürüm VersionProgram=Program sürümü VersionLastInstall=İlk kurulan sürüm -VersionLastUpgrade=Yükseltilen son sürüm +VersionLastUpgrade=Son yükseltilen sürüm VersionExperimental=Deneysel VersionDevelopment=Geliştirme VersionUnknown=Bilinmeyen VersionRecommanded=Önerilen -SessionId=Oturum ID -SessionSaveHandler=Oturum kayıt işlemcisi +SessionId=Oturum Kimliği +SessionSaveHandler=Oturum kayıt yürütücüsü SessionSavePath=Oturum kayıt konumu PurgeSessions=Oturum Temizleme ConfirmPurgeSessions=Gerçekten tüm oturumları temizlemek istiyor musunuz? Bu (kendiniz hariç), tüm kullanıcıların bağlantılarını kesecektir. @@ -51,10 +51,10 @@ ErrorReservedTypeSystemSystemAuto='system' ve 'systemauto' değerleri tür için ErrorCodeCantContainZero=Kod 0 değeri içeremez DisableJavascript=Javascript ve Ajax fonksiyonlarını engelle (Görme engelli kişiler ve metin tarayıcılar için önerilir) ConfirmAjax=Açılır Ajax onay pencereleri kullanın -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. +UseSearchToSelectCompanyTooltip=Ayrıca çok fazla sayıda üçüncü partiniz varsa (>100 000), Kurulum->Diğer den COMPANY_DONOTSEARCH_ANYWHERE değişmezini 1 e ayarlayarak hızı arttırabilirsiniz. Sonra arama dizenin başlamasıyla sınırlı olacaktır. UseSearchToSelectCompany=Üçüncü parti seçimi için liste kutusu kullanmak yerine oto tamamlamalı alan kullanın ActivityStateToSelectCompany= Halen faaliyette olan olan ya da durdurulmuş olan üçüncü partilerin görünmesi/gizlenmesi için bir süzgeç seçeneği ekleyin -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. +UseSearchToSelectContactTooltip=Ayrıca çok fazla sayıda üçüncü partiniz varsa (>100 000), Kurulum->Diğer den CONTACT_DONOTSEARCH_ANYWHERE değişmezini 1 e ayarlayarak hızı arttırabilirsiniz. Sonra arama dizenin başlamasıyla sınırlı olacaktır. UseSearchToSelectContact=Kişi seçimi için oto tamamlamalı alan kullanın (liste kutusu kullanmak yerine). SearchFilter=Arama süzgeçi seçenekleri NumberOfKeyToSearch=Aramayı başlatacak karakter sayısı: %s @@ -68,7 +68,7 @@ PreviewNotAvailable=Önizleme yok ThemeCurrentlyActive=Geçerli etkin tema CurrentTimeZone=PHP Saat Dilimi (sunucu) MySQLTimeZone=ZamanDilimi MySql (veritabanı) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). +TZHasNoEffect=Tarihler, sanki gönderilen dizeler olarak tutulmuş gibi veritabanı sunucusu tarafından saklanır ve çağrılır. Zaman dilimi yalnızca UNIX_TIMESTAMP işlevi kullanılırken etkilenir (bu Dolibarr tarafından kullanılmamalıdır, böylece ZD veritabanının hiçbir etkisi olmaz, veri girildikten sonra değiştirilse bile) Space=Boşluk Table=Tablo Fields=Alanlar @@ -76,7 +76,7 @@ Index=Dizin Mask=Maske NextValue=Sonraki değer NextValueForInvoices=Sonraki değer (faturalar) -NextValueForCreditNotes=Sonraki değer (alacak dekontları) +NextValueForCreditNotes=Sonraki değer (iade faturaları) NextValueForDeposit=Sonraki değer (yatırılan) NextValueForReplacements=Sonraki değer (yenileme) MustBeLowerThanPHPLimit=Not: PHP niz yüklenen her dosyanın boyutunu, parametrelerin değeri ne olursa olsun <b>%s</b> %s ile sınırlandırır @@ -92,8 +92,8 @@ ComptaSetup=Muhasebe modülü ayarları UserSetup=Kullanıcı yönetimi ayarları MenuSetup=Menü yönetimi ayarları MenuLimits=Sınırlar ve doğruluk -MenuIdParent=Ana menü ID -DetailMenuIdParent=Ana menü ID (bir üst menü için boş) +MenuIdParent=Ana menü Kimliği +DetailMenuIdParent=Ana menü Kimliği (bir üst menü için boş) DetailPosition=Menü konumunu tanımlamak için sıra numarası PersonalizedMenusNotSupported=Kişiselleştirilmiş menüler desteklenmiyor AllMenus=Tümü @@ -107,8 +107,8 @@ OtherSetup=Diğer ayarlar CurrentValueSeparatorDecimal=Ondalık ayırıcı CurrentValueSeparatorThousand=Binlik ayırıcı Destination=Hedef -IdModule=Modül ID -IdPermissions=İzin ID +IdModule=Modül Kimliği +IdPermissions=İzin Kimliği Modules=Modüller ModulesCommon=Ana modüller ModulesOther=Diğer modüller @@ -219,7 +219,7 @@ AutomaticIfJavascriptDisabled=JavaScript devre dışı ise otomatiktir AvailableOnlyIfJavascriptNotDisabled=Yalnızca JavaScript devre dışı değilse vardır AvailableOnlyIfJavascriptAndAjaxNotDisabled=Yalnızca JavaScript ve Ajax devre dışı değilse vardır Required=Gerekli -UsedOnlyWithTypeOption=Used by some agenda option only +UsedOnlyWithTypeOption=Bazı gündem seçeneği tarafından kullanılan Security=Güvenlik Passwords=Parolalar DoNotStoreClearPassword=Parolaları veritabanında saklamayın silin, yalnızca şifreli değerleri saklayın (Etkinleştirme önerilir) @@ -382,7 +382,7 @@ ExtrafieldRadio=Onay düğmesi ExtrafieldParamHelpselect=Parametre listesi anahtar.değer gibi olmalı, örneğin <br><br> : <br>1,değer1<br>2,değer2<br>3,değer3<br>...<br><br>Başka bir listeye bağlı bir liste elde etmek için :<br>1,değer1|parent_list_code:parent_key<br>2,değer2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parametre listesi anahtar.değer gibi olmalı, örneğin <br><br> : <br>1,değer1<br>2,değer2<br>3,değer3<br>... ExtrafieldParamHelpradio=Parametre listesi anahtar.değer gibi olmalı, örneğin <br><br> : <br>1,değer1<br>2,değer2<br>3,değer3<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=Parametre listesi bir tablodan gelir<br>Sözdizimi : table_name:label_field:id_field::filter<br>Örnek: c_typent:libelle:id::filter<br><br>Süzgeç yalnızca etkin değeri (eg active=1) basit bir test olabilir <br> daha çok alanda süzecekseniz bu söz dizimini kullanın extra.fieldcode=... (burada kod ek alanın kodudur)<br><br>Başkasına dayalı listeyi almak için :<br>c_typent:libelle:id:parent_list_code|parent_column:filter LibraryToBuildPDF=PDF oluşturmada kullanılan kütüphane 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> LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax) @@ -422,7 +422,7 @@ Module23Desc= Enerji tüketimlerinin izlenmesi Module25Name=Müşteri Siparişleri Module25Desc=Müşteri siparişleri yönetimi Module30Name=Faturalar -Module30Desc=Müşteri faturaları ve alacak dekontları yönetimi. Tedarikçi fatura yönetimi +Module30Desc=Müşteri faturaları ve iade faturaları yönetimi. Tedarikçi fatura yönetimi Module40Name=Tedarikçiler Module40Desc=Tedarikçi yönetimi ve satın alma (siparişler ve faturalar) Module42Name=Kütükler @@ -484,7 +484,7 @@ Module500Desc=Vergiler, sosyal katkı payları, temettüler ve maaşlar gibi öz Module510Name=Ücretler Module510Desc=Çalışanların maaş ve ödeme yönetimi Module600Name=Duyurlar -Module600Desc=Dolibarr iş etkinleri için üçüncü partilerin ilgililerine eposta ile duyurular gönderin +Module600Desc=Üçüncü parti kişilerine bazı Dolibarr iş etkinlikleriyle ilgili Eposta bildirimleri gönderin (her üçüncü parti için ayarlar tanımlanmıştır) Module700Name=Bağışlar Module700Desc=Bağış yönetimi Module1200Name=Mantis @@ -514,16 +514,16 @@ Module5000Name=Çoklu-firma Module5000Desc=Birden çok firmayı yönetmenizi sağlar Module6000Name=İş akışı Module6000Desc=İş akışı yönetimi -Module20000Name=Tatiller -Module20000Desc=Çalışanların tatillerini bildir ve izle +Module20000Name=İzin İstekleri yönetimi +Module20000Desc=Çalışanların izin isteklerini bildirin ve izleyin Module39000Name=Ürün kümesi Module39000Desc=Parti numarası, ürünlerin yenme ve satış tarihi yönetiminde Module50000Name=PayBox Module50000Desc=PayBox modülü ile kredi kartı ile çevrimiçi ödeme sayfası sunmak için Module50100Name=Satış Noktaları Module50100Desc=Satış Noktası modülü -Module50200Name= Paypal -Module50200Desc= Kredi kartı ya da Paypal ile ödeme sağlayan çevrimiçi ödeme sayfası modülü +Module50200Name=Paypal +Module50200Desc=Kredi kartı ya da Paypal ile ödeme sağlayan çevrimiçi ödeme sayfası modülü Module50400Name=Muhasebe (gelişmiş) Module50400Desc=Muhasebe yönetimi (çift taraf) Module54000Name=IPP Yazdır @@ -597,9 +597,9 @@ Permission121=Kullanıcıya bağlı üçüncü partileri oku Permission122=Kullanıcıya bağlı üçüncü parti oluştur/değiştir Permission125=Kullanıcıya bağlı üçüncü partileri sil Permission126=Üçüncü partileri dışaaktar -Permission141=Proje oku (benim ilişkide olmadığım Özel olanları da) +Permission141=Proje oku (benim ilişkide olmadığım özel olanları da) Permission142=Proje oluştur/değiştir (benim ilişkide olmadığım Özel olanları da) -Permission144=Proje sil (benim ilişkide olmadığım Özel olanları da) +Permission144=Proje sil (benim ilişkide olmadığım özel olanları da) Permission146=Sağlayıcıları oku Permission147=İstatistikleri oku Permission151=Ödeme talimatlarını oku @@ -611,10 +611,11 @@ Permission162=Sözleşme oluştur/değiştir Permission163=Bir sözleşme hizmetini etkinleştir Permission164=Bir sözleşme hizmetini engelle Permission165=Sözleşme sil -Permission171=Gezi oluştur/değiştir -Permission172=Gezi sil -Permission173=Gezi sil -Permission178=Gezi dışaaktar +Permission171=Seyahat ve giderleri okuyun (kendi ve astlarının) +Permission172=Gezi ve gider oluştur/değiştir +Permission173=Gezi ve gider sil +Permission174=Bütün gezi ve giderleri oku +Permission178=Gezi ve gider dışaaktar Permission180=Tedarikçi oku Permission181=Tedarikçi siparişi oku Permission182=Tedarikçi siparişi oluştur/değiştir @@ -1074,7 +1075,7 @@ ModuleCompanyCodeAquarium=%s tarafından oluşturulan bir muhasebe kodunu getir: ModuleCompanyCodePanicum=Boş bir muhasebe kodu girin. ModuleCompanyCodeDigitaria=Muhasebe kodu üçüncü parti koduna bağlıdır. Kod üçüncü parti kodunun ilk 5 karakterini izleyen birinci konumda "C" karakterinden oluşmaktadır. UseNotifications=Bildirimleri kullanın -NotificationsDesc=E-posta bildirimleri özelliği, sessiz şekilde otomatik posta göndermenizi sağlar, bazı Dolibarr olayları için üçüncü şahıslara yapılandırılmıştır (müşteriler ya da tedarikçiler). Etkin bildirim ve hedef kişileri seçimi aynı anda bir üçüncü parti için yapılır. +NotificationsDesc=Eposta bildirimleri özelliği bazı Dolibarr etkinlikleri ile ilgili sessizce otomatik posta göndermenizi sağlar. Bildirim hedefleri bu şekilde tanımlanır:<br>* üçüncü parti kişileri başına (müşteri ya da tedarikçi), her seferinde bir üçüncü parti.<br>* ModelModules=Belge şablonları DocumentModelOdt=OpenDocuments şablonlarından belgeler oluşturun (OpenOffice, KOffice, TextEdit .ODT veya .ODS dosyaları) WatermarkOnDraft=Taslak belge üzerinde filigran @@ -1111,12 +1112,12 @@ WebCalCheckWebcalSetup=Webcal modülü kurulumu doğru olmayabilir. ##### Invoices ##### BillsSetup=Faturalar modülünün kurulumu BillsDate=Fatura tarihi -BillsNumberingModule=Fatura ve alacak dekontları numaralandırma modülü +BillsNumberingModule=Fatura ve iade faturaları numaralandırma modülü BillsPDFModules=Fatura belgesi modelleri -CreditNoteSetup=Alacak dekontları modülü kurulumu -CreditNotePDFModules=Alacak dekontları belge modelleri -CreditNote=Alacak dekontu -CreditNotes=Alacak dekontları +CreditNoteSetup=İade faturaları modülü kurulumu +CreditNotePDFModules=İade faturaları belge modelleri +CreditNote=İade faturası +CreditNotes=İade faturaları ForceInvoiceDate=Fatura tarihini fatura doğrulama tarihine zorla DisableRepeatable=Tekrarlanabilir faturaları engelle SuggestedPaymentModesIfNotDefinedInInvoice=Varsayılan olarak faturada tanımlanmamışsa önerilen ödeme biçimi @@ -1146,6 +1147,7 @@ HideTreadedOrders=İşlem görmüş ya da iptal edilmiş siprişleri listede giz ValidOrderAfterPropalClosed=Teklifin kapatılmasından sonra siparişi doğrulamak için geçici teklifin izlenmemesini sağlar FreeLegalTextOnOrders=Siparişte serbest metin WatermarkOnDraftOrders=Taslak siparişlerde filigran (boşsa yoktur) +ShippableOrderIconInList=Sipariş listesine sevk edilebilir olup olmadığını belirten bir simge koyun ##### Clicktodial ##### ClickToDialSetup=TıklaAra modülü kurulumu ClickToDialUrlDesc=Telefon resmi üzerine tıklandığında Url aranır. URL’de aranan kişinin telefon numarası ile değişecek <br><b>__PHONETO__</b> etiketini kullanabilirsiniz @@ -1310,8 +1312,8 @@ YouMayFindPerfAdviceHere=Bu sayfada bazı denetimler veya performans ile ilgili NotInstalled=Yüklü değil, yani sunucu bundan dolayı yavaş değil. ApplicativeCache=\t\nUygulamalı önbellek MemcachedNotAvailable=Uygulanabilir önbellek bulunamadı. Performansı Memcached önbellek sunucusu ve bu önbellek sunucusunu kullanabilecek bir modül kurarak arttırabilirsiniz.<br>Daha fazla bilgiyi buradan <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>bulabilirsiniz. Bu tür önbellek sunucusunu çok fazla web barındırıcısının sağlamadığını unutmayın. -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=Uygulamalı önbellek için memcached modülü bulundu ama modülün kurulumu tamamlanmamış. +MemcachedAvailableAndSetup=Memcached modülü etkinleştirilmiş memcached sunucusunu kullanmak içindir. OPCodeCache=OPCode önbelleği NoOPCodeCacheFound=OPCode önbelleği bulunamadı. Belki XCache den başka bir OPCode önbelleği kullanabilirsiniz veya eAccelerator (iyi), belki de OPCode önbelleğiniz yoktur (çok kötü). HTTPCacheStaticResources=Statik kaynaklar (css, img, javascript) için HTTP önbelleği @@ -1332,7 +1334,7 @@ ConfirmDeleteProductLineAbility=Formlardan ürün satırı silerken onaylama ModifyProductDescAbility=Formlarda ürün tanımlamalarının kişiselleştirilmesi ViewProductDescInFormAbility=Formlarda ürün tanımlarının görselleştirilmesi (aksi durumda açılır araç ipucu olarak) ViewProductDescInThirdpartyLanguageAbility=Ürün açıklamalarının üçüncü partilerin dilinde gösterilmesi -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. +UseSearchToSelectProductTooltip=Ayrıca çok fazla sayıda ürününüz varsa (>100 000), Kurulum->Diğer den PRODUCT_DONOTSEARCH_ANYWHERE değişmezini 1 e ayarlayarak hızı arttırabilirsiniz. Sonra arama dizenin başlamasıyla sınırlı olacaktır. UseSearchToSelectProduct=Bir ürün seçmek için arama formu kullanın (liste kutusu yerine). UseEcoTaxeAbility=Eko-Vergi Desteği (WEEE) SetDefaultBarcodeTypeProducts=Ürünler için kullanılacak varsayılan barkod türü @@ -1382,9 +1384,10 @@ MailingSetup=E-postalama modülü kurulumu MailingEMailFrom=EPostalama modülü tarafından gönderilen e-postalar için gönderici e-posta (gönderen) MailingEMailError=Hatalı e-postalar için iade e-postası (Hatalar-kime) ##### Notification ##### -NotificationSetup=Bildiri e-posta modülü kurulumu +NotificationSetup=Eposta bildirimi modülü ayarları NotificationEMailFrom=Bildirimler için gönderilen e-postalar için gönderici e-posta (gönderen) -ListOfAvailableNotifications=Mevcut bildirimlerin listesi (Bu liste etkin modüllere bağlıdır) +ListOfAvailableNotifications=Her üçüncü parti için (ayarlar için üçüncü parti kartına git) bildirim ayarlayacağınız etkinlikler listesi veya sabit bir eposta ayarlama yoluyla (liste etkin modüllere bağlıdır) +FixedEmailTarget=Sabit eposta hedefi ##### Sendings ##### SendingsSetup=Gönderme modülü kurulumu SendingsReceiptModel=Makbuz gönderme modeli @@ -1425,7 +1428,7 @@ Menu=Menü seçimi MenuHandler=Menü işleyicisi MenuModule=Kaynak modül HideUnauthorizedMenu= Yetkisiz menüleri gizle (gri) -DetailId=ID menüsü +DetailId=Kimlik menüsü DetailMenuHandler=Yeni menü göstermek için menü işleyicisi DetailMenuModule=Eğer menü girişi bir modülden geliyorsa modül adı DetailType=Menü türü (üst ya da sol) @@ -1535,6 +1538,7 @@ DeleteFiscalYear=Mali yıl sil ConfirmDeleteFiscalYear=Bu mali yılın silmek istediğinizden emin misiniz? Opened=Açık Closed=Kapalı +AlwaysEditable=Her zaman düzenlenebilir Format=Biçim TypePaymentDesc=0:Müşteri ödeme türü, 1:Tedarikçi ödeme türü, 2:Hem müşteri hem de tedarikçi ödeme türü diff --git a/htdocs/langs/tr_TR/agenda.lang b/htdocs/langs/tr_TR/agenda.lang index 324560637a77c3f64abb82835f24441125a09600..93514fcc24211f78de388263a92a4e7bf66f26ac 100644 --- a/htdocs/langs/tr_TR/agenda.lang +++ b/htdocs/langs/tr_TR/agenda.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - agenda -IdAgenda=Kimlik etkinliği +IdAgenda=Etkinlik kimliği Actions=Eylemler ActionsArea=Eylem alanı (Olaylar ve görevler) Agenda=Gündem @@ -7,7 +7,7 @@ Agendas=Gündemler Calendar=Takvim Calendars=Takvimler LocalAgenda=İç takvim -ActionsOwnedBy=Event owned by +ActionsOwnedBy=Etkinlik sahibi AffectedTo=Etkilenen DoneBy=Yapan Event=Etkinlik @@ -70,9 +70,9 @@ DateActionStart= Başlama tarihi DateActionEnd= Bitiş tarihi AgendaUrlOptions1=Süzgeç çıktısına ayrıca aşağıdaki parametreleri ekleyebilirsiniz: AgendaUrlOptions2=Eylem çıktılarını eylem, oluşturan, eylemden etkilenen ya da eylemi yapan kullanıcı <b>login=%s</b> sınırlayacak kullanıcı <b>%s</b>. -AgendaUrlOptions3=Çıktıyı kullanıcı <b>%s</b> tarafından oluşturulan etkinliklerle sınırlamak için<b>logina=%s</b>. +AgendaUrlOptions3=<b>kullanıcı=%s</b>, bir <b>%s</b> kullanıcısına ait eylemlerin çıkışlarını sınırlamak içindir. AgendaUrlOptions4=Çıktıyı kullanıcı <b>%s</b> tarafından etkilenen etkinliklerle sınırlamak için<b>logint=%s</b>. -AgendaUrlOptions5=Çıktıyı kullanıcı<b>%s</b> tarafından yapılan etkinliklerle sınırlamak için<b>logind=%s</b>. +AgendaUrlOptionsProject=<b>proje=PROJECT_ID</b>, bu <b>PROJECT_ID</b> projesi ile ilişkilendirilmiş eylemlerin çıkışını çıkışını sınırlamak içindir. AgendaShowBirthdayEvents=Kişilerin doğum günlerini göster AgendaHideBirthdayEvents=Kişilerin doğum günlerini gizle Busy=Meşgul @@ -89,5 +89,5 @@ ExtSiteUrlAgenda=.ical dosyasına erişmek için URL ExtSiteNoLabel=Tanımlama yok WorkingTimeRange=Çalışma saati aralığı WorkingDaysRange=Çalışma günleri aralığı -AddEvent=Add event -MyAvailability=My availability +AddEvent=Etkinlik oluştur +MyAvailability=Uygunluğum diff --git a/htdocs/langs/tr_TR/banks.lang b/htdocs/langs/tr_TR/banks.lang index f9fd9894a2dc95a695b221a78b220fdd969370a6..03f1d2e99b75312e3fee9c2f950f3261d3d43cbd 100644 --- a/htdocs/langs/tr_TR/banks.lang +++ b/htdocs/langs/tr_TR/banks.lang @@ -9,15 +9,15 @@ FinancialAccounts=Hesaplar BankAccount=Banka hesabı BankAccounts=Banka hesapları AccountRef=Ticari hesap ref -AccountLabel=Ticari hesap etiketi +AccountLabel=Ticari hesap adı CashAccount=Kasa hesabı CashAccounts=Kasa hesapları MainAccount=Ana hesap CurrentAccount=Cari hesap CurrentAccounts=Cari hesaplar -SavingAccount=Tasarruf hesabı -SavingAccounts=Tasarruf hesapları -ErrorBankLabelAlreadyExists=Ticari hesap etiketi zaten var +SavingAccount=Mevduat hesabı +SavingAccounts=Mevduat hesapları +ErrorBankLabelAlreadyExists=Ticari hesap adı zaten var BankBalance=Bakiye BankBalanceBefore=Önceki bakiye BankBalanceAfter=Sonraki bakiye @@ -54,15 +54,15 @@ NewBankAccount=Yeni banka hesabı NewFinancialAccount=Yeni ticari hesap MenuNewFinancialAccount=Yeni ticari hesap NewCurrentAccount=Yeni cari hesap -NewSavingAccount=Yeni tasarruf hesabı +NewSavingAccount=Yeni mevduat hesabı NewCashAccount=Yeni kasa hesabı EditFinancialAccount=Hesap düzenle AccountSetup=Ticari hesap ayarları SearchBankMovement=Banka hareketi ara Debts=Borçlar -LabelBankCashAccount=Banka veya kasa etiketi +LabelBankCashAccount=Banka veya kasa adı AccountType=Hesap türü -BankType0=Tasarruf hesabı +BankType0=Mevduat hesabı BankType1=Cari ya da kredi kartı hesabı BankType2=Kasa hesabı IfBankAccount=Banka hesabıysa @@ -131,7 +131,7 @@ ThisWillAlsoDeleteBankRecord=Bu oluşturulan banka işlemlerini de silecektir. BankMovements=Hareketler CashBudget=Nakit bütçesi PlannedTransactions=Planlanan işlemler -Graph=Grafik +Graph=Grafikler ExportDataset_banque_1=Banka işlemleri ve hesap özeti ExportDataset_banque_2=Banka cüzdanı TransactionOnTheOtherAccount=Diğer hesaptaki işlemler diff --git a/htdocs/langs/tr_TR/bills.lang b/htdocs/langs/tr_TR/bills.lang index 27493dd1327b3955e20f3c8c535927ed33698fa4..47682da9ab25d3270916c895ce762dc31a100475 100644 --- a/htdocs/langs/tr_TR/bills.lang +++ b/htdocs/langs/tr_TR/bills.lang @@ -24,12 +24,12 @@ InvoiceProFormaDesc=<b>Proforma fatura</b> gerçek faturanın bir görüntüsüd InvoiceReplacement=Fatura değiştirme InvoiceReplacementAsk=Fatura değiştirme yapılacak fatura InvoiceReplacementDesc=<b>Fatura değiştirme</b> henüz tahsilat yapılmamış bir faturanın iptal edilmesi ve tamamen değiştirilmesi için kullanılır.<br><br>Not: Yalnızca ödeme yapılmamış faturalar değiştirilebilir. Değiştirdiğiniz fatura eğer henüz kapataılmamışsa, kullanılmamak üzere otomatik olarak kapatılacaktır. -InvoiceAvoir=Alacak dekontu -InvoiceAvoirAsk=Fatura düzeltmek için alacak dekontu -InvoiceAvoirDesc=<b>Alacak Dekontu</b>bir eksi fatura olup fatura tutarının gerçekte ödenen tutardan farklı olması durumunda kullanılır (çünkü müşteri yanlışlıkla fazla ödeme yapmıştır, ya da tamamını ödemeyecektir, örneğin bazı malları iade ettiğinden). -invoiceAvoirWithLines=İlk faturadan alınan kalemlerle Alacak Dekontu oluştur -invoiceAvoirWithPaymentRestAmount=Orijinal faturaya alınan ödeme tutarı ile Alacak Dekontu oluştur -invoiceAvoirLineWithPaymentRestAmount=Faturaya alınan ödeme tutarında Alacak Dekontu +InvoiceAvoir=İade faturası +InvoiceAvoirAsk=İade faturası fatura düzeltmek için kullanılır +InvoiceAvoirDesc=<b>İade Faturası</b>bir eksi fatura olup fatura tutarının gerçekte ödenen tutardan farklı olması durumunda kullanılır (çünkü müşteri yanlışlıkla fazla ödeme yapmıştır, ya da tamamını ödemeyecektir, örneğin bazı malları iade ettiğinden). +invoiceAvoirWithLines=İlk faturadan alınan kalemlerle İade Faturası oluştur +invoiceAvoirWithPaymentRestAmount=İlk faturanın ödenmemiş bakiyeli İade Faturası +invoiceAvoirLineWithPaymentRestAmount=Ödenmemiş kalan tutar için İade Faturası ReplaceInvoice=%s Faturasını değiştir ReplacementInvoice=Fatura değiştirme ReplacedByInvoice=Değiştirilen fatura %s @@ -62,7 +62,7 @@ PaidBack=Geri ödenen DatePayment=Ödeme tarihi DeletePayment=Ödeme sil ConfirmDeletePayment=Bu ödemeyi silmek istediğinizden emin misiniz? -ConfirmConvertToReduc=Bu alacak dekontunu ya da nakit avans faturasını mutlak bir indirime dönüştürmek istiyor musunuz? <br>Bu tutar diğer indirimlerin arasına kaydedilecek olup bu müşteri için mevcut ya da ileride kesilecek faturada indirim olarak kullanılabilecektir. +ConfirmConvertToReduc=Bu iade faturasını ya da nakit avans faturasını mutlak bir indirime dönüştürmek istiyor musunuz? <br>Bu tutar diğer indirimlerin arasına kaydedilecek olup bu müşteri için mevcut ya da ileride kesilecek faturada indirim olarak kullanılabilecektir. SupplierPayments=Tedarikçi ödemeleri ReceivedPayments=Alınan ödemeler ReceivedCustomersPayments=Müşterilerden alınan ödemeler @@ -81,13 +81,13 @@ ValidatePayment=Ödeme doğrula PaymentHigherThanReminderToPay=Ödeme hatırlatmasından daha yüksek ödeme HelpPaymentHigherThanReminderToPay=Dikkat, bir ya da daha çok faturanın ödeme tutarı ödenecek bakiyeden yüksektir.<br>Girişinizi düzeltin, aksi durumda her fazla ödenen fatura için bir iade faturası oluşturmayı onaylayın ve düşünün. HelpPaymentHigherThanReminderToPaySupplier=Dikkat, bir ya da daha çok faturanın ödeme tutarı ödenecek bakiyeden yüksektir.<br>Girişinizi düzeltin, aksi durumda onaylayın. -ClassifyPaid=‘Ödendi’ olarak sınıflandır -ClassifyPaidPartially=‘Kısmen ödendi’ olarak sınıflandır +ClassifyPaid=Sınıflandırma ‘Ödendi’ +ClassifyPaidPartially=Sınıflandırma ‘Kısmen ödendi’ ClassifyCanceled=’Terkedildi’ olarak sınıflandır ClassifyClosed=‘Kapalı’ olarak sınıflandır ClassifyUnBilled=Sınıflandırma 'Faturalanmadı' CreateBill=Fatura oluştur -AddBill=Fatura ya da alacak dekontu ekle +AddBill=Fatura ya da iade faturası oluştur AddToDraftInvoices=Taslak fatura ekle DeleteBill=Fatura sil SearchACustomerInvoice=Müşteri faturası ara @@ -99,13 +99,13 @@ DoPaymentBack=Geri ödeme yap ConvertToReduc=Gelecekteki indirime dönüştür EnterPaymentReceivedFromCustomer=Müşteriden alınan ödeme girin EnterPaymentDueToCustomer=Müşteri nedeniyle ödeme yap -DisabledBecauseRemainderToPayIsZero=Engelli Çünkü geri kalan ödeme sıfırdır +DisabledBecauseRemainderToPayIsZero=Ödenmemiş kalan sıfır olduğundan devre dışı Amount=Tutar PriceBase=Temel fiyat BillStatus=Fatura durumu BillStatusDraft=Taslak (doğrulanma gerektirir) -BillStatusPaid=Ödenmiş -BillStatusPaidBackOrConverted=Ödenmiş ya da indirime dönüştürülen +BillStatusPaid=Ödendi +BillStatusPaidBackOrConverted=Ödenmiş ya da indirime dönüştürülmüş BillStatusConverted=Ödenmiş (son fatura için hazır) BillStatusCanceled=Terkedilmiş BillStatusValidated=Doğrulanmış (ödenmesi gerekir) @@ -156,9 +156,9 @@ ConfirmCancelBill=<b>%s</b> Faturasını iptal etmek istediğinizden emin misini ConfirmCancelBillQuestion=Neden bu faturayı ‘terkedilmiş’ olarak sınıflandırmak istiyorsunuz? ConfirmClassifyPaidPartially=<b>%s</b> Faturasının durumunu ödenmiş olarak değiştirmek istediğinizden emin misiniz? ConfirmClassifyPaidPartiallyQuestion=Bu fatura tamamen ödenmemiş. Bu faturayı kapatmak için nedenler nelerdir? -ConfirmClassifyPaidPartiallyReasonAvoir=Ödeme vadesinden önce yapıldığı için kalan bakiye <b>(%s %s)</b> indirim olarak verildi. Bir iade faturası ile KDV’yi ayarladım. -ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Ödeme vadesinden önce yapıldığı için kalan bakiye <b>(%s %s)</b> indirim olarak verildi. Bu indirimle KDV’yi kaybetmeyi kabul ettim. -ConfirmClassifyPaidPartiallyReasonDiscountVat=Ödeme vadesinden önce yapıldığı için kalan bakiye <b>(%s %s)</b> indirim olarak verildi. Bu indirimdeki KDV’yi bir iade faturası olmadan kurtardım. +ConfirmClassifyPaidPartiallyReasonAvoir=Kalan bakiye <b>(%s %s)</b> ödeme vadesinden önce yapıldığından dolayı verilmiş bir indirimdr. KDV bir iade faturasıyla ayarIanır. +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Kalan ödenmemiş tutar <b>(%s %s)</b> ödeme vadesinden önce ödendiğinden bir indirim olarak verilmiştir. Burada KDV sini kaybetmeyi kabul ediyorum. +ConfirmClassifyPaidPartiallyReasonDiscountVat=Kalan bakiye <b>(%s %s)</b> ödeme vadesinden önce yapıldığından dolayı verilmiş bir indirimdr. KDV bir iade faturasıyla düzeltilir. ConfirmClassifyPaidPartiallyReasonBadCustomer=Kötü müşteri ConfirmClassifyPaidPartiallyReasonProductReturned=Ürünler kısmen iade edildi ConfirmClassifyPaidPartiallyReasonOther=Diğer bir nedenle terkedilen tutar @@ -183,17 +183,17 @@ ShowSocialContribution=Sosyal katkı payını göster ShowBill=Fatura göster ShowInvoice=Fatura göster ShowInvoiceReplace=Değiştirilen faturayı göster -ShowInvoiceAvoir=Alacak dekontu göster +ShowInvoiceAvoir=İade faturası göster ShowInvoiceDeposit=Nakit avans faturası göster ShowPayment=Ödeme göster File=Dosya AlreadyPaid=Zaten ödenmiş AlreadyPaidBack=Zaten geri ödenmiş -AlreadyPaidNoCreditNotesNoDeposits=Zaten ödenmiş (alacak dekontu ve nakit avans faturası olmadan) +AlreadyPaidNoCreditNotesNoDeposits=Zaten ödenmiş (iade faturası ve nakit avans faturası olmadan) Abandoned=Terkedilen -RemainderToPay=Kalan ödeme -RemainderToTake=Kalan alacak -RemainderToPayBack=Kalan geri ödeme +RemainderToPay=Ödenmemiş kalan +RemainderToTake=Alınacak kalan tutar +RemainderToPayBack=Geri ödenecek kalan tutar Rest=Bekleyen AmountExpected=İstenen tutar ExcessReceived=Fazla alınan @@ -225,13 +225,13 @@ NonPercuRecuperable=Kurtarılamaz SetConditions=Ödeme koşullarını ayarla SetMode=Ödeme biçimini ayarla Billed=Faturalanmış -RepeatableInvoice=Ön tanımlı fatura -RepeatableInvoices=Ön tanımlı faturalar -Repeatable=Ön tanımlı -Repeatables=Ön tanımlı -ChangeIntoRepeatableInvoice=Ön tanımlıya dönüştür -CreateRepeatableInvoice=Ön tanımlı fatura oluştur -CreateFromRepeatableInvoice=Ön tanımlı faturadan oluştur +RepeatableInvoice=Fatura şablonu +RepeatableInvoices=Fatura şablonları +Repeatable=Şablon +Repeatables=Şablonlar +ChangeIntoRepeatableInvoice=Fatura şablonuna dönüştür +CreateRepeatableInvoice=Fatura şablonu oluştur +CreateFromRepeatableInvoice=Fatura şablonundan oluştur CustomersInvoicesAndInvoiceLines=Müşteri faturaları ve fatura satırları CustomersInvoicesAndPayments=Müşteri faturaları ve ödemeleri ExportDataset_invoice_1=Müşteri faturaları listesi ve fatura satırları @@ -248,13 +248,13 @@ AddRelativeDiscount=Göreceli indirim oluştur EditRelativeDiscount=Göreceli indirim düzenle AddGlobalDiscount=Mutlak indirim ekle EditGlobalDiscounts=Mutlak indirim düzenle -AddCreditNote=Alacak Dekontu oluştur +AddCreditNote=İade faturası oluştur ShowDiscount=İndirim göster ShowReduc=Kesinti göster RelativeDiscount=Göreceli indirim GlobalDiscount=Genel indirim -CreditNote=Alacak dekontu -CreditNotes=Alacak dekontları +CreditNote=İade faturası +CreditNotes=İade faturaları Deposit=Nakit avans Deposits=Nakit avanslar DiscountFromCreditNote=İade faturası %s ten indirim @@ -379,7 +379,7 @@ ChequesReceipts=Çek makbuzları ChequesArea=Çek hesabı alanı ChequeDeposits=Çek hesapları Cheques=Çekler -CreditNoteConvertedIntoDiscount=Bu alacak dekontu ya da nakit avans faturası %s durumuna dönüştürüldü +CreditNoteConvertedIntoDiscount=Bu iade faturası ya da nakit avans faturası %s durumuna dönüştürüldü UsBillingContactAsIncoiveRecipientIfExist=Fatura alıcısı olarak üçüncü parti adresi yerine müşteri faturası kişi adresini kullan ShowUnpaidAll=Tüm ödenmemiş faturaları göster ShowUnpaidLateOnly=Ödenmemiş bütün faturaları göster @@ -392,7 +392,7 @@ CantRemovePaymentWithOneInvoicePaid=En az bir fatura ödenmiş olarak sınıflan ExpectedToPay=Beklenen ödeme PayedByThisPayment=Bu ödeme ile ödenmiş ClosePaidInvoicesAutomatically=Tamamı ödenmiş bütün standart ve değiştirilmiş faturaları "Ödendi" olarak sınıflandır. -ClosePaidCreditNotesAutomatically=Tamamı ödenmiş alacak dekontlarını "Ödendi" olarak sınıflandır. +ClosePaidCreditNotesAutomatically=Tamamı ödenmiş iade faturalarını "Ödendi" olarak sınıflandır. AllCompletelyPayedInvoiceWillBeClosed=Bakiyesi kalmayan bütün faturalar otomatikmen kapatılarak "Ödendi" durumuna getirilecektir. ToMakePayment=Öde ToMakePaymentBack=Geri öde @@ -401,8 +401,8 @@ NoteListOfYourUnpaidInvoices=Not: Bu liste, satış temsilcisi olarak bağlı ol RevenueStamp=Bandrol YouMustCreateInvoiceFromThird=Bu seçenek, yalnızca fatura oluştururken, üçüncü parti *müşteri* sekmesinde belirir PDFCrabeDescription=Fatura PDF şablonu Crabe. Tam fatura şablonu (Önerilen şablon) -TerreNumRefModelDesc1=Standart faturalar için numarayı %syymm-nnnn biçiminde ve alacak dekontları için %syymm-nnnn biçiminde göster, yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir. -MarsNumRefModelDesc1=Belge numarasını, standart faturalar için %syymm-nnnn, değiştirilen faturalar için %syymm-nnnn, alacak dekontları için %syymm-nnnn ve nakit avans faturaları için %syymm-nnnn biçiminde verir. Burada yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir +TerreNumRefModelDesc1=Standart faturalar için numarayı %syymm-nnnn biçiminde ve iade faturaları için %syymm-nnnn biçiminde göster, yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir. +MarsNumRefModelDesc1=Belge numarasını, standart faturalar için %syymm-nnnn, değiştirilen faturalar için %syymm-nnnn, iade faturaları için %syymm-nnnn ve nakit avans faturaları için %syymm-nnnn biçiminde verir. Burada yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir TerreNumRefModelError=$syymm ile başlayan bir fatura hali hazırda vardır ve bu sıra dizisi için uygun değildir. Bu modülü etkinleştirmek için onu kaldırın ya da adını değiştirin. ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Müşteri fatura izleme temsilci diff --git a/htdocs/langs/tr_TR/boxes.lang b/htdocs/langs/tr_TR/boxes.lang index 7a402a41cb9134d25b09ae7d94d878950df219b4..5d88bf29ebc7b61276dd96606e6585c46e765d5a 100644 --- a/htdocs/langs/tr_TR/boxes.lang +++ b/htdocs/langs/tr_TR/boxes.lang @@ -8,10 +8,11 @@ BoxLastCustomerBills=Son müşteri faturaları BoxOldestUnpaidCustomerBills=En eski ödenmemiş müşteri faturaları BoxOldestUnpaidSupplierBills=En eski ödenmemiş tedarikçi faturaları BoxLastProposals=Son teklifler -BoxLastProspects=Son adaylar +BoxLastProspects=Son değiştirilen adaylar BoxLastCustomers=Son değiştirilen müşteriler BoxLastSuppliers=Son değiştirilen tedarikçiler BoxLastCustomerOrders=Son müşteri siparişleri +BoxLastValidatedCustomerOrders=Doğrulanan son müşteri siparişleri BoxLastBooks=Son kayıtlar BoxLastActions=Son eylemler BoxLastContracts=Son sözleşmeler @@ -27,19 +28,22 @@ BoxTitleNbOfCustomers=Müşteri sayısı BoxTitleLastRssInfos=%s ten en son %s haberler BoxTitleLastProducts=Son değiştirilen % s ürün/hizmet BoxTitleProductsAlertStock=Stok uyarısındaki ürünler -BoxTitleLastCustomerOrders=Son değiştirilen %s müşteri siparişi +BoxTitleLastCustomerOrders=Son %s müşteri siparişi +BoxTitleLastModifiedCustomerOrders=Değiştirilen son %s müşteri faturası BoxTitleLastSuppliers=Son kaydedilen %s tedarikçi BoxTitleLastCustomers=Son kaydedilen %s müşteri BoxTitleLastModifiedSuppliers=Son değiştirilen %s tedarikçi BoxTitleLastModifiedCustomers=Son değiştirilen %s müşteri -BoxTitleLastCustomersOrProspects=Son değiştirilen %s müşteri veya aday -BoxTitleLastPropals=Son kaydedilen %s teklif +BoxTitleLastCustomersOrProspects=Son %s müşteri veya aday +BoxTitleLastPropals=Son %s teklif +BoxTitleLastModifiedPropals=Değiştirilen son %s teklif BoxTitleLastCustomerBills=Son %s müşteri faturası +BoxTitleLastModifiedCustomerBills=Değiştirilen son %s müşteri faturası BoxTitleLastSupplierBills=Son kaydedilen %s tedarikçi faturası -BoxTitleLastProspects=Son kaydedilen %s aday +BoxTitleLastModifiedSupplierBills=Değiştirilen son %s tedarikçi faturası BoxTitleLastModifiedProspects=Son değiştirilen %s aday BoxTitleLastProductsInContract=Bir sözleşmedeki son %s ürün/hizmet -BoxTitleLastModifiedMembers=Son değiştirilen %s üye +BoxTitleLastModifiedMembers=Son %s üye BoxTitleLastFicheInter=Değiştirilen son %s müdahale BoxTitleOldestUnpaidCustomerBills=En eski ödenmemiş %s müşteri faturası BoxTitleOldestUnpaidSupplierBills=En eski ödenmemiş %s tedarikçi faturası @@ -50,7 +54,7 @@ BoxTitleTotalUnpaidSuppliersBills=Ödenmemiş tedarikçi faturaları BoxTitleLastModifiedContacts=Son değiştirilen %s kişi/adres BoxMyLastBookmarks=En son %s yerimim BoxOldestExpiredServices=Süresi dolmuş en eski etkin hizmetler -BoxLastExpiredServices=Etkinlik hizmet süresi dolmuş enson %s eski kişi +BoxLastExpiredServices=Etkinlik hizmet süresi dolmuş son %s en eski kişi BoxTitleLastActionsToDo=Son yapılan %s eylem BoxTitleLastContracts=Son %s sözleşme BoxTitleLastModifiedDonations=Son değiştirilen %s bağış @@ -77,8 +81,9 @@ NoRecordedContracts=Kayıtlı sözleşme yok NoRecordedInterventions=Kayıtlı müdahale yok BoxLatestSupplierOrders=Son tedarikçi siparişleri BoxTitleLatestSupplierOrders=Son %s tedarikçi siparişi +BoxTitleLatestModifiedSupplierOrders=Değiştirilen son %s tedarikçi siparişi NoSupplierOrder=Kayıtlı tedarikçi siparişi yok -BoxCustomersInvoicesPerMonth=Aylık müşteri siparişleri +BoxCustomersInvoicesPerMonth=Aylık müşteri faturaları BoxSuppliersInvoicesPerMonth=Aylık tedarikçi faturaları BoxCustomersOrdersPerMonth=Aylık müşteri siparişleri BoxSuppliersOrdersPerMonth=Aylık tedarikçi siparişleri diff --git a/htdocs/langs/tr_TR/categories.lang b/htdocs/langs/tr_TR/categories.lang index d005baae3abcea6eebd098d46298d73eeaa34436..1a4a2cce4e5c4000d6f38117ff9c15a7747a5faf 100644 --- a/htdocs/langs/tr_TR/categories.lang +++ b/htdocs/langs/tr_TR/categories.lang @@ -93,7 +93,7 @@ InternalCategory=İç kategori CategoryContents=Kategori içeriği CategId=Kategori kimliği CatSupList=Tedarikçi kategorileri listesi -CatCusList=Müşteri/aday kategorileri listesi +CatCusList=Müşteri/beklenti kategorileri listesi CatProdList=Ürün kategorileri Listesi CatMemberList=Üye kategorileri Listesi CatContactList=Kişi kategorileri ve kişi listesi @@ -111,4 +111,4 @@ ExtraFieldsCategories=Tamamlayıcı öznitelikler CategoriesSetup=Kategori ayarları CategorieRecursiv=Ana kategoriyle otomatik bağlantılı CategorieRecursivHelp=Etkinse, ürün bir alt kategoriye eklenirken aynı zamanda ana kategoriye de eklenecektir -AddProductServiceIntoCategory=Add the following product/service +AddProductServiceIntoCategory=Aşağıdaki ürünü/hizmeti ekle diff --git a/htdocs/langs/tr_TR/commercial.lang b/htdocs/langs/tr_TR/commercial.lang index d17d38c2055eb7e559ada039af11aef8be7372f0..dc040a6d77cf298bce3cfd688fc329bb5957adc7 100644 --- a/htdocs/langs/tr_TR/commercial.lang +++ b/htdocs/langs/tr_TR/commercial.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - commercial -Commercial=Ticari -CommercialArea=Ticari alan -CommercialCard=Ticari kart +Commercial=Ticaret +CommercialArea=Ticaret alanı +CommercialCard=Ticaret kartı CustomerArea=Müşteriler alanı Customer=Müşteri Customers=Müşteriler @@ -9,9 +9,9 @@ Prospect=Aday Prospects=Adaylar DeleteAction=Bir etkinlik/görev sil NewAction=Yeni etkinlik/görev -AddAction=Etkinlik/görev ekle -AddAnAction=Bir etkinlik/görev ekle -AddActionRendezVous=Bir randevu etkinliği ekle +AddAction=Etkinlik/görev oluştur +AddAnAction=Bir etkinlik/görev oluştur +AddActionRendezVous=Randevu etkinliği oluştur Rendez-Vous=Rendevu ConfirmDeleteAction=Bu etkinliği/görevi silmek istediğinizden emin misiniz? CardAction=Etkinlik kartı @@ -37,7 +37,7 @@ ListOfProspects=Aday listesi ListOfCustomers=Müşteri listesi LastDoneTasks=Tamamlanan son %s görev LastRecordedTasks=Son kaydedilen görevler -LastActionsToDo=Tamamlanan son %s en eski işlem +LastActionsToDo=Tamamlanmamış son %s en eski işlem DoneAndToDoActionsFor=%s için tamamlanan ve yapılacak etkinlikler DoneAndToDoActions=Tamamlanan ve yapılacak görevler DoneActions=Tamamlanan etkinlikler @@ -93,4 +93,4 @@ NoData=Veri yok StatusProsp=Aday durumu DraftPropals=Taslak teklifler SearchPropal=Bir teklif ara -CommercialDashboard=Ticari özet +CommercialDashboard=Ticaret özeti diff --git a/htdocs/langs/tr_TR/companies.lang b/htdocs/langs/tr_TR/companies.lang index 122d6dae41b938713c9f3716bd9a2b1dd312d0e7..7fffe687d627f0f0d3e80156d605213cd71b2f0e 100644 --- a/htdocs/langs/tr_TR/companies.lang +++ b/htdocs/langs/tr_TR/companies.lang @@ -76,7 +76,7 @@ PhoneMobile=Mobil No_Email=Toplu e-posta gönderme Fax=Faks Zip=Posta Kodu -Town=ilçesi +Town=İlçesi Web=Web Poste= Durumu DefaultLang=Varsayılan dili @@ -140,7 +140,7 @@ ProfId4BR=CPF ProfId1CH=-- ProfId2CH=-- ProfId3CH=Prof No 1 (Federal no) -ProfId4CH=Prof No 2 (Ticari kayıt numarası) +ProfId4CH=Prof No 2 (Ticaret Kayıt numarası) ProfId5CH=- ProfId6CH=- ProfId1CL=Prof Id 1 (RUT) @@ -211,7 +211,7 @@ ProfId5NL=- ProfId6NL=- ProfId1PT=Prof No 1 (NIPC) ProfId2PT=Prof No 2 (Sosyal güvenlik numarası) -ProfId3PT=Prof No 3 (Ticari kayıt numarası) +ProfId3PT=Prof No 3 (Ticaret Kayıt numarası) ProfId4PT=Prof No 4 (Conservatory) ProfId5PT=- ProfId6PT=- @@ -250,7 +250,7 @@ CustomerAbsoluteDiscountShort=Mutlak indirim CompanyHasRelativeDiscount=Bu müşterinin varsayılan bir <b>%s%%</b> indirimi var CompanyHasNoRelativeDiscount=Bu müşterinin varsayılan hiçbir göreceli indirimi yok CompanyHasAbsoluteDiscount=Bu müşterinin <b>%s</b> %s için halen indirim alacağı ya da birikimi var -CompanyHasCreditNote=Bu müşterinin hala <b>%s</b> %s için alacak dekontu var +CompanyHasCreditNote=Bu müşterinin hala <b>%s</b> %s için iade faturaları var CompanyHasNoAbsoluteDiscount=Bu müşterinin hiçbir indirim alacağı yoktur CustomerAbsoluteDiscountAllUsers=Mutlak indirimler (tüm kullanıcılar tarafından verilen) CustomerAbsoluteDiscountMy=Mutlak indirimler (kendiniz tarafından verilen) @@ -259,8 +259,8 @@ AvailableGlobalDiscounts=Varolan mutlak indirimler DiscountNone=Hiçbiri Supplier=Tedarikçi CompanyList=Firmaların listesi -AddContact=Kişi ekle -AddContactAddress=Kişi/adres ekle +AddContact=Kişi oluştur +AddContactAddress=Kişi/adres oluştur EditContact=Kişi düzenle EditContactAddress=Kişi/adres düzenle Contact=Kişi @@ -268,8 +268,8 @@ ContactsAddresses=Kişiler/adresler NoContactDefinedForThirdParty=Bu üçüncü parti için tanımlı kişi yok NoContactDefined=Bu üçüncü parti için kişi tanımlanmamış DefaultContact=Varsayılan kişi -AddCompany=Firma ekle -AddThirdParty=Üçüncü parti ekle +AddCompany=Firma oluştur +AddThirdParty=Üçüncü parti oluştur DeleteACompany=Firma sil PersonalInformations=Kişisel bilgiler AccountancyCode=Muhasebe kodu @@ -288,7 +288,7 @@ ProspectToContact=İletişime geçilecek aday CompanyDeleted="%s" Firması veritabanından silindi. ListOfContacts=Kişi/adres listesi ListOfContactsAddresses=Kişiler/adresler listesi -ListOfProspectsContacts=Aday yetkilileri listesi +ListOfProspectsContacts=Aday ilgilileri listesi ListOfCustomersContacts=Müşteri yetkilileri listesi ListOfSuppliersContacts=Tedarikçi yetkilileri listesi ListOfCompanies=Firmalar listesi @@ -379,8 +379,8 @@ DeliveryAddressLabel=Teslimat adresi etiketi DeleteDeliveryAddress=Bir teslimat adresi sil ConfirmDeleteDeliveryAddress=Bu teslimat adresini silmek istediğinizden emin misiniz? NewDeliveryAddress=Yeni teslimat adresi -AddDeliveryAddress=Adres ekle -AddAddress=Adres ekle +AddDeliveryAddress=Adres oluştur +AddAddress=Adres oluştur NoOtherDeliveryAddress=Alternatif teslimat adresi tanımlanmamış SupplierCategory=Tedarikçi kategorisi JuridicalStatus200=Bağımsız @@ -397,7 +397,7 @@ YouMustCreateContactFirst=Eposta bildirimleri ekleyebilmek için üçüncü part ListSuppliersShort=Tedarikçi listesi ListProspectsShort=Aday Listesi ListCustomersShort=Müşteri listesi -ThirdPartiesArea=Third parties and contact area +ThirdPartiesArea=Üçüncü partiler kişi alanı LastModifiedThirdParties=Değiştirilen son %s üçüncü parti UniqueThirdParties=Toplam eşsiz üçüncü parti InActivity=Açık @@ -410,5 +410,5 @@ OutstandingBillReached=En yüksek ödenmemiş fatura tutarına ulaşıldı MonkeyNumRefModelDesc=Sayı biçimini müşteri için %syymm-nnn, tedarikçi için %syymm-nnn gösterir, yy yıl, mm ay ve nnnn ise 0 olmayan bir dizidir LeopardNumRefModelDesc=Müşteri/tedarikçi kodu serbesttir. Bu kod herhangi bir zamanda değiştirilebilir. ManagingDirectors=Yönetici(lerin) adı (CEO, müdür, başkan...) -SearchThirdparty=Search thirdparty -SearchContact=Search contact +SearchThirdparty=Üçüncü parti ara +SearchContact=Kişi ara diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang index 73b7714bd7d946c8bdc9a4ad34cfa8598f6465fd..7101f169e35f12ec8df0a2554a080315d1dac875 100644 --- a/htdocs/langs/tr_TR/compta.lang +++ b/htdocs/langs/tr_TR/compta.lang @@ -42,15 +42,15 @@ VATReceived=KDV alınan VATToCollect=KDV satınalımlar VATSummary=KDV bakiyesi LT2SummaryES=IRPF bakiyesi -LT1SummaryES=RE Balance +LT1SummaryES=RE Bakiye VATPaid=KDV ödenmiş SalaryPaid=Ödenen ücret LT2PaidES=IRPF ödenmiş -LT1PaidES=RE Paid +LT1PaidES=RE Ödenen LT2CustomerES=IRPF satışlar LT2SupplierES=IRPF satınalımlar -LT1CustomerES=RE sales -LT1SupplierES=RE purchases +LT1CustomerES=RE satışlar +LT1SupplierES=RE satınalmalar VATCollected=KDV alınan ToPay=Ödenecek ToGet=Geri alınacak @@ -83,11 +83,11 @@ DateStartPeriod=Başlangıç dönemi tarihi DateEndPeriod=Bitiş dönemi tarihi NewVATPayment=Yeni KDV ödemesi newLT2PaymentES=Yeni IRPF ödemesi -newLT1PaymentES=New RE payment +newLT1PaymentES=Yeni RE ödemesi LT2PaymentES=IRPF Ödemesi LT2PaymentsES=IRPF Ödemeleri -LT1PaymentES=RE Payment -LT1PaymentsES=RE Payments +LT1PaymentES=RE Ödeme +LT1PaymentsES=RE Ödemesi VATPayment=KDV Ödemesi VATPayments=KDV Ödemeleri SocialContributionsPayments=Sosyal katkı payı ödemeleri @@ -121,14 +121,14 @@ ConfirmDeleteSocialContribution=Bu sosyal katkı payını silmek istediğinizden ExportDataset_tax_1=Sosyal katkı payları ve ödemeleri CalcModeVATDebt=Mod <b>%sKDV, taahhüt hesabı%s için</b>. CalcModeVATEngagement=Mod <b>%sKDV, gelirler-giderler%s için</b>. -CalcModeDebt=Mod <b>%sAlacaklar-Borçlar, taahhüt hesabı%s için</b>. -CalcModeEngagement=Mod <b>%sAlacaklar-Borçlar, kasa hesabı%s için</b>. +CalcModeDebt=Mod <b>%sAlacaklar-Borçlar%s</b>, <b>Taahhüt hesabı içindir</b>. +CalcModeEngagement=Mod <b>%sAlacaklar-Borçlar%s</b>, <b>kasa hesabı içindir</b>. CalcModeLT1= Müşteri faturaları için mod <b>%sRE tedrikçi faturaları için mod %s</b> -CalcModeLT1Debt=Mode <b>%sRE on customer invoices%s</b> -CalcModeLT1Rec= Mode <b>%sRE on suppliers invoices%s</b> -CalcModeLT2= Mode <b>%sIRPF on customer invoices - suppliers invoices%s</b> -CalcModeLT2Debt=Mode <b>%sIRPF on customer invoices%s</b> -CalcModeLT2Rec= Mode <b>%sIRPF on suppliers invoices%s</b> +CalcModeLT1Debt=Biçim durumu<b>%sRE, bu müşteri faturası için%s</b> +CalcModeLT1Rec= Biçim durumu<b>%sRE, bu tedarikçi faturası için%s</b> +CalcModeLT2= Biçim durumu<b>%sIRPF, bu müşteri faturası - tedarikçi faturası için%s</b> +CalcModeLT2Debt=Biçim durumu<b>%sIRPF, bu müşteri faturası için%s</b> +CalcModeLT2Rec= Biçim durumu<b>%sIRPF, bu tedarikçi faturası için%s</b> AnnualSummaryDueDebtMode=Gelir ve gider bilançosu, yıllık özet AnnualSummaryInputOutputMode=Gelir ve gider bilançosu, yıllık özet AnnualByCompaniesDueDebtMode=Gelir ve gider bilançosu, üçüncü şahıslara göre ayrıntılı, <b>%sAlacaklar-Borçlar%s</b> söz konusu <b>Taahhüt hesabı</b> modu. @@ -143,15 +143,15 @@ RulesCAIn=- Müşterilerden alınan tüm geçerli fatura ödemelerini içerir.<b DepositsAreNotIncluded=- Teminat faturalarını içermez DepositsAreIncluded=- Teminat faturalarını içerir LT2ReportByCustomersInInputOutputModeES=Üçüncü parti IRPF Raporu -LT1ReportByCustomersInInputOutputModeES=Report by third party RE +LT1ReportByCustomersInInputOutputModeES=RE Üçüncü partiye göre rapor VATReportByCustomersInInputOutputMode=Müşteriye göre alınan ve ödenen KDV raporu VATReportByCustomersInDueDebtMode=Müşteriye göre alınan ve ödenen KDV raporu VATReportByQuartersInInputOutputMode=Orana göre alınan ve ödenen KDV raporu -LT1ReportByQuartersInInputOutputMode=Report by RE rate -LT2ReportByQuartersInInputOutputMode=Report by IRPF rate +LT1ReportByQuartersInInputOutputMode=RE orana göre rapor +LT2ReportByQuartersInInputOutputMode=IRPF orana göre rapor VATReportByQuartersInDueDebtMode=Orana göre alınan ve ödenen KDV raporu -LT1ReportByQuartersInDueDebtMode=Report by RE rate -LT2ReportByQuartersInDueDebtMode=Report by IRPF rate +LT1ReportByQuartersInDueDebtMode=RE Orana göre rapor +LT2ReportByQuartersInDueDebtMode=IRPF Orana göre rapor SeeVATReportInInputOutputMode=Standart bir hesaplama için <b>%sKDV kapsamı%s</b> raporuna bak SeeVATReportInDueDebtMode=Akış seçenekli bir hesaplama için <b>%sKDV akışı%s</b> raporuna bak RulesVATInServices=- Hizmetler için, rapor ödeme tarihine dayalı olarak gerçekte alınan ya da verilen KDV düzenlemelerini içerir. @@ -187,7 +187,7 @@ AccountancyDashboard=Muhasebe özeti ByProductsAndServices=Ürün ve hizmete göre RefExt=Dış ref ToCreateAPredefinedInvoice=Ön tanımlı bir fatura oluşturmak için, standart bir fatura oluşturun, sonra onu doğrulamadan "Ön tanımlı faturaya dönüştür" düğmesine tıklayın. -LinkedOrder=Link to order +LinkedOrder=Siparişe bağlantıla ReCalculate=Yeniden hesapla Mode1=Yöntem 1 Mode2=Yöntem 2 @@ -196,14 +196,14 @@ CalculationRuleDescSupplier=tedarikçiye göre, aynı hesaplama kuralını kulla TurnoverPerProductInCommitmentAccountingNotRelevant=Ürüne göre ciro raporu, <b>nakit muhasebesi</b>modu için uygun değildir. Bu rapor yalnızca, <b>tahakkuk muhasebesi</b> modu için uygundur (muhasebe modülü ayarlarına bakın). CalculationMode=Hesaplama modu AccountancyJournal=Muhasebe kodu günlüğü -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Default accountancy code to buy products -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Default accountancy code to sell products -ACCOUNTING_SERVICE_BUY_ACCOUNT=Default accountancy code to buy services -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Default accountancy code to sell services -ACCOUNTING_VAT_ACCOUNT=Default accountancy code for collecting VAT -ACCOUNTING_VAT_BUY_ACCOUNT=Default accountancy code for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accountancy code by default for customer thirdparties -ACCOUNTING_ACCOUNT_SUPPLIER=Accountancy code by default for supplier thirdparties -CloneTax=Clone a social contribution -ConfirmCloneTax=Confirm the clone of a social contribution -CloneTaxForNextMonth=Clone it for next month +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Ürün alımı için varsayılan muhasebe kodu +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Ürün satışı için varsayılan muhasebe kodu +ACCOUNTING_SERVICE_BUY_ACCOUNT=Hizmet alımı için varsayılan muhasebe kodu +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Hizmet satışı için varsayılan muhasebe kodu +ACCOUNTING_VAT_ACCOUNT=Alınan KDV için varsayılan muhasebe kodu +ACCOUNTING_VAT_BUY_ACCOUNT=Ödenen KDV için varsayılan muhasebe kodu +ACCOUNTING_ACCOUNT_CUSTOMER=Müşteri üçüncü partiler için varsayılan muhasebe kodu +ACCOUNTING_ACCOUNT_SUPPLIER=Tedarikçi üçüncü partiler için varsayılan muhasebe kodu +CloneTax=Bir sosyal katkı payı kopyala +ConfirmCloneTax=Bir sosyal katkı payı kopyalanmasını onayla +CloneTaxForNextMonth=Sonraki aya kopyala diff --git a/htdocs/langs/tr_TR/contracts.lang b/htdocs/langs/tr_TR/contracts.lang index 068824b8b544c8499819ec62b8742627e0871e55..fcc10813061918d796679eeadd43860ad539aff6 100644 --- a/htdocs/langs/tr_TR/contracts.lang +++ b/htdocs/langs/tr_TR/contracts.lang @@ -27,7 +27,7 @@ MenuRunningServices=Yürürlükte olan hizmetler MenuExpiredServices=Süresi dolmuş hizmetler MenuClosedServices=Kapalı hizmetler NewContract=Yeni sözleşme -AddContract=Sözleşme ekle +AddContract=Sözleşme oluştur SearchAContract=Bir sözleşme ara DeleteAContract=Bir sözleşme sil CloseAContract=Bir sözleşme kapat diff --git a/htdocs/langs/tr_TR/cron.lang b/htdocs/langs/tr_TR/cron.lang index 34400a5094a28bb337cfd58513e9ec7995f7e2d8..0a6fe0bcc538c34519e7944a496db25323cd2c0f 100644 --- a/htdocs/langs/tr_TR/cron.lang +++ b/htdocs/langs/tr_TR/cron.lang @@ -1,10 +1,8 @@ # Dolibarr language file - Source file is en_US - cron -# # About page About = Hakkında CronAbout = Cron hakkında CronAboutPage = Cron hakkında sayfası - # Right Permission23101 = Planlı görev oku Permission23102 = Planlı görev oluştur/güncelle @@ -70,7 +68,7 @@ CronStatusActiveBtn=Etkin CronStatusInactiveBtn=Engelle CronTaskInactive=Bu iş devre dışı CronDtLastResult=Son sonuç tarihi -CronId=Id +CronId=Kimlik CronClassFile=Sınıflar (dosyaadı.sınıf.php) CronModuleHelp=Dolibarr modül dizini adı (aynı zamanda dış Dolibarr modülü ile de çalışır). <BR> Örneğin; Dolibarr Ürün nesnesi alım yöntemi /htdocs/<u>product</u>/class/product.class.php, modül değeri <i>product</i> CronClassFileHelp=Yüklenecek dosya adı. <BR> Örneğin; Dolibarr Ürün nesnesi alım yöntemi /htdocs/product/class/<u>product.class.php</u>, sınıf dosya adı değeri <i>product.class.php</i> diff --git a/htdocs/langs/tr_TR/dict.lang b/htdocs/langs/tr_TR/dict.lang index 5ed9a0a2d67ff4d674552c7c5d3e2ff5e4730d58..f88670ba0b98e4b80b4f454ab0f0f1eb82156d56 100644 --- a/htdocs/langs/tr_TR/dict.lang +++ b/htdocs/langs/tr_TR/dict.lang @@ -318,7 +318,7 @@ PaperFormatEUA6=Biçim A6 PaperFormatUSLETTER=Mektup Biçimi US PaperFormatUSLEGAL=Yasal Biçim US PaperFormatUSEXECUTIVE=İş Biçimi US -PaperFormatUSLEDGER=Defter/Tablet +PaperFormatUSLEDGER=Defter/Tablet Biçimi PaperFormatCAP1=Biçim P1 Kanada PaperFormatCAP2=Biçim P2 Kanada PaperFormatCAP3=Biçim P3 Kanada diff --git a/htdocs/langs/tr_TR/donations.lang b/htdocs/langs/tr_TR/donations.lang index 4af09da18a33a18130db6171136a3a9eb4b46d62..0740b8dcd07f73d475bc4c3b6e1742f260ceb934 100644 --- a/htdocs/langs/tr_TR/donations.lang +++ b/htdocs/langs/tr_TR/donations.lang @@ -4,7 +4,7 @@ Donations=Bağışlar DonationRef=Bağış ref. Donor=Bağışçı Donors=Bağışçılar -AddDonation=Bir bağış ekle +AddDonation=Bir bağış oluştur NewDonation=Yeni bağış ShowDonation=Bağış göster DonationPromise=Hibe sözü @@ -30,4 +30,4 @@ SearchADonation=Bağış ara DonationRecipient=Bağış alıcısı ThankYou=Teşekkürler IConfirmDonationReception=Alıcı, bağış olarak aşağıdaki tutarı aldığını belirtir -MinimumAmount=Minimum amount is %s +MinimumAmount=Enaz miktar %s diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang index 871e366a1b041771b93d7a2e7e32332febe7c917..0111fb8633ec4f17f9874a9a750e3e8441e07cda 100644 --- a/htdocs/langs/tr_TR/errors.lang +++ b/htdocs/langs/tr_TR/errors.lang @@ -37,7 +37,7 @@ ErrorSupplierCodeRequired=Tedarikçi kodu gereklidir ErrorSupplierCodeAlreadyUsed=Tedarikçi kodu zaten kullanılmaktadır ErrorBadParameters=Hatalı parametreler ErrorBadValueForParameter=Hatalı '%s' parametresi için yanlış '%s' değeri -ErrorBadImageFormat=Görüntü dosyası desteklenen bir biçimde değil. +ErrorBadImageFormat=Resim dosyası desteklenen biçimde değil (PHP niz bu biçimdeki resimlerin dönüştürülme işlevini desteklemez) ErrorBadDateFormat=%s değeri yanlış tarih biçiminde ErrorWrongDate=Tarih doğru değil! ErrorFailedToWriteInDir=%s dizinine yazılamadı @@ -114,6 +114,7 @@ ErrorLoginDoesNotExists=<b>%s</b> girişli kullanıcı bulunamadı. ErrorLoginHasNoEmail=Bu kullanıcının e-posta adresi yoktur. İşlem iptal edildi. ErrorBadValueForCode=Güvenlik kodu için hatalı değer. Yeni değer ile tekrar deneyin... ErrorBothFieldCantBeNegative=%s ve %s alanlarının ikisi birden eksi olamaz +ErrorQtyForCustomerInvoiceCantBeNegative=Müşteri faturasındaki kalem miktarı eksi olamaz ErrorWebServerUserHasNotPermission=Web sunucusunu çalıştırmak için kullanılan <b>%s</b> kullanıcı hesabnın bunun için izni yok ErrorNoActivatedBarcode=Etkinleştirilmiş barkod türü yok ErrUnzipFails=% ZipArchive ile sıkıştırılamıyor @@ -155,5 +156,5 @@ WarningUsingThisBoxSlowDown=Uyarı, bu kutuyu kullanmak kutuyu gösteren tüm sa WarningClickToDialUserSetupNotComplete=Kullanıcınızın ClickToDial bilgileri ayarı tamamlanmamış (kullanıcı kartınızdaki ClickToDial tabına bakın) WarningNotRelevant=Bu veri kümesi için alakasız işlem WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Bu özellik, ekran görme engelliler için ya da metin tarayıcılar için ayarlandığında devre dışı kalır. -WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s. -WarningTooManyDataPleaseUseMoreFilters=Too many data. Please use more filters +WarningPaymentDateLowerThanInvoiceDate=Ödeme tarihi (%s) fatura tarihinden (%s) daha önce, bu fatura için %s. +WarningTooManyDataPleaseUseMoreFilters=Çok fazla veri. Lütfen daha çok süzgeç kullanın diff --git a/htdocs/langs/tr_TR/exports.lang b/htdocs/langs/tr_TR/exports.lang index e6c8d770ad0a9327c0b942311115c1477372e986..c4baa85d1b9441d3c2a6d6fc718cfe84155c6317 100644 --- a/htdocs/langs/tr_TR/exports.lang +++ b/htdocs/langs/tr_TR/exports.lang @@ -47,7 +47,7 @@ Sheet=Sayfa NoImportableData=İçeaktarılacak veri yok (veri içeaktarmaya izin veren tanımlara sahip bir modül yok) FileSuccessfullyBuilt=Dışaaktarma dosyası oluşturuldu SQLUsedForExport=Dışaaktarılacakı dosyayı oluşturmak için kullanılan SQL sorgusu -LineId=Satır No +LineId=Satır no LineDescription=Satır açıklaması LineUnitPrice=Satırın birim fiyat LineVATRate=Satırın KDV oranı @@ -109,7 +109,7 @@ DataCodeIDSourceIsInsertedInto=Koddan bulunan üst satır kodu , şu alana eklen SourceRequired=Veri değeri zorunludur SourceExample=Olası veri değeri örneği ExampleAnyRefFoundIntoElement=<b>%s</b> bileşeni için bulunan ilgi -ExampleAnyCodeOrIdFoundIntoDictionary=<b>%s</b> sözlüğünde bulunan herhangi bir kod (veya id) +ExampleAnyCodeOrIdFoundIntoDictionary=<b>%s</b> sözlüğünde bulunan herhangi bir kod (veya kimlik) CSVFormatDesc=<b>Virgülle Ayrılmış Değer</b> dosya biçimi (.csv).<br>Alanların birbirinden ayıraç ile ayrıldığı bir metin dosyası biçimi [ %s ]. Bir alan içeriğinde ayıraç bulunursa, yuvarlatma karakteri ile alan yuvarlanır [ %s ]. Yuvarlatma karakterinden çıkmak için Escape karakteri kullanılır [%s]. Excel95FormatDesc=<b>Excel</b> dosya biçimi (.xls)<br>Doğal Excel 95 biçimi (BIFF5). Excel2007FormatDesc=<b>Excel</b> dosya biçimi (.xlsx)<br>Doğal Excel 2007 biçimi (ÇalışmasayfasıML). diff --git a/htdocs/langs/tr_TR/help.lang b/htdocs/langs/tr_TR/help.lang index 63ddb6a853c69940eebedfbd39bde5b4e1190406..abce4eafbfb10336b167eb4005984c26fd9e4a96 100644 --- a/htdocs/langs/tr_TR/help.lang +++ b/htdocs/langs/tr_TR/help.lang @@ -10,7 +10,7 @@ DolibarrHelpCenter=Dolibarr yardım ve destek merkezi ToGoBackToDolibarr=Aksi takdirde Dolibarr’ı kullanmak için<a href="%s">burayı tıklayın</a> TypeOfSupport=Destek Kaynağı TypeSupportCommunauty=Genel (ücretsiz) -TypeSupportCommercial=Ticari +TypeSupportCommercial=Ticaret TypeOfHelp=Tür NeedHelpCenter=Yardım veya desteğe mi gereksiniminiz var? Efficiency=Verim diff --git a/htdocs/langs/tr_TR/holiday.lang b/htdocs/langs/tr_TR/holiday.lang index dd4331c8e6c0f9e6ba8b66417a14cec81593d4c9..0d918690ab68b328678164bb1cd46318fdfd69a5 100644 --- a/htdocs/langs/tr_TR/holiday.lang +++ b/htdocs/langs/tr_TR/holiday.lang @@ -1,13 +1,13 @@ # Dolibarr language file - Source file is en_US - holiday HRM=IK -Holidays=Leaves -CPTitreMenu=Leaves +Holidays=İzinler +CPTitreMenu=İzinler MenuReportMonth=Aylık özet -MenuAddCP=Make a leave request -NotActiveModCP=You must enable the module Leaves to view this page. -NotConfigModCP=You must configure the module Leaves 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 any available day. -AddCP=Make a leave request +MenuAddCP=Bir izin isteği yap +NotActiveModCP=Bu sayfayı görmek için İzinler modülünü etkinleştirmelisiniz +NotConfigModCP=Bu sayfayı görmeniz için İzinler modülünü yapılandırmalısınız. Bunu yapmak için <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> bağlantısına tıklayın </ a>. +NoCPforUser=Hiç uygun gününüz yok. +AddCP=Bir izin isteği yap Employe=Çalışan DateDebCP=Başlama tarihi DateFinCP=Bitiş tarihi @@ -18,24 +18,24 @@ ApprovedCP=Onaylandı CancelCP=İptal edildi RefuseCP=Reddedildi ValidatorCP=Onaylayan -ListeCP=List of leaves +ListeCP=İzinler listesi ReviewedByCP=İnceleyen DescCP=Açıklama -SendRequestCP=Create leave request -DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them. -MenuConfCP=Edit balance of leaves -UpdateAllCP=Update the leaves -SoldeCPUser=Leaves balance is <b>%s</b> days. +SendRequestCP=İzin isteği oluştur +DelayToRequestCP=İzin istekleri enaz <b>%s gün</b> önce yapolmalıdır. +MenuConfCP=İzin bakiyelerini düzenle +UpdateAllCP=İzinleri güncelle +SoldeCPUser=İzin bakiyesi <b>%s</b> gündür. ErrorEndDateCP=Başlama tarihinden büyük bir bitiş tarihi seçmelisiniz. ErrorSQLCreateCP=Oluşturma sırasında bir SQL hatası oluştu: -ErrorIDFicheCP=An error has occurred, the leave request does not exist. +ErrorIDFicheCP=Bir hata oluştu, izin isteği yok. ReturnCP=Önceki sayfaya dön -ErrorUserViewCP=You are not authorized to read this leave request. -InfosCP=Information of the leave request +ErrorUserViewCP=İzin isteklerini okumak için yetkiniz yok. +InfosCP=İzin isteği bilgisi InfosWorkflowCP=Bilgi işakışı RequestByCP=İsteyen -TitreRequestCP=Leave request -NbUseDaysCP=Number of days of vacation consumed +TitreRequestCP=İzin isteği +NbUseDaysCP=Tüketilen tatil gün sayısı EditCP=Düzenle DeleteCP=Sil ActionValidCP=Doğrula @@ -43,26 +43,26 @@ ActionRefuseCP=Reddet ActionCancelCP=İptal StatutCP=Durumu SendToValidationCP=Doğrulamaya gönder -TitleDeleteCP=Delete the leave request -ConfirmDeleteCP=Confirm the deletion of this leave request? -ErrorCantDeleteCP=Error you don't have the right to delete this leave request. -CantCreateCP=You don't have the right to make leave requests. -InvalidValidatorCP=You must choose an approbator to your leave request. +TitleDeleteCP=İzin isteği sil +ConfirmDeleteCP=Bu izin isteğinin silinmesini onaylıyor musunuz? +ErrorCantDeleteCP=Hata, bu izin isteğini silmek için yetkiniz yok. +CantCreateCP=İzin isteği yapmak için yetkiniz yok. +InvalidValidatorCP=İzin isteğiniz için bir onaylayıcı seçmelisiniz. UpdateButtonCP=Güncelle -CantUpdate=You cannot update this leave request. +CantUpdate=Bu izin isteğini güncelleyemezsiniz. NoDateDebut=Bir başlama tarihi seçmelisiniz. NoDateFin=Bir bitiş tarihi seçmelisiniz. -ErrorDureeCP=Tatil isteğiniz çalışma günlerini kapsamıyor. -TitleValidCP=Tatil isteğini onayla -ConfirmValidCP=Are you sure you want to approve the leave request? +ErrorDureeCP=İzin isteğiniz çalışma günü içermiyor. +TitleValidCP=Izin isteğini onayla +ConfirmValidCP=Izin isteğini onaylamak istediğinizden emin misiniz? DateValidCP=Tarih onaylandı -TitleToValidCP=Send leave request -ConfirmToValidCP=Are you sure you want to send the leave request? -TitleRefuseCP=Tatil isteğini reddet -ConfirmRefuseCP=Are you sure you want to refuse the leave request? +TitleToValidCP=İzin isteği gönder +ConfirmToValidCP=Izin isteğini göndermek istediğinizden emin misiniz? +TitleRefuseCP=İzin isteğini reddet +ConfirmRefuseCP=Izin isteğini reddetmek istediğinizden emin misiniz? NoMotifRefuseCP=İsteği reddetmek için bir neden seçmelisiniz. -TitleCancelCP=Tatil isteğini iptal et -ConfirmCancelCP=Are you sure you want to cancel the leave request? +TitleCancelCP=İzin isteğini iptal et +ConfirmCancelCP=Izin isteğini iptal etmek istediğinizden emin misiniz? DetailRefusCP=Ret nedeni DateRefusCP=Ret tarihi DateCancelCP=İptal tarihi @@ -72,42 +72,42 @@ MotifCP=Neden UserCP=Kullanıcı ErrorAddEventToUserCP=Özel izin eklenirken hata oluştu. AddEventToUserOkCP=Özel izin eklenmesi tamamlanmıştır. -MenuLogCP=View logs of leave requests -LogCP=Log of updates of available vacation days +MenuLogCP=İzin isteği kayıtlarına bak +LogCP=Uygun tatil günlerinin güncellenme kayıtı ActionByCP=Uygulayan UserUpdateCP=Kullanıcı için PrevSoldeCP=Önceki Bakiye NewSoldeCP=Yeni Bakiye -alreadyCPexist=Bu dönem için bir tatil isteği zaten yapılmış. +alreadyCPexist=Bu dönem için bir izin isteği zaten yapılmış. UserName=Adı Employee=Çalışan -FirstDayOfHoliday=First day of vacation -LastDayOfHoliday=Last day of vacation +FirstDayOfHoliday=Tatilin birinci günü +LastDayOfHoliday=Tatilin son günü HolidaysMonthlyUpdate=Aylık güncelleme ManualUpdate=Elle güncelleme -HolidaysCancelation=Leave request cancelation +HolidaysCancelation=İzin isteği iptali ## Configuration du Module ## -ConfCP=Tatil modülünün yapılandırılması +ConfCP=İzin isteği modülünün yapılandırılması DescOptionCP=Seçeneğin tanımı ValueOptionCP=Değer -GroupToValidateCP=Group with the ability to approve vacation +GroupToValidateCP=İzin isteklerini olabilirliğine göre gruplandır ConfirmConfigCP=Yapılandırmayı onayla -LastUpdateCP=Last automatic update of vacation +LastUpdateCP=İzin tahsislerini otomatik güncelle UpdateConfCPOK=Güncelleme başarılı ErrorUpdateConfCP=Güncelleme sırasında bir hata oluştu, lütfen yeniden deneyin. -AddCPforUsers=Kullanıcıların tatil bakiyelerini eklemek için lütfen <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">buraya tıklayın</a>. -DelayForSubmitCP=Tatil için son başvuru tarihi -AlertapprobatortorDelayCP=Eğer tatil istekleri son tarihle eşleşmezse onaylayanı uyar -AlertValidatorDelayCP=Préevent the approbator if the leave request exceed delay -AlertValidorSoldeCP=Prevent the approbator if the leave request exceed the balance -nbUserCP=Number of users supported in the module Leaves -nbHolidayDeductedCP=Number of holidays to be deducted per day of vacation taken -nbHolidayEveryMonthCP=Number of vacation days added every month -Module27130Name= Management of leave requests -Module27130Desc= Management of leave requests -TitleOptionMainCP=Main settings of Leave request -TitleOptionEventCP=Settings of leave requets for events +AddCPforUsers=Kullanıcıların izin tahsisleri bakiyelerini <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">yoluyla eklemek için buraya tıklayın</a>. +DelayForSubmitCP=İzin isteği yapmak için son tarih +AlertapprobatortorDelayCP=İzin isteği son tarihe uymuyorsa onaylamayı engelle +AlertValidatorDelayCP=İzin isteği süreyi geçiyorsa onaylamayı engelle +AlertValidorSoldeCP=İzin isteği izin bakiyesini aşıyorsa onaylamayı engelle +nbUserCP=İzinler modülünün desteklediği kullanıcı sayısı +nbHolidayDeductedCP=Alınan izinden düşülecek izin günü sayısı +nbHolidayEveryMonthCP=Her ay eklenen izin günü sayısı +Module27130Name= İzin istekleri yönetimi +Module27130Desc= İzin istekleri yönetimi +TitleOptionMainCP=İzin istekleri ana ayarları +TitleOptionEventCP=Etkiinlikler için izin istekleri ayarları ValidEventCP=Doğrula UpdateEventCP=Etkinlikleri güncelle CreateEventCP=Oluştur @@ -127,23 +127,23 @@ UpdateEventOptionCP=Güncelle ErrorMailNotSend=Eposta gönderilirken bir hata oluştu: NoCPforMonth=Bu ay hiç izin yok. nbJours=Gün sayısı -TitleAdminCP=Configuration of Leaves +TitleAdminCP=İzinlerin Yapılandırılması #Messages Hello=Merhaba -HolidaysToValidate=Validate leave requests -HolidaysToValidateBody=Below is a leave request to validate -HolidaysToValidateDelay=This leave request will take place within a period of less than %s days. -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days. -HolidaysValidated=Validated leave requests -HolidaysValidatedBody=Your leave request for %s to %s has been validated. -HolidaysRefused=Request denied -HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason : -HolidaysCanceled=Canceled leaved request -HolidaysCanceledBody=Your leave request for %s to %s has been canceled. -Permission20000=Read you own leave requests -Permission20001=Create/modify your leave requests -Permission20002=Create/modify leave requests for everybody -Permission20003=Delete leave requests -Permission20004=Setup users available vacation days -Permission20005=Review log of modified leave requests -Permission20006=Read leaves monthly report +HolidaysToValidate=İzin isteği doğrula +HolidaysToValidateBody=Doğrulanacak izin isteği aşağıdadır +HolidaysToValidateDelay=Bu izin isteği %s günden kısa bir sürede gerçekleşecektir. +HolidaysToValidateAlertSolde=Bu izin isteğini yapan kullanıcının yeterli uygun günü yok. +HolidaysValidated=Doğrulanmış izin istekleri +HolidaysValidatedBody=İzin isteğiniz %s - %s arası doğrulanmıştır. +HolidaysRefused=İstek reddedildi +HolidaysRefusedBody=%s - %s arası izin isteğiniz aşağıdaki nedenden dolayı reddedilmiştir: +HolidaysCanceled=İptal edilen izin istekleri +HolidaysCanceledBody=%s - %s arası izin isteğiniz iptal edilmiştir. +Permission20000=Kendi izin isteklerini oku +Permission20001=İzin isteklerinizi oluşturun/düzenleyin +Permission20002=Herkes için izin isteği oluştur/düzenle +Permission20003=İzin isteği sil +Permission20004=Kullanıcıların uygun tatil günlerini ayarla +Permission20005=Değiştirilmiş izin izin istekleri kayıtlarını incele +Permission20006=Aylık izin raporu oku diff --git a/htdocs/langs/tr_TR/mails.lang b/htdocs/langs/tr_TR/mails.lang index 9e71844c4a454aa87090dd6968635449082bb578..a6086f765c219373a1361e4383afc99c0dc56dbf 100644 --- a/htdocs/langs/tr_TR/mails.lang +++ b/htdocs/langs/tr_TR/mails.lang @@ -32,7 +32,7 @@ CreateMailing=Eposta oluştur MailingDesc=Bu sayfa bir gruBa Eposta göndermenizi sağlar. MailingResult=Eposta sonuçlarını gönderiyor TestMailing=Eposta testi -ValidMailing=Geçerli Eposta +ValidMailing=Geçerli eposta ApproveMailing=Eposta onayla MailingStatusDraft=Taslak MailingStatusValidated=Doğrulanmış @@ -49,7 +49,7 @@ Unsuscribe=Aboneliği kaldır MailingStatusNotContact=Bir daha görüşme ErrorMailRecipientIsEmpty=Eposta alıcısı boş WarningNoEMailsAdded=Alıcının listesine ekli yeni Eposta yok. -ConfirmValidMailing=Bu Epostayı doğrulamak istediğinizden emin misiniz? +ConfirmValidMailing=Bu epostayı doğrulamak istediğinizden emin misiniz? ConfirmResetMailing=Uyarı, Bu <b>%s</b> Epostasını yeniden başlatarak, bu Epostanın toplu gönderiminin başka bir zaman yapılmasını sağlarsınız. Bunu yapmak istediğinizden emin misiniz? ConfirmDeleteMailing=Bu Epostayı silmek istediğinizden emin misiniz? NbOfRecipients=Alıcı sayısı @@ -107,7 +107,7 @@ MailingArea=Eposta alanı LastMailings=Son %s eposta TargetsStatistics=Hedef istatistikleri NbOfCompaniesContacts=Şirketlerin eşsiz kişileri -MailNoChangePossible=Doğrulanmış Epostaların alıcıları değiştirilemez +MailNoChangePossible=Doğrulanmış epostaların alıcıları değiştirilemez SearchAMailing=Eposta ara SendMailing=E-posta gönder SendMail=E-posta gönder @@ -133,6 +133,6 @@ Notifications=Bildirimler NoNotificationsWillBeSent=Bu eylem ve firma için hiçbir Eposta bildirimi planlanmamış ANotificationsWillBeSent=Eposta ile 1 bildirim gönderilecektir SomeNotificationsWillBeSent=Epostayala %s bildirim gönderilecektir -AddNewNotification=Yeni bir e-posta bildirimi isteği etkinleştir -ListOfActiveNotifications=Tüm etkin Eposta bildirimi istekleri +AddNewNotification=Yeni bir eposta bildirim hedefi etkinleştir +ListOfActiveNotifications=Bütün etkin eposta bildirim hedeflerini listele ListOfNotificationsDone=Gönderilen tüm e-posta bildirimleri listesi diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index 622075d57f988e29537fe13ac5e1d7821ff3dbd8..87b19cf7d91c8064dc1d0d7c2b252c586cbb4dbe 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -7,7 +7,7 @@ DIRECTION=ltr FONTFORPDF=DejaVuSans FONTSIZEFORPDF=8 SeparatorDecimal=, -SeparatorThousand=None +SeparatorThousand=, FormatDateShort=%d/%m/%Y FormatDateShortInput=%d/%m/%Y FormatDateShortJava=dd/MM/yyyy @@ -58,12 +58,12 @@ ErrorCantLoadUserFromDolibarrDatabase=Dolibarr veritabanında kullanıcı <b>%s< ErrorNoVATRateDefinedForSellerCountry=Hata, ülke '%s' için herhangi bir KDV oranı tanımlanmamış. ErrorNoSocialContributionForSellerCountry=Hata, ülke %s için herhangi bir sosyal güvenlik primi türü tanımlanmış. ErrorFailedToSaveFile=Hata, dosya kaydedilemedi. -ErrorOnlyPngJpgSupported=Hata yalnızca .Png ve .jpg görüntü dosya formatları desteklenmektedir. -ErrorImageFormatNotSupported=PHP bu biçimdeki görüntüleri dönüştürecek işlevleri desteklemez. SetDate=Ayar tarihi SelectDate=Bir tarih seç SeeAlso=See also %s BackgroundColorByDefault=Varsayılan arkaplan rengi +FileNotUploaded=Dosya yüklenmemiş +FileUploaded=Dosya yüklemesi başarılı FileWasNotUploaded=Bu ekleme için bir dosya seçildi ama henüz gönderilmedi. Bunun için “Dosya ekle” ye tıklayın. NbOfEntries=Kayıt sayısı GoToWikiHelpPage=Çevrimiçi yardım oku (Internet erişimi gerekir) @@ -266,6 +266,7 @@ Afternoon=Öğleden sonra Quadri=Çeyrek MonthOfDay=Ayın günü HourShort=H +MinuteShort=ay Rate=Oran UseLocalTax=Vergi dahil Bytes=Bayt @@ -340,6 +341,7 @@ FullList=Tüm liste Statistics=İstatistikler OtherStatistics=Diğer istatistikler Status=Durum +Favorite=Sık kullanılan ShortInfo=Bilgi. Ref=Ref. RefSupplier=Ref. tedarikçi @@ -490,7 +492,7 @@ ReportDescription=Açıklama Report=Rapor Keyword=Anahtar kelime Legend=Gösterge -FillTownFromZip=İli Posta Kodundan (zip) al +FillTownFromZip=İli Posta Kodundan çıkart Fill=Doldur Reset=Sıfırla ShowLog=Günlüğü göster @@ -676,10 +678,10 @@ SetDemandReason=Kaynağı ayarlayın SetBankAccount=Banka Hesabı Tanımla AccountCurrency=Hesap Para Birimi ViewPrivateNote=Notları izle -XMoreLines=%s gizli satır(lar) +XMoreLines=%s gizli satır PublicUrl=Genel URL AddBox=Kutu ekle - +SelectElementAndClickRefresh=Bir öğe seçin ve Yenile'ye tıkla # Week day Monday=Pazartesi Tuesday=Salı diff --git a/htdocs/langs/tr_TR/margins.lang b/htdocs/langs/tr_TR/margins.lang index 05b423db433e54bddc759c405e6959ee14d1f8d9..f8b7865faf400dc8518602c0ec31b33be559d5ac 100644 --- a/htdocs/langs/tr_TR/margins.lang +++ b/htdocs/langs/tr_TR/margins.lang @@ -38,4 +38,6 @@ BuyingCost=Maliyet fiyatı UnitCharges=Birim masrafları Charges=Masraflar AgentContactType=Ticari temsilci ilgili tipi -AgentContactTypeDetails=Ticari temsilciler tarafından oran raporları ile ilişkilendirilecek kişi türünü (faturalarla bağlantılı) tanımlayın +AgentContactTypeDetails=Satış temsilcisine göre oran raporu için kullanılacak kişi türünü (faturala bağlantılı) tanımla +rateMustBeNumeric=Oran sayısal bir değer olmalı +markRateShouldBeLesserThan100=İşaretli oran 100 den daha düşük olmalı diff --git a/htdocs/langs/tr_TR/orders.lang b/htdocs/langs/tr_TR/orders.lang index 2085c26d3d15243dd0ae11937ca1842e66f804c1..5e2770ce8e74e3b91937444c93d46773756c9019 100644 --- a/htdocs/langs/tr_TR/orders.lang +++ b/htdocs/langs/tr_TR/orders.lang @@ -65,7 +65,7 @@ ValidateOrder=Doğrulamak amacıyla UnvalidateOrder=Siparişten doğrulamayı kaldır DeleteOrder=Sipariş sil CancelOrder=Siparişi iptal et -AddOrder=Sipariş ekle +AddOrder=Sipariş oluştur AddToMyOrders=Siparişlerime ekle AddToOtherOrders=Diğer siparişlere ekle AddToDraftOrders=Taslak siparişe ekle @@ -137,7 +137,7 @@ OrderSource1=Internet OrderSource2=Posta kampanyası OrderSource3=Telefon kampanyası OrderSource4=Faks kampanyası -OrderSource5=Ticari +OrderSource5=Ticaret OrderSource6=Mağaza QtyOrdered=Sipariş miktarı AddDeliveryCostLine=Siparişin ağırlığını belirten bir teslimat satırı ekleyin diff --git a/htdocs/langs/tr_TR/products.lang b/htdocs/langs/tr_TR/products.lang index a16fca7fd9e01692234e1b2f80eb94d30e904987..23c2de284d357635621edfa6b9afab85d2eb3c65 100644 --- a/htdocs/langs/tr_TR/products.lang +++ b/htdocs/langs/tr_TR/products.lang @@ -14,9 +14,9 @@ NewService=Yeni hizmet ProductCode=Ürün kodu ServiceCode=Hizmet kodu ProductVatMassChange=Toplu KDV değiştir -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=Bu sayfa, ürünler ve hizmetler için tanımlanmış KDV oranının bir değerden başka bir değere değiştirilmesi için kullanılır. Uyarı, bu değişiklik tüm veritabanına uygulanır. MassBarcodeInit=Toplu barkod başlatma -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=Bu sayfa, barkod tanımlanmamış nesneler üzerinde barkod başlatmak için kullanılabilir. Önce barkod modülü kurulumunun tamamlandığını denetleyin. ProductAccountancyBuyCode=Muhasebe kodu (alış) ProductAccountancySellCode=Muhasebe kodu (satış) ProductOrService=Ürün veya Hizmet @@ -102,7 +102,7 @@ AddPhoto=Fotoğraf ekle ListOfStockMovements=Stok hareketleri listesi BuyingPrice=Alış Fiyat SupplierCard=Tedarikçi kartı -CommercialCard=Ticari Kart +CommercialCard=Ticaret Kartı AllWays=Stokta ürün bulmak için yol NoCat=Ürününüz herhangi bir kategoride değil PrimaryWay=Birincil yol @@ -117,12 +117,12 @@ ServiceLimitedDuration=Eğer ürün sınırlı süreli bir hizmetse: MultiPricesAbility=Ürünler/hizmetler için çok seviyeli fiyat MultiPricesNumPrices=Fiyat sayısı MultiPriceLevelsName=Fiyat kategorileri -AssociatedProductsAbility=Yan ürünleri etkinleştir -AssociatedProducts=Yan ürünler -AssociatedProductsNumber=Bu ürünü oluşturan ürün sayısı -ParentProductsNumber=Ana ürün numarası -IfZeroItIsNotAVirtualProduct=0 ise, bu ürün bir sanal ürün değildir -IfZeroItIsNotUsedByVirtualProduct=0 ise, bu ürün hiçbir sanal ürün tarafından kullanılmıyor +AssociatedProductsAbility=Sanal paket özelliğini etkinleştir +AssociatedProducts=Paket ürün +AssociatedProductsNumber=Bu sanal paket ürünü oluşturan ürün sayısı +ParentProductsNumber=Ana paket ürünü sayısı +IfZeroItIsNotAVirtualProduct=Eğer 0 ise, bu ürün bir sanal paket ürünü değildir +IfZeroItIsNotUsedByVirtualProduct=Eğer 0 ise, bu ürün her hangi bir sanal paket ürünü tarafından kullanılmaz EditAssociate=Ilişkilendir Translation=Çeviri KeywordFilter=Anahtar kelime süzgeçi @@ -132,7 +132,7 @@ AddDel=Ekle/Sil Quantity=Miktar NoMatchFound=Eşleşme bulunamadı ProductAssociationList=İlgili ürün/hizmet listesi: ürün/hizmet adı (miktar etkilenir) -ProductParentList=Bu ürünün bir bileşen olan ürünle/hizmetle ilgili liste +ProductParentList=Bu ürünü bir bileşen olarak kullanan ürünlerin/hizmetlerin listesi ErrorAssociationIsFatherOfThis=Seçilen üründen biri güncel ürünün üstü konumundadır DeleteProduct=Bir ürün/hizmet sil ConfirmDeleteProduct=Bu ürünü/hizmeti silmek istediğinizden emin misiniz? @@ -179,7 +179,7 @@ CloneProduct=Ürün veya hizmet klonla ConfirmCloneProduct=Ürün veya hizmet klonlamak istediğinizden emin misiniz <b>%s</b> ? CloneContentProduct=Ürünün/hizmet bütün temel bilgilerini klonla ClonePricesProduct=Ana bilgileri ve fiyatları klonla -CloneCompositionProduct=Sanal ürün/hizmet kopyala +CloneCompositionProduct=Paket ürünü/hizmeti kopyala ProductIsUsed=Bu ürün kullanılır. NewRefForClone=Yeni ürün/hizmet ref. CustomerPrices=Müşteri fiyatları @@ -233,7 +233,7 @@ DefinitionOfBarCodeForProductNotComplete=Barkod türü tanımı ve değeri %s ü DefinitionOfBarCodeForThirdpartyNotComplete=Barkod türü tanımı ve değeri %s ürünü için tamamlanmamıştır. BarCodeDataForProduct=%s Ürünü için barkod bilgisi : BarCodeDataForThirdparty=%s Üçüncü parti için barkod bilgisi : -ResetBarcodeForAllRecords=Define barcode value for all records (this will also reset barcode value already defined with new values) +ResetBarcodeForAllRecords=Bütün kayıtlar için barkod değeri tanımla (bu işlem halihazırda yeni değerler tanımlanmış barkod değerlerini sıfırlayacaktır) PriceByCustomer=Müşteri fiyatı PriceCatalogue=Ürün/Servis için birim fiyat PricingRule=Fiyatlandırma yetkileri diff --git a/htdocs/langs/tr_TR/projects.lang b/htdocs/langs/tr_TR/projects.lang index c945635a36af71495ef40441fbb99f73d10fdeda..09343d289687d240a019d329723175ff7e0f903f 100644 --- a/htdocs/langs/tr_TR/projects.lang +++ b/htdocs/langs/tr_TR/projects.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - projects RefProject=Referans Proje -ProjectId=Proje Id +ProjectId=Proje Kimliği Project=Proje Projects=Projeler SharedProject=Herkes @@ -14,7 +14,7 @@ TasksDesc=Bu görünüm tüm projeleri ve görevleri içerir (size verilen kulla Myprojects=Projelerim ProjectsArea=Projeler alanı NewProject=Yeni proje -AddProject=Proje ekle +AddProject=Proje oluştur DeleteAProject=Bir proje sil DeleteATask=Bir görev sil ConfirmDeleteAProject=Bu projeyi silmek istediğinizden emin misiniz? @@ -45,7 +45,7 @@ TaskDateStart=Görev başlama tarihi TaskDateEnd=Görev bitiş tarihi TaskDescription=Görev açıklaması NewTask=Yeni görev -AddTask=Görev ekle +AddTask=Görev oluştur AddDuration=Süre ekle Activity=Etkinlik Activities=Görevler/etkinlikler @@ -85,13 +85,13 @@ ActionsOnProject=Proje etkinlikleri YouAreNotContactOfProject=Bu özel projenin bir ilgilisi değilsiniz DeleteATimeSpent=Harcana süre sil ConfirmDeleteATimeSpent=Bu harcanan süreyi silmek istediğinizden emin misiniz? -DoNotShowMyTasksOnly=See also tasks not assigned to me -ShowMyTasksOnly=View only tasks assigned to me +DoNotShowMyTasksOnly=Bana atanmamış görevleri de göster +ShowMyTasksOnly=Yalnızca bana atanmış görevleri göster TaskRessourceLinks=Kaynaklar ProjectsDedicatedToThisThirdParty=Bu üçüncü parti atanmış projeler NoTasks=Bu proje için hiçbir görev yok LinkedToAnotherCompany=Diğer üçüncü partiye bağlantılı -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAffectedToYou=Sana atanmamış görevler ErrorTimeSpentIsEmpty=Harcanan süre boş ThisWillAlsoRemoveTasks=Bu eylem aynı zamanda projenin tüm görevlerini (şu andaki <b>%s</b> görevleri) ve tüm harcanan süre girişlernii siler . IfNeedToUseOhterObjectKeepEmpty=Eğer bazı nesneler başka bir üçüncü partiye aitse (fatura, sipariş, ...), oluşturulması için bu projeye bağlanmalıdır, projenin birden çok üçüncü partiye bağlı olması için bunu boş bırakın. @@ -120,7 +120,7 @@ TypeContact_project_task_internal_TASKCONTRIBUTOR=Katılımcı TypeContact_project_task_external_TASKCONTRIBUTOR=Katılımcı SelectElement=Öğe seç AddElement=Öğeye bağlan -UnlinkElement=Unlink element +UnlinkElement=Öğenin bağlantısını kaldır # Documents models DocumentModelBaleine=Eksiksiz bir proje rapor modeli (logo. ..) PlannedWorkload = Planlı işyükü @@ -129,4 +129,4 @@ ProjectReferers=Yönlendirme nesneleri SearchAProject=Bir proje ara ProjectMustBeValidatedFirst=Projeler önce doğrulanmalıdır ProjectDraft=Taslak projeler -FirstAddRessourceToAllocateTime=Associate a ressource to allocate time +FirstAddRessourceToAllocateTime=Zaman ayırmak için bir kaynak ilişkilendirin diff --git a/htdocs/langs/tr_TR/sendings.lang b/htdocs/langs/tr_TR/sendings.lang index 3d84e62205f575882641a91641eda44b22326731..3419729b7c3cb2b33a0c50496e3dfba0bc3a9f93 100644 --- a/htdocs/langs/tr_TR/sendings.lang +++ b/htdocs/langs/tr_TR/sendings.lang @@ -74,5 +74,5 @@ SumOfProductVolumes=Ürün hacimleri toplamı SumOfProductWeights=Ürün ağırlıkları toplamı # warehouse details -DetailWarehouseNumber= Warehouse details -DetailWarehouseFormat= W:%s (Qty : %d) +DetailWarehouseNumber= Depo ayrıntıları +DetailWarehouseFormat= Ağ:%s (Mik : %d) diff --git a/htdocs/langs/tr_TR/stocks.lang b/htdocs/langs/tr_TR/stocks.lang index 74cba2a10c67e5133366e25f4226b34121748eec..967a8a811fb4a9154d2fb57133b923694f728c96 100644 --- a/htdocs/langs/tr_TR/stocks.lang +++ b/htdocs/langs/tr_TR/stocks.lang @@ -51,10 +51,10 @@ QtyDispatched=Sevkedilen miktar OrderDispatch=Stok sevkiyatı RuleForStockManagementDecrease=Stok azaltma yönetimi kuralı RuleForStockManagementIncrease=Stok arttırma yönetimi kuralı -DeStockOnBill=Müşteri faturalarının/alacak dekontlarının doğrulanması üzerine gerçek stokları azalt +DeStockOnBill=Müşteri faturalarının/iade faturalarının doğrulanması üzerine gerçek stokları azalt DeStockOnValidateOrder=Müşteri siparişlerinin doğrulanması üzerine gerçek stokları azalt DeStockOnShipment=Sevkiyat doğrulaması üzerine gerçek stokları azalt -ReStockOnBill=Müşteri faturalarının/alacak dekontlarının doğrulanması üzerine gerçek stokları arttır +ReStockOnBill=Müşteri faturalarının/iade faturalarının doğrulanması üzerine gerçek stokları arttır ReStockOnValidateOrder=Tedarikçi siparişlerinin onanması üzerine gerçek stokları arttır ReStockOnDispatchOrder=Tedarikçi siparişi aldıktan sonra, elle yapılan sevk üzerine gerçek stokları artırın ReStockOnDeleteInvoice=Fatura silinirse gerçek stokları arttır diff --git a/htdocs/langs/tr_TR/suppliers.lang b/htdocs/langs/tr_TR/suppliers.lang index 56480109c70cab075dd75bed8fe7c3f2d74a7749..0b89e0a28d611cebf4e656f91be6275086b1380e 100644 --- a/htdocs/langs/tr_TR/suppliers.lang +++ b/htdocs/langs/tr_TR/suppliers.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - suppliers Suppliers=Tedarikçiler Supplier=Tedarikçi -AddSupplier=Bir tedarikçi ekle +AddSupplier=Bir tedarikçi oluştur SupplierRemoved=Tedarikçi kaldırıldı SuppliersInvoice=Tedarikçi faturası NewSupplier=Yeni tedarikçi @@ -40,5 +40,5 @@ AddSupplierInvoice=Tedarikçi faturası oluştur ListOfSupplierProductForSupplier=Tedarikçi <b>%s</b> için ürün ve fiyat listesi NoneOrBatchFileNeverRan=Hiçbiri veya toplu <b>%s</b> yürütülmedi SentToSuppliers=Tedarikçilere gönderilen -ListOfSupplierOrders=List of supplier orders -MenuOrdersSupplierToBill=Supplier orders to invoice +ListOfSupplierOrders=Tedarikçi siparişleri listesi +MenuOrdersSupplierToBill=Faturalanacak tedarikçi siparişleri diff --git a/htdocs/langs/tr_TR/users.lang b/htdocs/langs/tr_TR/users.lang index 50ee7de07b3ce713383d5961e33abd5badf8953f..84c9b09f57afd0689f8bd346b4f1c7c6ffe09b30 100644 --- a/htdocs/langs/tr_TR/users.lang +++ b/htdocs/langs/tr_TR/users.lang @@ -93,7 +93,7 @@ PermissionInheritedFromAGroup=İzin hak tanındı çünkü bir kullanıcının g Inherited=İntikal eden UserWillBeInternalUser=Oluşturulacak kullanıcı bir iç kullanıcı olacaktır (çünkü belirli bir üçüncü parti ile bağlantılı değildir) UserWillBeExternalUser=Oluşturulacak kullanıcı bir dış kullanıcı olacaktır (çünkü belirli bir üçüncü parti ile bağlantılıdır) -IdPhoneCaller=Kimlik telefonu arayıcı +IdPhoneCaller=Telefon açanın kimliği UserLogged=Kullanıcı %s bağlı UserLogoff=Kullanıcı %s çıkış yaptı NewUserCreated=Kullanıcı %s oluşturuldu @@ -120,3 +120,4 @@ UseTypeFieldToChange=Değiştirmek için Alan türünü kullan OpenIDURL=OpenID URL LoginUsingOpenID=Giriş için OpenID kullan WeeklyHours=Haftalık saatler +ColorUser=Kullanıcı rengi diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index fa6b503caa7a69a3d1e76c11e5f01e032030cbb0..6698866869e3c156d8f8bd10c54e62d99a637b2c 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1015,10 +1015,14 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs //print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/datatables/extras/ColVis/css/ColVisAlt.css'.($ext?'?'.$ext:'').'" />'."\n"; print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/datatables/extras/TableTools/css/TableTools.css'.($ext?'?'.$ext:'').'" />'."\n"; } - if (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT'))) // jQuery multiselect + if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && $conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiselect') || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT') == 'multiselect')) // jQuery multiselect { print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiselect/css/ui.multiselect.css'.($ext?'?'.$ext:'').'" />'."\n"; } + if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && $conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiple-select') || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT') == 'multiple-select')) // jQuery multiple-select + { + print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiple-select/multiple-select.css'.($ext?'?'.$ext:'').'" />'."\n"; + } // jQuery Timepicker if (! empty($conf->global->MAIN_USE_JQUERY_TIMEPICKER) || defined('REQUIRE_JQUERY_TIMEPICKER')) { @@ -1178,11 +1182,6 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/datatables/extras/ColVis/js/ColVis.min.js'.($ext?'?'.$ext:'').'"></script>'."\n"; print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/datatables/extras/TableTools/js/TableTools.min.js'.($ext?'?'.$ext:'').'"></script>'."\n"; } - // jQuery Multiselect - if (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT'))) - { - print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiselect/js/ui.multiselect.js'.($ext?'?'.$ext:'').'"></script>'."\n"; - } // jQuery Timepicker if (! empty($conf->global->MAIN_USE_JQUERY_TIMEPICKER) || defined('REQUIRE_JQUERY_TIMEPICKER')) { diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 226a3501652cc16fe7642bcb3b329468eabdb29f..98b5d155ba77c3c11af1678522eb5ba78cee4b61 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -3032,42 +3032,56 @@ class Product extends CommonObject * * @return int < 0 if KO, > 0 if OK */ - function load_virtual_stock() - { - global $conf; - - if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)) - { - $stock_commande_client=$stock_commande_fournisseur=0; - $stock_sending_client=$stock_reception_fournisseur=0; + function load_virtual_stock() + { + global $conf; - if (! empty($conf->commande->enabled)) - { - $result=$this->load_stats_commande(0,'1,2'); - if ($result < 0) dol_print_error($db,$this->error); - $stock_commande_client=$this->stats_commande['qty']; - } - if (! empty($conf->expedition->enabled)) - { - $result=$this->load_stats_sending(0,'1,2'); - if ($result < 0) dol_print_error($db,$this->error); - $stock_sending_client=$this->stats_expedition['qty']; - } - if (! empty($conf->fournisseur->enabled)) - { - $result=$this->load_stats_commande_fournisseur(0,'3'); - if ($result < 0) dol_print_error($db,$this->error); - $stock_commande_fournisseur=$this->stats_commande_fournisseur['qty']; + $stock_commande_client=0; + $stock_commande_fournisseur=0; + $stock_sending_client=0; + $stock_reception_fournisseur=0; - $result=$this->load_stats_reception(0,'3'); - if ($result < 0) dol_print_error($db,$this->error); - $stock_reception_fournisseur=$this->stats_reception['qty']; - } + if (! empty($conf->commande->enabled)) { + $result=$this->load_stats_commande(0,'1,2'); + if ($result < 0) dol_print_error($db,$this->error); + $stock_commande_client=$this->stats_commande['qty']; + } + if (! empty($conf->expedition->enabled)) { + $result=$this->load_stats_sending(0,'1,2'); + if ($result < 0) dol_print_error($db,$this->error); + $stock_sending_client=$this->stats_expedition['qty']; + } + if (! empty($conf->fournisseur->enabled)) { + $result=$this->load_stats_commande_fournisseur(0,'3,4'); + if ($result < 0) dol_print_error($db,$this->error); + $stock_commande_fournisseur=$this->stats_commande_fournisseur['qty']; + + $result=$this->load_stats_reception(0,'4'); + if ($result < 0) dol_print_error($db,$this->error); + $stock_reception_fournisseur=$this->stats_reception['qty']; + } - $this->stock_theorique=$this->stock_reel-($stock_commande_client-$stock_sending_client)+($stock_commande_fournisseur-$stock_reception_fournisseur); - //echo $this->stock_theorique.' = '.$this->stock_reel.' - ('.$stock_commande_client.' - '.$stock_sending_client.') + ('.$stock_commande_fournisseur.' - '.$stock_reception_fournisseur.')'; - } - } + // Stock decrease mode + if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)) { + $this->stock_theorique=$this->stock_reel-$stock_commande_client+$stock_sending_client; + } + if (! empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER)) { + $this->stock_theorique=$this->stock_reel; + } + if (! empty($conf->global->STOCK_CALCULATE_ON_BILL)) { + $this->stock_theorique=$this->stock_reel-$stock_commande_client; + } + // Stock Increase mode + if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)) { + $this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur; + } + if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER)) { + $this->stock_theorique-=$stock_reception_fournisseur; + } + if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)) { + $this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur; + } + } /** * Move an uploaded file described into $file array into target directory $sdir. diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 55b9beb259c7d3006677ac2482f824e12c6f6464..ebf8b77f72287ac8a4f07ab4d40a5dbaa8042dd6 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -510,7 +510,7 @@ else $product_static->status_buy = $objp->tobuy; $product_static->status = $objp->tosell; // Status (to sell) - print '<td align="right" nowrap="nowrap">'; + print '<td align="center" nowrap="nowrap">'; if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer) { print ajax_object_onoff($product_static, 'status', 'tosell', 'ProductStatusOnSell', 'ProductStatusNotOnSell'); } else { @@ -519,7 +519,7 @@ else print '</td>'; // Status (to buy) - print '<td align="right" nowrap="nowrap">'; + print '<td align="center" nowrap="nowrap">'; if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer) { print ajax_object_onoff($product_static, 'status_buy', 'tobuy', 'ProductStatusOnBuy', 'ProductStatusNotOnBuy'); } else { diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php index 50b46c7003f4d7273f7cce4d895193530e85e105..06e089c52098e8db031847718fe57c3ab3fad89d 100644 --- a/htdocs/product/stock/mouvement.php +++ b/htdocs/product/stock/mouvement.php @@ -461,7 +461,6 @@ if ($resql) print '</td>'; print '<td class="liste_titre" align="right">'; 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 ' '; print '<input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" name="button_removefilter" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">'; print '</td>'; print "</tr>\n"; diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 7885553095ee110bcbd4f8219fd115fdae18ffa9..22dc080d6e24bb4754e566533bc81e3782c76b1d 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -39,6 +39,7 @@ $langs->load("products"); $langs->load("orders"); $langs->load("bills"); $langs->load("stocks"); +$langs->load("sendings"); if (! empty($conf->productbatch->enabled)) $langs->load("productbatch"); @@ -331,58 +332,62 @@ if ($id > 0 || $ref) print '</td>'; print '</tr>'; - // Calculating a theorical value - - // If stock if stock increment is done on real sending - if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)) - { - // Stock theorique - print '<tr><td>'.$langs->trans("VirtualStock").'</td>'; - print "<td>".$product->stock_theorique; - if ($product->stock_theorique < $product->seuil_stock_alerte) - { - print ' '.img_warning($langs->trans("StockLowerThanLimit")); - } - print '</td>'; - print '</tr>'; + // Calculating a theorical value + print '<tr><td>'.$langs->trans("VirtualStock").'</td>'; + print "<td>".$product->stock_theorique; + if ($product->stock_theorique < $product->seuil_stock_alerte) { + print ' '.img_warning($langs->trans("StockLowerThanLimit")); + } + print '</td>'; + print '</tr>'; - print '<tr><td>'; - if ($product->stock_theorique != $product->stock_reel) print $langs->trans("StockDiffPhysicTeoric"); - else print $langs->trans("RunningOrders"); - print '</td>'; - print '<td>'; + print '<tr><td>'; + $text_stock_options = (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)?$langs->trans("DeStockOnShipment").'<br>':''); + $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER)?$langs->trans("DeStockOnValidateOrder").'<br>':''); + $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_BILL)?$langs->trans("DeStockOnBill").'<br>':''); + $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)?$langs->trans("ReStockOnBill").'<br>':''); + $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER)?$langs->trans("ReStockOnValidateOrder").'<br>':''); + $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)?$langs->trans("ReStockOnDispatchOrder").'<br>':''); + print $form->textwithtooltip($langs->trans("StockDiffPhysicTeoric"),$text_stock_options,2,1,img_picto('', 'info'),'',0);; + print '</td>'; + print '<td>'; - $found=0; + $found=0; - // Nbre de commande clients en cours - if (! empty($conf->commande->enabled)) - { - if ($found) print '<br>'; else $found=1; - print $langs->trans("CustomersOrdersRunning").': '.($product->stats_commande['qty']-$product->stats_sendings['qty']); - $result=$product->load_stats_commande(0,'0'); - if ($result < 0) dol_print_error($db,$product->error); - print ' ('.$langs->trans("Draft").': '.$product->stats_commande['qty'].')'; - //print '<br>'; - //print $langs->trans("CustomersSendingRunning").': '.$stock_sending_client; - } + // Number of customer orders running + if (! empty($conf->commande->enabled)) + { + if ($found) print '<br>'; else $found=1; + print $langs->trans("CustomersOrdersRunning").': '.$product->stats_commande['qty']; + $result=$product->load_stats_commande(0,'0'); + if ($result < 0) dol_print_error($db,$product->error); + print ' ('.$langs->trans("Draft").': '.$product->stats_commande['qty'].')'; + } - // Nbre de commande fournisseurs en cours - if (! empty($conf->fournisseur->enabled)) - { - if ($found) print '<br>'; else $found=1; - print $langs->trans("SuppliersOrdersRunning").': '.($product->stats_commande_fournisseur['qty']-$product->stats_reception['qty']); - $result=$product->load_stats_commande_fournisseur(0,'0,1,2'); - if ($result < 0) dol_print_error($db,$product->error); - print ' ('.$langs->trans("DraftOrWaitingApproved").': '.$product->stats_commande_fournisseur['qty'].')'; - } - print '</td></tr>'; - } + // Number of product from customer order already sent (partial shipping) + if (! empty($conf->expedition->enabled)) { + if ($found) print '<br>'; else $found=1; + $result=$product->load_stats_sending(0,'2'); + print $langs->trans("SendingRunning").': '.$product->stats_expedition['qty']; + } - // If stock if stock increment is done on - // TODO Add information when stock increment is done on other option + // Number of supplier order running + if (! empty($conf->fournisseur->enabled)) { + if ($found) print '<br>'; else $found=1; + $result=$product->load_stats_commande_fournisseur(0,'3,4'); + print $langs->trans("SuppliersOrdersRunning").': '.$product->stats_commande_fournisseur['qty']; + $result=$product->load_stats_commande_fournisseur(0,'0,1,2'); + if ($result < 0) dol_print_error($db,$product->error); + print ' ('.$langs->trans("DraftOrWaitingApproved").': '.$product->stats_commande_fournisseur['qty'].')'; + } - // TODO Add also information on possible decrease stock accroding to stock decrease option + // Number of product from supplier order already received (partial receipt) + if (! empty($conf->fournisseur->enabled)) { + if ($found) print '<br>'; else $found=1; + print $langs->trans("SuppliersReceiptRunning").': '.$product->stats_reception['qty']; + } + print '</td></tr>'; // Last movement $sql = "SELECT max(m.datem) as datem"; diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php index 7730abb77cc79830ca6cb79159f5bf963f48b80b..e3e6373962b0122c1e8f4049e5c65a2ab9c2a49c 100644 --- a/htdocs/projet/class/task.class.php +++ b/htdocs/projet/class/task.class.php @@ -770,7 +770,7 @@ class Task extends CommonObject if ($this->db->query($sql) ) { $tasktime_id = $this->db->last_insert_id(MAIN_DB_PREFIX."projet_task_time"); - $ret = $tasktme_id; + $ret = $tasktime_id; if (! $notrigger) { @@ -801,10 +801,7 @@ class Task extends CommonObject $this->db->rollback(); $ret = -2; } - } - - if ($ret >= 0) - { + $sql = "UPDATE ".MAIN_DB_PREFIX."projet_task_time"; $sql.= " SET thm = (SELECT thm FROM ".MAIN_DB_PREFIX."user WHERE rowid = ".$this->timespent_fk_user.")"; $sql.= " WHERE rowid = ".$tasktime_id; diff --git a/htdocs/resource/class/html.formresource.class.php b/htdocs/resource/class/html.formresource.class.php index 241d440cc0f64b4a0955c890bde7f8216ae0231c..ca01963e30bb3a3a9b53ed279b06475d934a9153 100644 --- a/htdocs/resource/class/html.formresource.class.php +++ b/htdocs/resource/class/html.formresource.class.php @@ -1,19 +1,20 @@ <?php /* Copyright (C) - 2013 Jean-François FERRY <jfefe@aternatik.fr> -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 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/>. -*/ + * + * 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/>. + * or see http://www.gnu.org/ + */ /** * \file place/class/html.place.class.php diff --git a/htdocs/resource/class/resource.class.php b/htdocs/resource/class/resource.class.php index e947b4e7ed9d63e58a73bdc848fc7c4a8db6329e..19768f569e39f56309be20bbff766b07cea82cfb 100644 --- a/htdocs/resource/class/resource.class.php +++ b/htdocs/resource/class/resource.class.php @@ -23,8 +23,8 @@ */ // Put here all includes required by your class file -require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php"); - +require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php"; +require_once DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php"; /** * DAO Resource object @@ -329,7 +329,7 @@ class Resource extends CommonObject function delete($rowid, $notrigger=0) { global $user,$langs,$conf; - + $error=0; if (! $notrigger) @@ -339,10 +339,10 @@ class Resource extends CommonObject if ($result < 0) return -1; // End call triggers } - + $sql = "DELETE FROM ".MAIN_DB_PREFIX."resource"; $sql.= " WHERE rowid =".$rowid; - + dol_syslog(get_class($this)."::delete", LOG_DEBUG); if ($this->db->query($sql)) { @@ -364,7 +364,7 @@ class Resource extends CommonObject return -1; } } - + /** * Load resource objects into $this->lines * @@ -500,9 +500,9 @@ class Resource extends CommonObject $line->fk_user_create = $obj->fk_user_create; if($obj->resource_id && $obj->resource_type) - $line->objresource = $this->fetchObjectByElement($obj->resource_id,$obj->resource_type); + $line->objresource = fetchObjectByElement($obj->resource_id,$obj->resource_type); if($obj->element_id && $obj->element_type) - $line->objelement = $this->fetchObjectByElement($obj->element_id,$obj->element_type); + $line->objelement = fetchObjectByElement($obj->element_id,$obj->element_type); $this->lines[$i] = $line; $i++; @@ -584,7 +584,7 @@ class Resource extends CommonObject $line->mandatory = $obj->mandatory; $line->fk_user_create = $obj->fk_user_create; - $this->lines[$i] = $this->fetchObjectByElement($obj->resource_id,$obj->resource_type); + $this->lines[$i] = fetchObjectByElement($obj->resource_id,$obj->resource_type); $i++; } @@ -732,7 +732,7 @@ class Resource extends CommonObject { // Call trigger $result=$this->call_trigger('RESOURCE_MODIFY',$user); - if ($result < 0) $error++; + if ($result < 0) $error++; // End call triggers } } @@ -802,7 +802,7 @@ class Resource extends CommonObject $i=0; foreach($resources as $nb => $resource) { - $this->lines[$i] = $this->fetchObjectByElement($resource['resource_id'],$resource['resource_type']); + $this->lines[$i] = fetchObjectByElement($resource['resource_id'],$resource['resource_type']); $i++; } return $i; diff --git a/htdocs/societe/notify/card.php b/htdocs/societe/notify/card.php index 542a2066e93220b2cabe7add1bd73f09bc7b5b9b..1845669dcfc8406ab11cae0a00e3eb395c20b674 100644 --- a/htdocs/societe/notify/card.php +++ b/htdocs/societe/notify/card.php @@ -1,7 +1,7 @@ <?php /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> * Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net> - * Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es> + * Copyright (C) 2010-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 @@ -376,7 +376,7 @@ if ($result > 0) print '</tr>'; // List - $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type, n.objet_id as object_id, n.type,"; + $sql = "SELECT n.rowid, n.daten, n.email, n.objet_type as object_type, n.objet_id as object_id, n.type,"; $sql.= " c.rowid as id, c.lastname, c.firstname, c.email as contactemail,"; $sql.= " a.code, a.label"; $sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger as a,"; diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index d9c5e70283cd797178c7de1b0d049c10c43cffc2..0a5a9303d902e34398228b3c35a91c8f517034ae 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -520,6 +520,7 @@ if (empty($reshook)) // Actions to send emails $id=$socid; $actiontypecode='AC_OTH_AUTO'; + $trigger_name='COMPANY_SENTBYMAIL'; $paramname='socid'; $mode='emailfromthirdparty'; include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php'; diff --git a/htdocs/theme/.gitignore b/htdocs/theme/.gitignore index fab0672d5988916e19863d86e9b0fc259e3e853f..bad6db7e4d2ec7810d07d4ec9ad58e973967f103 100644 --- a/htdocs/theme/.gitignore +++ b/htdocs/theme/.gitignore @@ -1 +1,2 @@ /bootstrap +/oblyon diff --git a/htdocs/theme/eldy/.gitignore b/htdocs/theme/eldy/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..134509791a9099d23e62b6554e6f388f5f4aca91 --- /dev/null +++ b/htdocs/theme/eldy/.gitignore @@ -0,0 +1 @@ +/*.new diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index 0f5644dc4061170aba822c41d7bd0a5678a0e573..5a3696f338ff8d1efc34cbb494074f78c9e00c1c 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -424,6 +424,10 @@ th .button { border-radius: 10px; } +.borderrightlight +{ + border-right: 1px solid #DDD; +} /* ============================================================================== */ /* Styles to hide objects */ @@ -862,7 +866,7 @@ form#login { max-width: 540px; background-color: #FFFFFF; - + -moz-box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(60,60,60,0.15); -webkit-box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(60,60,60,0.15); box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(60,60,60,0.15); @@ -872,7 +876,7 @@ form#login { border-radius: 8px; border:solid 1px rgba(80,80,80,.4); - + border-top:solid 1px f8f8f8; /* background-color: #f8f8f8; @@ -893,6 +897,13 @@ div#login_left, div#login_right { table.login_table tr td table.none tr td { padding: 2px; } +table.login_table_securitycode { + border-spacing: 0px; +} +table.login_table_securitycode tr td { + padding-left: 0px; + padding-right: 4px; +} #securitycode { min-width: 60px; } diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 4760f73f85540adb360dd8b94f41d7ac75d3ab10..9c2290cc6292d9b568a8e2ff073ee6be8c4a6ae7 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -36,7 +36,8 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -if (! empty($conf->agenda->enabled))require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +//if (! empty($conf->agenda->enabled))require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; if (! empty($conf->ldap->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/ldap.class.php'; if (! empty($conf->adherent->enabled)) require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; if (! empty($conf->multicompany->enabled)) dol_include_once('/multicompany/class/actions_multicompany.class.php'); diff --git a/htdocs/webservices/server_thirdparty.php b/htdocs/webservices/server_thirdparty.php index 2d104eb96a1f01d78aeb61e1233f5fd3fb8b9586..696723f7247196a0e946c638b3f786836f83d6af 100644 --- a/htdocs/webservices/server_thirdparty.php +++ b/htdocs/webservices/server_thirdparty.php @@ -460,7 +460,7 @@ function createThirdParty($authentication,$thirdparty) $result=$newobject->create($fuser); if ($newobject->particulier && $result > 0) { $newobject->firstname = $thirdparty['firstname']; - $newobject->name_bis = $thirdparty['ref']; + $newobject->name_bis = $thirdparty['lastname']; $result = $newobject->create_individual($fuser); } if ($result <= 0)