Merge branch 'upstream/develop'

This commit is contained in:
aspangaro 2014-03-17 21:10:15 +01:00
commit 59128ccefb
669 changed files with 4431 additions and 2409 deletions

View File

@ -248,6 +248,12 @@ source_file = htdocs/langs/en_US/propal.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.salaries]
file_filter = htdocs/langs/<lang>/salaries.lang
source_file = htdocs/langs/en_US/salaries.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.sendings]
file_filter = htdocs/langs/<lang>/sendings.lang
source_file = htdocs/langs/en_US/sendings.lang

View File

@ -17,8 +17,13 @@ For users:
- New: Add option MAIN_AUTO_TIMESTAMP_IN_PUBLIC_NOTES and MAIN_AUTO_TIMESTAMP_IN_PRIVATE_NOTES
to automatically add timestamp and user line into edition field when editing a note.
- New: Add button cancel into edition of notes.
- New: Improved Opensurvey module and added options to disable comments and disable
public votes.
- New: Improved Opensurvey module:
Added options to disable comments and disable public votes.
Limit dates use calendar popup.
Description of survey use wysiwig editor.
More information shown on result tab.
Renamed "survey" into "poll" (better translation).
- New: Add filter on text and status into survey list. Can also sort on id, text and date end.
- New: The box "balance of bank accounts" show all opened accounts.
- New: Add option MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE to add sale represnative into public
note of generated documents.
@ -26,7 +31,6 @@ For users:
- New: Increase length of url into bookmark module.
- New: Automatic events sending mails add info about linked objects into email content.
- New: Price management enhancement (multiprice level, price by customer, if MAIN_FEATURES_LEVEL=2 Price by qty).
- New: Add filter on text and status into survey list. Can also sort on id, text and date end.
- New: Add option MAIN_FAVICON_URL.
- New: Created {line_price_ht_locale}, {line_price_vat_locale} and {line_price_ttc_locale} ODT tags.
- New: Add filter on project status into task list. By default, only "opened" project are visible.
@ -36,6 +40,7 @@ For users:
- New: Add field url as product properties.
- New: More options to create a credit note (can be filled autatically according to remain to pay).
- Fix: Project Task numbering customs rule works.
- Fix: Add actions events not implemented
TODO
- New: Predefined product and free product use same form.

View File

@ -29,7 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php';
if (!$user->admin)
accessforbidden();
$langs->load("cateogries");
$langs->load("categories");
$action=GETPOST("action");
@ -95,7 +95,7 @@ $form = new Form($db);
$var=!$var;
print '<tr '.$bc[$var].'>';
print '<td>'.$langs->trans("CategorieRecursiv").'</td>';
print '<td align="center" width="20">&nbsp;</td>';
print '<td align="center" width="20">'. $form->textwithpicto('',$langs->trans("CategorieRecursivHelp"),1,'help').'</td>';
print '<td align="center" width="100">';
if ($conf->use_javascript_ajax)

View File

@ -0,0 +1,151 @@
<?php
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.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/>.
*/
/**
* \file htdocs/categories/admin/categorie_extrafields.php
* \ingroup societe
* \brief Page to setup extra fields of category
*/
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
$langs->load("categories");
$langs->load("admin");
$extrafields = new ExtraFields($db);
$form = new Form($db);
// List of supported format
$tmptype2label=getStaticMember(get_class($extrafields),'type2label');
$type2label=array('');
foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
$action=GETPOST('action', 'alpha');
$attrname=GETPOST('attrname', 'alpha');
$elementtype='categories'; //Must be the $element of the class that manage extrafield
if (!$user->admin) accessforbidden();
/*
* Actions
*/
require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
/*
* View
*/
$textobject=$langs->transnoentitiesnoconv("Categories");
$help_url='EN:Module Third Parties setup|FR:Paramétrage_du_module_Tiers';
llxHeader('',$langs->trans("CompanySetup"),$help_url);
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print_fiche_titre($langs->trans("CategoriesSetup"),$linkback,'setup');
$head = categoriesadmin_prepare_head(null);
dol_fiche_head($head, 'attributes_categories', $langs->trans("Categories"), 0, 'categoriesadmin');
print $langs->trans("DefineHereComplementaryAttributes",$textobject).'<br>'."\n";
print '<br>';
// Load attribute_label
$extrafields->fetch_name_optionals_label($elementtype);
print "<table summary=\"listofattributes\" class=\"noborder\" width=\"100%\">";
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Label").'</td>';
print '<td>'.$langs->trans("AttributeCode").'</td>';
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 width="80">&nbsp;</td>';
print "</tr>\n";
$var=True;
foreach($extrafields->attribute_type as $key => $value)
{
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td>".$extrafields->attribute_label[$key]."</td>\n";
print "<td>".$key."</td>\n";
print "<td>".$type2label[$extrafields->attribute_type[$key]]."</td>\n";
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="right"><a href="'.$_SERVER["PHP_SELF"].'?action=edit&attrname='.$key.'">'.img_edit().'</a>';
print "&nbsp; <a href=\"".$_SERVER["PHP_SELF"]."?action=delete&attrname=$key\">".img_delete()."</a></td>\n";
print "</tr>";
// $i++;
}
print "</table>";
dol_fiche_end();
// Buttons
if ($action != 'create' && $action != 'edit')
{
print '<div class="tabsAction">';
print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
print "</div>";
}
/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel
/* */
/* ************************************************************************** */
if ($action == 'create')
{
print "<br>";
print_titre($langs->trans('NewAttribute'));
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
}
/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))
{
print "<br>";
print_titre($langs->trans("FieldEdition", $attrname));
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
}
llxFooter();
$db->close();
?>

View File

@ -28,6 +28,7 @@
* \brief File of class to manage categories
*/
require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php';
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
@ -36,10 +37,10 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
/**
* Class to manage categories
*/
class Categorie
class Categorie extends CommonObject
{
public $element='category';
public $table_element='category';
public $table_element='categories';
var $id;
var $fk_parent;
@ -102,6 +103,8 @@ class Categorie
$this->visible = $res['visible'];
$this->type = $res['type'];
$this->entity = $res['entity'];
$this->fetch_optionals($this->id,$extralabels);
$this->db->free($resql);
@ -130,7 +133,7 @@ class Categorie
*/
function create($user='')
{
global $conf,$langs;
global $conf,$langs,$hookmanager;
$langs->load('categories');
$error=0;
@ -188,6 +191,24 @@ class Categorie
if ($id > 0)
{
$this->id = $id;
// Actions on extra fields (by external module or standard code)
// FIXME le hook fait double emploi avec le trigger !!
$hookmanager->initHooks(array('HookModuleNamedao'));
$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++;
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
@ -224,7 +245,7 @@ class Categorie
*/
function update($user='')
{
global $conf, $langs;
global $conf, $langs,$hookmanager;
$error=0;
@ -257,8 +278,28 @@ class Categorie
dol_syslog(get_class($this)."::update sql=".$sql);
if ($this->db->query($sql))
{
// Actions on extra fields (by external module or standard code)
// FIXME le hook fait double emploi avec le trigger !!
$hookmanager->initHooks(array('HookCategorydao'));
$parameters=array();
$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++;
$this->db->commit();
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
@ -361,6 +402,19 @@ class Categorie
}
else
{
// Removed extrafields
if (! $error)
{
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
{
$result=$this->deleteExtraFields();
if ($result < 0)
{
$error++;
dol_syslog(get_class($this)."::delete erreur ".$errorflag." ".$this->error, LOG_ERR);
}
}
}
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);

View File

@ -26,6 +26,7 @@
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
$langs->load("categories");
@ -50,7 +51,10 @@ if ($id == "")
// Security check
$result = restrictedArea($user, 'categorie', $id, '&category');
$object = new Categorie($db);
$extrafields = new ExtraFields($db);
$extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
/*
* Actions
@ -85,6 +89,8 @@ if ($action == 'update' && $user->rights->categorie->creer)
}
if (empty($categorie->error))
{
$ret = $extrafields->setOptionalsFromPost($extralabels,$categorie);
if ($categorie->update($user) > 0)
{
header('Location: '.DOL_URL_ROOT.'/categories/viewcat.php?id='.$categorie->id.'&type='.$type);
@ -115,7 +121,6 @@ print_fiche_titre($langs->trans("ModifCat"));
dol_htmloutput_errors($mesg);
$object = new Categorie($db);
$object->fetch($id);
$form = new Form($db);
@ -153,6 +158,12 @@ print '<tr><td>'.$langs->trans("In").'</td><td>';
print $form->select_all_categories($type,$object->fk_parent,'parent',64,$object->id);
print '</td></tr>';
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
if (empty($reshook) && ! empty($extrafields->attribute_label))
{
print $object->showOptionals($extrafields,'edit');
}
print '</table>';
print '<br>';

View File

@ -27,9 +27,12 @@
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
$langs->load("categories");
$extrafields = new ExtraFields($db);
$extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
// Security check
$socid=GETPOST('socid','int');
@ -59,6 +62,7 @@ if ($origin)
if ($catorigin && $type == 0) $idCatOrigin = $catorigin;
$object = new Categorie($db);
/*
* Actions
@ -112,7 +116,7 @@ if ($action == 'add' && $user->rights->categorie->creer)
}
}
$object = new Categorie($db);
$object->label = $label;
$object->description = dol_htmlcleanlastbr($description);
@ -121,6 +125,8 @@ if ($action == 'add' && $user->rights->categorie->creer)
$object->type = $type;
if ($parent != "-1") $object->fk_parent = $parent;
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
if (! $object->label)
{
@ -238,6 +244,12 @@ if ($user->rights->categorie->creer)
print '<tr><td>'.$langs->trans("AddIn").'</td><td>';
print $form->select_all_categories($type, $catorigin);
print '</td></tr>';
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
if (empty($reshook))
{
print $object->showOptionals($extrafields,'edit');
}
print '</table>';

View File

@ -27,6 +27,8 @@
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
$langs->load("categories");
@ -49,6 +51,7 @@ $result = restrictedArea($user, 'categorie', $id, '&category');
$object = new Categorie($db);
$result=$object->fetch($id);
$object->fetch_optionals($id,$extralabels);
if ($result <= 0)
{
dol_print_error($db,$object->error);
@ -57,6 +60,8 @@ if ($result <= 0)
$type=$object->type;
$extrafields = new ExtraFields($db);
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
/*
* Actions
@ -166,6 +171,12 @@ print $langs->trans("Description").'</td><td>';
print nl2br($object->description);
print '</td></tr>';
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
if (empty($reshook) && ! empty($extrafields->attribute_label))
{
print $object->showOptionals($extrafields);
}
print '</table>';
print '</div>';

View File

@ -6,7 +6,7 @@
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@@2byte.es>
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2011-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2011-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

View File

@ -1,8 +1,8 @@
<?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2011-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2011-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
@ -21,7 +21,7 @@
/**
* \file htdocs/compta/charges/index.php
* \ingroup compta
* \brief Page to list payments of social contributions, vat and salaries
* \brief Page to list payments of special expenses
*/
require '../../main.inc.php';
@ -63,9 +63,9 @@ $socialcontrib=new ChargeSociales($db);
$payment_sc_static=new PaymentSocialContribution($db);
$sal_static = new PaymentSalary($db);
llxHeader('',$langs->trans("TaxAndDividendsArea"));
llxHeader('',$langs->trans("SpecialExpensesArea"));
$title=$langs->trans("TaxAndDividendsArea");
$title=$langs->trans("SpecialExpensesArea");
if ($_GET["mode"] == 'sconly') $title=$langs->trans("SocialContributionsPayments");
$param='';
@ -84,259 +84,267 @@ if (GETPOST("mode") != 'sconly')
}
// Payment Salary
if (empty($_GET["mode"]) || $_GET["mode"] != 'sconly')
if ($conf->salaries->enabled)
{
$sal = new PaymentSalary($db);
if (empty($_GET["mode"]) || $_GET["mode"] != 'sconly')
{
$sal = new PaymentSalary($db);
print_fiche_titre($langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
print_fiche_titre($langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
$sql = "SELECT s.rowid, s.amount, s.label, s.datev as dm";
$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s";
$sql.= " WHERE s.entity = ".$conf->entity;
$sql = "SELECT s.rowid, s.amount, s.label, s.datev as dm";
$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s";
$sql.= " WHERE s.entity = ".$conf->entity;
if ($year > 0)
{
// Si period renseignee on l'utilise comme critere de date, sinon on prend date echeance,
// ceci afin d'etre compatible avec les cas ou la periode n'etait pas obligatoire
$sql.= " AND s.datev between '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
}
if (preg_match('/^s/',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
$total = 0 ;
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"s.datev","",$param,'width="120"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"s.datev","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
print "</tr>\n";
$var=1;
while ($i < $num)
{
$obj = $db->fetch_object($result);
$total = $total + $obj->amount;
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
print "<td>".$obj->label."</td>\n";
print '<td align="right">'.price($obj->amount)."</td>";
// Ref payment
$sal_static->id=$obj->rowid;
$sal_static->ref=$obj->rowid;
print '<td align="left">'.$sal_static->getNomUrl(1)."</td>\n";
print '<td align="center">'.dol_print_date($db->jdate($obj->dm),'day')."</td>\n";
print '<td align="right">'.price($obj->amount)."</td>";
print "</tr>\n";
$i++;
}
print '<tr class="liste_total"><td align="right" colspan="2">'.$langs->trans("Total").'</td>';
print '<td align="right">'.price($total)."</td>";
print '<td align="center">&nbsp;</td>';
print '<td align="center">&nbsp;</td>';
print '<td align="right">'.price($total)."</td>";
print "</tr>";
print "</table>";
$db->free($result);
print "<br>";
}
else
{
dol_print_error($db);
}
}
}
if ($conf->tax->enabled)
{
// Social contributions only
if (GETPOST("mode") != 'sconly')
{
print_fiche_titre($langs->trans("SocialContributionsPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
}
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="120"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder);
print "</tr>\n";
$sql = "SELECT c.id, c.libelle as lib,";
$sql.= " cs.rowid, cs.libelle, cs.fk_type as type, cs.periode, cs.date_ech, cs.amount as total,";
$sql.= " pc.rowid as pid, pc.datep, pc.amount as totalpaye";
$sql.= " FROM ".MAIN_DB_PREFIX."c_chargesociales as c,";
$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 ($year > 0)
{
$sql .= " AND (";
// Si period renseignee on l'utilise comme critere de date, sinon on prend date echeance,
// ceci afin d'etre compatible avec les cas ou la periode n'etait pas obligatoire
$sql.= " AND s.datev between '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
$sql .= " (cs.periode IS NOT NULL AND cs.periode between '".$db->idate(dol_get_first_day($year))."' AND '".$db->idate(dol_get_last_day($year))."')";
$sql .= " OR (cs.periode IS NULL AND cs.date_ech between '".$db->idate(dol_get_first_day($year))."' AND '".$db->idate(dol_get_last_day($year))."')";
$sql .= ")";
}
if (preg_match('/^s/',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
if (! preg_match('/^pv/',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
//$sql.= $db->plimit($limit+1,$offset);
//print $sql;
$result = $db->query($sql);
if ($result)
dol_syslog("compta/charges/index.php: select payment sql=".$sql);
$resql=$db->query($sql);
if ($resql)
{
$num = $db->num_rows($result);
$i = 0;
$total = 0 ;
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"s.datev","",$param,'width="120"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"s.datev","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder);
print "</tr>\n";
$var=1;
while ($i < $num)
{
$obj = $db->fetch_object($result);
$num = $db->num_rows($resql);
$i = 0;
$total = 0;
$totalnb = 0;
$totalpaye = 0;
$var=true;
$total = $total + $obj->amount;
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
print "<td>".$obj->label."</td>\n";
print '<td align="right">'.price($obj->amount)."</td>";
// Ref payment
$sal_static->id=$obj->rowid;
$sal_static->ref=$obj->rowid;
print '<td align="left">'.$sal_static->getNomUrl(1)."</td>\n";
print '<td align="center">'.dol_print_date($db->jdate($obj->dm),'day')."</td>\n";
print '<td align="right">'.price($obj->amount)."</td>";
print "</tr>\n";
$i++;
}
print '<tr class="liste_total"><td align="right" colspan="2">'.$langs->trans("Total").'</td>';
while ($i < $num)
{
$obj = $db->fetch_object($resql);
$var = !$var;
print "<tr ".$bc[$var].">";
// Date
$date=$obj->periode;
if (empty($date)) $date=$obj->date_ech;
print '<td>'.dol_print_date($date,'day').'</td>';
// Label
print '<td>';
$socialcontrib->id=$obj->rowid;
$socialcontrib->ref=$obj->libelle;
$socialcontrib->lib=$obj->libelle;
print $socialcontrib->getNomUrl(1,'20');
print '</td>';
// Type
print '<td><a href="../sociales/index.php?filtre=cs.fk_type:'.$obj->type.'">'.$obj->lib.'</a></td>';
// Expected to pay
print '<td align="right">'.price($obj->total).'</td>';
// Ref payment
$payment_sc_static->id=$obj->pid;
$payment_sc_static->ref=$obj->pid;
print '<td>'.$payment_sc_static->getNomUrl(1)."</td>\n";
// Date payment
print '<td align="center">'.dol_print_date($db->jdate($obj->datep),'day').'</td>';
// Paid
print '<td align="right">'.price($obj->totalpaye).'</td>';
print '</tr>';
$total = $total + $obj->total;
$totalnb = $totalnb + $obj->nb;
$totalpaye = $totalpaye + $obj->totalpaye;
$i++;
}
print '<tr class="liste_total"><td align="right" colspan="3">'.$langs->trans("Total").'</td>';
print '<td align="right">'.price($total)."</td>";
print '<td align="center">&nbsp;</td>';
print '<td align="center">&nbsp;</td>';
print '<td align="right">'.price($total)."</td>";
print "</tr>";
print "</table>";
$db->free($result);
print "<br>";
}
print '<td align="right">'.price($totalpaye)."</td>";
print "</tr>";
}
else
{
dol_print_error($db);
dol_print_error($db);
}
print '</table>';
}
// Social contributions only
if (GETPOST("mode") != 'sconly')
{
print_fiche_titre($langs->trans("SocialContributionsPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
}
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="120"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder);
print "</tr>\n";
$sql = "SELECT c.id, c.libelle as lib,";
$sql.= " cs.rowid, cs.libelle, cs.fk_type as type, cs.periode, cs.date_ech, cs.amount as total,";
$sql.= " pc.rowid as pid, pc.datep, pc.amount as totalpaye";
$sql.= " FROM ".MAIN_DB_PREFIX."c_chargesociales as c,";
$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 ($year > 0)
{
$sql .= " AND (";
// Si period renseignee on l'utilise comme critere de date, sinon on prend date echeance,
// ceci afin d'etre compatible avec les cas ou la periode n'etait pas obligatoire
$sql .= " (cs.periode IS NOT NULL AND cs.periode between '".$db->idate(dol_get_first_day($year))."' AND '".$db->idate(dol_get_last_day($year))."')";
$sql .= " OR (cs.periode IS NULL AND cs.date_ech between '".$db->idate(dol_get_first_day($year))."' AND '".$db->idate(dol_get_last_day($year))."')";
$sql .= ")";
}
if (! preg_match('/^pv/',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
//$sql.= $db->plimit($limit+1,$offset);
//print $sql;
dol_syslog("compta/charges/index.php: select payment sql=".$sql);
$resql=$db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
$total = 0;
$totalnb = 0;
$totalpaye = 0;
$var=true;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
$var = !$var;
print "<tr ".$bc[$var].">";
// Date
$date=$obj->periode;
if (empty($date)) $date=$obj->date_ech;
print '<td>'.dol_print_date($date,'day').'</td>';
// Label
print '<td>';
$socialcontrib->id=$obj->rowid;
$socialcontrib->ref=$obj->libelle;
$socialcontrib->lib=$obj->libelle;
print $socialcontrib->getNomUrl(1,'20');
print '</td>';
// Type
print '<td><a href="../sociales/index.php?filtre=cs.fk_type:'.$obj->type.'">'.$obj->lib.'</a></td>';
// Expected to pay
print '<td align="right">'.price($obj->total).'</td>';
// Ref payment
$payment_sc_static->id=$obj->pid;
$payment_sc_static->ref=$obj->pid;
print '<td>'.$payment_sc_static->getNomUrl(1)."</td>\n";
// Date payment
print '<td align="center">'.dol_print_date($db->jdate($obj->datep),'day').'</td>';
// Paid
print '<td align="right">'.price($obj->totalpaye).'</td>';
print '</tr>';
$total = $total + $obj->total;
$totalnb = $totalnb + $obj->nb;
$totalpaye = $totalpaye + $obj->totalpaye;
$i++;
}
print '<tr class="liste_total"><td align="right" colspan="3">'.$langs->trans("Total").'</td>';
print '<td align="right">'.price($total)."</td>";
print '<td align="center">&nbsp;</td>';
print '<td align="center">&nbsp;</td>';
print '<td align="right">'.price($totalpaye)."</td>";
print "</tr>";
}
else
{
dol_print_error($db);
}
print '</table>';
// VAT
if (empty($_GET["mode"]) || $_GET["mode"] != 'sconly')
if ($conf->tax->enabled)
{
print "<br>";
$tva = new Tva($db);
print_fiche_titre($langs->trans("VATPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
$sql = "SELECT pv.rowid, pv.amount, pv.label, pv.datev as dm";
$sql.= " FROM ".MAIN_DB_PREFIX."tva as pv";
$sql.= " WHERE pv.entity = ".$conf->entity;
if ($year > 0)
if (empty($_GET["mode"]) || $_GET["mode"] != 'sconly')
{
// Si period renseignee on l'utilise comme critere de date, sinon on prend date echeance,
// ceci afin d'etre compatible avec les cas ou la periode n'etait pas obligatoire
$sql.= " AND pv.datev between '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
}
if (preg_match('/^pv/',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
print "<br>";
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
$total = 0 ;
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
print "</tr>\n";
$var=1;
while ($i < $num)
{
$obj = $db->fetch_object($result);
$tva = new Tva($db);
$total = $total + $obj->amount;
print_fiche_titre($langs->trans("VATPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
$sql = "SELECT pv.rowid, pv.amount, pv.label, pv.datev as dm";
$sql.= " FROM ".MAIN_DB_PREFIX."tva as pv";
$sql.= " WHERE pv.entity = ".$conf->entity;
if ($year > 0)
{
// Si period renseignee on l'utilise comme critere de date, sinon on prend date echeance,
// ceci afin d'etre compatible avec les cas ou la periode n'etait pas obligatoire
$sql.= " AND pv.datev between '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
}
if (preg_match('/^pv/',$sortfield)) $sql.= $db->order($sortfield,$sortorder);
print "<td>".$obj->label."</td>\n";
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
$total = 0 ;
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder);
print "</tr>\n";
$var=1;
while ($i < $num)
{
$obj = $db->fetch_object($result);
print '<td align="right">'.price($obj->amount)."</td>";
$total = $total + $obj->amount;
// Ref payment
$tva_static->id=$obj->rowid;
$tva_static->ref=$obj->rowid;
print '<td align="left">'.$tva_static->getNomUrl(1)."</td>\n";
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
print '<td align="center">'.dol_print_date($db->jdate($obj->dm),'day')."</td>\n";
print '<td align="right">'.price($obj->amount)."</td>";
print "</tr>\n";
print "<td>".$obj->label."</td>\n";
$i++;
}
print '<tr class="liste_total"><td align="right" colspan="2">'.$langs->trans("Total").'</td>';
print '<td align="right">'.price($total)."</td>";
print '<td align="center">&nbsp;</td>';
print '<td align="center">&nbsp;</td>';
print '<td align="right">'.price($total)."</td>";
print "</tr>";
print '<td align="right">'.price($obj->amount)."</td>";
print "</table>";
$db->free($result);
}
else
{
dol_print_error($db);
// Ref payment
$tva_static->id=$obj->rowid;
$tva_static->ref=$obj->rowid;
print '<td align="left">'.$tva_static->getNomUrl(1)."</td>\n";
print '<td align="center">'.dol_print_date($db->jdate($obj->dm),'day')."</td>\n";
print '<td align="right">'.price($obj->amount)."</td>";
print "</tr>\n";
$i++;
}
print '<tr class="liste_total"><td align="right" colspan="2">'.$langs->trans("Total").'</td>';
print '<td align="right">'.price($total)."</td>";
print '<td align="center">&nbsp;</td>';
print '<td align="center">&nbsp;</td>';
print '<td align="right">'.price($total)."</td>";
print "</tr>";
print "</table>";
$db->free($result);
}
else
{
dol_print_error($db);
}
}
}
$db->close();
llxFooter();
$db->close();
?>

View File

@ -78,36 +78,6 @@ if ($action == 'validate' && $user->rights->deplacement->creer)
}
}
/*
else if ($action == 'unblock' && $user->rights->deplacement->unvalidate)
{
$object->fetch($id);
if ($object->fk_statut == '1') // Not blocked...
{
$mesg='<div class="error">'.$langs->trans("Error").'</div>';
$action='';
$error++;
}
else
{
$result = $object->fetch($id);
$object->fk_statut = '1';
$result = $object->update($user);
if ($result > 0)
{
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
exit;
}
else
{
$mesg=$object->error;
}
}
}*/
else if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->deplacement->supprimer)
{
$result=$object->delete($id);
@ -295,7 +265,7 @@ if ($action == 'create')
print '<td class="border" valign="top">'.$langs->trans('NotePublic').'</td>';
print '<td valign="top" colspan="2">';
$doleditor = new DolEditor('note_public', GETPOST('note_public', 'alpha'), 600, 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, 100);
$doleditor = new DolEditor('note_public', GETPOST('note_public', 'alpha'), '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, 100);
print $doleditor->Create(1);
print '</td></tr>';
@ -307,7 +277,7 @@ if ($action == 'create')
print '<td class="border" valign="top">'.$langs->trans('NotePrivate').'</td>';
print '<td valign="top" colspan="2">';
$doleditor = new DolEditor('note_private', GETPOST('note_private', 'alpha'), 600, 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, 100);
$doleditor = new DolEditor('note_private', GETPOST('note_private', 'alpha'), '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, 100);
print $doleditor->Create(1);
print '</td></tr>';
@ -391,7 +361,7 @@ else if ($id)
print '<tr><td valign="top">'.$langs->trans("NotePublic").'</td>';
print '<td valign="top" colspan="3">';
$doleditor = new DolEditor('note_public', $object->note_public, 600, 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, '100');
$doleditor = new DolEditor('note_public', $object->note_public, '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, '100');
print $doleditor->Create(1);
print "</td></tr>";
@ -402,7 +372,7 @@ else if ($id)
print '<tr><td valign="top">'.$langs->trans("NotePrivate").'</td>';
print '<td valign="top" colspan="3">';
$doleditor = new DolEditor('note_private', $object->note_private, 600, 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, '100');
$doleditor = new DolEditor('note_private', $object->note_private, '', 200, 'dolibarr_notes', 'In', false, true, true, ROWS_8, '100');
print $doleditor->Create(1);
print "</td></tr>";

View File

@ -121,6 +121,7 @@ print '</tr>';
print '</table>';
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';

181
htdocs/compta/hrm.php Normal file
View File

@ -0,0 +1,181 @@
<?php
/* Copyright (C) 2011 Dimitri Mouillard <dmouillard@teclib.com>
* Copyright (C) 2013-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.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/>.
*/
/**
* \file htdocs/compta/hrm.php
* \ingroup hrm
* \brief Home page for HRM area.
*/
require('../main.inc.php');
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php';
require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php';
$langs->load('users');
$langs->load('holidays');
$langs->load('tripss');
// Protection if external user
if ($user->societe_id > 0) accessforbidden();
/*
* Actions
*/
// None
/*
* View
*/
$holiday = new Holiday($db);
$holidaystatic=new Holiday($db);
llxHeader(array(),$langs->trans('HRMArea'));
print '<div class="fichecenter"><div class="fichethirdleft">';
if (! empty($conf->holiday->enabled))
{
$user_id = $user->id;
$nbaquis=$holiday->getCPforUser($user_id);
$nbdeduced=$holiday->getConfCP('nbHolidayDeducted');
$nb_holiday = $nbaquis / $nbdeduced;
print '<table class="noborder nohover" width="100%">';
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Holidays").'</td></tr>';
print "<tr ".$bc[0].">";
print '<td colspan="3">';
print $langs->trans('SoldeCPUser',round($nb_holiday,2)).($nbdeduced != 1 ? ' ('.$nbaquis.' / '.$nbdeduced.')' : '');
print '</td>';
print '</tr>';
print '</table><br>';
}
/*
* Search expenses
*/
if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
{
$langs->load("trips");
print '<form method="post" action="'.DOL_URL_ROOT.'/compta/deplacement/list.php">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<table class="noborder nohover" width="100%">';
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("SearchATripAndExpense").'</td></tr>';
print "<tr ".$bc[0].">";
print "<td>".$langs->trans("Ref").':</td><td><input type="text" name="search_ref" class="flat" size="18"></td>';
print '<td><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
//print "<tr ".$bc[0]."><td>".$langs->trans("Other").':</td><td><input type="text" name="sall" class="flat" size="18"></td>';
print '</tr>';
print "</table></form><br>";
}
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
$max=10;
$langs->load("boxes");
$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, d.rowid, d.dated as date, d.tms as dm, d.km, d.fk_statut";
$sql.= " FROM ".MAIN_DB_PREFIX."deplacement as d, ".MAIN_DB_PREFIX."user as u";
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE u.rowid = d.fk_user";
$sql.= " AND d.entity = ".$conf->entity;
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND d.fk_soc = s. rowid AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
if ($socid) $sql.= " AND d.fk_soc = ".$socid;
$sql.= $db->order("d.tms","DESC");
$sql.= $db->plimit($max, 0);
$result = $db->query($sql);
if ($result)
{
$var=false;
$num = $db->num_rows($result);
$i = 0;
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans("BoxTitleLastModifiedExpenses",min($max,$num)).'</td>';
print '<td align="right">'.$langs->trans("FeesKilometersOrAmout").'</td>';
print '<td align="right">'.$langs->trans("DateModificationShort").'</td>';
print '<td width="16">&nbsp;</td>';
print '</tr>';
if ($num)
{
$total_ttc = $totalam = $total = 0;
$deplacementstatic=new Deplacement($db);
$userstatic=new User($db);
while ($i < $num && $i < $max)
{
$obj = $db->fetch_object($result);
$deplacementstatic->ref=$obj->rowid;
$deplacementstatic->id=$obj->rowid;
$userstatic->id=$obj->uid;
$userstatic->lastname=$obj->lastname;
$userstatic->firstname=$obj->firstname;
print '<tr '.$bc[$var].'>';
print '<td>'.$deplacementstatic->getNomUrl(1).'</td>';
print '<td>'.$userstatic->getNomUrl(1).'</td>';
print '<td align="right">'.$obj->km.'</td>';
print '<td align="right">'.dol_print_date($db->jdate($obj->dm),'day').'</td>';
print '<td>'.$deplacementstatic->LibStatut($obj->fk_statut,3).'</td>';
print '</tr>';
$var=!$var;
$i++;
}
}
else
{
print '<tr '.$bc[$var].'><td colspan="2">'.$langs->trans("None").'</td></tr>';
}
print '</table><br>';
}
else dol_print_error($db);
print '</div></div></div>';
llxFooter();
$db->close();
?>

View File

@ -139,24 +139,6 @@ if (! empty($conf->don->enabled) && $user->rights->don->lire)
print "</table></form><br>";
}
/*
* Search expenses
*/
if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
{
$langs->load("trips");
print '<form method="post" action="'.DOL_URL_ROOT.'/compta/deplacement/list.php">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<table class="noborder nohover" width="100%">';
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("SearchATripAndExpense").'</td></tr>';
print "<tr ".$bc[0].">";
print "<td>".$langs->trans("Ref").':</td><td><input type="text" name="search_ref" class="flat" size="18"></td>';
print '<td><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
//print "<tr ".$bc[0]."><td>".$langs->trans("Other").':</td><td><input type="text" name="sall" class="flat" size="18"></td>';
print '</tr>';
print "</table></form><br>";
}
/**
* Draft customers invoices
*/

View File

@ -84,66 +84,12 @@ print $bprev->NbFactureAPrelever();
print '</a>';
print '</td></tr>';
$var=!$var;
print '<tr class="liste_total"><td>'.$langs->trans("AmountToWithdraw").'</td>';
print '<tr '.$bc[$var].'><td>'.$langs->trans("AmountToWithdraw").'</td>';
print '<td align="right">';
print price($bprev->SommeAPrelever());
print price($bprev->SommeAPrelever(),'','',1,-1,-1,'auto');
print '</td></tr></table><br>';
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
/*
* Withdraw receipts
*/
$limit=5;
$sql = "SELECT p.rowid, p.ref, p.amount, p.datec, p.statut";
$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
$sql.= " ORDER BY datec DESC";
$sql.= $db->plimit($limit);
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
$var=True;
print"\n<!-- debut table -->\n";
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><td>'.$langs->trans("LastWithdrawalReceipt",$limit).'</td>';
print '<td>'.$langs->trans("Date").'</td>';
print '<td align="right">'.$langs->trans("Amount").'</td>';
print '<td align="right">'.$langs->trans("Status").'</td>';
print '</tr>';
while ($i < min($num,$limit))
{
$obj = $db->fetch_object($result);
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td>";
$bprev->id=$obj->rowid;
$bprev->ref=$obj->ref;
$bprev->statut=$obj->statut;
print $bprev->getNomUrl(1);
print "</td>\n";
print '<td>'.dol_print_date($db->jdate($obj->datec),"dayhour")."</td>\n";
print '<td align="right">'.price($obj->amount)."</td>\n";
print '<td align="right">'.$bprev->getLibStatut(3)."</td>\n";
print "</tr>\n";
$i++;
}
print "</table><br>";
$db->free($result);
}
else
{
dol_print_error($db);
}
/*
* Invoices waiting for withdraw
@ -222,6 +168,62 @@ else
}
print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
/*
* Withdraw receipts
*/
$limit=5;
$sql = "SELECT p.rowid, p.ref, p.amount, p.datec, p.statut";
$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
$sql.= " ORDER BY datec DESC";
$sql.= $db->plimit($limit);
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
$var=True;
print"\n<!-- debut table -->\n";
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><td>'.$langs->trans("LastWithdrawalReceipt",$limit).'</td>';
print '<td>'.$langs->trans("Date").'</td>';
print '<td align="right">'.$langs->trans("Amount").'</td>';
print '<td align="right">'.$langs->trans("Status").'</td>';
print '</tr>';
while ($i < min($num,$limit))
{
$obj = $db->fetch_object($result);
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td>";
$bprev->id=$obj->rowid;
$bprev->ref=$obj->ref;
$bprev->statut=$obj->statut;
print $bprev->getNomUrl(1);
print "</td>\n";
print '<td>'.dol_print_date($db->jdate($obj->datec),"dayhour")."</td>\n";
print '<td align="right">'.price($obj->amount)."</td>\n";
print '<td align="right">'.$bprev->getLibStatut(3)."</td>\n";
print "</tr>\n";
$i++;
}
print "</table><br>";
$db->free($result);
}
else
{
dol_print_error($db);
}
print '</div></div></div>';
llxFooter();

View File

@ -17,8 +17,8 @@
/**
* \file htdocs/compta/salaries/class/paymentsalary.class.php
* \ingroup tax
* \brief Class for tax module salary payment
* \ingroup salaries
* \brief Class for salaries module payment
*/
// Put here all includes required by your class file
@ -76,7 +76,7 @@ class PaymentSalary extends CommonObject
global $conf, $langs;
$error=0;
// Clean parameters
$this->fk_user=trim($this->fk_user);
$this->amount=trim($this->amount);
@ -85,10 +85,10 @@ class PaymentSalary extends CommonObject
$this->fk_bank=trim($this->fk_bank);
$this->fk_user_creat=trim($this->fk_user_creat);
$this->fk_user_modif=trim($this->fk_user_modif);
// Check parameters
// Put here code to add control on parameters values
// Insert request
$sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_salary(";
$sql.= "tms,";
@ -103,9 +103,9 @@ class PaymentSalary extends CommonObject
$sql.= "fk_bank,";
$sql.= "fk_user_creat,";
$sql.= "fk_user_modif";
$sql.= ") VALUES (";
$sql.= " '".$this->db->idate($this->tms).",";
$sql.= " '".$this->fk_user."',";
$sql.= " '".$this->db->idate($this->datep)."',";
@ -118,7 +118,7 @@ class PaymentSalary extends CommonObject
$sql.= " ".($this->fk_bank <= 0 ? "NULL" : "'".$this->fk_bank."'").",";
$sql.= " '".$this->fk_user_creat."',";
$sql.= " '".$this->fk_user_modif."'";
$sql.= ")";
dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG);
@ -146,7 +146,7 @@ class PaymentSalary extends CommonObject
/**
* Update database
*
*
* @param User $user User that modify
* @param int $notrigger 0=no, 1=yes (no update trigger)
* @return int <0 if KO, >0 if OK
@ -156,7 +156,7 @@ class PaymentSalary extends CommonObject
global $conf, $langs;
$error=0;
// Clean parameters
$this->fk_user=trim($this->fk_user);
$this->amount=trim($this->amount);
@ -165,7 +165,7 @@ class PaymentSalary extends CommonObject
$this->fk_bank=trim($this->fk_bank);
$this->fk_user_creat=trim($this->fk_user_creat);
$this->fk_user_modif=trim($this->fk_user_modif);
// Check parameters
if (empty($this->fk_user) || $this->fk_user < 0)
{
@ -216,7 +216,7 @@ class PaymentSalary extends CommonObject
/**
* Load object in memory from database
*
*
* @param int $id id object
* @param User $user User that load
* @return int <0 if KO, >0 if OK
@ -226,7 +226,7 @@ class PaymentSalary extends CommonObject
global $langs;
$sql = "SELECT";
$sql.= " s.rowid,";
$sql.= " s.tms,";
$sql.= " s.fk_user,";
$sql.= " s.datep,";
@ -288,7 +288,7 @@ class PaymentSalary extends CommonObject
/**
* Delete object in database
*
*
* @param User $user User that delete
* @return int <0 if KO, >0 if OK
*/
@ -360,7 +360,7 @@ class PaymentSalary extends CommonObject
// Clean parameters
$this->amount=price2num(trim($this->amount));
// Check parameters
if (! $this->label)
{
@ -369,7 +369,7 @@ class PaymentSalary extends CommonObject
}
if ($this->fk_user < 0 || $this->fk_user == '')
{
$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Person"));
$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Employee"));
return -4;
}
if ($this->amount < 0 || $this->amount == '')
@ -439,19 +439,19 @@ class PaymentSalary extends CommonObject
$acc = new Account($this->db);
$result=$acc->fetch($this->accountid);
if ($result <= 0) dol_print_error($this->db);
// Insert payment into llx_bank
// Add link 'payment_salary' in bank_url between payment and bank transaction
$bank_line_id = $acc->addline(
$this->datep,
$this->paymenttype,
$this->label,
-abs($this->amount),
-abs($this->amount),
'',
'',
$user
);
// Mise a jour fk_bank dans llx_paiement.
// On connait ainsi le paiement qui a genere l'ecriture bancaire
if ($bank_line_id > 0)
@ -463,26 +463,26 @@ class PaymentSalary extends CommonObject
$this->error=$acc->error;
$ok=0;
}
// Add link 'payment_salary' in bank_url between payment and bank transaction
$url=DOL_URL_ROOT.'/compta/salaries/fiche.php?id=';
$result=$acc->add_url_line($bank_line_id, $this->id, $url, "(SalaryPayment)", "payment_salary");
if ($result <= 0)
{
$this->error=$acc->error;
$ok=0;
}
// Add link 'user' in bank_url between operation and bank transaction
$linkaddedforthirdparty=array();
foreach ($this->amounts as $key => $value)
{
$sal = new PaymentSalary($this->db);
$sal->fetch($key);
$sal->fetch_user($this->fk_user);
if (! in_array($sal->user->id,$linkaddedforthirdparty)) // Not yet done for this thirdparty
{
$result=$acc->add_url_line(
@ -492,14 +492,14 @@ class PaymentSalary extends CommonObject
$sal->user->lastname,
'user'
);
if ($result <= 0) dol_print_error($this->db);
$linkaddedforthirdparty[$sal->user->id]=$sal->user->id; // Mark as done for this thirdparty
}
}
}
if ($ok)
{
$this->db->commit();

View File

@ -18,7 +18,7 @@
/**
* \file htdocs/compta/salaries/fiche.php
* \ingroup tax
* \brief Page of salaries payments
* \brief Page of salaries payments
*/
require '../../main.inc.php';
@ -29,6 +29,8 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
$langs->load("compta");
$langs->load("banks");
$langs->load("bills");
$langs->load("users");
$langs->load("salaries");
$id=GETPOST("id",'int');
$action=GETPOST('action');
@ -164,15 +166,15 @@ if ($action == 'create')
$pastmonth = 12;
$pastmonthyear--;
}
$datesp=dol_mktime(0, 0, 0, $datespmonth, $datespday, $datespyear);
$dateep=dol_mktime(23, 59, 59, $dateepmonth, $dateepday, $dateepyear);
if (empty($datesp) || empty($dateep)) // We define date_start and date_end
{
$datesp=dol_get_first_day($pastmonthyear,$pastmonth,false); $dateep=dol_get_last_day($pastmonthyear,$pastmonth,false);
}
print "<form name='add' action=\"fiche.php\" method=\"post\">\n";
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="add">';
@ -189,15 +191,16 @@ if ($action == 'create')
print '<tr><td class="fieldrequired">'.$langs->trans("DateValue").'</td><td>';
print $form->select_date($datev,"datev",'','','','add');
print '</td></tr>';
// Employee
print "<tr>";
print '<td class="fieldrequired">'.$langs->trans("Person").'</td><td>';
print '<td class="fieldrequired">'.$langs->trans("Employee").'</td><td>';
print $form->select_dolusers(GETPOST('fk_user','int'),'fk_user',1);
print '</td></tr>';
// Label
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input name="label" size="40" value="'.($_POST["label"]?$_POST["label"]:$langs->trans("SalaryPayment")).'"></td></tr>';
print "<tr>";
print '<td class="fieldrequired">'.$langs->trans("DateStartPeriod").'</td><td>';
print $form->select_date($datesp,"datesp",'','','','add');
@ -209,31 +212,31 @@ if ($action == 'create')
// Amount
print '<tr><td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input name="amount" size="10" value="'.$_POST["amount"].'"></td></tr>';
// Bank
if (! empty($conf->banque->enabled))
{
print '<tr><td class="fieldrequired">'.$langs->trans("Account").'</td><td>';
$form->select_comptes($_POST["accountid"],"accountid",0,"courant=1",1); // Affiche liste des comptes courant
print '</td></tr>';
print '<tr><td class="fieldrequired">'.$langs->trans("PaymentMode").'</td><td>';
$form->select_types_paiements($_POST["paiementtype"], "paiementtype");
print "</td>\n";
print "</tr>";
}
// Other attributes
$parameters=array('colspan' => ' colspan="1"');
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
print '</table>';
print "<br>";
print '<center><input type="submit" class="button" value="'.$langs->trans("Save").'"> &nbsp; ';
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></center>';
print '</form>';
}
@ -261,7 +264,7 @@ if ($id)
print '<td width="25%">'.$langs->trans("Ref").'</td><td colspan="3">';
print $salpayment->ref;
print '</td></tr>';
// Person
print '<tr><td>'.$langs->trans("Person").'</td><td>';
$usersal=new User($db);
@ -280,7 +283,7 @@ if ($id)
print '<tr><td>'.$langs->trans("DateEndPeriod").'</td><td colspan="3">';
print dol_print_date($salpayment->dateep,'day');
print '</td></tr>';
print "<tr>";
print '<td>'.$langs->trans("DatePayment").'</td><td colspan="3">';
print dol_print_date($salpayment->datep,'day');

View File

@ -25,6 +25,7 @@ require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/compta/salaries/class/paymentsalary.class.php';
$langs->load("compta");
$langs->load("salaries");
// Security check
$socid = isset($_GET["socid"])?$_GET["socid"]:'';
@ -41,7 +42,7 @@ llxHeader();
$salstatic = new PaymentSalary($db);
$userstatic = new User($db);
print_fiche_titre($langs->trans("SalariesPayments"));

View File

@ -547,7 +547,6 @@ class Menubase
$tmpcond=$menu['enabled'];
if ($leftmenu == 'all') $tmpcond=preg_replace('/\$leftmenu\s*==\s*["\'a-zA-Z_]+/','1==1',$tmpcond); // Force part of condition to true
$enabled = verifCond($tmpcond);
//if ($conf->use_javascript_ajax && ! empty($conf->global->MAIN_MENU_USE_JQUERY_ACCORDION) && empty($conf->dol_use_jmobile) && preg_match('/^\$leftmenu/',$menu['enabled'])) $enabled=1;
}
// Define $title

View File

@ -0,0 +1,34 @@
// Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.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 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/js/lib_batch.js
// \brief File that include javascript functions used when dispatching batch-enabled product
//
function AddLineBatch(index) {
var nme = 'dluo_0_'+index;
$row=$("tr[name='"+nme+"']").clone(true);
$row.find("input[name^='qty']").val('');
var trs = $("tr[name^='dluo_'][name$='_"+index+"']");
var newrow=$row.html().replace(/_0_/g,"_"+(trs.length)+"_");
$row.html(newrow);
//clear value
$row.find("input[name^='qty']").val('');
//change name of row
$row.attr('name','dluo_'+trs.length+'_'+index);
$("tr[name^='dluo_'][name$='_"+index+"']:last").after($row);
}

View File

@ -78,6 +78,11 @@ function categoriesadmin_prepare_head()
$head[$h][1] = $langs->trans("Setup");
$head[$h][2] = 'setup';
$h++;
$head[$h][0] = DOL_URL_ROOT.'/categories/admin/categorie_extrafields.php';
$head[$h][1] = $langs->trans("ExtraFieldsCategories");
$head[$h][2] = 'attributes_categories';
$h++;
// Show more tabs from modules
// Entries must be declared in modules descriptor with line

View File

@ -999,7 +999,7 @@ function dol_getdate($timestamp,$fast=false)
* @param int $year Year
* @param int $gm 1=Input informations are GMT values, otherwise local to server TZ
* @param int $check 0=No check on parameters (Can use day 32, etc...)
* @return int Date as a timestamp, '' if error
* @return int Date as a timestamp, '' if error
* @see dol_print_date, dol_stringtotime, dol_getdate
*/
function dol_mktime($hour,$minute,$second,$month,$day,$year,$gm=false,$check=1)
@ -2689,7 +2689,7 @@ function vatrate($rate,$addpercent=false,$info_bits=0,$usestarfornpr=0)
* @param int $trunc 1=Truncate if there is too much decimals (default), 0=Does not truncate
* @param int $rounding Minimum number of decimal to show. If 0, no change, if -1, we use min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOTAL)
* @param int $forcerounding Force the number of decimal to forcerounding decimal (-1=do not force)
* @param string $currency_code To add currency symbol (''=add nothing, 'XXX'=add currency symbols for XXX currency)
* @param string $currency_code To add currency symbol (''=add nothing, 'auto'=Use default currency, 'XXX'=add currency symbols for XXX currency)
* @return string Chaine avec montant formate
*
* @see price2num Revert function of price
@ -2751,6 +2751,8 @@ function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerou
$cursymbolbefore=$cursymbolafter='';
if ($currency_code)
{
if ($currency_code == 'auto') $currency_code=$conf->currency;
$listofcurrenciesbefore=array('USD');
if (in_array($currency_code,$listofcurrenciesbefore)) $cursymbolbefore.=$outlangs->getCurrencySymbol($currency_code);
else $cursymbolafter.=$outlangs->getCurrencySymbol($currency_code);

View File

@ -222,8 +222,14 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
$numlines=count($lines);
$total=0;
$total_planned=0;
// We declare counter as global because we want to edit them into recursive call
global $total_projectlinesa_spent,$total_projectlinesa_planned,$total_projectlinesa_spent_if_planned;
if ($level == 0)
{
$total_projectlinesa_spent=0;
$total_projectlinesa_planned=0;
$total_projectlinesa_spent_if_planned=0;
}
for ($i = 0 ; $i < $numlines ; $i++)
{
@ -391,9 +397,9 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
$level++;
if ($lines[$i]->id) projectLinesa($inc, $lines[$i]->id, $lines, $level, $var, $showproject, $taskrole, $projectsListId, $addordertick);
$level--;
$total += $lines[$i]->duration;
$total_planned += $lines[$i]->planned_workload;
// TODO fix totals in recursive calls
$total_projectlinesa_spent += $lines[$i]->duration;
$total_projectlinesa_planned += $lines[$i]->planned_workload;
if ($lines[$i]->planned_workload) $total_projectlinesa_spent_if_planned += $lines[$i]->duration;
}
}
else
@ -402,7 +408,7 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
}
}
if ($total>0 && $level==0)
if (($total_projectlinesa_planned > 0 || $total_projectlinesa_spent > 0) && $level==0)
{
print '<tr class="liste_total">';
print '<td class="liste_total">'.$langs->trans("Total").'</td>';
@ -410,11 +416,15 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
print '<td></td>';
print '<td></td>';
print '<td></td>';
print '<td align="center" class="nowrap liste_total">'.convertSecondToTime($total_planned, 'allhourmin').'</td>';
print '<td align="center" class="nowrap liste_total">';
print convertSecondToTime($total_projectlinesa_planned, 'allhourmin');
print '</td>';
print '<td></td>';
print '<td align="right" class="nowrap liste_total">'.convertSecondToTime($total, 'allhourmin').'</td>';
print '<td align="right" class="nowrap liste_total">';
if($total_planned) print round(100 * $total / $total_planned,2).' %';
print convertSecondToTime($total_projectlinesa_spent, 'allhourmin');
print '</td>';
print '<td align="right" class="nowrap liste_total">';
if ($total_projectlinesa_planned) print round(100 * $total_projectlinesa_spent_if_planned / $total_projectlinesa_planned,2).' %';
print '</td>';
if ($addordertick) print '<td class="hideonsmartphone"></td>';
print '</tr>';

View File

@ -18,7 +18,7 @@ insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, left
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('mailing|export|import', '$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled', 8__+MAX_llx_menu__, __HANDLER__, 'top', 'tools', '', 0, '/core/tools.php?mainmenu=tools&amp;leftmenu=', 'Tools', -1, 'other', '$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run', '', 2, 90, __ENTITY__);
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('boutique', '! empty($conf->boutique->enabled)', 11__+MAX_llx_menu__, __HANDLER__, 'top', 'shop', '', 0, '/boutique/index.php?mainmenu=shop&amp;leftmenu=', 'OSCommerce', -1, 'shop', '', '', 0, 100, __ENTITY__);
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('adherent', '$conf->adherent->enabled', 13__+MAX_llx_menu__, __HANDLER__, 'top', 'members', '', 0, '/adherents/index.php?mainmenu=members&amp;leftmenu=', 'Members', -1, 'members', '$user->rights->adherent->lire', '', 2, 110, __ENTITY__);
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('holiday', '$conf->holiday->enabled', 15__+MAX_llx_menu__, __HANDLER__, 'top', 'hrm', '', 0, '/holiday/index.php?mainmenu=holiday&amp;leftmenu=', 'HRM', -1, 'holiday', '$user->rights->holiday->write', '', 0, 80, __ENTITY__);
insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('hrm', '$conf->holiday->enabled || $conf->deplacement->enabled', 15__+MAX_llx_menu__, __HANDLER__, 'top', 'hrm', '', 0, '/compta/hrm.php?mainmenu=hrm&amp;leftmenu=', 'HRM', -1, 'holiday', '$user->rights->holiday->write || $user->rights->deplacement->lire', '', 0, 80, __ENTITY__);
-- Home - Setup
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$user->admin', __HANDLER__, 'left', 100__+MAX_llx_menu__, 'home', 'setup', 1__+MAX_llx_menu__, '/admin/index.php?leftmenu=setup', 'Setup', 0, 'admin', '', '', 2, 0, __ENTITY__);
@ -174,13 +174,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2001__+MAX_llx_menu__, 'accountancy', '', 2000__+MAX_llx_menu__, '/compta/dons/fiche.php?leftmenu=donations&amp;mainmenu=accountancy&amp;action=create', 'NewDonation', 1, 'donations', '$user->rights->don->creer', '', 2, 0, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2002__+MAX_llx_menu__, 'accountancy', '', 2000__+MAX_llx_menu__, '/compta/dons/liste.php?leftmenu=donations&amp;mainmenu=accountancy', 'List', 1, 'donations', '$user->rights->don->lire', '', 2, 1, __ENTITY__);
--insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2003__+MAX_llx_menu__, 'accountancy', '', 2000__+MAX_llx_menu__, '/compta/dons/stats.php?leftmenu=donations&amp;mainmenu=accountancy', 'Statistics', 1, 'donations', '$user->rights->don->lire', '', 2, 2, __ENTITY__);
-- Trips and expenses
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2100__+MAX_llx_menu__, 'accountancy', 'tripsandexpenses', 6__+MAX_llx_menu__, '/compta/deplacement/index.php?leftmenu=tripsandexpenses', 'TripsAndExpenses', 0, 'trips', '$user->rights->deplacement->lire', '', 0, 5, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled && $leftmenu=="tripsandexpenses"', __HANDLER__, 'left', 2101__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/fiche.php?action=create&amp;leftmenu=tripsandexpenses', 'New', 1, 'trips', '$user->rights->deplacement->creer', '', 0, 1, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled && $leftmenu=="tripsandexpenses"', __HANDLER__, 'left', 2102__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/list.php?leftmenu=tripsandexpenses', 'List', 1, 'trips', '$user->rights->deplacement->lire', '', 0, 2, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled && $leftmenu=="tripsandexpenses"', __HANDLER__, 'left', 2103__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses', 'Statistics', 1, 'trips', '$user->rights->deplacement->lire', '', 0, 2, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'accountancy', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax&amp;mainmenu=accountancy', 'MenuTaxAndDividends', 0, 'compta', '$user->rights->tax->charges->lire', '', 0, 6, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2201__+MAX_llx_menu__, 'accountancy', 'tax_sal', 2200__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary&amp;mainmenu=accountancy', 'Salaries', 1, 'companies', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
-- Special expenses
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'accountancy', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax&amp;mainmenu=accountancy', 'MenuSpecialExpenses', 0, 'compta', '1', '', 0, 6, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2201__+MAX_llx_menu__, 'accountancy', 'tax_sal', 2200__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary&amp;mainmenu=accountancy', 'Salaries', 1, 'salaries', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2202__+MAX_llx_menu__, 'accountancy', '', 2201__+MAX_llx_menu__, '/compta/salaries/fiche.php?leftmenu=tax_salary&amp;action=create', 'NewPayment', 2, 'companies', '$user->rights->tax->charges->creer', '', 0, 2, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2203__+MAX_llx_menu__, 'accountancy', '', 2201__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary', 'Payments', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2250__+MAX_llx_menu__, 'accountancy', 'tax_social', 2200__+MAX_llx_menu__, '/compta/sociales/index.php?leftmenu=tax_social', 'SocialContributions', 1, '', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
@ -280,10 +276,15 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
-- Members - Category member
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5200__+MAX_llx_menu__, 'members', 'cat', 13__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=3', 'MembersCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5201__+MAX_llx_menu__, 'members', '', 5200__+MAX_llx_menu__, '/categories/fiche.php?action=create&amp;type=3', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
-- HRM
-- HRM - Holiday
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/index.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5001__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/fiche.php?&action=request', 'MenuAddCP', 1, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5002__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/define_holiday.php?&action=request', 'MenuConfCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 2, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5003__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/view_log.php?&action=request', 'MenuLogCP', 1, 'holiday', '$user->rights->holiday->view_log', '', 0, 3, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5004__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/month_report.php?&action=request', 'MenuReportMonth', 1, 'holiday', '$user->rights->holiday->month_report', '', 0, 4, __ENTITY__);
-- HRM - Trips and expenses
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2100__+MAX_llx_menu__, 'accountancy', 'tripsandexpenses', 15__+MAX_llx_menu__, '/compta/deplacement/index.php?leftmenu=tripsandexpenses', 'TripsAndExpenses', 0, 'trips', '$user->rights->deplacement->lire', '', 0, 5, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2101__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/fiche.php?action=create&amp;leftmenu=tripsandexpenses', 'New', 1, 'trips', '$user->rights->deplacement->creer', '', 0, 1, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2102__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/list.php?leftmenu=tripsandexpenses', 'List', 1, 'trips', '$user->rights->deplacement->lire', '', 0, 2, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2103__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses', 'Statistics', 1, 'trips', '$user->rights->deplacement->lire', '', 0, 2, __ENTITY__);

View File

@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2010-2013 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2010-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2012-2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
@ -134,9 +134,9 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0)
}
// Financial
$tmpentry=array('enabled'=>(! empty($conf->comptabilite->enabled) || ! empty($conf->accounting->enabled) || ! empty($conf->facture->enabled) || ! empty($conf->deplacement->enabled) || ! empty($conf->don->enabled) || ! empty($conf->tax->enabled)),
'perms'=>(! empty($user->rights->compta->resultat->lire) || ! empty($user->rights->accounting->plancompte->lire) || ! empty($user->rights->facture->lire) || ! empty($user->rights->deplacement->lire) || ! empty($user->rights->don->lire) || ! empty($user->rights->tax->charges->lire)),
'module'=>'comptabilite|accounting|facture|deplacement|don|tax');
$tmpentry=array('enabled'=>(! empty($conf->comptabilite->enabled) || ! empty($conf->accounting->enabled) || ! empty($conf->facture->enabled) || ! empty($conf->don->enabled) || ! empty($conf->tax->enabled)),
'perms'=>(! empty($user->rights->compta->resultat->lire) || ! empty($user->rights->accounting->plancompte->lire) || ! empty($user->rights->facture->lire) || ! empty($user->rights->don->lire) || ! empty($user->rights->tax->charges->lire)),
'module'=>'comptabilite|accounting|facture|don|tax');
$showmode=dol_eldy_showmenu($type_user, $tmpentry, $listofmodulesforexternal);
if ($showmode)
{
@ -195,9 +195,9 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0)
}
// HRM
$tmpentry=array('enabled'=>(! empty($conf->holiday->enabled)),
'perms'=>(! empty($user->rights->holiday->write)),
'module'=>'holiday');
$tmpentry=array('enabled'=>(! empty($conf->holiday->enabled) || ! empty($conf->deplacement->enabled)),
'perms'=>(! empty($user->rights->holiday->write) || ! empty($user->rights->deplacement->lire)),
'module'=>'holiday|deplacement');
$showmode=dol_eldy_showmenu($type_user, $tmpentry, $listofmodulesforexternal);
if ($showmode)
{
@ -209,9 +209,9 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0)
$idsel='hrm';
if (empty($noout)) print_start_menu_entry($idsel,$classname,$showmode);
if (empty($noout)) print_text_menu_entry($langs->trans("HRM"), $showmode, DOL_URL_ROOT.'/holiday/index.php?mainmenu=hrm&amp;leftmenu=', $id, $idsel, $classname, $atarget);
if (empty($noout)) print_text_menu_entry($langs->trans("HRM"), $showmode, DOL_URL_ROOT.'/compta/hrm.php?mainmenu=hrm&amp;leftmenu=', $id, $idsel, $classname, $atarget);
if (empty($noout)) print_end_menu_entry($showmode);
$menu->add('/holiday/index.php?mainmenu=holiday&amp;leftmenu=', $langs->trans("HRM"), 0, $showmode, $atarget, "hrm", '');
$menu->add('/compta/hrm.php?mainmenu=hrm&amp;leftmenu=', $langs->trans("HRM"), 0, $showmode, $atarget, "hrm", '');
}
@ -790,27 +790,23 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
//if ($leftmenu=="donations") $newmenu->add("/compta/dons/stats.php",$langs->trans("Statistics"), 1, $user->rights->don->lire);
}
// Trips and expenses
if (! empty($conf->deplacement->enabled))
{
$langs->load("trips");
$newmenu->add("/compta/deplacement/index.php?leftmenu=tripsandexpenses&amp;mainmenu=accountancy", $langs->trans("TripsAndExpenses"), 0, $user->rights->deplacement->lire, '', $mainmenu, 'tripsandexpenses');
if (empty($leftmenu) || $leftmenu=="tripsandexpenses") $newmenu->add("/compta/deplacement/fiche.php?action=create&amp;leftmenu=tripsandexpenses&amp;mainmenu=accountancy", $langs->trans("New"), 1, $user->rights->deplacement->creer);
if (empty($leftmenu) || $leftmenu=="tripsandexpenses") $newmenu->add("/compta/deplacement/list.php?leftmenu=tripsandexpenses&amp;mainmenu=accountancy", $langs->trans("List"), 1, $user->rights->deplacement->lire);
if (empty($leftmenu) || $leftmenu=="tripsandexpenses") $newmenu->add("/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses&amp;mainmenu=accountancy", $langs->trans("Statistics"), 1, $user->rights->deplacement->lire);
}
// Taxes and social contributions
if (! empty($conf->tax->enabled))
if (! empty($conf->tax->enabled) || ! empty($conf->salaries->enabled))
{
$newmenu->add("/compta/charges/index.php?leftmenu=tax&amp;mainmenu=accountancy",$langs->trans("MenuTaxAndDividends"), 0, $user->rights->tax->charges->lire, '', $mainmenu, 'tax');
// Salaries
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary&amp;mainmenu=accountancy",$langs->trans("Salaries"),1,$user->rights->tax->charges->lire, '', $mainmenu, 'tax_salary');
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/salaries/fiche.php?leftmenu=tax_salary&action=create",$langs->trans("NewPayment"),2,$user->rights->tax->charges->creer);
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary",$langs->trans("Payments"),2,$user->rights->tax->charges->lire);
global $mysoc;
// Social contributions
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/sociales/index.php?leftmenu=tax_social",$langs->trans("MenuSocialContributions"),1,$user->rights->tax->charges->lire);
$newmenu->add("/compta/charges/index.php?leftmenu=tax&amp;mainmenu=accountancy",$langs->trans("MenuSpecialExpenses"), 0, $user->rights->tax->charges->lire, '', $mainmenu, 'tax');
// Salaries
if (! empty($conf->salaries->enabled))
{
$langs->load("salaries");
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary&amp;mainmenu=accountancy",$langs->trans("Salaries"),1,$user->rights->salaries->read, '', $mainmenu, 'tax_salary');
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/salaries/fiche.php?leftmenu=tax_salary&action=create",$langs->trans("NewPayment"),2,$user->rights->salaries->create);
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary",$langs->trans("Payments"),2,$user->rights->salaries->read);
}
// Social contributions
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/sociales/index.php?leftmenu=tax_social",$langs->trans("MenuSocialContributions"),1,$user->rights->tax->charges->lire);
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/sociales/charges.php?leftmenu=tax_social&action=create",$langs->trans("MenuNewSocialContribution"), 2, $user->rights->tax->charges->creer);
if (empty($leftmenu) || preg_match('/^tax/i',$leftmenu)) $newmenu->add("/compta/charges/index.php?leftmenu=tax_social&amp;mainmenu=accountancy&amp;mode=sconly",$langs->trans("Payments"), 2, $user->rights->tax->charges->lire);
// VAT
@ -1089,17 +1085,26 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
*/
if ($mainmenu == 'hrm')
{
// Holiday module
if (! empty($conf->holiday->enabled))
{
$langs->load("holiday");
// HRM: Holiday module
$newmenu->add("/holiday/index.php?&leftmenu=hrm", $langs->trans("CPTitreMenu"), 0, $user->rights->holiday->write, '', $mainmenu, 'hrm');
$newmenu->add("/holiday/fiche.php?&action=request", $langs->trans("MenuAddCP"), 1,$user->rights->holiday->write);
$newmenu->add("/holiday/define_holiday.php?&action=request", $langs->trans("MenuConfCP"), 1, $user->rights->holiday->define_holiday);
$newmenu->add("/holiday/view_log.php?&action=request", $langs->trans("MenuLogCP"), 1, $user->rights->holiday->view_log);
$newmenu->add("/holiday/month_report.php?&action=request", $langs->trans("MenuReportMonth"), 1, $user->rights->holiday->month_report);
}
// Trips and expenses
if (! empty($conf->deplacement->enabled))
{
$langs->load("trips");
$newmenu->add("/compta/deplacement/index.php?leftmenu=tripsandexpenses&amp;mainmenu=accountancy", $langs->trans("TripsAndExpenses"), 0, $user->rights->deplacement->lire, '', $mainmenu, 'tripsandexpenses');
$newmenu->add("/compta/deplacement/fiche.php?action=create&amp;leftmenu=tripsandexpenses&amp;mainmenu=accountancy", $langs->trans("New"), 1, $user->rights->deplacement->creer);
$newmenu->add("/compta/deplacement/list.php?leftmenu=tripsandexpenses&amp;mainmenu=accountancy", $langs->trans("List"), 1, $user->rights->deplacement->lire);
$newmenu->add("/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses&amp;mainmenu=accountancy", $langs->trans("Statistics"), 1, $user->rights->deplacement->lire);
}
}

View File

@ -63,7 +63,7 @@ class modCategorie extends DolibarrModules
$this->depends = array();
// Config pages
$this->config_page_url = array();
$this->config_page_url = array('categorie_extrafields.php@categories');
$this->langfiles = array("products","companies","categories");
// Constantes

View File

@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2005-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
*
* This program is free software; you can redistribute it and/or modify
@ -89,24 +89,12 @@ class modDeplacement extends DolibarrModules
$this->rights[2][3] = 0;
$this->rights[2][4] = 'creer';
$this->rights[3][0] = 173;
$this->rights[3][0] = 173;
$this->rights[3][1] = 'Supprimer les deplacements';
$this->rights[3][2] = 'd';
$this->rights[3][3] = 0;
$this->rights[3][4] = 'supprimer';
/*
$this->rights[4][0] = 174;
$this->rights[4][1] = 'Bloquer les deplacements';
$this->rights[4][2] = 'a';
$this->rights[4][3] = 0;
$this->rights[4][4] = 'valider';
$this->rights[5][0] = 175;
$this->rights[5][1] = 'Debloquer les deplacements';
$this->rights[5][2] = 'a';
$this->rights[5][3] = 0;
$this->rights[5][4] = 'unvalidate';
*/
$this->rights[6][0] = 178;
$this->rights[6][1] = 'Exporter les deplacements';
$this->rights[6][2] = 'd';

View File

@ -0,0 +1,177 @@
<?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
*
* 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/
*/
/**
* \defgroup tax Module salaries
* \brief Module to include salaries management
* \file htdocs/core/modules/modSalaries.class.php
* \ingroup salaries
* \brief File to activate module salaries
*/
include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
/**
* Class to manage salaries module
*/
class modSalaries extends DolibarrModules
{
/**
* Constructor. Define names, constants, directories, boxes, permissions
*
* @param DoliDB $db Database handler
*/
function __construct($db)
{
global $conf;
$this->db = $db;
$this->numero = 510;
$this->family = "hr";
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
$this->name = preg_replace('/^mod/i','',get_class($this));
// Module description used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
$this->description = "Employees salaries management";
// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
$this->version = 'dolibarr';
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
$this->special = 0;
$this->picto='bill';
// Data directories to create when module is enabled
$this->dirs = array("/salaries/temp");
// Config pages
$this->config_page_url = array();
// Dependances
$this->depends = array();
$this->requiredby = array();
$this->conflictwith = array();
$this->langfiles = array("salaries");
// Constantes
$this->const = array();
// Boites
$this->boxes = array();
// Permissions
$this->rights = array();
$this->rights_class = 'salaries';
$r=0;
$r++;
$this->rights[$r][0] = 510;
$this->rights[$r][1] = 'Read salaries';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'read';
$this->rights[$r][5] = '';
$r++;
$this->rights[$r][0] = 511;
$this->rights[$r][1] = 'Create/modify salaries';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'create';
$this->rights[$r][5] = '';
$r++;
$this->rights[$r][0] = 512;
$this->rights[$r][1] = 'Delete salaries';
$this->rights[$r][2] = 'd';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'delete';
$this->rights[$r][5] = '';
$r++;
$this->rights[$r][0] = 515;
$this->rights[$r][1] = 'Export salaries';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'export';
$this->rights[$r][5] = '';
// Exports
//--------
$r=0;
/*
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Payment of salaries';
$this->export_permission[$r]=array(array("tax","charges","export"));
$this->export_fields_array[$r]=array('cc.libelle'=>"Type",'c.rowid'=>"IdSocialContribution",'c.libelle'=>"Label",'c.date_ech'=>'DateDue','c.periode'=>'Period','c.amount'=>"AmountExpected","c.paye"=>"Status",'p.rowid'=>'PaymentId','p.datep'=>'DatePayment','p.amount'=>'AmountPayment','p.num_paiement'=>'Numero');
$this->export_TypeFields_array[$r]=array('cc.libelle'=>"List:c_chargesociales:libelle:id",'c.libelle'=>"Text",'c.date_ech'=>'Date','c.periode'=>'Period','c.amount'=>"Number","c.paye"=>"Boolean",'p.datep'=>'Date','p.amount'=>'Number','p.num_paiement'=>'Number');
$this->export_entities_array[$r]=array('cc.libelle'=>"tax_type",'c.rowid'=>"tax",'c.libelle'=>'tax','c.date_ech'=>'tax','c.periode'=>'tax','c.amount'=>"tax","c.paye"=>"tax",'p.rowid'=>'payment','p.datep'=>'payment','p.amount'=>'payment','p.num_paiement'=>'payment');
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'c_chargesociales as cc, '.MAIN_DB_PREFIX.'chargesociales as c';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'paiementcharge as p ON p.fk_charge = c.rowid';
$this->export_sql_end[$r] .=' WHERE c.fk_type = cc.id';
$this->export_sql_end[$r] .=' AND c.entity = '.$conf->entity;
*/
}
/**
* Function called when module is enabled.
* The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
* It also creates data directories
*
* @param string $options Options when enabling module ('', 'noboxes')
* @return int 1 if OK, 0 if KO
*/
function init($options='')
{
global $conf;
// Nettoyage avant activation
$this->remove($options);
$sql = array();
return $this->_init($sql,$options);
}
/**
* Function called when module is disabled.
* Remove from database constants, boxes and permissions from Dolibarr database.
* Data directories are not deleted
*
* @param string $options Options when enabling module ('', 'noboxes')
* @return int 1 if OK, 0 if KO
*/
function remove($options='')
{
$sql = array();
return $this->_remove($sql,$options);
}
}
?>

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2005-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2009-2011 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2011-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Cedric GROSS <c.gross@kreiz-it.fr>
*
* This program is free software; you can redistribute it and/or modify
@ -426,6 +426,34 @@ class InterfaceActionsAuto
$object->sendtoid=0;
$ok=1;
}
elseif ($action == 'ORDER_SUPPLIER_APPROVE')
{
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
$langs->load("orders");
$langs->load("agenda");
$object->actiontypecode='AC_OTH_AUTO';
if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderApprovedInDolibarr",$object->ref);
$object->actionmsg=$langs->transnoentities("OrderApprovedInDolibarr",$object->ref);
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0;
$ok=1;
}
elseif ($action == 'ORDER_SUPPLIER_REFUSE')
{
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
$langs->load("orders");
$langs->load("agenda");
$object->actiontypecode='AC_OTH_AUTO';
if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderRefusedInDolibarr",$object->ref);
$object->actionmsg=$langs->transnoentities("OrderRefusedInDolibarr",$object->ref);
$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
$object->sendtoid=0;
$ok=1;
}
elseif ($action == 'ORDER_SUPPLIER_SENTBYMAIL')
{
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);

View File

@ -31,6 +31,7 @@
include_once DOL_DOCUMENT_ROOT.'/core/class/commonorder.class.php';
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
if (! empty($conf->productbatch->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php';
/**
@ -1234,9 +1235,12 @@ class CommandeFournisseur extends CommonOrder
* @param int $entrepot Id of warehouse to add product
* @param double $price Unit Price for PMP value calculation (Unit price without Tax and taking into account discount)
* @param string $comment Comment for stock movement
* @param date $eatby eat-by date
* @param date $sellby sell-by date
* @param string $batch Lot number
* @return int <0 if KO, >0 if OK
*/
function DispatchProduct($user, $product, $qty, $entrepot, $price=0, $comment='')
function DispatchProduct($user, $product, $qty, $entrepot, $price=0, $comment='', $eatby='', $sellby='', $batch='')
{
global $conf;
$error = 0;
@ -1290,7 +1294,7 @@ class CommandeFournisseur extends CommonOrder
{
// $price should take into account discount (except if option STOCK_EXCLUDE_DISCOUNT_FOR_PMP is on)
$mouv->origin = &$this;
$result=$mouv->reception($user, $product, $entrepot, $qty, $price, $comment);
$result=$mouv->reception($user, $product, $entrepot, $qty, $price, $comment, $eatby, $sellby, $batch);
if ($result < 0)
{
$this->error=$mouv->error;

View File

@ -4,6 +4,7 @@
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2014 C<EFBFBD>dric Gross <c.gross@kreiz-it.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
@ -40,6 +41,7 @@ $langs->load('bills');
$langs->load('deliveries');
$langs->load('products');
$langs->load('stocks');
if (! empty($conf->productbatch->enabled)) $langs->load('productbatch');
// Security check
$id = GETPOST("id",'int');
@ -53,7 +55,7 @@ if (empty($conf->stock->enabled))
// Recuperation de l'id de projet
$projectid = 0;
if ($_GET["projectid"]) $projectid = $_GET["projectid"];
if ($_GET["projectid"]) $projectid = GETPOST("projectid",'int');
$mesg='';
@ -76,9 +78,9 @@ if ($_POST["action"] == 'dispatch' && $user->rights->fournisseur->commande->rece
$qty = "qty_".$reg[1];
$ent = "entrepot_".$reg[1];
$pu = "pu_".$reg[1]; // This is unit price including discount
if ($_POST[$ent] > 0)
if (GETPOST($ent,'int') > 0)
{
$result = $commande->DispatchProduct($user, $_POST[$prod], $_POST[$qty], $_POST[$ent], $_POST[$pu], $_POST["comment"]);
$result = $commande->DispatchProduct($user, GETPOST($prod,'int'),GETPOST($qty), GETPOST($ent,'int'), GETPOST($pu), GETPOST("comment"));
}
else
{
@ -86,7 +88,33 @@ if ($_POST["action"] == 'dispatch' && $user->rights->fournisseur->commande->rece
$text = $langs->transnoentities('Warehouse').', '.$langs->transnoentities('Line').'' .($reg[1]-1);
setEventMessage($langs->trans('ErrorFieldRequired',$text), 'errors');
}
} else if (preg_match('/^product_([0-9]+)_([0-9]+)$/i', $key, $reg)) {
//eat-by date dispatch
$prod = "product_".$reg[1]."_".$reg[2];
$qty = "qty_".$reg[1]."_".$reg[2];
$ent = "entrepot_".$reg[1]."_".$reg[2];
$pu = "pu_".$reg[1]."_".$reg[2];
$lot = "lot_number_".$reg[1]."_".$reg[2];
$dDLUO = dol_mktime(12, 0, 0, $_POST['dluo_'.$reg[1]."_".$reg[2].'month'], $_POST['dluo_'.$reg[1]."_".$reg[2].'day'], $_POST['dluo_'.$reg[1]."_".$reg[2].'year']);
$dDLC = dol_mktime(12, 0, 0, $_POST['dlc_'.$reg[1]."_".$reg[2].'month'], $_POST['dlc_'.$reg[1]."_".$reg[2].'day'], $_POST['dlc_'.$reg[1]."_".$reg[2].'year']);
if (! (GETPOST($ent,'int') > 0))
{
dol_syslog('No dispatch for line '.$key.' as no warehouse choosed');
$text = $langs->transnoentities('Warehouse').', '.$langs->transnoentities('Line').'' .($reg[1]-1);
setEventMessage($langs->trans('ErrorFieldRequired',$text), 'errors');
}
if (!((GETPOST($qty) > 0 ) && ( $_POST[$lot] or $dDLUO or $dDLC) ))
{
dol_syslog('No dispatch for line '.$key.' as qty is not set or eat-by date are not set');
$text = $langs->transnoentities('atleast1batchfield').', '.$langs->transnoentities('Line').'' .($reg[1]-1);
setEventMessage($langs->trans('ErrorFieldRequired',$text), 'errors');
} else {
$result = $commande->DispatchProduct($user, GETPOST($prod,'int'),GETPOST($qty), GETPOST($ent,'int'), GETPOST($pu), GETPOST("comment"), $dDLC, $dDLUO, GETPOST($lot));
}
}
}
if (! $notrigger)
@ -104,7 +132,7 @@ if ($_POST["action"] == 'dispatch' && $user->rights->fournisseur->commande->rece
{
$db->commit();
header("Location: dispatch.php?id=".$_GET["id"]);
header("Location: dispatch.php?id=".$id);
exit;
}
else
@ -120,22 +148,27 @@ if ($_POST["action"] == 'dispatch' && $user->rights->fournisseur->commande->rece
* View
*/
llxHeader('',$langs->trans("OrderCard"),"CommandeFournisseur");
if (!empty($conf->productbatch->enabled)) {
llxHeader('',$langs->trans("OrderCard"),"CommandeFournisseur",'',0,0,array('/core/js/lib_batch.js'));
} else {
llxHeader('',$langs->trans("OrderCard"),"CommandeFournisseur");
}
$form = new Form($db);
$warehouse_static = new Entrepot($db);
$now=dol_now();
$id = $_GET['id'];
$ref= $_GET['ref'];
$id = GETPOST('id','int');
$ref= GETPOST('ref');
if ($id > 0 || ! empty($ref))
{
//if ($mesg) print $mesg.'<br>';
$commande = new CommandeFournisseur($db);
$result=$commande->fetch($_GET['id'],$_GET['ref']);
$result=$commande->fetch($id,$ref);
if ($result >= 0)
{
$soc = new Societe($db);
@ -237,11 +270,11 @@ if ($id > 0 || ! empty($ref))
}
$sql = "SELECT l.fk_product, l.subprice, l.remise_percent, SUM(l.qty) as qty,";
$sql.= " p.ref, p.label";
$sql.= " p.ref, p.label, p.tobatch";
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as l";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON l.fk_product=p.rowid";
$sql.= " WHERE l.fk_commande = ".$commande->id;
$sql.= " GROUP BY p.ref, p.label, l.fk_product, l.subprice, l.remise_percent"; // Calculation of amount dispatched is done per fk_product so we must group by fk_product
$sql.= " GROUP BY p.ref, p.label, p.tobatch, l.fk_product, l.subprice, l.remise_percent"; // Calculation of amount dispatched is done per fk_product so we must group by fk_product
$sql.= " ORDER BY p.ref, p.label";
$resql = $db->query($sql);
@ -253,13 +286,23 @@ if ($id > 0 || ! empty($ref))
if ($num)
{
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Description").'</td>';
print '<td colspan="4" width="40%">'.$langs->trans("Description").'</td>';
print '<td align="right">'.$langs->trans("QtyOrdered").'</td>';
print '<td align="right">'.$langs->trans("QtyDispatched").'</td>';
print '<td align="right">'.$langs->trans("QtyDelivered").'</td>';
print '<td align="right">'.$langs->trans("Warehouse").'</td>';
print "</tr>\n";
if (!empty($conf->productbatch->enabled)) {
print '<tr class="liste_titre">';
print '<td width="5%">&nbsp;</td>';
print '<td>'.$langs->trans("l_eatby").'</td>';
print '<td>'.$langs->trans("l_sellby").'</td>';
print '<td>'.$langs->trans("batch_number").'</td>';
print '<td colspan="4" width="50%">&nbsp;</td>';
print "</tr>\n";
}
}
$nbfreeproduct=0;
@ -285,35 +328,57 @@ if ($id > 0 || ! empty($ref))
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td>';
print '<td colspan="4">';
print '<a href="'.DOL_URL_ROOT.'/product/fournisseurs.php?id='.$objp->fk_product.'">'.img_object($langs->trans("ShowProduct"),'product').' '.$objp->ref.'</a>';
print ' - '.$objp->label."\n";
// To show detail cref and description value, we must make calculation by cref
//print ($objp->cref?' ('.$objp->cref.')':'');
//if ($objp->description) print '<br>'.nl2br($objp->description);
print '<input name="product_'.$i.'" type="hidden" value="'.$objp->fk_product.'">'."\n";
if ((empty($conf->productbatch->enabled)) || $objp->tobatch==0) {
$suffix='_'.$i;
} else {
$suffix='_0_'.$i;
}
$up_ht_disc=$objp->subprice;
if (! empty($objp->remise_percent) && empty($conf->global->STOCK_EXCLUDE_DISCOUNT_FOR_PMP)) $up_ht_disc=price2num($up_ht_disc * (100 - $objp->remise_percent) / 100, 'MU');
$up_ht_disc=$objp->subprice;
if (! empty($objp->remise_percent) && empty($conf->global->STOCK_EXCLUDE_DISCOUNT_FOR_PMP)) $up_ht_disc=price2num($up_ht_disc * (100 - $objp->remise_percent) / 100, 'MU');
print '<input name="pu_'.$i.'" type="hidden" value="'.$up_ht_disc.'">'."<!-- This is a up including discount -->\n";
print "</td>\n";
print '<td align="right">'.$objp->qty.'</td>';
print '<td align="right">'.$products_dispatched[$objp->fk_product].'</td>';
if ( !(empty($conf->productbatch->enabled)) && $objp->tobatch==1) {
print '<td colspan="2" align="center">'.img_picto_common($langs->trans('AddDispatchBatchLine'),'treemenu/plustop2.gif','onClick="AddLineBatch('.$i.')"').'</td>';
print '</tr>';
print '<tr '.$bc[$var].' name="dluo'.$suffix.'"><td width="5%">';
print '<input name="product'.$suffix.'" type="hidden" value="'.$objp->fk_product.'">';
print '<input name="pu'.$suffix.'" type="hidden" value="'.$up_ht_disc.'"><!-- This is a up including discount -->';
print '</td><td>';
$form->select_date('','dlc'.$suffix,'','',1,"");
print '</td><td>';
$form->select_date('','dluo'.$suffix,'','',1,"");
print '</td><td>';
print '<input type="text" name="lot_number'.$suffix.'" size="40" value="">';
print '</td>';
print '<td colspan="2">&nbsp</td>';
} else {
print '<input name="product'.$suffix.'" type="hidden" value="'.$objp->fk_product.'">';
print '<input name="pu'.$suffix.'" type="hidden" value="'.$up_ht_disc.'"><!-- This is a up including discount -->';
}
// Dispatch
print '<td align="right"><input name="qty_'.$i.'" type="text" size="8" value="'.($remaintodispatch).'"></td>';
print '<td align="right"><input name="qty'.$suffix.'" type="text" size="8" value="'.($remaintodispatch).'"></td>';
// Warehouse
print '<td align="right">';
if (count($listwarehouses)>1)
{
print $form->selectarray("entrepot_".$i, $listwarehouses, '', 1, 0, 0, '', 0, 0, $disabled);
print $form->selectarray("entrepot".$suffix, $listwarehouses, '', 1, 0, 0, '', 0, 0, $disabled);
}
elseif (count($listwarehouses)==1)
{
print $form->selectarray("entrepot_".$i, $listwarehouses, '', 0, 0, 0, '', 0, 0, $disabled);
print $form->selectarray("entrepot".$suffix, $listwarehouses, '', 0, 0, 0, '', 0, 0, $disabled);
}
else
{
@ -339,7 +404,7 @@ if ($id > 0 || ! empty($ref))
{
print $langs->trans("Comment").' : ';
print '<input type="text" size="60" maxlength="128" name="comment" value="';
print $_POST["comment"]?$_POST["comment"]:$langs->trans("DispatchSupplierOrder",$commande->ref);
print $_POST["comment"]?GETPOST("comment"):$langs->trans("DispatchSupplierOrder",$commande->ref);
// print ' / '.$commande->ref_supplier; // Not yet available
print '" class="flat"><br><br>';

View File

@ -194,7 +194,7 @@ else if ($action == 'addline' && $user->rights->fournisseur->commande->creer)
|| (! GETPOST('dp_desc') && ! GETPOST('addline_predefined') && GETPOST('idprod', 'int')>0) // we push enter onto qty field
)
{
$predef=(($conf->global->MAIN_FEATURES_LEVEL < 2) ? '_predef' : '');
$predef= '_predef';
$idprod=GETPOST('idprod', 'int');
$product_desc = (GETPOST('product_desc')?GETPOST('product_desc'):(GETPOST('np_desc')?GETPOST('np_desc'):''));
$price_ht = '';
@ -202,7 +202,6 @@ else if ($action == 'addline' && $user->rights->fournisseur->commande->creer)
}
$qty = GETPOST('qty'.$predef);
$remise_percent=GETPOST('remise_percent'.$predef);
if (GETPOST('addline_libre') && GETPOST('pu') < 0 && $qty < 0)
{
setEventMessage($langs->trans('ErrorBothFieldCantBeNegative', $langs->transnoentitiesnoconv('UnitPrice'), $langs->transnoentitiesnoconv('Qty')), 'errors');

View File

@ -4,7 +4,7 @@
* Copyright (C) 2004 Christophe Combelles <ccomb@free.fr>
* Copyright (C) 2005 Marc Barilley <marc@ocebo.fr>
* Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
*
@ -824,7 +824,7 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P
{
if (dol_strlen($_POST['subject'])) $subject=$_POST['subject'];
else $subject = $langs->transnoentities('CustomerOrder').' '.$object->ref;
$actiontypecode='AC_SUP_ORD';
$actiontypecode='AC_SUP_INV';
$actionmsg = $langs->transnoentities('MailSentBy').' '.$from.' '.$langs->transnoentities('To').' '.$sendto.".\n";
if ($message)
{

View File

@ -233,7 +233,7 @@ else
{
print_barre_liste($langs->trans("ListeCP"), $page, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, "", $num);
print '<div class="tabBar">';
dol_fiche_head('');
}
@ -248,7 +248,7 @@ if ($id > 0)
print '</br>';
}
else {
print '</div>';
dol_fiche_end();
}
print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">'."\n";

View File

@ -980,18 +980,17 @@ create table llx_product_customer_price
recuperableonly integer NOT NULL DEFAULT '0', -- Other NPR VAT
localtax1_tx double(6,3) DEFAULT 0, -- Other local VAT 1
localtax2_tx double(6,3) DEFAULT 0, -- Other local VAT 2
fk_user integer,
import_key varchar(14) -- Import key
fk_user integer,
import_key varchar(14) -- Import key
)ENGINE=innodb;
ALTER TABLE llx_product_customer_price ADD INDEX idx_product_customer_price_fk_user (fk_user);
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_product_customer_price_fk_user FOREIGN KEY (fk_user) REFERENCES llx_user (rowid);
ALTER TABLE llx_product_customer_price ADD INDEX idx_product_customer_price_fk_soc (fk_soc);
ALTER TABLE llx_product_customer_price ADD UNIQUE INDEX uk_customer_price_fk_product_fk_soc (fk_product, fk_soc);
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_customer_price_fk_product FOREIGN KEY (fk_product) REFERENCES llx_product(rowid) ON DELETE CASCADE;
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_customer_price_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe(rowid) ON DELETE CASCADE;
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_product_customer_price_fk_user FOREIGN KEY (fk_user) REFERENCES llx_user (rowid);
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_customer_price_fk_product FOREIGN KEY (fk_product) REFERENCES llx_product(rowid);
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_customer_price_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe(rowid);
ALTER TABLE llx_user ADD COLUMN barcode varchar(255) DEFAULT NULL;
ALTER TABLE llx_user ADD COLUMN fk_barcode_type integer DEFAULT 0;
@ -1011,7 +1010,7 @@ create table llx_product_customer_price_log
price_min_ttc double(24,8) DEFAULT 0,
price_base_type varchar(3) DEFAULT 'HT',
tva_tx double(6,3),
recuperableonly integer NOT NULL DEFAULT '0', -- Other NPR VAT
recuperableonly integer NOT NULL DEFAULT 0, -- Other NPR VAT
localtax1_tx double(6,3) DEFAULT 0, -- Other local VAT 1
localtax2_tx double(6,3) DEFAULT 0, -- Other local VAT 2
fk_user integer,
@ -1028,7 +1027,7 @@ CREATE TABLE llx_product_batch (
eatby datetime DEFAULT NULL,
sellby datetime DEFAULT NULL,
batch varchar(30) DEFAULT NULL,
qty double NOT NULL DEFAULT '0',
qty double NOT NULL DEFAULT 0,
import_key varchar(14) DEFAULT NULL,
KEY ix_fk_product_stock (fk_product_stock)
) ENGINE=InnoDB;
@ -1039,7 +1038,7 @@ CREATE TABLE llx_expeditiondet_batch (
eatby date DEFAULT NULL,
sellby date DEFAULT NULL,
batch varchar(30) DEFAULT NULL,
qty double NOT NULL DEFAULT '0',
qty double NOT NULL DEFAULT 0,
fk_origin_stock integer NOT NULL,
KEY ix_fk_expeditiondet (fk_expeditiondet)
) ENGINE=InnoDB;
@ -1063,9 +1062,21 @@ CREATE TABLE llx_payment_salary (
)ENGINE=innodb;
--New 1074 : Stock mouvement link to origin
ALTER TABLE llx_stock_mouvement ADD fk_origin INT NOT NULL ;
ALTER TABLE llx_stock_mouvement ADD origintype VARCHAR( 32 ) NOT NULL ;
ALTER TABLE llx_stock_mouvement ADD fk_origin integer;
ALTER TABLE llx_stock_mouvement ADD origintype VARCHAR(32);
--NEw 1300 : Add THM on user
ALTER TABLE llx_user ADD thm FLOAT NOT NULL ;
ALTER TABLE llx_projet_task_time ADD thm FLOAT NOT NULL ;
--New 1300 : Add THM on user
ALTER TABLE llx_user ADD thm double(24,8);
ALTER TABLE llx_projet_task_time ADD thm double(24,8);
-- New : extrafield on categories
create table llx_categories_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;
ALTER TABLE llx_categories_extrafields ADD INDEX idx_categories_extrafields (fk_object);

View File

@ -102,3 +102,17 @@ update llx_opensurvey_sondage set format = 'A' where format = 'A+';
-- ALTER TABLE llx_facture_fourn ALTER COLUMN fk_cond_reglement DROP NOT NULL;
-- Sequence to removed duplicated values of barcode. Use serveral times if you still have duplicate.
create table tmp_product as (select * from llx_product);
select barcode, max(rowid) from tmp_product where barcode is not null group by barcode having count(rowid) >= 2;
update llx_product set barcode = null where barcode is not null and (barcode, rowid) in (select barcode, max(rowid) from tmp_product where barcode is not null group by barcode having count(rowid) >= 2);
drop table tmp_product;
-- Sequence to removed duplicated values of barcode. Use serveral times if you still have duplicate.
create table tmp_societe as (select * from llx_societe);
select barcode, max(rowid) from tmp_societe where barcode is not null group by barcode having count(rowid) >= 2;
update llx_societe set barcode = null where barcode is not null and (barcode, rowid) in (select barcode, max(rowid) from tmp_societe where barcode is not null group by barcode having count(rowid) >= 2);
drop table tmp_societe;

View File

@ -0,0 +1,20 @@
-- ===================================================================
-- Copyright (C) 2014 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 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/>.
--
-- ===================================================================
ALTER TABLE llx_categories_extrafields ADD INDEX idx_categories_extrafields (fk_object);

View File

@ -0,0 +1,26 @@
-- ========================================================================
-- Copyright (C) 2014 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 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/>.
--
-- ========================================================================
create table llx_categories_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;

View File

@ -1,8 +1,6 @@
-- ============================================================================
-- Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
-- Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
-- Copyright (C) 2009-2012 Regis Houssin <regis.houssin@capnetworks.com>
-- Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
-- Copyright (C) 2014 Laurent Destailleur <eldy@users.sourceforge.net>
-- Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@ -21,10 +19,9 @@
ALTER TABLE llx_product_customer_price ADD INDEX idx_product_customer_price_fk_user (fk_user);
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_product_customer_price_fk_user FOREIGN KEY (fk_user) REFERENCES llx_user (rowid);
ALTER TABLE llx_product_customer_price ADD INDEX idx_product_customer_price_fk_soc (fk_soc);
ALTER TABLE llx_product_customer_price ADD UNIQUE INDEX uk_customer_price_fk_product_fk_soc (fk_product, fk_soc);
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_customer_price_fk_product FOREIGN KEY (fk_product) REFERENCES llx_product(rowid) ON DELETE CASCADE;
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_customer_price_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe(rowid) ON DELETE CASCADE;
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_product_customer_price_fk_user FOREIGN KEY (fk_user) REFERENCES llx_user (rowid);
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_product_customer_price_fk_product FOREIGN KEY (fk_product) REFERENCES llx_product(rowid);
ALTER TABLE llx_product_customer_price ADD CONSTRAINT fk_product_customer_price_fk_soc FOREIGN KEY (fk_soc) REFERENCES llx_societe(rowid);

View File

@ -19,9 +19,10 @@
create table llx_projet_task_time
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
fk_task integer NOT NULL,
fk_task integer NOT NULL,
task_date date,
task_duration double,
fk_user integer,
thm double(24,8),
note text
)ENGINE=innodb;

View File

@ -54,6 +54,7 @@ create table llx_user
fk_socpeople integer,
fk_member integer,
fk_user integer, -- Hierarchic parent
thm double(24,8),
note text DEFAULT NULL,
datelastlogin datetime,
datepreviouslogin datetime,

View File

@ -109,8 +109,8 @@ ParameterInDolibarr=الوحدة %s
LanguageParameter=وحدة اللغة %s
LanguageBrowserParameter=الوحدة %s
LocalisationDolibarrParameters=الوحدات المحلية
ClientTZ=المنطقة الزمنية العميل (المستخدم)
ClientHour=ساعة العميل (المستخدم)
# ClientTZ=Client Time Zone (user)
# ClientHour=Client time (user)
OSTZ=المنطقة الزمنية لنظام تشغيل الخادم
PHPTZ=المنطقة الزمنية خادم PHP
PHPServerOffsetWithGreenwich=عرض وزنية جرينتش لخادم لغة الـ PHP (ثانية)
@ -512,8 +512,8 @@ Module50200Name= باي بال
Module50200Desc= وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع بايبال
# Module54000Name=PrintIPP
# Module54000Desc=Print via Cups IPP Printer.
# Module55000Name=Open Survey
# Module55000Desc=Module to make online surveys (like Doodle, Studs, Rdvz, ...)
# Module55000Name=Open Poll
# Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...)
# Module59000Name=Margins
# Module59000Desc=Module to manage margins
# Module60000Name=Commissions
@ -732,8 +732,8 @@ Permission2515=إعداد وثائق وأدلة
Permission50201=قراءة المعاملات
Permission50202=استيراد المعاملات
# Permission54001=Print
# Permission55001=Read surveys
# Permission55002=Create/modify surveys
# Permission55001=Read polls
# Permission55002=Create/modify polls
# Permission59001=Read commercial margins
# Permission59002=Define commercial margins
# DictionaryCompanyType=Thirdparties type

View File

@ -28,6 +28,9 @@ InvoiceReplacementDesc=<b>استبدال الفاتورة</b> يستخدم لا
InvoiceAvoir=علما الائتمان
InvoiceAvoirAsk=علما الائتمان لتصحيح الفاتورة
InvoiceAvoirDesc=<b>الفضل</b> في <b>المذكرة</b> سلبية الفاتورة تستخدم لحل كون فاتورة بمبلغ قد يختلف عن المبلغ المدفوع فعلا (لأنه دفع الكثير من العملاء عن طريق الخطأ ، أو لن تدفع بالكامل منذ عودته لبعض المنتجات على سبيل المثال).
# invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
# invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake
# invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake
ReplaceInvoice=يستعاض عن فاتورة ٪ ق
ReplacementInvoice=استبدال الفاتورة
ReplacedByInvoice=بعبارة فاتورة ق ٪
@ -222,8 +225,6 @@ DispenseMontantLettres=ليه factures rédigées قدم المساواة طرا
NonPercuRecuperable=غير القابلة للاسترداد
SetConditions=تحدد شروط الدفع
SetMode=حدد طريقة الدفع
SetDate= في الموعد المحدد
# SelectDate=Select a date
Billed=فواتير
RepeatableInvoice=محددة مسبقا فاتورة
RepeatableInvoices=محددة مسبقا والفواتير

View File

@ -66,7 +66,7 @@ ReturnInCompany=عودة الى الزبون / احتمال بطاقة
ContentsVisibleByAll=محتويات سوف تكون واضحة من جانب جميع
ContentsVisibleByAllShort=محتويات مرئية من قبل جميع
ContentsNotVisibleByAllShort=محتويات غير مرئي من قبل جميع
CategoriesTree=شجرة التصنيفات
# CategoriesTree=Categories tree
DeleteCategory=حذف فئة
ConfirmDeleteCategory=هل أنت متأكد من أنك تريد حذف هذه الفئة؟
RemoveFromCategory=إزالة الارتباط مع catégorie
@ -105,3 +105,9 @@ CatMemberList=قائمة بأسماء أعضاء الفئات
# CatCusLinks=Links between customers/prospects and categories
# CatSupLinks=Links between suppliers and categories
# DeleteFromCat=Remove from category
# DeletePicture=Picture delete
# ConfirmDeletePicture=Confirm picture deletion?
# ExtraFieldsCategories=Complementary attributes
# CategoriesSetup=Categories setup
# CategorieRecursiv=Link with parent category automatically
# CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory

View File

@ -403,7 +403,6 @@ ActivityStateFilter=نشاط المركز
# CurrentOutstandingBill=Current outstanding bill
# OutstandingBill=Max. for outstanding bill
# OutstandingBillReached=Reached max. for outstanding bill
# Monkey
MonkeyNumRefModelDesc=عودة número مع الشكل nnnn - ٪ syymm الزبون ورمز وnnnn - ٪ syymm مورد للقانون حيث السنة هو السنة ، هو شهر ملم وnnnn هو تسلسل بلا كسر وعدم العودة إلى 0.
# Leopard
LeopardNumRefModelDesc=العميل / المورد مدونة مجانية. هذا القانون يمكن تعديلها في أي وقت.
# ManagingDirectors=Manager(s) name (CEO, director, president...)

View File

@ -41,16 +41,20 @@ VATToCollect=ضريبة القيمة المضافة مشتريات
VATSummary=رصيد الضريبة على القيمة المضافة
LT2SummaryES=IRPF الرصيد
VATPaid=دفع ضريبة القيمة المضافة
# SalaryPaid=Salary paid
LT2PaidES=مدفوع IRPF
LT2CustomerES=مبيعات IRPF
LT2SupplierES=مشتريات IRPF
VATCollected=جمعت ضريبة القيمة المضافة
ToPay=دفع
ToGet=العودة
# SpecialExpensesArea=Area for all special paiements
TaxAndDividendsArea=ضريبة أرباح الأسهم والمساهمات الاجتماعية ، ومنطقة
SocialContribution=المساهمة الاجتماعية
SocialContributions=المساهمات الاجتماعية
# MenuSpecialExpenses=Special expenses
MenuTaxAndDividends=الضرائب وعوائد
# MenuSalaries=Salaries
MenuSocialContributions=المساهمات الاجتماعية
MenuNewSocialContribution=مساهمة جديدة
NewSocialContribution=المساهمة الاجتماعية الجديدة
@ -63,11 +67,14 @@ PaymentCustomerInvoice=الزبون تسديد الفاتورة
PaymentSupplierInvoice=دفع فاتورة المورد
PaymentSocialContribution=دفع المساهمة الاجتماعية
PaymentVat=دفع ضريبة القيمة المضافة
# PaymentSalary=Salary payment
ListPayment=قائمة المدفوعات
ListOfPayments=قائمة المدفوعات
ListOfCustomerPayments=قائمة مدفوعات العملاء
ListOfSupplierPayments=قائمة الموردين المدفوعات
DatePayment=تاريخ الدفع
# DateStartPeriod=Date start period
# DateEndPeriod=Date end period
NewVATPayment=دفع ضريبة القيمة المضافة الجديدة
newLT2PaymentES=جديد IRPF دفع
LT2PaymentES=IRPF الدفع

View File

@ -23,3 +23,4 @@ GoodStatusDeclaration=وتلقى البضائع الواردة أعلاه في
Deliverer=المنفذ :
Sender=مرسل
Recipient=المتلقي
# ErrorStockIsNotEnough=There's not enough stock

View File

@ -125,7 +125,7 @@ BankAccountNumber=رقم الحساب
BankAccountNumberKey=مفتاح
# SpecialCode=Special code
# ExportStringFilter=%% allows replacing one or more characters in the text
# ExportDateFilter='AAAA' 'AAAAMM' 'AAAAMMJJ': filters by one year/month/day<br>'AAAA+AAAA' 'AAAAMM+AAAAMM' 'AAAAMMJJ+AAAAMMJJ': filters over a range of years/months/days<br>'&gt;AAAA' '&gt;AAAAMM' '&gt;AAAAMMJJ': filters on the following years/months/days<br>'&gt;AAAA' '&gt;AAAAMM' '&gt;AAAAMMJJ': filters on the previous years/months/days
# ExportDateFilter='YYYY' 'YYYYMM' 'YYYYMMDD': filters by one year/month/day<br>'YYYY+YYYY' 'YYYYMM+YYYYMM' 'YYYYMMDD+YYYYMMDD': filters over a range of years/months/days<br>'&gt;YYYY' '&gt;YYYYMM' '&gt;YYYYMMDD': filters on the following years/months/days<br>'&lt;YYYY' '&lt;YYYYMM' '&lt;YYYYMMDD': filters on the previous years/months/days
# ExportNumericFilter='NNNNN' filters by one value<br>'NNNNN+NNNNN' filters over a range of values<br>'&gt;NNNNN' filters by lower values<br>'&gt;NNNNN' filters by higher values
## filters
# SelectFilterFields=If you want to filter on some values, just input values here.

View File

@ -80,12 +80,12 @@ MailingStatusRead=قرأ
# ActivateCheckReadKey=Key use to encrypt URL use for "Read Receipt" and "Unsubcribe" feature
# EMailSentToNRecipients=EMail sent to %s recipients.
# EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
# MailTopicSendRemindUnpaidInvoices=Remind of invoice %s (%s)
# SendRemind=Send remind by EMails
# RemindSent=%S remind(s) sent
# MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
# SendRemind=Send reminder by EMails
# RemindSent=%s reminder(s) sent
# AllRecipientSelectedForRemind=All thirdparties selected and if an email is set (note that one mail per invoice will be sent)
# NoRemindSent=No remind by EMail sent
# ResultOfMassSending=Result of mass remind sending by EMail
# NoRemindSent=No EMail reminder sent
# ResultOfMassSending=Result of mass EMail reminders sending
# Libelle des modules de liste de destinataires mailing
MailingModuleDescContactCompanies=اتصالات لجميع الأطراف الثالثة (العملاء ، والاحتمال ، والمورد ،...)

View File

@ -34,7 +34,7 @@ ErrorFailedToOpenFile=فشل في فتح الملف ٪ ق
ErrorCanNotCreateDir=لا يمكن إنشاء دير ق
ErrorCanNotReadDir=لا يمكن قراءة دير ق
ErrorConstantNotDefined=معلمة ٪s ق لم تحدد
ErrorUnknown=Unkown خطأ
# ErrorUnknown=Unknown error
ErrorSQL=خطأ SQL
ErrorLogoFileNotFound=شعار ملف '٪ ق' لم يتم العثور على
ErrorGoToGlobalSetup=اذهب إلى 'شركة / مؤسسة' الإعداد لتثبيت هذا
@ -60,6 +60,8 @@ ErrorNoSocialContributionForSellerCountry=خطأ ، لا يوجد نوع الم
ErrorFailedToSaveFile=خطأ ، وفشلت في انقاذ الملف.
ErrorOnlyPngJpgSupported=خطأ فقط. بابوا نيو غينيا ، وجيه. شكل صورة ملف الدعم.
ErrorImageFormatNotSupported=PHP الخاص بك لا يدعم وظائف لتحويل الصور من هذا الشكل.
# SetDate=Set date
# SelectDate=Select a date
# SeeAlso=See also %s
BackgroundColorByDefault=لون الخلفية الافتراضي
FileWasNotUploaded=يتم تحديد ملف مرفق لكنه لم يكن بعد تحميلها. انقر على "ملف إرفاق" لهذا الغرض.
@ -667,6 +669,7 @@ BySalesRepresentative=بواسطة مندوب مبيعات
# SetDemandReason=Set source
# ViewPrivateNote=View notes
# XMoreLines=%s line(s) hidden
# PublicUrl=Public URL
# Week day
Monday=يوم الاثنين

View File

@ -1,18 +1,18 @@
# Dolibarr language file - Source file is en_US - opensurvey
# Survey=Survey
# Surveys=Surveys
# OrganizeYourMeetingEasily=Organize your meetings and surveys easily. First select type of survey...
# NewSurvey=New survey
# NoSurveysInDatabase=%s survey(s) into database.
# OpenSurveyArea=Surveys area
# AddACommentForPoll=You can add a comment into survey...
# 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=To receive an email for each vote
# ToReceiveEMailForEachVote=Receive an email for each vote
# TypeDate=Type date
# TypeClassic=Type standard
# OpenSurveyStep2=Select your dates amoung the free days (green). The selected days are in blue. You can unselect a day previously selected by clicking again on it
# 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
@ -24,10 +24,10 @@
# 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 survey
# 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 survey
# CreateSurveyStandard=Create a standard survey
# CreateSurveyDate=Create a date poll
# CreateSurveyStandard=Create a standard poll
# CheckBox=Simple checkbox
# YesNoList=List (empty/yes/no)
# PourContreList=List (empty/for/against)
@ -35,7 +35,7 @@
# TitleChoice=Choice label
# ExportSpreadsheet=Export result spreadsheet
ExpireDate=الحد من التاريخ
# NbOfSurveys=Number of surveys
# 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.

View File

@ -22,6 +22,7 @@ Notify_WITHDRAW_CREDIT=انسحاب الائتمان
Notify_WITHDRAW_EMIT=Isue انسحاب
Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد
Notify_COMPANY_CREATE=طرف ثالث خلق
# Notify_COMPANY_COMPANY_SENTBYMAIL=Mails sent from third party card
Notify_PROPAL_SENTBYMAIL=اقتراح التجارية المرسلة عن طريق البريد
Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد
Notify_BILL_PAYED=دفعت فاتورة العميل
@ -40,6 +41,7 @@ Notify_MEMBER_VALIDATE=عضو مصدق
Notify_MEMBER_SUBSCRIPTION=عضو المكتتب
Notify_MEMBER_RESILIATE=عضو resiliated
Notify_MEMBER_DELETE=عضو حذف
# Notify_PROJECT_CREATE=Project creation
NbOfAttachedFiles=عدد الملفات المرفقة / وثائق
TotalSizeOfAttachedFiles=اجمالى حجم الملفات المرفقة / وثائق
MaxSize=الحجم الأقصى

View File

@ -168,7 +168,7 @@ CloneProduct=استنساخ المنتجات أو الخدمات
ConfirmCloneProduct=هل أنت متأكد من أن المنتج أو الخدمة استنساخ <b>٪ ق؟</b>
CloneContentProduct=استنساخ جميع المعلومات الرئيسية من المنتجات / الخدمات
ClonePricesProduct=استنساخ الرئيسية معلومات والأسعار
# CloneCompositionProduct=Clone product/service composition
# CloneCompositionProduct=Clone virtual product/services
ProductIsUsed=ويستخدم هذا المنتج
NewRefForClone=المرجع. من المنتجات الجديدة / خدمة
CustomerPrices=أسعار العملاء

View File

@ -33,9 +33,9 @@ TimesSpent=قضى وقتا
RefTask=المرجع. مهمة
LabelTask=علامة مهمة
# TaskTimeSpent=Time spent on tasks
# TaskTimeUser=Task time user
# TaskTimeNote=Task time note
# TaskTimeDate=Task time date
# TaskTimeUser=User
# TaskTimeNote=Note
# TaskTimeDate=Date
NewTimeSpent=جديد الوقت الذي يقضيه
MyTimeSpent=وقتي قضى
MyTasks=مهمتي

View File

@ -0,0 +1,6 @@
# Dolibarr language file - Source file is en_US - users
# Employee=Employee
# NewSalaryPayment=New salary payment
# SalaryPayment=Salary payment
# SalariesPayments=Salaries payments
# ShowSalaryPayment=Show salary payment

View File

@ -109,8 +109,8 @@ ParameterInDolibarr=Параметър %s
LanguageParameter=Езиков параметър %s
LanguageBrowserParameter=Параметър %s
LocalisationDolibarrParameters=Локализация параметри
# ClientTZ=Client Time Zone(user)
# ClientHour=Client time(user)
# ClientTZ=Client Time Zone (user)
# ClientHour=Client time (user)
# OSTZ=Servre OS Time Zone
# PHPTZ=PHP server Time Zone
PHPServerOffsetWithGreenwich=PHP сървъра компенсира широчина Гринуич (секунди)
@ -512,8 +512,8 @@ Module50200Name= Paypal
Module50200Desc= Модул предлага онлайн страница на плащане с кредитна карта с Paypal
# Module54000Name=PrintIPP
# Module54000Desc=Print via Cups IPP Printer.
# Module55000Name=Open Survey
# Module55000Desc=Module to make online surveys (like Doodle, Studs, Rdvz, ...)
# Module55000Name=Open Poll
# Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...)
Module59000Name=Полета
Module59000Desc=Модул за управление на маржовете
Module60000Name=Комисии
@ -732,8 +732,8 @@ Permission50101=Използвайте точка на продажбите
Permission50201=Прочети сделки
Permission50202=Сделки на внос
# Permission54001=Print
# Permission55001=Read surveys
# Permission55002=Create/modify surveys
# Permission55001=Read polls
# Permission55002=Create/modify polls
# Permission59001=Read commercial margins
# Permission59002=Define commercial margins
# DictionaryCompanyType=Thirdparties type

View File

@ -28,6 +28,9 @@ InvoiceReplacementDesc=<b>Подмяна фактура</b> се използв
InvoiceAvoir=Кредитно известие
InvoiceAvoirAsk=Кредитно известие за коригиране на фактура
InvoiceAvoirDesc=<b>Кредитно известие</b> е отрицателна фактура, използвани за решаване на факта, че фактурата е сумата, която се различава от сумата, наистина са платени (защото платил твърде много от грешка, или няма да се изплаща напълно, тъй като той се върна някои продукти, например).
# invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
# invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake
# invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake
ReplaceInvoice=Сменете фактура %s
ReplacementInvoice=Подмяна фактура
ReplacedByInvoice=Заменен с фактура %s
@ -222,8 +225,6 @@ DispenseMontantLettres=Законопроектът, изготвен от ме
NonPercuRecuperable=Невъзстановими
SetConditions=Задайте условията за плащане
SetMode=Задайте режим на плащане
SetDate= Настройка на датата
SelectDate=Изберете дата
Billed=Таксува
RepeatableInvoice=Предварително дефиниран фактура
RepeatableInvoices=Предварително дефинирани фактури

View File

@ -66,7 +66,7 @@ ReturnInCompany=Обратно към картата на клиента/prospe
ContentsVisibleByAll=Съдържанието ще се вижда от всички
ContentsVisibleByAllShort=Съдържанието е видимо от всички
ContentsNotVisibleByAllShort=Съдържанието не е видимо от всички
CategoriesTree=Категории дърво
# CategoriesTree=Categories tree
DeleteCategory=Изтриване на категория
ConfirmDeleteCategory=Сигурни ли сте, че желаете да изтриете тази категория?
RemoveFromCategory=Премахване на връзката с категория
@ -105,3 +105,9 @@ CatMemberList=Списък на членовете категории
# CatCusLinks=Links between customers/prospects and categories
# CatSupLinks=Links between suppliers and categories
DeleteFromCat=Премахване от категорията
# DeletePicture=Picture delete
# ConfirmDeletePicture=Confirm picture deletion?
# ExtraFieldsCategories=Complementary attributes
# CategoriesSetup=Categories setup
# CategorieRecursiv=Link with parent category automatically
# CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory

View File

@ -403,7 +403,6 @@ ActivityStateFilter=Състоянието на дейността
# CurrentOutstandingBill=Current outstanding bill
# OutstandingBill=Max. for outstanding bill
# OutstandingBillReached=Reached max. for outstanding bill
# Monkey
MonkeyNumRefModelDesc=Връщане Numero с формат %syymm-NNNN за клиента код и %syymm-NNNN за доставчика код, където YY е годината, mm е месец и NNNN е последователност, без почивка и няма връщане назад до 0.
# Leopard
LeopardNumRefModelDesc=Кодът е безплатно. Този код може да бъде променен по всяко време.
# ManagingDirectors=Manager(s) name (CEO, director, president...)

View File

@ -41,16 +41,20 @@ VATToCollect=ДДС покупки
VATSummary=ДДС баланс
LT2SummaryES=IRPF баланс
VATPaid=ДДС, платен
# SalaryPaid=Salary paid
LT2PaidES=IRPF платен
LT2CustomerES=IRPF продажби
LT2SupplierES=IRPF покупки
VATCollected=Събраният ДДС
ToPay=За да платите
ToGet=За да се върнете
# SpecialExpensesArea=Area for all special paiements
TaxAndDividendsArea=Данъци, вноски за социално и дивиденти площ
SocialContribution=Социален принос
SocialContributions=Социалноосигурителни вноски
# MenuSpecialExpenses=Special expenses
MenuTaxAndDividends=Данъци и дивиденти
# MenuSalaries=Salaries
MenuSocialContributions=Социалноосигурителни вноски
MenuNewSocialContribution=Нов принос
NewSocialContribution=Нова социална принос
@ -63,11 +67,14 @@ PaymentCustomerInvoice=Плащане на клиенти фактура
PaymentSupplierInvoice=Плащане доставчик фактура
PaymentSocialContribution=Осигурителната вноска за плащане
PaymentVat=Плащането на ДДС
# PaymentSalary=Salary payment
ListPayment=Списък на плащанията
ListOfPayments=Списък на плащанията
ListOfCustomerPayments=Списък на клиентски плащания
ListOfSupplierPayments=Списък на доставчика плащания
DatePayment=Дата на плащане
# DateStartPeriod=Date start period
# DateEndPeriod=Date end period
NewVATPayment=Нова плащането на ДДС
newLT2PaymentES=Нова IRPF плащане
LT2PaymentES=IRPF плащане

View File

@ -23,3 +23,4 @@ GoodStatusDeclaration=Стоките са получили по-горе в до
Deliverer=Избавител:
Sender=Подател
Recipient=Получател
# ErrorStockIsNotEnough=There's not enough stock

View File

@ -125,7 +125,7 @@ BankAccountNumber=Номер на сметка
BankAccountNumberKey=Ключ
# SpecialCode=Special code
# ExportStringFilter=%% allows replacing one or more characters in the text
# ExportDateFilter='AAAA' 'AAAAMM' 'AAAAMMJJ': filters by one year/month/day<br>'AAAA+AAAA' 'AAAAMM+AAAAMM' 'AAAAMMJJ+AAAAMMJJ': filters over a range of years/months/days<br>'&gt;AAAA' '&gt;AAAAMM' '&gt;AAAAMMJJ': filters on the following years/months/days<br>'&gt;AAAA' '&gt;AAAAMM' '&gt;AAAAMMJJ': filters on the previous years/months/days
# ExportDateFilter='YYYY' 'YYYYMM' 'YYYYMMDD': filters by one year/month/day<br>'YYYY+YYYY' 'YYYYMM+YYYYMM' 'YYYYMMDD+YYYYMMDD': filters over a range of years/months/days<br>'&gt;YYYY' '&gt;YYYYMM' '&gt;YYYYMMDD': filters on the following years/months/days<br>'&lt;YYYY' '&lt;YYYYMM' '&lt;YYYYMMDD': filters on the previous years/months/days
# ExportNumericFilter='NNNNN' filters by one value<br>'NNNNN+NNNNN' filters over a range of values<br>'&gt;NNNNN' filters by lower values<br>'&gt;NNNNN' filters by higher values
## filters
# SelectFilterFields=If you want to filter on some values, just input values here.

View File

@ -80,12 +80,12 @@ ActivateCheckRead=Оставя се да се използва за четене
ActivateCheckReadKey=Key използване за криптиране на използването на URL адрес за обратна разписка и функция unsubcribe
# EMailSentToNRecipients=EMail sent to %s recipients.
# EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
# MailTopicSendRemindUnpaidInvoices=Remind of invoice %s (%s)
# SendRemind=Send remind by EMails
# RemindSent=%S remind(s) sent
# MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
# SendRemind=Send reminder by EMails
# RemindSent=%s reminder(s) sent
# AllRecipientSelectedForRemind=All thirdparties selected and if an email is set (note that one mail per invoice will be sent)
# NoRemindSent=No remind by EMail sent
# ResultOfMassSending=Result of mass remind sending by EMail
# NoRemindSent=No EMail reminder sent
# ResultOfMassSending=Result of mass EMail reminders sending
# Libelle des modules de liste de destinataires mailing
MailingModuleDescContactCompanies=Контакти на всички трети лица (клиенти, перспектива, доставчици, ...)

View File

@ -34,7 +34,7 @@ ErrorFailedToOpenFile=Файла %s не може да се отвори
ErrorCanNotCreateDir=Не може да се създаде папка %s
ErrorCanNotReadDir=Не може да се прочете директорията %s
ErrorConstantNotDefined=Параметъра %s не е дефиниран
ErrorUnknown=Непозната грешка
# ErrorUnknown=Unknown error
ErrorSQL=SQL грешка
ErrorLogoFileNotFound=Файла '%s' с логото не е открит
ErrorGoToGlobalSetup=Отидете на настройките 'Фирма/Организация' за да настроите параметъра
@ -60,6 +60,8 @@ ErrorNoSocialContributionForSellerCountry=Грешка, не е социален
ErrorFailedToSaveFile=Грешка, файла не е записан.
ErrorOnlyPngJpgSupported=Грешка, поддържат се само PNG и JPG формати на изображението.
ErrorImageFormatNotSupported=Вашият PHP не поддържа функции за конвертиране на изображения от този формат.
# SetDate=Set date
# SelectDate=Select a date
SeeAlso=Вижте също %s
BackgroundColorByDefault=Подразбиращ се цвят на фона
FileWasNotUploaded=Файлът е избран за прикачане, но все още не е качен. Кликнете върху &quot;Прикачи файл&quot;.
@ -667,6 +669,7 @@ OriginFileName=Оригинално име на файла
# SetDemandReason=Set source
# ViewPrivateNote=View notes
# XMoreLines=%s line(s) hidden
# PublicUrl=Public URL
# Week day
Monday=Понеделник

View File

@ -1,18 +1,18 @@
# Dolibarr language file - Source file is en_US - opensurvey
Survey=Проучване
Surveys=Проучвания
OrganizeYourMeetingEasily=Организиране на вашите срещи и проучвания лесно. Първо изберете типа на проучване ...
NewSurvey=Ново проучване
NoSurveysInDatabase=Има %s проучване(ия) в базата данни.
OpenSurveyArea=Проучвания
AddACommentForPoll=Можете да добавите коментар на проучването ...
# 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=Добавяне на коментар
CreatePoll=Създаване на анкета
PollTitle=Тема на анкетата
ToReceiveEMailForEachVote=Получаване на е-маил за всеки глас
# ToReceiveEMailForEachVote=Receive an email for each vote
TypeDate=Дата
TypeClassic=Стандартно
# OpenSurveyStep2=Select your dates amoung the free days (green). The selected days are in blue. You can unselect a day previously selected by clicking again on it
# 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=Премахване на всички дни
CopyHoursOfFirstDay=Копиране на часовете от първия ден
RemoveAllHours=Премахване на всички часове
@ -24,10 +24,10 @@ with=с
CommentsOfVoters=Коментари на гласувалите
ConfirmRemovalOfPoll=Сигурни ли сте, че желаете да премахнете анкетата (и всички гласове)
RemovePoll=Премахване на анкета
UrlForSurvey=URL за директен достъп до проучването
# 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=Създаване на проучване със срок
CreateSurveyStandard=Създаване на стандартно проучване
# CreateSurveyDate=Create a date poll
# CreateSurveyStandard=Create a standard poll
CheckBox=Отметка
YesNoList=Списък (празно/да/не)
PourContreList=Списък (празно/за/против)
@ -35,7 +35,7 @@ AddNewColumn=Добавяне на нова колона
TitleChoice=Избор на етикет
# ExportSpreadsheet=Export result spreadsheet
ExpireDate=Крайната дата
# NbOfSurveys=Number of surveys
# NbOfSurveys=Number of polls
NbOfVoters=Брой гласове
SurveyResults=Резултати
# 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.

View File

@ -22,6 +22,7 @@ Notify_WITHDRAW_CREDIT=Оттегляне на кредитирането
Notify_WITHDRAW_EMIT=Извършване на оттегляне
Notify_ORDER_SENTBYMAIL=Поръчка на клиента, изпратено по пощата
Notify_COMPANY_CREATE=Третата страна е създадена
# Notify_COMPANY_COMPANY_SENTBYMAIL=Mails sent from third party card
Notify_PROPAL_SENTBYMAIL=Търговско предложение, изпратено по пощата
Notify_ORDER_SENTBYMAIL=Поръчка на клиента, изпратено по пощата
Notify_BILL_PAYED=Фактурата на клиента е платена
@ -40,6 +41,7 @@ Notify_MEMBER_VALIDATE=Члена е приет
Notify_MEMBER_SUBSCRIPTION=Члена е subscribed
Notify_MEMBER_RESILIATE=Члена е изключен
Notify_MEMBER_DELETE=Члена е изтрит
# Notify_PROJECT_CREATE=Project creation
NbOfAttachedFiles=Брой на прикачените файлове/документи
TotalSizeOfAttachedFiles=Общ размер на прикачените файлове/документи
MaxSize=Максимален размер

View File

@ -168,7 +168,7 @@ CloneProduct=Клониране на продукт или услуга
ConfirmCloneProduct=Сигурни ли сте, че желаете да клонирате продукта или услугата <b>%s?</b>?
CloneContentProduct=Клониране на всички основни данни за продукта/услугата
ClonePricesProduct=Клониране на основните данни и цени
# CloneCompositionProduct=Clone product/service composition
# CloneCompositionProduct=Clone virtual product/services
ProductIsUsed=Този продукт е използван
NewRefForClone=Реф. на нов продукт/услуга
CustomerPrices=Цени за клиенти

View File

@ -33,9 +33,9 @@ TimesSpent=Времето, прекарано
RefTask=Реф. задача
LabelTask=Label задача
# TaskTimeSpent=Time spent on tasks
# TaskTimeUser=Task time user
# TaskTimeNote=Task time note
# TaskTimeDate=Task time date
# TaskTimeUser=User
# TaskTimeNote=Note
# TaskTimeDate=Date
NewTimeSpent=Времето, прекарано на
MyTimeSpent=Времето, прекарано
MyTasks=Моите задачи

View File

@ -0,0 +1,6 @@
# Dolibarr language file - Source file is en_US - users
# Employee=Employee
# NewSalaryPayment=New salary payment
# SalaryPayment=Salary payment
# SalariesPayments=Salaries payments
# ShowSalaryPayment=Show salary payment

View File

@ -109,8 +109,8 @@ OtherSetup=Ostale postavke
# LanguageParameter=Language parameter %s
# LanguageBrowserParameter=Parameter %s
# LocalisationDolibarrParameters=Localisation parameters
# ClientTZ=Client Time Zone(user)
# ClientHour=Client time(user)
# ClientTZ=Client Time Zone (user)
# ClientHour=Client time (user)
# OSTZ=Servre OS Time Zone
# PHPTZ=PHP server Time Zone
# PHPServerOffsetWithGreenwich=PHP server offset width Greenwich (seconds)
@ -512,8 +512,8 @@ Module6000Desc=Upravljanje workflow-om - tokom rada
# Module50200Desc= Module to offer an online payment page by credit card with Paypal
Module54000Name=PrintIPP
Module54000Desc=Print preko Cups IPP Printer.
Module55000Name=Otvoriti anketu
Module55000Desc=Modul za kreiranje online anketa (kao Doodle, Studs, Rdvz, ...)
# Module55000Name=Open Poll
# Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...)
# Module59000Name=Margins
# Module59000Desc=Module to manage margins
# Module60000Name=Commissions
@ -732,8 +732,8 @@ Permission2515=Postavke direktorija za dokumente
# Permission50201=Read transactions
# Permission50202=Import transactions
Permission54001=Print
Permission55001=Pročitajte ankete
Permission55002=Napravi/izmijeni ankete
# Permission55001=Read polls
# Permission55002=Create/modify polls
Permission59001=Pročitajte komercijalne margine
Permission59002=Definirajte komercijalne margine
# DictionaryCompanyType=Thirdparties type

View File

@ -28,6 +28,9 @@ InvoiceReplacementAsk=Zamjenska faktura za fakturu
# InvoiceAvoir=Credit note
# InvoiceAvoirAsk=Credit note to correct invoice
# InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
# invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
# invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake
# invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake
ReplaceInvoice=Zamijeni fakturu %s
ReplacementInvoice=Zamjenska faktura
ReplacedByInvoice=Zamijenjeno sa fakturom %s
@ -222,8 +225,6 @@ CustomerBillsUnpaid=NEplaćene fakture kupaca
NonPercuRecuperable=Nepovratno
SetConditions=Postaviti uslova plaćanja
SetMode=Postaviti način plaćanja
SetDate= Postavi datum
SelectDate=Odaberi datum
Billed=Fakturisano
RepeatableInvoice=Predefinisana faktura
RepeatableInvoices=Predefinisane fakture

View File

@ -66,7 +66,7 @@ ReturnInSupplier=Nazad na karticu dobavljača
ContentsVisibleByAll=Sadržaj će biti vidljiv svima
ContentsVisibleByAllShort=Sadržaj vidljiv svima
ContentsNotVisibleByAllShort=Sadržaj nije vidljiv svima
CategoriesTree=Stablo kategorija
# CategoriesTree=Categories tree
DeleteCategory=Obriši kategoriju
ConfirmDeleteCategory=Jeste li sigurni da želite obrisati ovu kategoriju?
RemoveFromCategory=Uklonite vezu sa kategorijom
@ -105,3 +105,9 @@ CatProdLinks=Veze između proizvoda/usluga i kategorija
# CatCusLinks=Links between customers/prospects and categories
CatSupLinks=Veze između dobavljača i kategorija
DeleteFromCat=Ukloni iz kategorije
# DeletePicture=Picture delete
# ConfirmDeletePicture=Confirm picture deletion?
# ExtraFieldsCategories=Complementary attributes
# CategoriesSetup=Categories setup
# CategorieRecursiv=Link with parent category automatically
# CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory

View File

@ -403,7 +403,6 @@ ProductsIntoElements=Lista informacija o proizvodu
CurrentOutstandingBill=Trenutni neplaćeni račun
OutstandingBill=Max. za neplaćeni račun
OutstandingBillReached=Dostugnut je max. za neplaćeni račun
# Monkey
MonkeyNumRefModelDesc=Vratiti broj sa formatom %syymm-nnnn za šifru kupca i $syymm-nnnn za šifru dobavljača gdje je yy godina, mm mjesec i nnnn niz bez prekida i bez vraćanja za 0.
# Leopard
LeopardNumRefModelDesc=Ova šifra je slobodna. Ova šifra se može mijenjati bilo kad.
# ManagingDirectors=Manager(s) name (CEO, director, president...)

View File

@ -41,16 +41,20 @@ Accounts=Računi
# VATSummary=VAT Balance
# LT2SummaryES=IRPF Balance
# VATPaid=VAT paid
# SalaryPaid=Salary paid
# LT2PaidES=IRPF Paid
# LT2CustomerES=IRPF sales
# LT2SupplierES=IRPF purchases
# VATCollected=VAT collected
# ToPay=To pay
# ToGet=To get back
# SpecialExpensesArea=Area for all special paiements
# TaxAndDividendsArea=Tax, social contributions and dividends area
# SocialContribution=Social contribution
# SocialContributions=Social contributions
# MenuSpecialExpenses=Special expenses
# MenuTaxAndDividends=Taxes and dividends
# MenuSalaries=Salaries
# MenuSocialContributions=Social contributions
# MenuNewSocialContribution=New contribution
# NewSocialContribution=New social contribution
@ -63,11 +67,14 @@ Accounts=Računi
# PaymentSupplierInvoice=Supplier invoice payment
# PaymentSocialContribution=Social contribution payment
# PaymentVat=VAT payment
# PaymentSalary=Salary payment
# ListPayment=List of payments
# ListOfPayments=List of payments
# ListOfCustomerPayments=List of customer payments
# ListOfSupplierPayments=List of supplier payments
# DatePayment=Payment date
# DateStartPeriod=Date start period
# DateEndPeriod=Date end period
# NewVATPayment=New VAT payment
# newLT2PaymentES=New IRPF payment
# LT2PaymentES=IRPF Payment

View File

@ -23,3 +23,4 @@ GoodStatusDeclaration=Primio sam robu navedenu gore u dobrom stanju.
Deliverer=Dostavljač:
Sender=Pošiljalac
Recipient=Primalac
# ErrorStockIsNotEnough=There's not enough stock

View File

@ -125,7 +125,7 @@
# BankAccountNumberKey=Key
# SpecialCode=Special code
# ExportStringFilter=%% allows replacing one or more characters in the text
# ExportDateFilter='AAAA' 'AAAAMM' 'AAAAMMJJ': filters by one year/month/day<br>'AAAA+AAAA' 'AAAAMM+AAAAMM' 'AAAAMMJJ+AAAAMMJJ': filters over a range of years/months/days<br>'&gt;AAAA' '&gt;AAAAMM' '&gt;AAAAMMJJ': filters on the following years/months/days<br>'&gt;AAAA' '&gt;AAAAMM' '&gt;AAAAMMJJ': filters on the previous years/months/days
# ExportDateFilter='YYYY' 'YYYYMM' 'YYYYMMDD': filters by one year/month/day<br>'YYYY+YYYY' 'YYYYMM+YYYYMM' 'YYYYMMDD+YYYYMMDD': filters over a range of years/months/days<br>'&gt;YYYY' '&gt;YYYYMM' '&gt;YYYYMMDD': filters on the following years/months/days<br>'&lt;YYYY' '&lt;YYYYMM' '&lt;YYYYMMDD': filters on the previous years/months/days
# ExportNumericFilter='NNNNN' filters by one value<br>'NNNNN+NNNNN' filters over a range of values<br>'&gt;NNNNN' filters by lower values<br>'&gt;NNNNN' filters by higher values
## filters
# SelectFilterFields=If you want to filter on some values, just input values here.

View File

@ -80,12 +80,12 @@ ActivateCheckRead=Dozvoli korištenje "Ispiši se" linka
ActivateCheckReadKey=Kljul korišten za enkriptovanje linka koristi se za "Pročitaj potvrdu" i "Ispiši se" mogućnosti
EMailSentToNRecipients=E-pošta poslana %s primaocima
# EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
# MailTopicSendRemindUnpaidInvoices=Remind of invoice %s (%s)
# SendRemind=Send remind by EMails
# RemindSent=%S remind(s) sent
# MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
# SendRemind=Send reminder by EMails
# RemindSent=%s reminder(s) sent
# AllRecipientSelectedForRemind=All thirdparties selected and if an email is set (note that one mail per invoice will be sent)
# NoRemindSent=No remind by EMail sent
# ResultOfMassSending=Result of mass remind sending by EMail
# NoRemindSent=No EMail reminder sent
# ResultOfMassSending=Result of mass EMail reminders sending
# Libelle des modules de liste de destinataires mailing
MailingModuleDescContactCompanies=Kontakti/Adrese za subjekte (kupac, mogući klijent, dobavljač, ...)

View File

@ -34,7 +34,7 @@ SeparatorThousand=None
# ErrorCanNotCreateDir=Can not create dir %s
# ErrorCanNotReadDir=Can not read dir %s
# ErrorConstantNotDefined=Parameter %s not defined
# ErrorUnknown=Unkown error
# ErrorUnknown=Unknown error
# ErrorSQL=SQL Error
# ErrorLogoFileNotFound=Logo file '%s' was not found
# ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this
@ -60,6 +60,8 @@ SeparatorThousand=None
# ErrorFailedToSaveFile=Error, failed to save file.
# ErrorOnlyPngJpgSupported=Error, only .png and .jpg image format file are supported.
# ErrorImageFormatNotSupported=Your PHP does not support functions to convert images of this format.
# SetDate=Set date
# SelectDate=Select a date
# SeeAlso=See also %s
# BackgroundColorByDefault=Default background color
# FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
@ -667,6 +669,7 @@ CommercialProposalsShort=Poslovni prijedlozi
# SetDemandReason=Set source
# ViewPrivateNote=View notes
# XMoreLines=%s line(s) hidden
# PublicUrl=Public URL
# Week day
# Monday=Monday

View File

@ -1,18 +1,18 @@
# Dolibarr language file - Source file is en_US - opensurvey
# Survey=Survey
# Surveys=Surveys
# OrganizeYourMeetingEasily=Organize your meetings and surveys easily. First select type of survey...
# NewSurvey=New survey
# NoSurveysInDatabase=%s survey(s) into database.
# OpenSurveyArea=Surveys area
# AddACommentForPoll=You can add a comment into survey...
# 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=To receive an email for each vote
# ToReceiveEMailForEachVote=Receive an email for each vote
# TypeDate=Type date
# TypeClassic=Type standard
# OpenSurveyStep2=Select your dates amoung the free days (green). The selected days are in blue. You can unselect a day previously selected by clicking again on it
# 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
@ -24,10 +24,10 @@
# 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 survey
# 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 survey
# CreateSurveyStandard=Create a standard survey
# CreateSurveyDate=Create a date poll
# CreateSurveyStandard=Create a standard poll
# CheckBox=Simple checkbox
# YesNoList=List (empty/yes/no)
# PourContreList=List (empty/for/against)
@ -35,7 +35,7 @@
# TitleChoice=Choice label
# ExportSpreadsheet=Export result spreadsheet
# ExpireDate=Limit date
# NbOfSurveys=Number of surveys
# 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.

View File

@ -22,6 +22,7 @@
# Notify_WITHDRAW_EMIT=Perform withdrawal
# Notify_ORDER_SENTBYMAIL=Customer order sent by mail
# Notify_COMPANY_CREATE=Third party created
# Notify_COMPANY_COMPANY_SENTBYMAIL=Mails sent from third party card
# Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
# Notify_ORDER_SENTBYMAIL=Customer order sent by mail
# Notify_BILL_PAYED=Customer invoice payed
@ -40,6 +41,7 @@
# Notify_MEMBER_SUBSCRIPTION=Member subscribed
# Notify_MEMBER_RESILIATE=Member resiliated
# Notify_MEMBER_DELETE=Member deleted
# Notify_PROJECT_CREATE=Project creation
# NbOfAttachedFiles=Number of attached files/documents
# TotalSizeOfAttachedFiles=Total size of attached files/documents
# MaxSize=Maximum size

View File

@ -1,36 +1,36 @@
# Dolibarr language file - Source file is en_US - products
# ProductRef=Product ref.
# ProductLabel=Product label
# ProductServiceCard=Products/Services card
# Products=Products
# Services=Services
# Product=Product
# Service=Service
# ProductId=Product/service id
# Create=Create
# Reference=Reference
# NewProduct=New product
# NewService=New service
# ProductCode=Product code
# ServiceCode=Service code
ProductRef=Ref. proizvoda
ProductLabel=Oznaka proizvoda
ProductServiceCard=Kartica proizvoda/usluge
Products=Proizvodi
Services=Usluge
Product=Proizvod
Service=Usluga
ProductId=ID proizvoda/usluge
Create=Kreiraj
Reference=Referenca
NewProduct=Novi proizvod
NewService=Nova usluga
ProductCode=Šifra proizvoda
ServiceCode=Šifra usluge
# ProductVatMassChange=Mass VAT change
# 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.
# MassBarcodeInit=Mass barcode init
# MassBarcodeInitDesc=This page can be used to initialize a barcode on objects that does not have barcode defined. Check before that setup of module barcode is complete.
# ProductAccountancyBuyCode=Accountancy code (buy)
# ProductAccountancySellCode=Accountancy code (sell)
# ProductOrService=Product or Service
# ProductsAndServices=Products and Services
# ProductsOrServices=Products or Services
# ProductsAndServicesOnSell=Available Products and Services
# ProductsAndServicesNotOnSell=Obsolete Products and Services
# ProductsAndServicesStatistics=Products and Services statistics
# ProductsStatistics=Products statistics
# ProductsOnSell=Available products
# ProductsNotOnSell=Obsolete products
# ServicesOnSell=Available services
# ServicesNotOnSell=Obsolete services
# InternalRef=Internal reference
ProductAccountancyBuyCode=Šifra računovodstva (kupovanje)
ProductAccountancySellCode=Šifra računovodstva (prodaja)
ProductOrService=Proizvod ili usluga
ProductsAndServices=Proizvodi i usluge
ProductsOrServices=Proizvodi ili usluge
ProductsAndServicesOnSell=Dostupni proizvodi i usluge
ProductsAndServicesNotOnSell=Zastarjeli proizvodi i usluge
ProductsAndServicesStatistics=Statistika proizvoda i usluga
ProductsStatistics=Statistika proizvoda
ProductsOnSell=Dostupni proizvodi
ProductsNotOnSell=Zastarjeli proizvodi
ServicesOnSell=Dostupne usluge
ServicesNotOnSell=Zastarjele usluge
InternalRef=Interna referenca
# LastRecorded=Last products/services on sell recorded
# LastRecordedProductsAndServices=Last %s recorded products/services
# LastModifiedProductsAndServices=Last %s modified products/services
@ -168,7 +168,7 @@
# ConfirmCloneProduct=Are you sure you want to clone product or service <b>%s</b> ?
# CloneContentProduct=Clone all main informations of product/service
# ClonePricesProduct=Clone main informations and prices
# CloneCompositionProduct=Clone product/service composition
# CloneCompositionProduct=Clone virtual product/services
# ProductIsUsed=This product is used
# NewRefForClone=Ref. of new product/service
# CustomerPrices=Customers prices

View File

@ -33,9 +33,9 @@ TimesSpent=Vrijeme provedeno
RefTask=Ref. zadatka
LabelTask=Oznaka zadatka
# TaskTimeSpent=Time spent on tasks
# TaskTimeUser=Task time user
# TaskTimeNote=Task time note
# TaskTimeDate=Task time date
# TaskTimeUser=User
# TaskTimeNote=Note
# TaskTimeDate=Date
NewTimeSpent=Nova provedeno vrijeme
MyTimeSpent=Moje provedeno vrijeme
MyTasks=Moji zadaci

View File

@ -0,0 +1,6 @@
# Dolibarr language file - Source file is en_US - users
# Employee=Employee
# NewSalaryPayment=New salary payment
# SalaryPayment=Salary payment
# SalariesPayments=Salaries payments
# ShowSalaryPayment=Show salary payment

View File

@ -109,8 +109,8 @@ ParameterInDolibarr=Variable %s
LanguageParameter=Variable idioma %s
LanguageBrowserParameter=Variable %s
LocalisationDolibarrParameters=Paràmetres de localització
ClientTZ=Zona horària client (usuari)
ClientHour=Hora client (usuari)
# ClientTZ=Client Time Zone (user)
# ClientHour=Client time (user)
OSTZ=Zona horària Servidor SO
PHPTZ=Zona horària Servidor PHP
PHPServerOffsetWithGreenwich=Offset amb Greenwich (segons)
@ -512,8 +512,8 @@ Module50200Name= Paypal
Module50200Desc= Mòdul per a proporcionar un pagament en línia amb targeta de crèdit mitjançant Paypal
# Module54000Name=PrintIPP
# Module54000Desc=Print via Cups IPP Printer.
# Module55000Name=Open Survey
# Module55000Desc=Module to make online surveys (like Doodle, Studs, Rdvz, ...)
# Module55000Name=Open Poll
# Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...)
Module59000Name=Márgenes
Module59000Desc=Mòdul per gestionar els marges de benefici
Module60000Name=Comissions
@ -732,8 +732,8 @@ Permission50101=Utilitzar TPV
Permission50201=Consultar les transaccions
Permission50202=Importar les transaccions
# Permission54001=Print
# Permission55001=Read surveys
# Permission55002=Create/modify surveys
# Permission55001=Read polls
# Permission55002=Create/modify polls
# Permission59001=Read commercial margins
# Permission59002=Define commercial margins
# DictionaryCompanyType=Thirdparties type

View File

@ -28,6 +28,9 @@ InvoiceReplacementDesc=La <b>factura rectificativa</ b> serveix per a cancel·la
InvoiceAvoir=Abonament
InvoiceAvoirAsk=Abonament per corregir la factura
InvoiceAvoirDesc=El <b>abonament</ b> és una factura negativa destinada a compensar un import de factura que difereix de l'import realment pagat (per haver pagat de més o per devolució de productes, per exemple).
# invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
# invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake
# invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake
ReplaceInvoice=Rectificar la factura %s
ReplacementInvoice=Rectificació factura
ReplacedByInvoice=Rectificada per la factura %s
@ -222,8 +225,6 @@ DispenseMontantLettres=Les factures redactactades per processos mecànics estan
NonPercuRecuperable=No percebut recuperable
SetConditions=Definir condicions de pagament
SetMode=Definir mode de pagament
SetDate= Definir data
SelectDate=Seleccioneu una data
Billed=Facturat
RepeatableInvoice=Factura recurrent
RepeatableInvoices=Factures recurrents

View File

@ -66,7 +66,7 @@ ReturnInCompany=Tornar a la fitxa client/client potencial
ContentsVisibleByAll=El contingut serà visible per tots
ContentsVisibleByAllShort=Contingut visible per tots
ContentsNotVisibleByAllShort=Contingut no visible per tots
CategoriesTree=Arbre de categories
# CategoriesTree=Categories tree
DeleteCategory=Eliminar categoria
ConfirmDeleteCategory=Esteu segur de voler eliminar aquesta categoria?
RemoveFromCategory=Suprimir l'enllaç amb categoria
@ -105,3 +105,9 @@ CatProdLinks=Productes
CatCusLinks=Clients/Clients potencials
CatSupLinks=Proveïdors
DeleteFromCat=Eliminar de la categoria
# DeletePicture=Picture delete
# ConfirmDeletePicture=Confirm picture deletion?
# ExtraFieldsCategories=Complementary attributes
# CategoriesSetup=Categories setup
# CategorieRecursiv=Link with parent category automatically
# CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory

View File

@ -403,7 +403,6 @@ ProductsIntoElements=Llistat de productes en %s
# CurrentOutstandingBill=Current outstanding bill
# OutstandingBill=Max. for outstanding bill
# OutstandingBillReached=Reached max. for outstanding bill
# Monkey
MonkeyNumRefModelDesc=Retorna un número sota el format %syymm-nnnn per als codis de clients i %syymm-nnnn per als codis dels proveïdors, on yy és l'any, mm el mes i nnnn un comptador seqüencial sense ruptura i sense tornar a 0.
# Leopard
LeopardNumRefModelDesc=Codi de client/proveïdor lliure sense verificació. Pot ser modificat en qualsevol moment.
# ManagingDirectors=Manager(s) name (CEO, director, president...)

View File

@ -41,16 +41,20 @@ VATToCollect=IVA compres
VATSummary=Balanç d'IVA
LT2SummaryES=Balanç d'IRPF
VATPaid=IVA Pagat
# SalaryPaid=Salary paid
LT2PaidES=IRPF Pagat
LT2CustomerES=IRPF Vendes
LT2SupplierES=IRPF compres
VATCollected=IVA recuperat
ToPay=A pagar
ToGet=A tornar
# SpecialExpensesArea=Area for all special paiements
TaxAndDividendsArea=Àrea impostos, càrregues socials i dividends
SocialContribution=Càrrega social
SocialContributions=Càrregues socials
# MenuSpecialExpenses=Special expenses
MenuTaxAndDividends=Impostos i càrregues
# MenuSalaries=Salaries
MenuSocialContributions=Càrregues socials
MenuNewSocialContribution=Nova càrrega
NewSocialContribution=Nova càrrega social
@ -63,11 +67,14 @@ PaymentCustomerInvoice=Cobrament factura a client
PaymentSupplierInvoice=Pagament factura de proveïdor
PaymentSocialContribution=Pagament càrrega social
PaymentVat=Pagament IVA
# PaymentSalary=Salary payment
ListPayment=Llistat de pagaments
ListOfPayments=Llistat de pagaments
ListOfCustomerPayments=Llistat de pagaments de clients
ListOfSupplierPayments=Llistat de pagaments a proveïdors
DatePayment=Data de pagament
# DateStartPeriod=Date start period
# DateEndPeriod=Date end period
NewVATPayment=Nou pagament d'IVA
newLT2PaymentES=Nou pagament d'IRPF
LT2PaymentES=Pagament IRPF

View File

@ -23,3 +23,4 @@ GoodStatusDeclaration=He rebut la mercaderia en bon estat,
Deliverer=Destinatari :
Sender=Orige
Recipient=Destinatari
# ErrorStockIsNotEnough=There's not enough stock

View File

@ -125,7 +125,7 @@ BankAccountNumber=Número compte
BankAccountNumberKey=Dígit Control
# SpecialCode=Special code
# ExportStringFilter=%% allows replacing one or more characters in the text
# ExportDateFilter='AAAA' 'AAAAMM' 'AAAAMMJJ': filters by one year/month/day<br>'AAAA+AAAA' 'AAAAMM+AAAAMM' 'AAAAMMJJ+AAAAMMJJ': filters over a range of years/months/days<br>'&gt;AAAA' '&gt;AAAAMM' '&gt;AAAAMMJJ': filters on the following years/months/days<br>'&gt;AAAA' '&gt;AAAAMM' '&gt;AAAAMMJJ': filters on the previous years/months/days
# ExportDateFilter='YYYY' 'YYYYMM' 'YYYYMMDD': filters by one year/month/day<br>'YYYY+YYYY' 'YYYYMM+YYYYMM' 'YYYYMMDD+YYYYMMDD': filters over a range of years/months/days<br>'&gt;YYYY' '&gt;YYYYMM' '&gt;YYYYMMDD': filters on the following years/months/days<br>'&lt;YYYY' '&lt;YYYYMM' '&lt;YYYYMMDD': filters on the previous years/months/days
# ExportNumericFilter='NNNNN' filters by one value<br>'NNNNN+NNNNN' filters over a range of values<br>'&gt;NNNNN' filters by lower values<br>'&gt;NNNNN' filters by higher values
## filters
SelectFilterFields=Si vol aplicar un filtre sobre alguns valors, introduïu-los aquí.

View File

@ -80,12 +80,12 @@ ActivateCheckRead=Activar confirmació de lectura i opció de Desubscripció
ActivateCheckReadKey=Clau usada per xifrar la URL de la confirmació de lectura i la funció de desubscripció
EMailSentToNRecipients=E-Mail enviat a %s destinataris.
# EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
# MailTopicSendRemindUnpaidInvoices=Remind of invoice %s (%s)
# SendRemind=Send remind by EMails
# RemindSent=%S remind(s) sent
# MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
# SendRemind=Send reminder by EMails
# RemindSent=%s reminder(s) sent
# AllRecipientSelectedForRemind=All thirdparties selected and if an email is set (note that one mail per invoice will be sent)
# NoRemindSent=No remind by EMail sent
# ResultOfMassSending=Result of mass remind sending by EMail
# NoRemindSent=No EMail reminder sent
# ResultOfMassSending=Result of mass EMail reminders sending
# Libelle des modules de liste de destinataires mailing
MailingModuleDescContactCompanies=Contactes de tercers (clients potencials, clients, proveïdors ...)

View File

@ -7,7 +7,7 @@ DIRECTION=ltr
FONTFORPDF=helvetica
FONTSIZEFORPDF=10
SeparatorDecimal=,
SeparatorThousand=
SeparatorThousand=None
FormatDateShort=%d/%m/%Y
FormatDateShortInput=%d/%m/%Y
FormatDateShortJava=dd/MM/yyyy
@ -34,7 +34,7 @@ ErrorFailedToOpenFile=Impossible obrir el fitxer %s
ErrorCanNotCreateDir=Impossible crear la carpeta %s
ErrorCanNotReadDir=Impossible llegir la carpeta %s
ErrorConstantNotDefined=Parámetre %s no definit
ErrorUnknown=Error desconegut
# ErrorUnknown=Unknown error
ErrorSQL=Error de SQL
ErrorLogoFileNotFound=El arxiu logo '%s' no es troba
ErrorGoToGlobalSetup=Aneu a la Configuració 'Empresa/Institució' per corregir
@ -60,6 +60,8 @@ ErrorNoSocialContributionForSellerCountry=Error, cap tipus de càrrega social de
ErrorFailedToSaveFile=Error, el registre del fitxer ha fallat.
ErrorOnlyPngJpgSupported=Error, només estan suportats els formats d'imatge jpg i png.
ErrorImageFormatNotSupported=El seu PHP no suporta les funcions de conversió d'aquest format d'imatge.
# SetDate=Set date
# SelectDate=Select a date
SeeAlso=Veure també %s
BackgroundColorByDefault=Color de fons
FileWasNotUploaded=Un arxiu ha estat seleccionat per adjuntar, però encara no ha estat pujat. Feu clic a "Adjuntar aquest arxiu" per a això.
@ -667,6 +669,7 @@ toward=cap a
# SetDemandReason=Set source
# ViewPrivateNote=View notes
# XMoreLines=%s line(s) hidden
# PublicUrl=Public URL
# Week day
Monday=Dilluns

View File

@ -1,18 +1,18 @@
# Dolibarr language file - Source file is en_US - opensurvey
Survey=Enquesta
Surveys=Enquestes
OrganizeYourMeetingEasily=Organitzi les seves reunions i enquestes de forma fàcil. Primer, seleccioneu el tipus d'enquesta ...
NewSurvey=Nova enquesta
NoSurveysInDatabase=%s enquesta(es) a la base de dades.
OpenSurveyArea=Àrea d'enquestes
AddACommentForPoll=Podeu afegir un comentari a l'enquesta...
# 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=Afegir comentari
CreatePoll=Crear enquesta
PollTitle=Títol de l'enquesta
ToReceiveEMailForEachVote=Per rebre un email per cada vot
# ToReceiveEMailForEachVote=Receive an email for each vote
TypeDate=Tipus de data
TypeClassic=Tipus estándar
OpenSurveyStep2=Seleccioneu les dates entre els dies lliures (verds). Els dies seleccionats són de color blau. Pot seleccionar un dia prèviament seleccionat fent clic de nou en ell
# 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=Eliminar tots els dies
CopyHoursOfFirstDay=Copia hores del primer dia
RemoveAllHours=Eliminar totes les hores
@ -24,10 +24,10 @@ with=amb
CommentsOfVoters=Comentaris dels votants
ConfirmRemovalOfPoll=Està segur que desitja eliminar aquesta enquesta (i tots els vots)
RemovePoll=Eliminar enquesta
UrlForSurvey=URL per tenir accés directe a l'enquesta
# 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=Crear una enquesta
CreateSurveyStandard=Crear una enquesta estàndard
# CreateSurveyDate=Create a date poll
# CreateSurveyStandard=Create a standard poll
CheckBox=Checkbox simple
YesNoList=Llista (buit/sí/no)
PourContreList=Llista (buit/a favor/en contra)
@ -35,7 +35,7 @@ AddNewColumn=Afegir nova columna
TitleChoice=Títol de l'opció
ExportSpreadsheet=Exportar resultats a un full de càlcul
ExpireDate=Data límit
# NbOfSurveys=Number of surveys
# NbOfSurveys=Number of polls
NbOfVoters=Núm. de votants
SurveyResults=Resultats
PollAdminDesc=Està autoritzat per canviar totes les línies de l'enquesta amb el botó "Editar". Pot, també, eliminar una columna o una línia amb %s. També podeu afegir una nova columna amb %s.

View File

@ -22,6 +22,7 @@ Notify_WITHDRAW_CREDIT=Abonament domiciliació
Notify_WITHDRAW_EMIT=Emissió domiciliació
Notify_ORDER_SENTBYMAIL=Enviament comanda de client per e-mail
Notify_COMPANY_CREATE=Creació tercer
# Notify_COMPANY_COMPANY_SENTBYMAIL=Mails sent from third party card
Notify_PROPAL_SENTBYMAIL=Enviament pressupost per e-mail
Notify_ORDER_SENTBYMAIL=Enviament comanda de client per e-mail
Notify_BILL_PAYED=Cobrament factura a client
@ -40,6 +41,7 @@ Notify_MEMBER_VALIDATE=Validació membre
Notify_MEMBER_SUBSCRIPTION=Afiliació membre
Notify_MEMBER_RESILIATE=Baixa membre
Notify_MEMBER_DELETE=Eliminació membre
# Notify_PROJECT_CREATE=Project creation
NbOfAttachedFiles=Número arxius/documents adjunts
TotalSizeOfAttachedFiles=Mida total dels arxius/documents adjunts
MaxSize=Tamany màxim

View File

@ -168,7 +168,7 @@ CloneProduct=Clonar producte/servei
ConfirmCloneProduct=Esteu segur de voler clonar el producte o servei <b>%s</b> ?
CloneContentProduct=Clonar només la informació general del producte/servei
ClonePricesProduct=Clonar la informació general i els preus
CloneCompositionProduct=Clonar la composició del producte/servei
# CloneCompositionProduct=Clone virtual product/services
ProductIsUsed=Aquest producte és utilitzat
NewRefForClone=Ref. del nou producte/servei
CustomerPrices=Preus clients

View File

@ -33,9 +33,9 @@ TimesSpent=Temps dedicats
RefTask=Ref. tasca
LabelTask=Etiqueta tasca
# TaskTimeSpent=Time spent on tasks
# TaskTimeUser=Task time user
# TaskTimeNote=Task time note
# TaskTimeDate=Task time date
# TaskTimeUser=User
# TaskTimeNote=Note
# TaskTimeDate=Date
NewTimeSpent=Nou temps dedicat
MyTimeSpent=El meu temps dedicat
MyTasks=Les meves tasques

View File

@ -0,0 +1,6 @@
# Dolibarr language file - Source file is en_US - users
# Employee=Employee
# NewSalaryPayment=New salary payment
# SalaryPayment=Salary payment
# SalariesPayments=Salaries payments
# ShowSalaryPayment=Show salary payment

View File

@ -109,8 +109,8 @@ ParameterInDolibarr=Parametr %s
LanguageParameter=%s Jazykové parametrů
LanguageBrowserParameter=Parametr %s
LocalisationDolibarrParameters=Lokalizace parametry
ClientTZ=Klient Time Zone (uživatele)
ClientHour=Klient čas (uživatele)
# ClientTZ=Client Time Zone (user)
# ClientHour=Client time (user)
OSTZ=Servre OS Časové pásmo
PHPTZ=PHP serveru Časové pásmo
PHPServerOffsetWithGreenwich=PHP serveru offset šířka Greenwich (v sekundách)
@ -512,8 +512,8 @@ Module50200Name= Paypal
Module50200Desc= Modul nabídnout on-line platby kreditní kartou stránku s Paypal
Module54000Name=PrintIPP
Module54000Desc=Tisk přes poháry tiskárny IPP.
Module55000Name=Otevřít Průzkum
# Module55000Desc=Module to make online surveys (like Doodle, Studs, Rdvz, ...)
# Module55000Name=Open Poll
# Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...)
Module59000Name=Okraje
Module59000Desc=Modul pro správu marže
Module60000Name=Provize
@ -732,8 +732,8 @@ Permission50101=Použijte místě prodeje
Permission50201=Přečtěte transakce
Permission50202=Importní operace
Permission54001=Vytisknout
Permission55001=Přečtěte si průzkumy
Permission55002=Vytvořit / upravit průzkumy
# Permission55001=Read polls
# Permission55002=Create/modify polls
# Permission59001=Read commercial margins
# Permission59002=Define commercial margins
# DictionaryCompanyType=Thirdparties type

View File

@ -28,6 +28,9 @@ InvoiceReplacementDesc=<b>Náhradní faktura</b> se používá ke zrušení a na
InvoiceAvoir=Dobropis
InvoiceAvoirAsk=Dobropis opravit fakturu
InvoiceAvoirDesc=<b>Dobropis</b> je negativní faktura slouží k řešení skutečnost, že faktura je množství, které se liší než částka skutečně vyplacena (protože zákazník zaplatil příliš mnoho omylem, nebo nebude vyplacena úplně, protože on se vrátil některé produkty, například).
# invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
# invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake
# invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake
ReplaceInvoice=Vyměňte faktury %s
ReplacementInvoice=Náhradní faktura
ReplacedByInvoice=Nahrazeno faktuře %s
@ -222,8 +225,6 @@ DispenseMontantLettres=Návrhem zákona o mechanografickým jsou osvobozeni od p
NonPercuRecuperable=Nevratná
SetConditions=Nastavit platební podmínky
SetMode=Nastavit platební režim
SetDate= Nastavení data
SelectDate=Vyberte datum
Billed=Účtováno
RepeatableInvoice=Přednastavená faktura
RepeatableInvoices=Předdefinované faktury

View File

@ -66,7 +66,7 @@ ReturnInCompany=Zpět na zákazníka / Vyhlídka karty
ContentsVisibleByAll=Obsah bude vidět všichni
ContentsVisibleByAllShort=Obsah viditelné všemi
ContentsNotVisibleByAllShort=Obsah není vidět všichni
CategoriesTree=Kategorie strom
# CategoriesTree=Categories tree
DeleteCategory=Odstranit kategorii
ConfirmDeleteCategory=Jste si jisti, že chcete smazat tuto kategorii?
RemoveFromCategory=Odstraňte spojení s kategoriích
@ -105,3 +105,9 @@ CatProdLinks=Vazby mezi produktů / služeb a kategorií
CatCusLinks=Vazby mezi zákazníky / vyhlídky a kategorií
CatSupLinks=Vazby mezi dodavateli a kategorií
DeleteFromCat=Odebrat z kategorie
# DeletePicture=Picture delete
# ConfirmDeletePicture=Confirm picture deletion?
# ExtraFieldsCategories=Complementary attributes
# CategoriesSetup=Categories setup
# CategorieRecursiv=Link with parent category automatically
# CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory

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