Merge remote-tracking branch 'Upstream/develop' into 5.0-p34

This commit is contained in:
aspangaro 2016-11-02 07:14:45 +01:00
commit 6e5ab06a3d
211 changed files with 5160 additions and 1647 deletions

View File

@ -38,8 +38,34 @@ Dolibarr better:
- Trigger name SUPPLIER_PROPOSAL_CREATE has been renamed into PROPOSAL_SUPPLIER_CREATE
- A new paramater sqlfilters was introduced to allow filter on any fields int the REST API. Few old parameters
no more required were also removed. Use this new one if you ware using one of them.
- Method commande->deleteline($lindeid) has been replaced with commande->deleteline($user, $lineid).
***** ChangeLog for 4.0.2 compared to 4.0.1 *****
FIX: #5340
FIX: #5779
FIX: #5849
FIX: #5866
FIX: #5907
FIX: Addline if $txlocaltax1 is empty
FIX: Avoid error 500 if phpexcel is disabled
FIX: Avoid errors on debian
FIX: Can edit the customer ref even if order is not draft.
FIX: Documents not moved in new directory if we change reference of the task.
FIX: Error when CATEGORIE_RECURSIV_ADD is enabled and new category is child of an already linked to object
FIX: Extra fields of task not copied on project cloning
FIX: Hidden option PRODUCT_MAX_VISIBLE_PHOTO
FIX: Link on supplier invoice in widget was not clickable
FIX: margin tab on customer card must filter on current entity invoices
FIX: missing column into SQL on thirdparty list
FIX: Nber of attached files were not reported in event report of email sent
FIX: only show projects of related third if external user
FIX: Search provider by price
FIX: Solve backup when using mysqldump that return warning
FIX: Sql error in widget of product for stock alerts
FIX: updateligne if $txlocaltax1 is null
***** ChangeLog for 4.0.1 compared to 4.0.0 *****
FIX: #2853
FIX: #2991

View File

@ -147,7 +147,7 @@ These are features that Dolibarr does **not** yet fully support:
## DOCUMENTATION
Administrator, user, developer and translator's documentations are available along with other community resources on the [Wiki](http://wiki.dolibarr.org).
Administrator, user, developer and translator's documentations are available along with other community resources on the [Wiki](https://wiki.dolibarr.org).
## CONTRIBUTING

View File

@ -333,7 +333,7 @@ To update dolibarr debian package when only files into debian has changed:
To update dolibarr debian package when only files not into debian has changed:
* Manually, add patches into debian/patches and update file debian/series, or do the 2 steps with "quilt import filepatch.patch"
* You can test patching of serie with "quilt push" (autant de fois que de patch). Avec "quilt pop -a", on revien a l'état du upstream sans les patch.
* You can test patching of serie with "quilt push" (autant de fois que de patch). Avec "quilt pop -a", on revient a l'état du upstream sans les patch.
Once files has been prepared, it's time to test:
@ -350,7 +350,7 @@ Note: Package is built into directory ../build-area
Note: To compare 2 packages: debdiff package1.dsc package2.dsc
* Test package (see dedicated chapter to test it with debian unstable env)
> cp ../build-area/* /srv/chroot/unstable/tmp
> sudo rm /srv/chroot/unstable/tmp/* >/dev/null 2>&1; cp ../build-area/* /srv/chroot/unstable/tmp
See rest of process into dedicated chapter "To test a package" to test it with debian unstable env
* If package .deb is ok:

View File

@ -73,6 +73,8 @@ If you want to build/test package locally:
bzr commit -m "Upstream version x.y"
bzr push
# Init debian dir repository into launchpad (when repository for sources does not exist)
#----------------------------------
- Create debian directory and upload it onto bzr branch lp:~yourlogin/+junk/debian-[dev|stable]
@ -104,12 +106,13 @@ If you want to build/test package locally:
bzr push lp:~yourlogin/+junk/debian-[dev|stable]
# Define a recipe into launchpad (a rule to build packages into a PPA)
#----------------------------------
- Create a file dolibarr.recipe with content
- Create a file dolibarr-[beta|stable].recipe with content
cd bzr
vi dolibarr.recipe
For dev:
vi dolibarr-[beta|stable].recipe
For beta/dev:
# bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
lp:dolibarr
merge packaging lp:~yourlogin/+junk/debian-dev
@ -119,7 +122,7 @@ If you want to build/test package locally:
merge packaging lp:~yourlogin/+junk/debian-stable
- Run command
cd bzr
bzr dailydeb dolibarr.recipe working-dir
bzr dailydeb dolibarr-[beta|stable].recipe working-dir
This will create a directory "working-dir" with dolibarr sources and will add sources from ~yourlogin/+junk/debian-[dev|stable]
- Test package sources
sudo pbuilder build <working-dir>/<project>_<version>.dsc

View File

@ -159,6 +159,7 @@ $REL1 = $newbuild; $REL1 =~ s/-.*$//gi;
if ($RPMSUBVERSION eq 'auto') { $RPMSUBVERSION = $newbuild; $RPMSUBVERSION =~ s/^.*-//gi; }
$FILENAMETGZ2="$PROJECT-$MAJOR.$MINOR.$REL1";
$FILENAMERPM=$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm";
$FILENAMERPMSRC=$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm";
# For Deb
$newbuild = $BUILD;
$newbuild =~ s/(dev|alpha)/1/gi; # dev
@ -733,8 +734,8 @@ if ($nboftargetok) {
print "Remove target ".$FILENAMERPM."...\n";
unlink("$NEWDESTI/".$FILENAMERPM);
print "Remove target ".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm...\n";
unlink("$NEWDESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm");
print "Remove target ".$FILENAMERPMSRC."...\n";
unlink("$NEWDESTI/".$FILENAMERPMSRC);
print "Create directory $BUILDROOT/$FILENAMETGZ2\n";
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2`;
@ -1140,10 +1141,11 @@ if ($nboftargetok) {
print "\nList of files to publish (BUILD=$BUILD)\n";
%filestoscansf=(
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'signatures',
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'none', # none means it won't be published on SF
"$DESTI/package_rpm_generic/$FILENAMERPM"=>'Dolibarr installer for Fedora-Redhat-Mandriva-Opensuse (DoliRpm)',
"$DESTI/package_rpm_generic/$FILENAMERPMSRC"=>'none', # none means it won't be published on SF
"$DESTI/package_debian-ubuntu/${FILENAMEDEB}_all.deb"=>'Dolibarr installer for Debian-Ubuntu (DoliDeb)',
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'none',
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'none', # none means it won't be published on SF
"$DESTI/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'Dolibarr installer for Windows (DoliWamp)',
"$DESTI/standard/$FILENAMETGZ.tgz"=>'Dolibarr ERP-CRM',
"$DESTI/standard/$FILENAMETGZ.zip"=>'Dolibarr ERP-CRM'
@ -1151,6 +1153,7 @@ if ($nboftargetok) {
%filestoscanstableasso=(
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'signatures',
"$DESTI/package_rpm_generic/$FILENAMERPM"=>'package_rpm_generic',
"$DESTI/package_rpm_generic/$FILENAMERPMSRC"=>'package_rpm_generic',
"$DESTI/package_debian-ubuntu/${FILENAMEDEB}_all.deb"=>'package_debian-ubuntu',
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'package_debian-ubuntu',
"$DESTI/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'package_windows',
@ -1212,9 +1215,10 @@ if ($nboftargetok) {
my $filesize = -s $file;
if (! $filesize) { next; }
print "\n";
if ($target eq 'SF' && $filestoscan{$file} ne 'none') {
if ($target eq 'SF') {
if ($filestoscan{$file} eq 'none') {
next;
}
$destFolder="$NEWPUBLISH/$filestoscan{$file}/".$MAJOR.'.'.$MINOR.'.'.$BUILD;
}
elsif ($target eq 'ASSO' and $NEWPUBLISH =~ /stable/) {
@ -1231,6 +1235,8 @@ if ($nboftargetok) {
$filenameonly =~ s/.*\/[^\/]+\/([^\/])+$/$1/;
$destFolder="$NEWPUBLISH/$dirnameonly";
}
print "\n";
print "Publish file ".$file." to ".$destFolder."\n";
# mkdir

View File

@ -36,7 +36,7 @@ Go into project you want to update. It mught be:
Once logged, click on "Add file" in section "Source Files", then select mode "Upload From: Remote URL"
Keep empty for "Filename", choose "Remote URL" and enter into last field, URL that should looks like this:
http://www.dolibarr.org/files/stable/package_rpm_generic/dolibarr-x.y.v-0.3.src.rpm
http://www.dolibarr.org/files/stable/package_rpm_generic/dolibarr-x.y.v-0.4.src.rpm
Then add into Advanded - Attributes
OBS:Screenshots http://www.dolibarr.org/images/dolibarr_screenshot1.png

View File

@ -34,7 +34,7 @@ AutoReqProv: no
%description
An easy to use CRM & ERP open source/free software for small
An easy to use CRM & ERP open source/free software package for small
and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities.

View File

@ -75,7 +75,7 @@ AutoReqProv: no
%description
An easy to use CRM & ERP open source/free software for small
An easy to use CRM & ERP open source/free software package for small
and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities.

View File

@ -33,7 +33,7 @@ AutoReqProv: no
%description
An easy to use CRM & ERP open source/free software for small
An easy to use CRM & ERP open source/free software package for small
and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities.

View File

@ -36,7 +36,7 @@ AutoReqProv: no
%description
An easy to use CRM & ERP open source/free software for small
An easy to use CRM & ERP open source/free software package for small
and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities.

View File

@ -9,6 +9,7 @@
<exclude-pattern type="relative">htdocs/includes</exclude-pattern>
<exclude-pattern type="relative">htdocs/conf.php</exclude-pattern>
<exclude-pattern type="relative">*/nltechno*</exclude-pattern>
<exclude-pattern type="relative">*/htdocs/includes</exclude-pattern>
<!-- List of all tests -->

View File

@ -1786,12 +1786,14 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='')
print '<td>';
if (! empty($conf->accounting->enabled))
{
$accountancy_account = (! empty($obj->$fieldlist[$field]) ? $obj->$fieldlist[$field] : 0);
$fieldname = $fieldlist[$field];
$accountancy_account = (! empty($obj->$fieldname) ? $obj->$fieldname : 0);
print $formaccountancy->select_account($accountancy_account, $fieldlist[$field], 1, '', 1, 1, 'maxwidth200 maxwidthonsmartphone');
}
else
{
print '<input type="text" size="10" class="flat" value="'.(isset($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'" name="'.$fieldlist[$field].'">';
$fieldname = $fieldlist[$field];
print '<input type="text" size="10" class="flat" value="'.(isset($obj->$fieldname)?$obj->$fieldname:'').'" name="'.$fieldlist[$field].'">';
}
print '</td>';
}

View File

@ -204,7 +204,7 @@ if ($mode == 'overwrite')
print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("NewTranslationStringToShow"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
//if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
print '<td align="center"></td>';
print "</tr>\n";
@ -371,7 +371,7 @@ if ($mode == 'searchkey')
print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder).'</td>';
print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("CurrentTranslationString"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder);
if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
//if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder);
print '<td align="center"></td>';
print "</tr>\n";
@ -399,7 +399,7 @@ if ($mode == 'searchkey')
//}
print '</td>';
// Action column
print '<td class="liste_titre" align="middle">';
print '<td class="liste_titre nowrap" align="right">';
$searchpitco=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
print $searchpitco;
print '</td>';
@ -427,10 +427,10 @@ if ($mode == 'searchkey')
$htmltext = $langs->trans("OriginalValueWas", $newlangfileonly->tab_translate[$key]);
print $form->textwithpicto('', $htmltext, 1, 'warning');
}
if (! empty($conf->multicompany->enabled) && !$user->entity)
/*if (! empty($conf->multicompany->enabled) && !$user->entity)
{
print $val;
}
}*/
print '</td></tr>'."\n";
}

View File

@ -535,7 +535,8 @@ if ($id)
{
$showfield=1;
$align="left";
$valuetoshow=$obj->$fieldlist[$field];
$fieldname=$fieldlist[$field];
$valuetoshow=$obj->$fieldname;
// Show value for field
if ($showfield) print '<td align="'.$align.'">'.$valuetoshow.'</td>';
@ -613,14 +614,15 @@ function fieldListWebsites($fieldlist, $obj='', $tabname='', $context='')
foreach ($fieldlist as $field => $value)
{
$fieldname = $fieldlist[$field];
if ($fieldlist[$field] == 'lang')
{
print '<td>';
print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT,'lang');
print '</td>';
}
elseif ($fieldlist[$field] == 'code' && isset($obj->$fieldlist[$field])) {
print '<td><input type="text" class="flat" value="'.(! empty($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'" size="10" name="'.$fieldlist[$field].'"></td>';
elseif ($fieldlist[$field] == 'code' && isset($obj->$fieldname)) {
print '<td><input type="text" class="flat" value="'.(! empty($obj->$fieldname)?$obj->$fieldname:'').'" size="10" name="'.$fieldlist[$field].'"></td>';
}
else
{
@ -631,7 +633,7 @@ function fieldListWebsites($fieldlist, $obj='', $tabname='', $context='')
if ($fieldlist[$field]=='libelle') $size='size="32" ';
if ($fieldlist[$field]=='tracking') $size='size="92" ';
if ($fieldlist[$field]=='sortorder') $size='size="2" ';
print '<input type="text" '.$size.' class="flat" value="'.(isset($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'" name="'.$fieldlist[$field].'">';
print '<input type="text" '.$size.' class="flat" value="'.(isset($obj->$fieldname)?$obj->$fieldname:'').'" name="'.$fieldlist[$field].'">';
print '</td>';
}
}

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2016 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
@ -73,8 +73,10 @@ print '<table class="noborder" width="100%">'."\n";
clearstatcache();
$workflowcodes=array(
'WORKFLOW_PROPAL_AUTOCREATE_ORDER'=>array('family'=>'create', 'position'=>10, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'order'),
// Automatic creation
'WORKFLOW_PROPAL_AUTOCREATE_ORDER'=>array('family'=>'create', 'position'=>10, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'order'),
'WORKFLOW_ORDER_AUTOCREATE_INVOICE'=>array('family'=>'create', 'position'=>20, 'enabled'=>'! empty($conf->commande->enabled) && ! empty($conf->facture->enabled)', 'picto'=>'bill'),
// Automatic classification
'WORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL'=>array('family'=>'classify', 'position'=>30, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->commande->enabled)', 'picto'=>'order','warning'=>'WarningCloseAlways'),
'WORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL'=>array('family'=>'classify', 'position'=>30, 'enabled'=>'! empty($conf->propal->enabled) && ! empty($conf->facture->enabled)', 'picto'=>'order','warning'=>'WarningCloseAlways'),
// For the following 2 options, if module invoice is disabled, they does not exists, so "Classify billed" for order must be done manually from order card.
@ -108,7 +110,11 @@ foreach($workflowcodes as $key => $params)
if ($oldfamily != $family)
{
print '<tr class="liste_titre">'."\n";
print ' <td>'.$langs->trans("Description").'</td>';
print ' <td>';
if ($family == 'create') print $langs->trans("AutomaticCreation");
elseif ($family == 'classify') print $langs->trans("AutomaticClassification");
else print $langs->trans("Description");
print '</td>';
print ' <td align="center">'.$langs->trans("Status").'</td>';
print "</tr>\n";
$oldfamily = $family;

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Simon TOSSER <simon@kornog-computing.com>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>

View File

@ -514,7 +514,7 @@ class ActionComm extends CommonObject
$sql.= " a.fk_contact, a.percent as percentage,";
$sql.= " a.fk_element, a.elementtype,";
$sql.= " a.priority, a.fulldayevent, a.location, a.punctual, a.transparency,";
$sql.= " c.id as type_id, c.code as type_code, c.libelle, c.color as type_color,";
$sql.= " c.id as type_id, c.code as type_code, c.libelle as type_label, c.color as type_color, c.picto as type_picto,";
$sql.= " s.nom as socname,";
$sql.= " u.firstname, u.lastname as lastname";
$sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a ";
@ -535,17 +535,18 @@ class ActionComm extends CommonObject
{
$obj = $this->db->fetch_object($resql);
$this->id = $obj->id;
$this->ref = $obj->ref;
$this->ref_ext = $obj->ref_ext;
$this->id = $obj->id;
$this->ref = $obj->ref;
$this->ref_ext = $obj->ref_ext;
// Properties of parent table llx_c_actioncomm (will be deprecated in future)
$this->type_id = $obj->type_id;
$this->type_code = $obj->type_code;
// Properties of parent table llx_c_actioncomm
$this->type_id = $obj->type_id;
$this->type_code = $obj->type_code;
$this->type_color = $obj->type_color;
$this->type_picto = $obj->type_picto;
$transcode=$langs->trans("Action".$obj->type_code);
$type_libelle=($transcode!="Action".$obj->type_code?$transcode:$obj->libelle);
$this->type = $type_libelle;
$type_label=($transcode!="Action".$obj->type_code?$transcode:$obj->type_label);
$this->type = $type_label;
$this->code = $obj->code;
$this->label = $obj->label;
@ -1018,7 +1019,7 @@ class ActionComm extends CommonObject
*/
function getLibStatut($mode,$hidenastatus=0)
{
return $this->LibStatut($this->percentage,$mode,$hidenastatus);
return $this->LibStatut($this->percentage,$mode,$hidenastatus,$this->datep);
}
/**
@ -1027,9 +1028,10 @@ class ActionComm extends CommonObject
* @param int $percent Percent
* @param int $mode 0=Long label, 1=Short label, 2=Picto+Short label, 3=Picto, 4=Picto+Short label, 5=Short label+Picto, 6=Picto+Long label, 7=Very short label+Picto
* @param int $hidenastatus 1=Show nothing if status is "Not applicable"
* @param int $datestart Date start of event
* @return string Label
*/
function LibStatut($percent,$mode,$hidenastatus=0)
function LibStatut($percent,$mode,$hidenastatus=0,$datestart='')
{
global $langs;

View File

@ -35,9 +35,11 @@ class CActionComm
var $code;
var $type;
var $libelle;
var $libelle; // deprecated
var $label;
var $active;
var $color;
var $picto;
var $type_actions=array();
@ -60,7 +62,7 @@ class CActionComm
*/
function fetch($id)
{
$sql = "SELECT id, code, type, libelle, color, active";
$sql = "SELECT id, code, type, libelle as label, color, active, picto";
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm";
if (is_numeric($id)) $sql.= " WHERE id=".$id;
else $sql.= " WHERE code='".$id."'";
@ -76,7 +78,8 @@ class CActionComm
$this->id = $obj->id;
$this->code = $obj->code;
$this->type = $obj->type;
$this->libelle = $obj->libelle;
$this->libelle = $obj->label; // deprecated
$this->label = $obj->label;
$this->active = $obj->active;
$this->color = $obj->color;
@ -114,7 +117,7 @@ class CActionComm
$repid = array();
$repcode = array();
$sql = "SELECT id, code, libelle, module, type, color";
$sql = "SELECT id, code, libelle as label, module, type, color, picto";
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm";
$sql.= " WHERE 1=1";
if ($active != '') $sql.=" AND active=".$active;
@ -155,8 +158,8 @@ class CActionComm
if ($onlyautoornot && $code == 'AC_OTH') $code='AC_MANUAL';
if ($onlyautoornot && $code == 'AC_OTH_AUTO') $code='AC_AUTO';
$transcode=$langs->trans("Action".$code);
$repid[$obj->id] = ($transcode!="Action".$code?$transcode:$langs->trans($obj->libelle));
$repcode[$obj->code] = ($transcode!="Action".$code?$transcode:$langs->trans($obj->libelle));
$repid[$obj->id] = ($transcode!="Action".$code?$transcode:$langs->trans($obj->label));
$repcode[$obj->code] = ($transcode!="Action".$code?$transcode:$langs->trans($obj->label));
if ($onlyautoornot && preg_match('/^module/',$obj->type) && $obj->module) $repcode[$obj->code].=' ('.$langs->trans("Module").': '.$obj->module.')';
}
$i++;

View File

@ -318,7 +318,8 @@ if ($resql)
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"a.id",$param,"","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"a.label",$param,"","",$sortfield,$sortorder);
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle",$param,"","",$sortfield,$sortorder);
//if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle",$param,"","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"a.datep",$param,'','align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"a.datep2",$param,'','align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",$param,"","",$sortfield,$sortorder);
@ -331,11 +332,11 @@ if ($resql)
print '<tr class="liste_titre">';
print '<td class="liste_titre"></td>';
print '<td class="liste_titre"><input type="text" name="search_title" value="'.$search_title.'"></td>';
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
{
//if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
//{
print '<td class="liste_titre"></td>';
//print '<td class="liste_titre"><input type="text" name="search_type" value="'.$search_type.'"></td>';
}
//}
print '<td class="liste_titre" align="center">';
print $form->select_date($datestart, 'datestart', 0, 0, 1, '', 1, 0, 1);
print '</td>';
@ -380,6 +381,7 @@ if ($resql)
$actionstatic->ref=$obj->id;
$actionstatic->type_code=$obj->type_code;
$actionstatic->type_label=$obj->type_label;
$actionstatic->type_picto=$obj->type_picto;
$actionstatic->label=$obj->label;
print "<tr ".$bc[$var].">";
@ -394,12 +396,22 @@ if ($resql)
print $actionstatic->label;
print '</td>';
// Type
print '<td>';
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
{
$labeltype=$obj->type_code;
if (! empty($arraylist[$labeltype])) $labeltype=$arraylist[$labeltype];
print '<td>'.dol_trunc($labeltype,28).'</td>';
if ($actionstatic->type_picto) print img_picto('', $actionstatic->type_picto);
else {
if ($actionstatic->type_code == 'AC_TEL') print img_picto('', 'object_phoning').' ';
if ($actionstatic->type_code == 'AC_FAX') print img_picto('', 'object_phoning_fax').' ';
if ($actionstatic->type_code == 'AC_EMAIL') print img_picto('', 'object_email').' ';
}
}
$labeltype=$obj->type_code;
if (empty($conf->global->AGENDA_USE_EVENT_TYPE) && empty($arraylist[$labeltype])) $labeltype='AC_OTH';
if (! empty($arraylist[$labeltype])) $labeltype=$arraylist[$labeltype];
print dol_trunc($labeltype,28);
print '</td>';
// Start date
print '<td align="center" class="nowrap">';
@ -455,7 +467,8 @@ if ($resql)
print '</td>';
// Status/Percent
print '<td align="center" class="nowrap">'.$actionstatic->LibStatut($obj->percent,3).'</td>';
$datep=$db->jdate($obj->datep);
print '<td align="center" class="nowrap">'.$actionstatic->LibStatut($obj->percent,3,1,$datep).'</td>';
print '<td></td>';

View File

@ -9,7 +9,6 @@
* Copyright (C) 2013 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
* Copyright (C) 2015 Frederic France <frederic.france@free.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@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
* the Free Software Foundation; either version 3 of the License, or
@ -89,7 +88,7 @@ $hookmanager->initHooks(array('commcard','globalcard'));
* Actions
*/
$parameters = array('socid' => $id);
$parameters = array('id' => $id, 'socid' => $id);
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
@ -440,7 +439,8 @@ if ($id > 0)
{
$langs->load("members");
$langs->load("users");
print '<tr><td>'.$langs->trans("LinkedToDolibarrMember").'</td>';
print '<tr><td class="titlefield">'.$langs->trans("LinkedToDolibarrMember").'</td>';
print '<td>';
$adh=new Adherent($db);
$result=$adh->fetch('','',$object->id);
@ -459,13 +459,13 @@ if ($id > 0)
print "</table>";
print '<br>';
print '<div class="underbanner clearboth"></div>';
print '<table class="border" width="100%">';
if ($object->client == 2 || $object->client == 3)
{
print '<br>';
print '<div class="underbanner clearboth"></div>';
print '<table class="border" width="100%">';
// Level of prospect
print '<tr><td class="titlefield nowrap">';
print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">';
@ -484,7 +484,8 @@ if ($id > 0)
// Status
$object->loadCacheOfProspStatus();
print '<tr><td>'.$langs->trans("StatusProsp").'</td><td colspan="3">'.$object->getLibProspCommStatut(4, $object->cacheprospectstatus[$object->stcomm_id]['label']);
print ' &nbsp; &nbsp; <div class="floatright">';
print ' &nbsp; &nbsp; ';
print '<div class="floatright">';
foreach($object->cacheprospectstatus as $key => $val)
{
$titlealt='default';
@ -492,8 +493,8 @@ if ($id > 0)
if ($object->stcomm_id != $val['id']) print '<a class="pictosubstatus" href="'.$_SERVER["PHP_SELF"].'?socid='.$object->id.'&stcomm='.$val['code'].'&action=setstcomm">'.img_action($titlealt,$val['code']).'</a>';
}
print '</div></td></tr>';
print "</table>";
}
print "</table>";
print '</div><div class="fichehalfright"><div class="ficheaddleft">';

View File

@ -389,8 +389,8 @@ class Propal extends CommonObject
* @param int $date_end End date of the line
* @param array $array_options extrafields array
* @param string $fk_unit Code of the unit to use. Null to use the default one
* @param string $origin 'order', ...
* @param int $origin_id Id of origin object
* @param string $origin 'order', ...
* @param int $origin_id Id of origin object
* @return int >0 if OK, <0 if KO
*
* @see add_product
@ -454,7 +454,14 @@ class Propal extends CommonObject
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
$txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate.
// Clean vat code
$vat_src_code='';
if (preg_match('/\((.*)\)/', $txtva, $reg))
{
$vat_src_code = $reg[1];
$txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate.
}
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type, $mysoc, $localtaxes_type, 100, $this->multicurrency_tx);
@ -496,6 +503,8 @@ class Propal extends CommonObject
$this->line->label=$label;
$this->line->desc=$desc;
$this->line->qty=$qty;
$this->line->vat_src_code=$vat_src_code;
$this->line->tva_tx=$txtva;
$this->line->localtax1_tx=$txlocaltax1;
$this->line->localtax2_tx=$txlocaltax2;
@ -629,7 +638,14 @@ class Propal extends CommonObject
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
$txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate.
// Clean vat code
$vat_src_code='';
if (preg_match('/\((.*)\)/', $txtva, $reg))
{
$vat_src_code = $reg[1];
$txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate.
}
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $mysoc, $localtaxes_type, 100, $this->multicurrency_tx);
$total_ht = $tabprice[0];
@ -681,6 +697,8 @@ class Propal extends CommonObject
$this->line->remise_percent = $remise_percent;
$this->line->subprice = $pu;
$this->line->info_bits = $info_bits;
$this->line->vat_src_code = $vat_src_code;
$this->line->total_ht = $total_ht;
$this->line->total_tva = $total_tva;
$this->line->total_localtax1 = $total_localtax1;
@ -3288,14 +3306,14 @@ class Propal extends CommonObject
// For other object, here we call fetch_lines. But fetch_lines does not exists on proposal
$sql = 'SELECT pt.rowid, pt.label as custom_label, pt.description, pt.fk_product, pt.fk_remise_except,';
$sql.= ' pt.qty, pt.tva_tx, pt.remise_percent, pt.subprice, pt.info_bits,';
$sql.= ' pt.qty, pt.vat_src_code, pt.tva_tx, pt.remise_percent, pt.subprice, pt.info_bits,';
$sql.= ' pt.total_ht, pt.total_tva, pt.total_ttc, pt.fk_product_fournisseur_price as fk_fournprice, pt.buy_price_ht as pa_ht, pt.special_code, pt.localtax1_tx, pt.localtax2_tx,';
$sql.= ' pt.date_start, pt.date_end, pt.product_type, pt.rang, pt.fk_parent_line,';
$sql.= ' pt.fk_unit,';
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
$sql.= ' p.description as product_desc,';
$sql.= ' p.entity';
$sql.= ' ,pt.fk_multicurrency, pt.multicurrency_code, pt.multicurrency_subprice, pt.multicurrency_total_ht, pt.multicurrency_total_tva, pt.multicurrency_total_ttc';
$sql.= ' p.entity,';
$sql.= ' pt.fk_multicurrency, pt.multicurrency_code, pt.multicurrency_subprice, pt.multicurrency_total_ht, pt.multicurrency_total_tva, pt.multicurrency_total_ttc';
$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pt';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid';
$sql.= ' WHERE pt.fk_propal = '.$this->id;
@ -3330,6 +3348,8 @@ class Propal extends CommonObject
$this->lines[$i]->subprice = $obj->subprice;
$this->lines[$i]->fk_remise_except = $obj->fk_remise_except;
$this->lines[$i]->remise_percent = $obj->remise_percent;
$this->lines[$i]->vat_src_code = $obj->vat_src_code;
$this->lines[$i]->tva_tx = $obj->tva_tx;
$this->lines[$i]->info_bits = $obj->info_bits;
$this->lines[$i]->total_ht = $obj->total_ht;
@ -3685,7 +3705,7 @@ class PropaleLigne extends CommonObjectLine
// Insert line into database
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'propaldet';
$sql.= ' (fk_propal, fk_parent_line, label, description, fk_product, product_type,';
$sql.= ' fk_remise_except, qty, tva_tx, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type,';
$sql.= ' fk_remise_except, qty, vat_src_code, tva_tx, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type,';
$sql.= ' subprice, remise_percent, ';
$sql.= ' info_bits, ';
$sql.= ' total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, fk_product_fournisseur_price, buy_price_ht, special_code, rang,';
@ -3700,6 +3720,7 @@ class PropaleLigne extends CommonObjectLine
$sql.= " '".$this->product_type."',";
$sql.= " ".($this->fk_remise_except?"'".$this->fk_remise_except."'":"null").",";
$sql.= " ".price2num($this->qty).",";
$sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->vat_src_code."'").",";
$sql.= " ".price2num($this->tva_tx).",";
$sql.= " ".price2num($this->localtax1_tx).",";
$sql.= " ".price2num($this->localtax2_tx).",";
@ -3873,41 +3894,42 @@ class PropaleLigne extends CommonObjectLine
// Mise a jour ligne en base
$sql = "UPDATE ".MAIN_DB_PREFIX."propaldet SET";
$sql.= " description='".$this->db->escape($this->desc)."'";
$sql.= " , label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
$sql.= " , product_type=".$this->product_type;
$sql.= " , tva_tx='".price2num($this->tva_tx)."'";
$sql.= " , localtax1_tx=".price2num($this->localtax1_tx);
$sql.= " , localtax2_tx=".price2num($this->localtax2_tx);
$sql.= " , localtax1_type='".$this->localtax1_type."'";
$sql.= " , localtax2_type='".$this->localtax2_type."'";
$sql.= " , qty='".price2num($this->qty)."'";
$sql.= " , subprice=".price2num($this->subprice)."";
$sql.= " , remise_percent=".price2num($this->remise_percent)."";
$sql.= " , price=".price2num($this->price).""; // TODO A virer
$sql.= " , remise=".price2num($this->remise).""; // TODO A virer
$sql.= " , info_bits='".$this->info_bits."'";
$sql.= ", label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
$sql.= ", product_type=".$this->product_type;
$sql.= ", vat_src_code = '".(empty($this->vat_src_code)?'':$this->vat_src_code)."'";
$sql.= ", tva_tx='".price2num($this->tva_tx)."'";
$sql.= ", localtax1_tx=".price2num($this->localtax1_tx);
$sql.= ", localtax2_tx=".price2num($this->localtax2_tx);
$sql.= ", localtax1_type='".$this->localtax1_type."'";
$sql.= ", localtax2_type='".$this->localtax2_type."'";
$sql.= ", qty='".price2num($this->qty)."'";
$sql.= ", subprice=".price2num($this->subprice)."";
$sql.= ", remise_percent=".price2num($this->remise_percent)."";
$sql.= ", price=".price2num($this->price).""; // TODO A virer
$sql.= ", remise=".price2num($this->remise).""; // TODO A virer
$sql.= ", info_bits='".$this->info_bits."'";
if (empty($this->skip_update_total))
{
$sql.= " , total_ht=".price2num($this->total_ht)."";
$sql.= " , total_tva=".price2num($this->total_tva)."";
$sql.= " , total_ttc=".price2num($this->total_ttc)."";
$sql.= " , total_localtax1=".price2num($this->total_localtax1)."";
$sql.= " , total_localtax2=".price2num($this->total_localtax2)."";
$sql.= ", total_ht=".price2num($this->total_ht)."";
$sql.= ", total_tva=".price2num($this->total_tva)."";
$sql.= ", total_ttc=".price2num($this->total_ttc)."";
$sql.= ", total_localtax1=".price2num($this->total_localtax1)."";
$sql.= ", total_localtax2=".price2num($this->total_localtax2)."";
}
$sql.= " , fk_product_fournisseur_price=".(! empty($this->fk_fournprice)?"'".$this->fk_fournprice."'":"null");
$sql.= " , buy_price_ht=".price2num($this->pa_ht);
if (strlen($this->special_code)) $sql.= " , special_code=".$this->special_code;
$sql.= " , fk_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null");
$sql.= ", fk_product_fournisseur_price=".(! empty($this->fk_fournprice)?"'".$this->fk_fournprice."'":"null");
$sql.= ", buy_price_ht=".price2num($this->pa_ht);
if (strlen($this->special_code)) $sql.= ", special_code=".$this->special_code;
$sql.= ", fk_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null");
if (! empty($this->rang)) $sql.= ", rang=".$this->rang;
$sql.= " , date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null");
$sql.= " , date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= " , fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit);
$sql.= ", date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null");
$sql.= ", date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= ", fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit);
// Multicurrency
$sql.= " , multicurrency_subprice=".price2num($this->multicurrency_subprice)."";
$sql.= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
$sql.= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
$sql.= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
$sql.= ", multicurrency_subprice=".price2num($this->multicurrency_subprice)."";
$sql.= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
$sql.= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
$sql.= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
$sql.= " WHERE rowid = ".$this->rowid;

View File

@ -279,11 +279,13 @@ if ($socid > 0)
print '<br>';
print load_fiche_titre($langs->trans("NewGlobalDiscount"),'','');
print '<div class="underbanner clearboth"></div>';
print '<table class="border" width="100%">';
print '<tr><td width="38%" class="fieldrequired">'.$langs->trans("AmountHT").'</td>';
print '<tr><td class="titlefield fieldrequired">'.$langs->trans("AmountHT").'</td>';
print '<td><input type="text" size="5" name="amount_ht" value="'.$_POST["amount_ht"].'">';
print '<span class="hideonsmartphone">&nbsp;'.$langs->trans("Currency".$conf->currency).'</span></td></tr>';
print '<tr><td width="38%">'.$langs->trans("VAT").'</td>';
print '<tr><td>'.$langs->trans("VAT").'</td>';
print '<td>';
print $form->load_tva('tva_tx',GETPOST('tva_tx'),$mysoc,$object);
print '</td></tr>';

View File

@ -1285,7 +1285,14 @@ class Commande extends CommonOrder
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
$txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate.
// Clean vat code
$vat_src_code='';
if (preg_match('/\((.*)\)/', $txtva, $reg))
{
$vat_src_code = $reg[1];
$txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate.
}
$tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type, $mysoc, $localtaxes_type, 100, $this->multicurrency_tx);
@ -1327,6 +1334,8 @@ class Commande extends CommonOrder
$this->line->label=$label;
$this->line->desc=$desc;
$this->line->qty=$qty;
$this->line->vat_src_code=$vat_src_code;
$this->line->tva_tx=$txtva;
$this->line->localtax1_tx=$txlocaltax1;
$this->line->localtax2_tx=$txlocaltax2;
@ -1727,7 +1736,7 @@ class Commande extends CommonOrder
{
$this->lines=array();
$sql = 'SELECT l.rowid, l.fk_product, l.fk_parent_line, l.product_type, l.fk_commande, l.label as custom_label, l.description, l.price, l.qty, l.tva_tx,';
$sql = 'SELECT l.rowid, l.fk_product, l.fk_parent_line, l.product_type, l.fk_commande, l.label as custom_label, l.description, l.price, l.qty, l.vat_src_code, l.tva_tx,';
$sql.= ' l.localtax1_tx, l.localtax2_tx, l.fk_remise_except, l.remise_percent, l.subprice, l.fk_product_fournisseur_price as fk_fournprice, l.buy_price_ht as pa_ht, l.rang, l.info_bits, l.special_code,';
$sql.= ' l.total_ht, l.total_ttc, l.total_tva, l.total_localtax1, l.total_localtax2, l.date_start, l.date_end,';
$sql.= ' l.fk_unit,';
@ -1762,6 +1771,8 @@ class Commande extends CommonOrder
$line->description = $objp->description; // Description line
$line->product_type = $objp->product_type;
$line->qty = $objp->qty;
$line->vat_src_code = $objp->vat_src_code;
$line->tva_tx = $objp->tva_tx;
$line->localtax1_tx = $objp->localtax1_tx;
$line->localtax2_tx = $objp->localtax2_tx;
@ -2774,7 +2785,14 @@ class Commande extends CommonOrder
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty, $mysoc);
$txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate.
// Clean vat code
$vat_src_code='';
if (preg_match('/\((.*)\)/', $txtva, $reg))
{
$vat_src_code = $reg[1];
$txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate.
}
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $mysoc, $localtaxes_type, 100, $this->multicurrency_tx);
@ -2848,26 +2866,28 @@ class Commande extends CommonOrder
$this->line->label=$label;
$this->line->desc=$desc;
$this->line->qty=$qty;
$this->line->tva_tx=$txtva;
$this->line->localtax1_tx=$txlocaltax1;
$this->line->localtax2_tx=$txlocaltax2;
$this->line->vat_src_code = $vat_src_code;
$this->line->tva_tx = $txtva;
$this->line->localtax1_tx = $txlocaltax1;
$this->line->localtax2_tx = $txlocaltax2;
$this->line->localtax1_type = $localtaxes_type[0];
$this->line->localtax2_type = $localtaxes_type[2];
$this->line->remise_percent=$remise_percent;
$this->line->subprice=$subprice;
$this->line->info_bits=$info_bits;
$this->line->special_code=$special_code;
$this->line->total_ht=$total_ht;
$this->line->total_tva=$total_tva;
$this->line->total_localtax1=$total_localtax1;
$this->line->total_localtax2=$total_localtax2;
$this->line->total_ttc=$total_ttc;
$this->line->date_start=$date_start;
$this->line->date_end=$date_end;
$this->line->product_type=$type;
$this->line->fk_parent_line=$fk_parent_line;
$this->line->remise_percent = $remise_percent;
$this->line->subprice = $subprice;
$this->line->info_bits = $info_bits;
$this->line->special_code = $special_code;
$this->line->total_ht = $total_ht;
$this->line->total_tva = $total_tva;
$this->line->total_localtax1= $total_localtax1;
$this->line->total_localtax2= $total_localtax2;
$this->line->total_ttc = $total_ttc;
$this->line->date_start = $date_start;
$this->line->date_end = $date_end;
$this->line->product_type = $type;
$this->line->fk_parent_line = $fk_parent_line;
$this->line->skip_update_total=$skip_update_total;
$this->line->fk_unit=$fk_unit;
$this->line->fk_unit = $fk_unit;
$this->line->fk_fournprice = $fk_fournprice;
$this->line->pa_ht = $pa_ht;
@ -3325,7 +3345,7 @@ class Commande extends CommonOrder
* @param int $withpicto Add picto into link
* @param int $option Where point the link (0=> main card, 1,2 => shipment)
* @param int $max Max length to show
* @param int $short Use short labels
* @param int $short ???
* @param int $notooltip 1=Disable tooltip
* @return string String with URL
*/
@ -3931,7 +3951,7 @@ class OrderLine extends CommonOrderLine
// Insertion dans base de la ligne
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'commandedet';
$sql.= ' (fk_commande, fk_parent_line, label, description, qty, ';
$sql.= ' tva_tx, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type,';
$sql.= ' vat_src_code, tva_tx, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type,';
$sql.= ' fk_product, product_type, remise_percent, subprice, price, remise, fk_remise_except,';
$sql.= ' special_code, rang, fk_product_fournisseur_price, buy_price_ht,';
$sql.= ' info_bits, total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, date_start, date_end,';
@ -3943,6 +3963,7 @@ class OrderLine extends CommonOrderLine
$sql.= " ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null").",";
$sql.= " '".$this->db->escape($this->desc)."',";
$sql.= " '".price2num($this->qty)."',";
$sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->vat_src_code."'").",";
$sql.= " '".price2num($this->tva_tx)."',";
$sql.= " '".price2num($this->localtax1_tx)."',";
$sql.= " '".price2num($this->localtax2_tx)."',";

View File

@ -906,9 +906,9 @@ if ($resql)
print '</td>';
}
// Town
if (! empty($arrayfields['s.town']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" size="6" name="search_town" value="'.$search_town.'"></td>';
if (! empty($arrayfields['s.town']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" size="4" name="search_town" value="'.$search_town.'"></td>';
// Zip
if (! empty($arrayfields['s.zip']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" size="6" name="search_zip" value="'.$search_zip.'"></td>';
if (! empty($arrayfields['s.zip']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" size="4" name="search_zip" value="'.$search_zip.'"></td>';
// State
if (! empty($arrayfields['state.nom']['checked']))
{
@ -951,14 +951,14 @@ if ($resql)
{
// Amount
print '<td class="liste_titre" align="right">';
print '<input class="flat" type="text" size="5" name="search_total_ht" value="'.$search_total_ht.'">';
print '<input class="flat" type="text" size="4" name="search_total_ht" value="'.$search_total_ht.'">';
print '</td>';
}
if (! empty($arrayfields['c.total_vat']['checked']))
{
// Amount
print '<td class="liste_titre" align="right">';
print '<input class="flat" type="text" size="5" name="search_total_vat" value="'.$search_total_vat.'">';
print '<input class="flat" type="text" size="4" name="search_total_vat" value="'.$search_total_vat.'">';
print '</td>';
}
if (! empty($arrayfields['c.total_ttc']['checked']))

View File

@ -429,7 +429,7 @@ if ($id > 0 || ! empty($ref))
if ($object->canBeConciliated() > 0) {
// If not cash account and can be reconciliate
if ($user->rights->banque->consolidate) {
print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/bank/bankentries.php?action=reconcile&id='.$object->id.$param.'">'.$langs->trans("Conciliate").'</a>';
print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/bank/bankentries.php?action=reconcile'.$param.'">'.$langs->trans("Conciliate").'</a>';
} else {
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
}
@ -511,7 +511,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
$nbtotalofpages = ceil($nbtotalofrecords/$limit);
}
if (($id > 0 || ! empty($ref)) && GETPOST("page",'int') === '')
if (($id > 0 || ! empty($ref)) && ((string) $page == ''))
{
// We open a list of transaction of a dedicated account and no page was set by defaut
// We force on last page.
@ -519,6 +519,13 @@ if (($id > 0 || ! empty($ref)) && GETPOST("page",'int') === '')
$offset = $limit * $page;
if ($page < 0) $page = 0;
}
if ($page >= $nbtotalofpages)
{
// If we made a search and result has low page than the page number we were on
$page = ($nbtotalofpages -1);
$offset = $limit * $page;
if ($page < 0) $page = 0;
}
if (! empty($search_ref)) $mode_balance_ok=false;
if (! empty($req_nb)) $mode_balance_ok=false;

View File

@ -65,16 +65,29 @@ if ($user->rights->banque->consolidate && $action == 'dvprev' && ! empty($dvid))
}
$sortfield = GETPOST('sortfield', 'alpha');
$sortorder = GETPOST('sortorder', 'alpha');
$page = GETPOST('page', 'int');
$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit;
$sortfield = GETPOST("sortfield",'alpha');
$sortorder = GETPOST("sortorder",'alpha');
$page = GETPOST("page",'int');
$pageplusone = GETPOST("pageplusone",'int');
if ($pageplusone) $page = $pageplusone - 1;
if ($page == -1) { $page = 0; }
$offset = $limit * $page;
$pageprev = $page - 1;
$pagenext = $page + 1;
if (! $sortorder) $sortorder="ASC";
if (! $sortfield) $sortfield="s.nom";
$offset = $conf->liste_limit * $page;
$pageprev = $page - 1;
$pagenext = $page + 1;
$object = new Account($db);
if ($id > 0 || ! empty($ref))
{
$result=$object->fetch($id, $ref);
$account = $object->id; // Force the search field on id of account
}
// Initialize technical object to manage context to save list fields
$contextpage='banktransactionlist'.(empty($object->ref)?'':'-'.$object->id);
/*
@ -96,12 +109,12 @@ $bankstatic=new Account($db);
$banklinestatic=new AccountLine($db);
$remisestatic = new RemiseCheque($db);
// Load account
$object = new Account($db);
if ($id > 0 || ! empty($ref))
{
$object->fetch($id, $ref);
}
// Must be before button action
$param='';
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
if ($id > 0) $param.='&id='.urlencode($id);
if (empty($num))
{
@ -138,7 +151,7 @@ if (empty($num))
if ($object->canBeConciliated() > 0) {
// If not cash account and can be reconciliate
if ($user->rights->banque->consolidate) {
print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/bank/bankentries.php?id='.$object->id.'">'.$langs->trans("Conciliate").'</a>';
print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/bank/bankentries.php?action=reconcile'.$param.'">'.$langs->trans("Conciliate").'</a>';
} else {
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
}
@ -216,7 +229,7 @@ if (empty($num))
else
{
/**
* Affiche liste ecritures d'un releve
* Show list of bank statements
*/
$ve=$_GET["ve"];

View File

@ -2626,7 +2626,14 @@ class Facture extends CommonInvoice
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty, $mysoc);
$txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate.
// Clean vat code
$vat_src_code='';
if (preg_match('/\((.*)\)/', $txtva, $reg))
{
$vat_src_code = $reg[1];
$txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate.
}
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $mysoc, $localtaxes_type, $situation_percent, $this->multicurrency_tx);
@ -2690,7 +2697,7 @@ class Facture extends CommonInvoice
$this->line->desc = $desc;
$this->line->qty = ($this->type==self::TYPE_CREDIT_NOTE?abs($qty):$qty); // For credit note, quantity is always positive and unit price negative
$this->line->vat_src_code=$vat_src_code;
$this->line->vat_src_code = $vat_src_code;
$this->line->tva_tx = $txtva;
$this->line->localtax1_tx = $txlocaltax1;
$this->line->localtax2_tx = $txlocaltax2;
@ -4543,43 +4550,43 @@ class FactureLigne extends CommonInvoiceLine
// Mise a jour ligne en base
$sql = "UPDATE ".MAIN_DB_PREFIX."facturedet SET";
$sql.= " description='".$this->db->escape($this->desc)."'";
$sql.= ",label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
$sql.= ",subprice=".price2num($this->subprice)."";
$sql.= ",remise_percent=".price2num($this->remise_percent)."";
if ($this->fk_remise_except) $sql.= ",fk_remise_except=".$this->fk_remise_except;
else $sql.= ",fk_remise_except=null";
$sql.= ",vat_src_code = '".(empty($this->vat_src_code)?'':$this->vat_src_code)."'";
$sql.= ",tva_tx=".price2num($this->tva_tx)."";
$sql.= ",localtax1_tx=".price2num($this->localtax1_tx)."";
$sql.= ",localtax2_tx=".price2num($this->localtax2_tx)."";
$sql.= ",localtax1_type='".$this->localtax1_type."'";
$sql.= ",localtax2_type='".$this->localtax2_type."'";
$sql.= ",qty=".price2num($this->qty)."";
$sql.= ",date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null");
$sql.= ",date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= ",product_type=".$this->product_type;
$sql.= ",info_bits='".$this->info_bits."'";
$sql.= ",special_code='".$this->special_code."'";
$sql.= ", label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
$sql.= ", subprice=".price2num($this->subprice)."";
$sql.= ", remise_percent=".price2num($this->remise_percent)."";
if ($this->fk_remise_except) $sql.= ", fk_remise_except=".$this->fk_remise_except;
else $sql.= ", fk_remise_except=null";
$sql.= ", vat_src_code = '".(empty($this->vat_src_code)?'':$this->vat_src_code)."'";
$sql.= ", tva_tx=".price2num($this->tva_tx)."";
$sql.= ", localtax1_tx=".price2num($this->localtax1_tx)."";
$sql.= ", localtax2_tx=".price2num($this->localtax2_tx)."";
$sql.= ", localtax1_type='".$this->localtax1_type."'";
$sql.= ", localtax2_type='".$this->localtax2_type."'";
$sql.= ", qty=".price2num($this->qty)."";
$sql.= ", date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null");
$sql.= ", date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= ", product_type=".$this->product_type;
$sql.= ", info_bits='".$this->info_bits."'";
$sql.= ", special_code='".$this->special_code."'";
if (empty($this->skip_update_total))
{
$sql.= ",total_ht=".price2num($this->total_ht)."";
$sql.= ",total_tva=".price2num($this->total_tva)."";
$sql.= ",total_ttc=".price2num($this->total_ttc)."";
$sql.= ",total_localtax1=".price2num($this->total_localtax1)."";
$sql.= ",total_localtax2=".price2num($this->total_localtax2)."";
$sql.= ", total_ht=".price2num($this->total_ht)."";
$sql.= ", total_tva=".price2num($this->total_tva)."";
$sql.= ", total_ttc=".price2num($this->total_ttc)."";
$sql.= ", total_localtax1=".price2num($this->total_localtax1)."";
$sql.= ", total_localtax2=".price2num($this->total_localtax2)."";
}
$sql.= " , fk_product_fournisseur_price=".(! empty($this->fk_fournprice)?"'".$this->db->escape($this->fk_fournprice)."'":"null");
$sql.= " , buy_price_ht='".price2num($this->pa_ht)."'";
$sql.= ",fk_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null");
$sql.= ", fk_product_fournisseur_price=".(! empty($this->fk_fournprice)?"'".$this->db->escape($this->fk_fournprice)."'":"null");
$sql.= ", buy_price_ht='".price2num($this->pa_ht)."'";
$sql.= ", fk_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null");
if (! empty($this->rang)) $sql.= ", rang=".$this->rang;
$sql .= ", situation_percent=" . $this->situation_percent;
$sql .= ", fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit);
$sql.= ", situation_percent=" . $this->situation_percent;
$sql.= ", fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit);
// Multicurrency
$sql.= " , multicurrency_subprice=".price2num($this->multicurrency_subprice)."";
$sql.= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
$sql.= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
$sql.= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
$sql.= ", multicurrency_subprice=".price2num($this->multicurrency_subprice)."";
$sql.= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
$sql.= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
$sql.= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
$sql.= " WHERE rowid = ".$this->rowid;

View File

@ -49,7 +49,10 @@ if (! $error && count($toselect) > $maxformassaction)
$error++;
}
if (! $error && $massaction == 'confirm_presend' && GETPOST('modelselected')) // If we change the template, we must not send email, but keep on send email form
{
$massaction='presend';
}
if (! $error && $massaction == 'confirm_presend')
{
$resaction = '';

View File

@ -59,6 +59,8 @@ abstract class CommonDocGenerator
{
global $conf;
$logotouse=$conf->user->dir_output.'/'.get_exdir($user->id, 2, 0, 1, $user, 'user').'/'.$user->photo;
return array(
'myuser_lastname'=>$user->lastname,
'myuser_firstname'=>$user->firstname,
@ -75,7 +77,7 @@ abstract class CommonDocGenerator
'myuser_fax'=>$user->office_fax,
'myuser_mobile'=>$user->user_mobile,
'myuser_email'=>$user->email,
'myuser_logo'=>$user->photo,
'myuser_logo'=>$logotouse,
'myuser_job'=>$user->job,
'myuser_web'=>'' // url not exist in $user object
);

View File

@ -1148,7 +1148,6 @@ abstract class CommonObject
*/
function fetch_origin()
{
// TODO uniformise code
if ($this->origin == 'shipping') $this->origin = 'expedition';
if ($this->origin == 'delivery') $this->origin = 'livraison';
@ -2799,7 +2798,11 @@ abstract class CommonObject
if (! $error)
{
$this->db->commit();
$this->statut = $status;
if (empty($elementId)) // If the element we update was $this (so $elementId is null)
{
$this->statut = $status;
$this->status = $status;
}
return 1;
}
else

View File

@ -1618,9 +1618,11 @@ class Form
* @param int $socid Thirdparty Id (to get also price dedicated to this customer)
* @param string $showempty '' to not show empty line. Translation key to show an empty line. '1' show empty line with no text.
* @param int $forcecombo Force to use combo box
* @param string $morecss Add more css on select
* @param int $hidepriceinlabel 1=Hide prices in label
* @return void
*/
function select_produits($selected='', $htmlname='productid', $filtertype='', $limit=20, $price_level=0, $status=1, $finished=2, $selected_input_value='', $hidelabel=0, $ajaxoptions=array(), $socid=0, $showempty='1', $forcecombo=0)
function select_produits($selected='', $htmlname='productid', $filtertype='', $limit=20, $price_level=0, $status=1, $finished=2, $selected_input_value='', $hidelabel=0, $ajaxoptions=array(), $socid=0, $showempty='1', $forcecombo=0, $morecss='', $hidepriceinlabel=0)
{
global $langs,$conf;
@ -1660,28 +1662,30 @@ class Form
}
else
{
print $this->select_produits_list($selected,$htmlname,$filtertype,$limit,$price_level,'',$status,$finished,0,$socid,$showempty,$forcecombo);
print $this->select_produits_list($selected,$htmlname,$filtertype,$limit,$price_level,'',$status,$finished,0,$socid,$showempty,$forcecombo,$morecss,$hidepriceinlabel);
}
}
/**
* Return list of products for a customer
*
* @param int $selected Preselected product
* @param string $htmlname Name of select html
* @param string $filtertype Filter on product type (''=nofilter, 0=product, 1=service)
* @param int $limit Limit on number of returned lines
* @param int $price_level Level of price to show
* @param string $filterkey Filter on product
* @param int $status -1=Return all products, 0=Products not on sell, 1=Products on sell
* @param int $finished Filter on finished field: 2=No filter
* @param int $outputmode 0=HTML select string, 1=Array
* @param int $socid Thirdparty Id (to get also price dedicated to this customer)
* @param string $showempty '' to not show empty line. Translation key to show an empty line. '1' show empty line with no text.
* @param int $forcecombo Force to use combo box
* @return array Array of keys for json
* @param int $selected Preselected product
* @param string $htmlname Name of select html
* @param string $filtertype Filter on product type (''=nofilter, 0=product, 1=service)
* @param int $limit Limit on number of returned lines
* @param int $price_level Level of price to show
* @param string $filterkey Filter on product
* @param int $status -1=Return all products, 0=Products not on sell, 1=Products on sell
* @param int $finished Filter on finished field: 2=No filter
* @param int $outputmode 0=HTML select string, 1=Array
* @param int $socid Thirdparty Id (to get also price dedicated to this customer)
* @param string $showempty '' to not show empty line. Translation key to show an empty line. '1' show empty line with no text.
* @param int $forcecombo Force to use combo box
* @param string $morecss Add more css on select
* @param int $hidepriceinlabel 1=Hide prices in label
* @return array Array of keys for json
*/
function select_produits_list($selected='',$htmlname='productid',$filtertype='',$limit=20,$price_level=0,$filterkey='',$status=1,$finished=2,$outputmode=0,$socid=0,$showempty='1',$forcecombo=0)
function select_produits_list($selected='',$htmlname='productid',$filtertype='',$limit=20,$price_level=0,$filterkey='',$status=1,$finished=2,$outputmode=0,$socid=0,$showempty='1',$forcecombo=0,$morecss='',$hidepriceinlabel=0)
{
global $langs,$conf,$user,$db;
@ -1782,7 +1786,7 @@ class Form
$nodatarole=($comboenhancement?' data-role="none"':'');
}
$out.='<select class="flat" name="'.$htmlname.'" id="'.$htmlname.'"'.$nodatarole.'>';
$out.='<select class="flat'.($morecss?' '.$morecss:'').'" name="'.$htmlname.'" id="'.$htmlname.'"'.$nodatarole.'>';
$textifempty='';
// Do not use textifempty = ' ' or '&nbsp;' here, or search on key will search on ' key'.
@ -1824,7 +1828,7 @@ class Form
$objp->remise = $objp2->remise;
$objp->price_by_qty_rowid = $objp2->rowid;
$this->constructProductListOption($objp, $opt, $optJson, 0, $selected);
$this->constructProductListOption($objp, $opt, $optJson, 0, $selected, $hidepriceinlabel);
$j++;
@ -1851,7 +1855,7 @@ class Form
$objp->price_ttc = price2num($objp->price_ttc,'MU');
}
}
$this->constructProductListOption($objp, $opt, $optJson, $price_level, $selected);
$this->constructProductListOption($objp, $opt, $optJson, $price_level, $selected, $hidepriceinlabel);
// Add new entry
// "key" value of json key array is used by jQuery automatically as selected value
// "label" value of json key array is used by jQuery automatically as text for combo box
@ -1931,13 +1935,13 @@ class Form
$opt.= '>';
$opt.= $objp->ref;
if ($outbarcode) $opt.=' ('.$outbarcode.')';
$opt.=' - '.dol_trunc($label,$maxlengtharticle).' - ';
$opt.=' - '.dol_trunc($label,$maxlengtharticle);
$objRef = $objp->ref;
if (! empty($filterkey) && $filterkey != '') $objRef=preg_replace('/('.preg_quote($filterkey).')/i','<strong>$1</strong>',$objRef,1);
$outval.=$objRef;
if ($outbarcode) $outval.=' ('.$outbarcode.')';
$outval.=' - '.dol_trunc($label,$maxlengtharticle).' - ';
$outval.=' - '.dol_trunc($label,$maxlengtharticle);
$found=0;
@ -1962,13 +1966,13 @@ class Form
$found=1;
if ($objp2->price_base_type == 'HT')
{
$opt.= price($objp2->price,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("HT");
$outval.= price($objp2->price,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("HT");
$opt.= ' - '.price($objp2->price,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("HT");
$outval.= ' - '.price($objp2->price,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("HT");
}
else
{
$opt.= price($objp2->price_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("TTC");
$outval.= price($objp2->price_ttc,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("TTC");
$opt.= ' - '.price($objp2->price_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("TTC");
$outval.= ' - '.price($objp2->price_ttc,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("TTC");
}
$outprice_ht=price($objp2->price);
$outprice_ttc=price($objp2->price_ttc);
@ -1990,15 +1994,15 @@ class Form
$outdiscount=$objp->remise_percent;
if ($objp->quantity == 1)
{
$opt.= price($objp->unitprice,1,$langs,0,0,-1,$conf->currency)."/";
$outval.= price($objp->unitprice,0,$langs,0,0,-1,$conf->currency)."/";
$opt.= ' - '.price($objp->unitprice,1,$langs,0,0,-1,$conf->currency)."/";
$outval.= ' - '.price($objp->unitprice,0,$langs,0,0,-1,$conf->currency)."/";
$opt.= $langs->trans("Unit"); // Do not use strtolower because it breaks utf8 encoding
$outval.=$langs->transnoentities("Unit");
}
else
{
$opt.= price($objp->price,1,$langs,0,0,-1,$conf->currency)."/".$objp->quantity;
$outval.= price($objp->price,0,$langs,0,0,-1,$conf->currency)."/".$objp->quantity;
$opt.= ' - '.price($objp->price,1,$langs,0,0,-1,$conf->currency)."/".$objp->quantity;
$outval.= ' - '.price($objp->price,0,$langs,0,0,-1,$conf->currency)."/".$objp->quantity;
$opt.= $langs->trans("Units"); // Do not use strtolower because it breaks utf8 encoding
$outval.=$langs->transnoentities("Units");
}
@ -2028,13 +2032,13 @@ class Form
if ($objp->custprice_base_type == 'HT')
{
$opt.= price($objp->custprice,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("HT");
$outval.= price($objp->custprice,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("HT");
$opt.= ' - '.price($objp->custprice,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("HT");
$outval.= ' - '.price($objp->custprice,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("HT");
}
else
{
$opt.= price($objp->custprice_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("TTC");
$outval.= price($objp->custprice_ttc,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("TTC");
$opt.= ' - '.price($objp->custprice_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("TTC");
$outval.= ' - '.price($objp->custprice_ttc,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("TTC");
}
$outprice_ht=price($objp->custprice);
@ -2049,13 +2053,13 @@ class Form
{
if ($objp->price_base_type == 'HT')
{
$opt.= price($objp->price,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("HT");
$outval.= price($objp->price,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("HT");
$opt.= ' - '.price($objp->price,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("HT");
$outval.= ' - '.price($objp->price,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("HT");
}
else
{
$opt.= price($objp->price_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("TTC");
$outval.= price($objp->price_ttc,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("TTC");
$opt.= ' - '.price($objp->price_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("TTC");
$outval.= ' - '.price($objp->price_ttc,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("TTC");
}
$outprice_ht=price($objp->price);
$outprice_ttc=price($objp->price_ttc);
@ -4210,21 +4214,21 @@ class Form
* Output an HTML select vat rate.
* The name of this function should be selectVat. We keep bad name for compatibility purpose.
*
* @param string $htmlname Name of HTML select field
* @param float|string $selectedrate Force preselected vat rate. Can be '8.5' or '8.5 (NOO)' for example. Use '' for no forcing.
* @param Societe $societe_vendeuse Thirdparty seller
* @param Societe $societe_acheteuse Thirdparty buyer
* @param int $idprod Id product
* @param int $info_bits Miscellaneous information on line (1 for NPR)
* @param int $type ''=Unknown, 0=Product, 1=Service (Used if idprod not defined)
* Si vendeur non assujeti a TVA, TVA par defaut=0. Fin de regle.
* Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle.
* Si (vendeur et acheteur dans Communaute europeenne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par defaut=0 (La TVA doit etre paye par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de regle.
* Si vendeur et acheteur dans Communauté européenne et acheteur= particulier alors TVA par défaut=TVA du produit vendu. Fin de règle.
* Si vendeur et acheteur dans Communauté européenne et acheteur= entreprise alors TVA par défaut=0. Fin de règle.
* Sinon la TVA proposee par defaut=0. Fin de regle.
* @param bool $options_only Return HTML options lines only (for ajax treatment)
* @param int $addcode Add code into key in select list
* @param string $htmlname Name of HTML select field
* @param float|string $selectedrate Force preselected vat rate. Can be '8.5' or '8.5 (NOO)' for example. Use '' for no forcing.
* @param Societe $societe_vendeuse Thirdparty seller
* @param Societe $societe_acheteuse Thirdparty buyer
* @param int $idprod Id product
* @param int $info_bits Miscellaneous information on line (1 for NPR)
* @param int $type ''=Unknown, 0=Product, 1=Service (Used if idprod not defined)
* Si vendeur non assujeti a TVA, TVA par defaut=0. Fin de regle.
* Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle.
* Si (vendeur et acheteur dans Communaute europeenne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par defaut=0 (La TVA doit etre paye par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de regle.
* Si vendeur et acheteur dans Communauté européenne et acheteur= particulier alors TVA par défaut=TVA du produit vendu. Fin de règle.
* Si vendeur et acheteur dans Communauté européenne et acheteur= entreprise alors TVA par défaut=0. Fin de règle.
* Sinon la TVA proposee par defaut=0. Fin de regle.
* @param bool $options_only Return HTML options lines only (for ajax treatment)
* @param int $addcode Add code into key in select list
* @return string
*/
function load_tva($htmlname='tauxtva', $selectedrate='', $societe_vendeuse='', $societe_acheteuse='', $idprod=0, $info_bits=0, $type='', $options_only=false, $addcode=0)
@ -4238,7 +4242,7 @@ class Form
$defaultnpr=(preg_match('/\*/',$selectedrate) ? 1 : $defaultnpr);
$defaulttx=str_replace('*','',$selectedrate);
$defaultcode='';
if (preg_match('/\s*\((.*)\)/', $defaulttx, $reg))
if (preg_match('/\((.*)\)/', $defaulttx, $reg))
{
$defaultcode=$reg[1];
$defaulttx=preg_replace('/\s*\(.*\)/','',$defaulttx);
@ -4333,6 +4337,7 @@ class Form
if (! $options_only) $return.= '<select class="flat" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled':'').$title.'>';
$selectedfound=false;
foreach ($this->cache_vatrates as $rate)
{
// Keep only 0 if seller is not subject to VAT
@ -4342,13 +4347,21 @@ class Form
$return.= $rate['nprtva'] ? '*': '';
if ($addcode && $rate['code']) $return.=' ('.$rate['code'].')';
$return.= '"';
if ($defaultcode) // If defaultcode is defined, we used it in priority to select combo option instead of using rate+npr flag
if (! $selectedfound)
{
if ($defaultcode == $rate['code']) $return.= ' selected';
}
elseif ($rate['txtva'] == $defaulttx && $rate['nprtva'] == $defaultnpr)
{
$return.= ' selected';
if ($defaultcode) // If defaultcode is defined, we used it in priority to select combo option instead of using rate+npr flag
{
if ($defaultcode == $rate['code'])
{
$return.= ' selected';
$selectedfound=true;
}
}
elseif ($rate['txtva'] == $defaulttx && $rate['nprtva'] == $defaultnpr)
{
$return.= ' selected';
$selectedfound=true;
}
}
$return.= '>'.vatrate($rate['libtva']);
//$return.=($rate['code']?' '.$rate['code']:'');

View File

@ -62,7 +62,7 @@ class FormActions
$listofstatus = array(
'-1' => $langs->trans("ActionNotApplicable"),
'0' => $langs->trans("ActionRunningNotStarted"),
'0' => $langs->trans("ActionsToDoShort"),
'50' => $langs->trans("ActionRunningShort"),
'100' => $langs->trans("ActionDoneShort")
);
@ -100,7 +100,7 @@ class FormActions
}
else if (defaultvalue == 0) {
percentage.val(0);
percentage.prop('disabled', true);
percentage.removeAttr('disabled'); /* Not disabled, we want to change it to higher value */
$('.hideifna').show();
}
else if (defaultvalue == 100) {

View File

@ -947,7 +947,7 @@ function show_actions_todo($conf,$langs,$db,$filterobj,$objcon='',$noprint=0,$ac
}
/**
* Show html area with actions done
* Show html area with actions (done or not, ignore the name of function)
*
* @param Conf $conf Object conf
* @param Translate $langs Object langs
@ -958,14 +958,18 @@ function show_actions_todo($conf,$langs,$db,$filterobj,$objcon='',$noprint=0,$ac
* @param string $actioncode Filter on actioncode
* @param string $donetodo Filter on event 'done' or 'todo' or ''=nofilter.
* @param array $filters Filter on other fields
* @param string $sortfield Sort field
* @param string $sortorder Sort order
* @return mixed Return html part or void if noprint is 1
* TODO change function to be able to list event linked to an object.
*/
function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=0, $actioncode='', $donetodo='done', $filters=array())
function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=0, $actioncode='', $donetodo='done', $filters=array(), $sortfield='a.datep, a.id', $sortorder='DESC')
{
global $bc,$user,$conf;
global $form;
global $param;
// Check parameters
if (! is_object($filterobj)) dol_print_error('','BadParameter');
@ -983,7 +987,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
$sql.= " a.note, a.percent,";
$sql.= " a.fk_element, a.elementtype,";
$sql.= " a.fk_user_author, a.fk_contact,";
$sql.= " c.code as acode, c.libelle,";
$sql.= " c.code as acode, c.libelle as alabel, c.picto as apicto,";
$sql.= " u.login, u.rowid as user_id";
if (get_class($filterobj) == 'Societe') $sql.= ", sp.lastname, sp.firstname";
if (get_class($filterobj) == 'Adherent') $sql.= ", m.lastname, m.firstname";
@ -1002,7 +1006,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
if ($donetodo == 'todo') $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep > '".$db->idate($now)."'))";
if ($donetodo == 'done') $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep <= '".$db->idate($now)."'))";
if (is_array($filters) && $filters['search_agenda_label']) $sql.= natural_search('a.label', $filters['search_agenda_label']);
$sql.= " ORDER BY a.datep DESC, a.id DESC";
$sql.= $db->order($sortfield, $sortorder);
dol_syslog("company.lib::show_actions_done", LOG_DEBUG);
$resql=$db->query($sql);
@ -1028,15 +1032,18 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
'dateend'=>$db->jdate($obj->dp2),
'note'=>$obj->label,
'percent'=>$obj->percent,
'acode'=>$obj->acode,
'libelle'=>$obj->libelle,
'userid'=>$obj->user_id,
'userid'=>$obj->user_id,
'login'=>$obj->login,
'contact_id'=>$obj->fk_contact,
'lastname'=>$obj->lastname,
'firstname'=>$obj->firstname,
'fk_element'=>$obj->fk_element,
'elementtype'=>$obj->elementtype
'elementtype'=>$obj->elementtype,
// Type of event
'acode'=>$obj->acode,
'alabel'=>$obj->alabel,
'libelle'=>$obj->alabel, // deprecated
'apicto'=>$obj->apicto
);
$numaction++;
@ -1049,11 +1056,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
}
}
// Add also event from emailings. FIXME This should be replaced by an automatic event
if (! empty($conf->mailing->enabled) && ! empty($objcon->email))
{
$langs->load("mails");
// Add also event from emailings. TODO This should be replaced by an automatic event
$sql = "SELECT m.rowid as id, mc.date_envoi as da, m.titre as note, '100' as percentage,";
$sql.= " 'AC_EMAILING' as acode,";
$sql.= " u.rowid as user_id, u.login"; // User that valid action
@ -1104,7 +1111,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
$actionstatic=new ActionComm($db);
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
$formactions=new FormActions($db);
$actionstatic=new ActionComm($db);
$userstatic=new User($db);
$contactstatic = new Contact($db);
@ -1128,14 +1139,14 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
if (get_class($filterobj) == 'Societe') $out.='</a>';
$out.='</td>';
}
$out.='<td>'.$langs->trans("Ref").'</td>';
$out.=getTitleFieldOfList($langs->trans("Ref"), 0, $_SERVER["PHP_SELF"], 'a.id', '', $param, '', $sortfield, $sortorder);
$out.='<td>'.$langs->trans("Label").'</td>';
$out.='<td>'.$langs->trans("Date").'</td>';
$out.=getTitleFieldOfList($langs->trans("Date"), 0, $_SERVER["PHP_SELF"], 'a.datep, a.id', '', $param, '', $sortfield, $sortorder);
$out.='<td>'.$langs->trans("Type").'</td>';
$out.='<td></td>';
$out.='<td></td>';
$out.='<td>'.$langs->trans("By").'</td>';
$out.='<td align="center">'.$langs->trans("Status").'</td>';
$out.='<td>'.$langs->trans("Owner").'</td>';
$out.=getTitleFieldOfList($langs->trans("Status"), 0, $_SERVER["PHP_SELF"], 'a.percent', '', $param, 'align="center"', $sortfield, $sortorder);
$out.='<td align="center"></td>';
$out.='</tr>';
@ -1149,11 +1160,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
$out.='<td><input type="text" name="search_agenda_label" value="'.$filters['search_agenda_label'].'"></td>';
$out.='<td></td>';
$out.='<td>';
if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) {
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php';
$formactions=new FormActions($db);
$out.=$formactions->select_type_actions($actioncode, "actioncode", '', 0, 0, 0, 1);
}
$out.=$formactions->select_type_actions($actioncode, "actioncode", '', empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:0, 0, 0, 1);
$out.='</td>';
$out.='<td></td>';
$out.='<td></td>';
@ -1169,11 +1176,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
foreach ($histo as $key=>$value)
{
$var=!$var;
$actionstatic->fetch($histo[$key]['id']);
$actionstatic->fetch($histo[$key]['id']); // TODO Do we need this, we already have a lot of data of line into $histo
$out.="<tr ".$bc[$var].">";
// done or todo
// Done or todo
if ($donetodo)
{
$out.='<td class="nowrap">';
@ -1191,7 +1198,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
{
$actionstatic->type_code=$histo[$key]['acode'];
$transcode=$langs->trans("Action".$histo[$key]['acode']);
$libelle=($transcode!="Action".$histo[$key]['acode']?$transcode:$histo[$key]['libelle']);
$libelle=($transcode!="Action".$histo[$key]['acode']?$transcode:$histo[$key]['alabel']);
//$actionstatic->libelle=$libelle;
$libelle=$histo[$key]['note'];
$actionstatic->id=$histo[$key]['id'];
@ -1218,7 +1225,17 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
}
$out.="</td>\n";
// Type
$out.='<td>';
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
{
if ($histo[$key]['apicto']) $out.=img_picto('', $histo[$key]['apicto']);
else {
if ($histo[$key]['acode'] == 'AC_TEL') $out.=img_picto('', 'object_phoning').' ';
if ($histo[$key]['acode'] == 'AC_FAX') $out.=img_picto('', 'object_phoning_fax').' ';
if ($histo[$key]['acode'] == 'AC_EMAIL') $out.=img_picto('', 'object_email').' ';
}
}
$out.=$actionstatic->type;
$out.='</td>';
@ -1292,7 +1309,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
$out.='</td>';
// Statut
$out.='<td class="nowrap" align="center">'.$actionstatic->LibStatut($histo[$key]['percent'],3).'</td>';
$out.='<td class="nowrap" align="center">'.$actionstatic->LibStatut($histo[$key]['percent'],3,1,$histo[$key]['datestart']).'</td>';
// Actions
$out.='<td></td>';

View File

@ -390,7 +390,21 @@ function dol_buildpath($path, $type=0)
foreach ($conf->file->dol_document_root as $key => $dirroot) // ex: array(["main"]=>"/home/main/htdocs", ["alt0"]=>"/home/dirmod/htdocs", ...)
{
if ($key == 'main') continue;
if ($key == 'main')
{
if ($type == 3)
{
global $dolibarr_main_url_root;
// Define $urlwithroot
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
$res=(preg_match('/^http/i',$conf->file->dol_url_root[$key])?'':$urlwithroot).'/'.$path; // Test on start with http is for old conf syntax
}
continue;
}
preg_match('/^([^\?]+(\.css\.php|\.css|\.js\.php|\.js|\.png|\.jpg|\.php)?)/i',$path,$regs); // Take part before '?'
if (! empty($regs[1]))
{
@ -414,7 +428,7 @@ function dol_buildpath($path, $type=0)
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
$res=(preg_match('/^http/i',$conf->file->dol_url_root[$key])?'':$urlwithroot).$conf->file->dol_url_root[$key].'/'.$path;
$res=(preg_match('/^http/i',$conf->file->dol_url_root[$key])?'':$urlwithroot).$conf->file->dol_url_root[$key].'/'.$path; // Test on start with http is for old conf syntax
}
break;
}
@ -3327,13 +3341,13 @@ function print_fleche_navigation($page, $file, $options='', $nextpage=0, $betwee
* Return a string with VAT rate label formated for view output
* Used into pdf and HTML pages
*
* @param float $rate Rate value to format (19.6 19,6 19.6% 19,6%,...)
* @param string $rate Rate value to format ('19.6', '19,6', '19.6%', '19,6%', '19.6 (CODEX)', ...)
* @param boolean $addpercent Add a percent % sign in output
* @param int $info_bits Miscellaneous information on vat (0=Default, 1=French NPR vat)
* @param int $usestarfornpr 1=Use '*' for NPR vat rate intead of MAIN_LABEL_MENTION_NPR
* @return string String with formated amounts (19,6 or 19,6% or 8.5% NPR or 8.5% *)
* @return string String with formated amounts ('19,6' or '19,6%' or '8.5% (NPR)' or '8.5% *' or '19,6 (CODEX)')
*/
function vatrate($rate,$addpercent=false,$info_bits=0,$usestarfornpr=0)
function vatrate($rate, $addpercent=false, $info_bits=0, $usestarfornpr=0)
{
$morelabel='';
@ -3345,7 +3359,7 @@ function vatrate($rate,$addpercent=false,$info_bits=0,$usestarfornpr=0)
if (preg_match('/\((.*)\)/',$rate,$reg))
{
$morelabel=' ('.$reg[1].')';
$rate=preg_replace('/'.preg_quote($morelabel,'/').'/','',$rate);
$rate=preg_replace('/\s*'.preg_quote($morelabel,'/').'/','',$rate);
}
if (preg_match('/\*/',$rate) || preg_match('/'.constant('MAIN_LABEL_MENTION_NPR').'/i',$rate))
{

View File

@ -1232,7 +1232,12 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
if (empty($hideref))
{
if ($issupplierline) $ref_prodserv = $prodser->ref.($ref_supplier ? ' ('.$outputlangs->transnoentitiesnoconv("SupplierRef").' '.$ref_supplier.')' : ''); // Show local ref and supplier ref
if ($issupplierline)
{
//$ref_prodserv = $prodser->ref.($ref_supplier ? ' ('.$outputlangs->transnoentitiesnoconv("SupplierRef").' '.$ref_supplier.')' : ''); // Show local ref and supplier ref
if (! empty($conf->global->PDF_HIDE_PRODUCT_REF_IN_SUPPLIER_LINES)) $ref_prodserv =$ref_supplier;
else $ref_prodserv = $prodser->ref.($ref_supplier ? ' ('.$outputlangs->transnoentitiesnoconv("SupplierRef").' '.$ref_supplier.')' : ''); // Show local ref and supplier ref
}
else $ref_prodserv = $prodser->ref; // Show local ref only
if (! empty($libelleproduitservice)) $ref_prodserv .= " - ";

View File

@ -81,7 +81,7 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocalt
if (empty($txtva)) $txtva=0;
if (empty($seller) || ! is_object($seller))
{
dol_syslog("calcul_price_total Warning: function is called with parameter seller that is missing", LOG_WARNING);
dol_syslog("Price.lib::calcul_price_total Warning: function is called with parameter seller that is missing", LOG_WARNING);
if (! is_object($mysoc)) // mysoc may be not defined (during migration process)
{
$mysoc=new Societe($db);
@ -92,7 +92,7 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocalt
}
if (empty($localtaxes_array) || ! is_array($localtaxes_array))
{
dol_syslog("calcul_price_total Warning: function is called with parameter localtaxes_array that is missing", LOG_WARNING);
dol_syslog("Price.lib::calcul_price_total Warning: function is called with parameter localtaxes_array that is missing", LOG_WARNING);
}
// Too verbose. Enable for debug only
//dol_syslog("Price.lib::calcul_price_total qty=".$qty." pu=".$pu." remiserpercent_ligne=".$remise_percent_ligne." txtva=".$txtva." uselocaltax1_rate=".$uselocaltax1_rate." uselocaltax2_rate=".$uselocaltax2_rate.' remise_percent_global='.$remise_percent_global.' price_base_type='.$ice_base_type.' type='.$type.' progress='.$progress);
@ -124,7 +124,7 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocalt
$sql.= " FROM ".MAIN_DB_PREFIX."c_tva as cv";
$sql.= " WHERE cv.taux = ".$txtva;
$sql.= " AND cv.fk_pays = ".$countryid;
dol_syslog("calcul_price_total search vat information using old deprecated method", LOG_WARNING);
dol_syslog("Price.lib::calcul_price_total search vat information using old deprecated method", LOG_WARNING);
$resql = $db->query($sql);
if ($resql)
{

View File

@ -21,8 +21,9 @@
* \ingroup expedition
* \brief Library for expedition module
*/
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
/**
@ -169,9 +170,10 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
$product_static=new Product($db);
$expedition=new Expedition($db);
$warehousestatic=new Entrepot($db);
$sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.date_start, obj.date_end";
$sql.= ", ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line";
$sql.= ", ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot as warehouse_id";
$sql.= ", e.rowid as sendingid, e.ref as exp_ref, e.date_creation, e.date_delivery, e.date_expedition,";
//if ($conf->livraison_bon->enabled) $sql .= " l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received,";
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
@ -209,7 +211,11 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
print '<td align="center">'.$langs->trans("DateCreation").'</td>';
print '<td align="center">'.$langs->trans("DateDeliveryPlanned").'</td>';
print '<td align="center">'.$langs->trans("QtyShipped").'</td>';
if ($conf->livraison_bon->enabled)
if (! empty($conf->stock->enabled))
{
print '<td>'.$langs->trans("Warehouse").'</td>';
}
if (! empty($conf->livraison_bon->enabled))
{
print '<td>'.$langs->trans("DeliveryOrder").'</td>';
//print '<td align="center">'.$langs->trans("QtyReceived").'</td>';
@ -309,6 +315,18 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
// Qty shipped
print '<td align="center">'.$objp->qty_shipped.'</td>';
// Warehouse
if (! empty($conf->stock->enabled))
{
print '<td>';
if ($objp->warehouse_id > 0)
{
$warehousestatic->fetch($objp->warehouse_id);
print $warehousestatic->getNomUrl(1);
}
print '</td>';
}
// Informations on receipt
if (! empty($conf->livraison_bon->enabled))
{

View File

@ -265,8 +265,14 @@ class modMultiCurrency extends DolibarrModules
$sql = array();
//$this->_load_tables('/multicurrency/sql/');
return $this->_init($sql, $options);
$res = $this->_init($sql, $options);
if ($res)
{
$this->createFirstCurrency();
}
return $res;
}
/**
@ -284,5 +290,27 @@ class modMultiCurrency extends DolibarrModules
return $this->_remove($sql, $options);
}
/**
* Function called when module is enabled
* Create the currency from general setting
*
* @return int 1 if OK, 0 if KO
*/
private function createFirstCurrency()
{
global $conf,$user,$langs;
if (!MultiCurrency::checkCodeAlreadyExists($conf->currency))
{
$langs->loadCacheCurrencies('');
$multicurrency = new MultiCurrency($this->db);
$multicurrency->code = $conf->currency;
$multicurrency->name = $langs->cache_currencies[$conf->currency]['label'].' ('.$langs->getCurrencySymbol($conf->currency).')';
$r = $multicurrency->create($user);
if ($r > 0) $multicurrency->addRate(1);
}
}
}

View File

@ -211,7 +211,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
$hookmanager->initHooks(array('pdfgeneration'));
$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
global $action;
$reshook=$hookmanager->executeHooks('beforePDFCreation',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
$reshook=$hookmanager->executeHooks('beforePDFCreation',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
$nblignes = count($object->lines);

View File

@ -111,7 +111,7 @@ $coldisplay=-1; // We remove first td
<?php
$coldisplay++;
if ($this->situation_counter == 1 || !$this->situation_cycle_ref) {
print '<td align="right">' . $form->load_tva('tva_tx', $line->tva_tx, $seller, $buyer, 0, $line->info_bits, $line->product_type, false, 1) . '</td>';
print '<td align="right">' . $form->load_tva('tva_tx', $line->tva_tx.($line->vat_src_code?(' ('.$line->vat_src_code.')'):''), $seller, $buyer, 0, $line->info_bits, $line->product_type, false, 1) . '</td>';
} else {
print '<td align="right"><input size="1" type="text" class="flat" name="tva_tx" value="' . price($line->tva_tx) . '" readonly />%</td>';
}

View File

@ -129,8 +129,10 @@ if (empty($usemargins)) $usemargins=0;
</td>
<?php if ($object->element == 'supplier_proposal') { ?>
<td class="linecolrefsupplier" align="right"><?php echo $line->ref_fourn; ?></td>
<?php } ?>
<td align="right" class="linecolvat nowrap"><?php $coldisplay++; ?><?php echo vatrate($line->tva_tx,'%',$line->info_bits); ?></td>
<?php }
// VAT Rate
?>
<td align="right" class="linecolvat nowrap"><?php $coldisplay++; ?><?php echo vatrate($line->tva_tx.($line->vat_src_code?(' ('.$line->vat_src_code.')'):''),'%',$line->info_bits); ?></td>
<td align="right" class="linecoluht nowrap"><?php $coldisplay++; ?><?php echo price($line->subprice); ?></td>

View File

@ -10,6 +10,7 @@
* Copyright (C) 2014-2015 Francis Appels <francis.appels@yahoo.com>
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
* Copyright (C) 2016 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2016 Yasser Carreón <yacasia@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
@ -40,10 +41,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/modules/expedition/modules_expedition.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
if (! empty($conf->stock->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
if (! empty($conf->productbatch->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php';
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
@ -75,6 +76,7 @@ $result=restrictedArea($user, $origin, $origin_id);
$action = GETPOST('action','alpha');
$confirm = GETPOST('confirm','alpha');
$cancel = GETPOST('cancel','alpha');
//PDF
$hidedetails = (GETPOST('hidedetails','int') ? GETPOST('hidedetails','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0));
@ -112,6 +114,8 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
if (empty($reshook))
{
if ($cancel) { $action = ''; }
include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once
// Set incoterm
@ -127,6 +131,23 @@ if (empty($reshook))
$result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
}
if ($action == 'setref_customer')
{
$result = $object->fetch($id);
if ($result < 0) {
setEventMessages($object->error, $object->errors, 'errors');
}
$result = $object->setValueFrom('ref_customer', GETPOST('ref_customer','alpha'), '', null, 'text', '', $user, 'SHIPMENT_MODIFY');
if ($result < 0) {
setEventMessages($object->error, $object->errors, 'errors');
$action = 'editref_customer';
} else {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
exit;
}
}
if ($action == 'update_extras')
{
// Fill array 'array_options' with data from update form
@ -181,9 +202,9 @@ if (empty($reshook))
$objectsrc->fetch($object->origin_id);
$object->socid = $objectsrc->socid;
$object->ref_customer = $objectsrc->ref_client;
$object->ref_customer = ''; // We don't use $objectsrc->ref_client, this is ref or order not shipment
$object->model_pdf = GETPOST('model');
$object->date_delivery = $date_delivery; // Date delivery planed
$object->date_delivery = $date_delivery; // Date delivery planed
$object->fk_delivery_address = $objectsrc->fk_delivery_address;
$object->shipping_method_id = GETPOST('shipping_method_id','int');
$object->tracking_number = GETPOST('tracking_number','alpha');
@ -392,9 +413,9 @@ if (empty($reshook))
)
{
$object->fetch_thirdparty();
$result = $object->valid($user);
if ($result < 0)
{
$langs->load("errors");
@ -534,13 +555,21 @@ if (empty($reshook))
elseif ($action == 'classifybilled')
{
$object->fetch($id);
$object->set_billed();
$result = $object->set_billed();
if($result >= 0) {
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
exit();
}
}
elseif ($action == 'classifyclosed')
{
$object->fetch($id);
$object->setClosed();
$result = $object->setClosed();
if($result >= 0) {
header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
exit();
}
}
include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
@ -566,9 +595,12 @@ llxHeader('',$langs->trans('Shipment'),'Expedition');
$form = new Form($db);
$formfile = new FormFile($db);
$formproduct = new FormProduct($db);
$product_static = new Product($db);
if (! empty($conf->projet->enabled)) { $formproject = new FormProjets($db); }
$product_static = new Product($db);
$shipment_static = new Expedition($db);
$warehousestatic = new Entrepot($db);
if ($action == 'create2')
{
print load_fiche_titre($langs->trans("CreateASending")).'<br>';
@ -1215,11 +1247,12 @@ else if ($id || $ref)
if ($object->id > 0)
{
if (!empty($object->origin))
if (!empty($object->origin) && $object->origin_id > 0)
{
$typeobject = $object->origin;
$origin = $object->origin;
$object->fetch_origin();
$origin_id = $object->origin_id;
$object->fetch_origin(); // Load property $object->commande, $object->propal, ...
}
$soc = new Societe($db);
@ -1232,17 +1265,13 @@ else if ($id || $ref)
$formconfirm='';
/*
* Confirmation de la suppression
*/
// Confirm deleteion
if ($action == 'delete')
{
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('DeleteSending'),$langs->trans("ConfirmDeleteSending",$object->ref),'confirm_delete','',0,1);
}
/*
* Confirmation de la validation
*/
// Confirmation validation
if ($action == 'valid')
{
$objectref = substr($object->ref, 1, 4);
@ -1268,9 +1297,7 @@ else if ($id || $ref)
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('ValidateSending'),$text,'confirm_valid','',0,1);
}
/*
* Confirmation de l'annulation
*/
// Confirm cancelation
if ($action == 'annuler')
{
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('CancelSending'),$langs->trans("ConfirmCancelSending",$object->ref),'confirm_cancel','',0,1);
@ -1295,21 +1322,30 @@ else if ($id || $ref)
$totalVolume=$tmparray['volume'];
if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))
{
$objectsrc=new Commande($db);
$objectsrc->fetch($object->$typeobject->id);
}
if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))
{
$objectsrc=new Propal($db);
$objectsrc->fetch($object->$typeobject->id);
}
// Shipment card
$linkback = '<a href="'.DOL_URL_ROOT.'/expedition/list.php">'.$langs->trans("BackToList").'</a>';
$morehtmlref='<div class="refidno">';
// Ref customer shipment
$morehtmlref.=$form->editfieldkey("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', null, null, '', 1);
$morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1);
$morehtmlref.=$form->editfieldval("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
/*
if (! empty($conf->projet->enabled)) {
$langs->load("projects");
$morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
if ($user->rights->supplier_proposal->creer) {
if (0) { // Do not change on shipment
if ($action != 'classify') {
$morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
}
@ -1325,20 +1361,23 @@ else if ($id || $ref)
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
}
} else {
if (! empty($object->fk_project)) {
// We don't have project on shipment, so we will use the project or source object instead
// TODO Add project on shipment
$morehtmlref .= ' : ';
if (! empty($objectsrc->fk_project)) {
$proj = new Project($db);
$proj->fetch($object->fk_project);
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
$proj->fetch($objectsrc->fk_project);
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $objectsrc->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
$morehtmlref .= $proj->ref;
$morehtmlref .= '</a>';
} else {
$morehtmlref .= '';
}
}
}*/
}
$morehtmlref.='</div>';
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
@ -1352,8 +1391,6 @@ else if ($id || $ref)
if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))
{
print '<tr><td>';
$objectsrc=new Commande($db);
$objectsrc->fetch($object->$typeobject->id);
print $langs->trans("RefOrder").'</td>';
print '<td colspan="3">';
print $objectsrc->getNomUrl(1,'commande');
@ -1363,8 +1400,6 @@ else if ($id || $ref)
if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))
{
print '<tr><td>';
$objectsrc=new Propal($db);
$objectsrc->fetch($object->$typeobject->id);
print $langs->trans("RefProposal").'</td>';
print '<td colspan="3">';
print $objectsrc->getNomUrl(1,'expedition');
@ -1374,7 +1409,7 @@ else if ($id || $ref)
// Date creation
print '<tr><td class="titlefield">'.$langs->trans("DateCreation").'</td>';
print '<td colspan="3">'.dol_print_date($object->date_creation,"day")."</td>\n";
print '<td colspan="3">'.dol_print_date($object->date_creation,"dayhour")."</td>\n";
print '</tr>';
// Delivery date planned
@ -1505,11 +1540,6 @@ else if ($id || $ref)
print "</td>\n";
print '</tr>';
// Status
/*print '<tr><td>'.$langs->trans("Status").'</td>';
print '<td colspan="3">'.$object->getLibStatut(4)."</td>\n";
print '</tr>';*/
// Other attributes
$cols = 2;
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
@ -1612,6 +1642,11 @@ else if ($id || $ref)
print '<td align="center">'.$langs->trans("QtyShipped").'</td>';
}
if ($origin && $origin_id > 0)
{
print '<td align="center">'.$langs->trans("QtyInOtherShipments").'</td>';
}
print '<td align="center">'.$langs->trans("CalculatedWeight").'</td>';
print '<td align="center">'.$langs->trans("CalculatedVolume").'</td>';
//print '<td align="center">'.$langs->trans("Size").'</td>';
@ -1644,6 +1679,50 @@ else if ($id || $ref)
}
}
// Get list of products already sent for same source object
$alreadysent = array();
if ($origin && $origin_id > 0)
{
$sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.date_start, obj.date_end";
$sql.= ", ed.rowid as shipmentline_id, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot";
$sql.= ", e.rowid as shipment_id, e.ref as shipment_ref, e.date_creation, e.date_valid, e.date_delivery, e.date_expedition,";
//if ($conf->livraison_bon->enabled) $sql .= " l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received,";
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
$sql.= ' p.description as product_desc';
$sql.= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed";
$sql.= ", ".MAIN_DB_PREFIX."expedition as e";
$sql.= ", ".MAIN_DB_PREFIX.$origin."det as obj";
//if ($conf->livraison_bon->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."livraison as l ON l.fk_expedition = e.rowid LEFT JOIN ".MAIN_DB_PREFIX."livraisondet as ld ON ld.fk_livraison = l.rowid AND obj.rowid = ld.fk_origin_line";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid";
$sql.= " WHERE e.entity IN (".getEntity('expedition', 1).")";
$sql.= " AND obj.fk_".$origin." = ".$origin_id;
$sql.= " AND obj.rowid = ed.fk_origin_line";
$sql.= " AND ed.fk_expedition = e.rowid";
//if ($filter) $sql.= $filter;
$sql.= " ORDER BY obj.fk_product";
dol_syslog("show_list_sending_receive", LOG_DEBUG);
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
while($i < $num)
{
$obj = $db->fetch_object($resql);
if ($obj)
{
// $obj->rowid is rowid in $origin."det" table
$alreadysent[$obj->rowid][$obj->shipmentline_id]=array('shipment_ref'=>$obj->shipment_ref, 'shipment_id'=>$obj->shipment_id, 'warehouse'=>$obj->fk_entrepot, 'qty_shipped'=>$obj->qty_shipped, 'date_valid'=>$obj->date_valid, 'date_delivery'=>$obj->date_delivery);
}
$i++;
}
}
//var_dump($alreadysent);
}
// Loop on each product to send/sent
for ($i = 0 ; $i < $num_prod ; $i++)
{
print "<tr ".$bc[$var].">";
@ -1700,12 +1779,43 @@ else if ($id || $ref)
print "</td>\n";
}
// Qte commande
// Qty ordered
print '<td align="center">'.$lines[$i]->qty_asked.'</td>';
// Qte a expedier ou expedier
// Qty to ship or shipped
print '<td align="center">'.$lines[$i]->qty_shipped.'</td>';
// Qty in other shipments (with shipment and warehouse used)
if ($origin && $origin_id > 0)
{
print '<td align="center" class="nowrap">';
foreach ($alreadysent as $key => $val)
{
if ($lines[$i]->fk_origin_line == $key)
{
$j = 0;
foreach($val as $shipmentline_id=> $shipmentline_var)
{
if ($shipmentline_id == $lines[$i]->rowid) continue; // We want to show only "other shipments"
$j++;
if ($j > 1) print '<br>';
$shipment_static->fetch($shipmentline_var['shipment_id']);
print $shipment_static->getNomUrl(1);
print ' - '.$shipmentline_var['qty_shipped'];
$htmltext=$langs->trans("DateValidation").' : '.dol_print_date($shipmentline_var['date_valid'], 'dayhour');
if (! empty($conf->stock->enabled) && $shipmentline_var['warehouse'] > 0)
{
$warehousestatic->fetch($shipmentline_var['warehouse']);
$htmltext .= '<br>'.$langs->trans("From").' : '.$warehousestatic->getNomUrl(1);
}
print ' '.$form->textwithpicto('', $htmltext, 1);
}
}
}
}
print '</td>';
// Weight
print '<td align="center">';
if ($lines[$i]->fk_product_type == 0) print $lines[$i]->weight*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->weight_units,"weight");
@ -1721,7 +1831,7 @@ else if ($id || $ref)
// Size
//print '<td align="center">'.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->volume_units,"volume").'</td>';
// Entrepot source
// Warehouse source
if (! empty($conf->stock->enabled))
{
print '<td align="left">';
@ -1774,7 +1884,7 @@ else if ($id || $ref)
}
print "</tr>";
//Display lines extrafields
// Display lines extrafields
if (is_array($extralabelslines) && count($extralabelslines)>0) {
$colspan= empty($conf->productbatch->enabled) ? 5 : 6;
$line = new ExpeditionLigne($db);
@ -1787,6 +1897,10 @@ else if ($id || $ref)
$var=!$var;
}
// TODO Show also lines ordered but not delivered
print "</table>\n";
}
@ -1796,6 +1910,7 @@ else if ($id || $ref)
$object->fetchObjectLinked($object->id,$object->element);
/*
* Boutons actions
*/
@ -1885,6 +2000,7 @@ else if ($id || $ref)
/*
* Documents generated
*/
if ($action != 'presend')
{
print '<div class="fichecenter"><div class="fichehalfleft">';
@ -1915,9 +2031,11 @@ else if ($id || $ref)
print '</div></div></div>';
}
/*
* Action presend
*/
//Select mail models is same action as presend
if (GETPOST('modelselected')) {
$action = 'presend';
@ -2049,13 +2167,6 @@ else if ($id || $ref)
dol_fiche_end();
}
if ($action != 'presend' && ! empty($origin) && $object->$origin->id)
{
print '<br>';
//show_list_sending_receive($object->origin,$object->origin_id," AND e.rowid <> ".$object->id);
show_list_sending_receive($object->origin,$object->origin_id);
}
}

View File

@ -742,7 +742,8 @@ class Expedition extends CommonObject
// Change status of order to "shipment in process"
$ret = $this->setStatut(Commande::STATUS_SHIPMENTONPROCESS, $this->origin_id, $this->origin);
if (! $ret)
if (! $ret)
{
$error++;
}

View File

@ -29,6 +29,10 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
$langs->load("orders");
$langs->load("sendings");
@ -165,11 +169,10 @@ if ($id > 0 || ! empty($ref))
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
/*
if (! empty($conf->projet->enabled)) {
$langs->load("projects");
$morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
if ($user->rights->supplier_proposal->creer) {
if (0) { // Do not change on shipment
if ($action != 'classify') {
$morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
}
@ -185,17 +188,20 @@ if ($id > 0 || ! empty($ref))
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
}
} else {
if (! empty($object->fk_project)) {
// We don't have project on shipment, so we will use the project or source object instead
// TODO Add project on shipment
$morehtmlref .= ' : ';
if (! empty($objectsrc->fk_project)) {
$proj = new Project($db);
$proj->fetch($object->fk_project);
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
$proj->fetch($objectsrc->fk_project);
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $objectsrc->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
$morehtmlref .= $proj->ref;
$morehtmlref .= '</a>';
} else {
$morehtmlref .= '';
}
}
}*/
}
$morehtmlref.='</div>';

View File

@ -174,7 +174,7 @@ $formcompany=new FormCompany($db);
$helpurl='EN:Module_Shipments|FR:Module_Exp&eacute;ditions|ES:M&oacute;dulo_Expediciones';
llxHeader('',$langs->trans('ListOfSendings'),$helpurl);
$sql = "SELECT e.rowid, e.ref, e.date_expedition as date_expedition, e.date_delivery as date_livraison, l.date_delivery as date_reception, e.fk_statut,";
$sql = "SELECT e.rowid, e.ref, e.ref_customer, e.date_expedition as date_expedition, e.date_delivery as date_livraison, l.date_delivery as date_reception, e.fk_statut,";
$sql.= ' s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, ';
$sql.= " typent.code as typent_code,";
$sql.= " state.code_departement as state_code, state.nom as state_name,";
@ -310,6 +310,7 @@ if ($resql)
print '<tr class="liste_titre">';
if (! empty($arrayfields['e.ref']['checked'])) print_liste_field_titre($arrayfields['e.ref']['label'], $_SERVER["PHP_SELF"],"e.ref","",$param,'',$sortfield,$sortorder);
if (! empty($arrayfields['e.ref_customer']['checked'])) print_liste_field_titre($arrayfields['e.ref_customer']['label'], $_SERVER["PHP_SELF"],"e.ref_customer","",$param,'',$sortfield,$sortorder);
if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"],"s.nom", "", $param,'align="left"',$sortfield,$sortorder);
if (! empty($arrayfields['s.town']['checked'])) print_liste_field_titre($arrayfields['s.town']['label'],$_SERVER["PHP_SELF"],'s.town','',$param,'',$sortfield,$sortorder);
if (! empty($arrayfields['s.zip']['checked'])) print_liste_field_titre($arrayfields['s.zip']['label'],$_SERVER["PHP_SELF"],'s.zip','',$param,'',$sortfield,$sortorder);
@ -348,14 +349,21 @@ if ($resql)
if (! empty($arrayfields['e.ref']['checked']))
{
print '<td class="liste_titre">';
print '<input class="flat" size="10" type="text" name="search_ref_exp" value="'.$search_ref_exp.'">';
print '<input class="flat" size="6" type="text" name="search_ref_exp" value="'.$search_ref_exp.'">';
print '</td>';
}
// Ref customer
if (! empty($arrayfields['e.ref_customer']['checked']))
{
print '<td class="liste_titre">';
print '<input class="flat" size="6" type="text" name="search_ref_customer" value="'.$search_ref_customer.'">';
print '</td>';
}
// Thirdparty
if (! empty($arrayfields['s.nom']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<input class="flat" type="text" size="10" name="search_company" value="'.dol_escape_htmltag($search_company).'">';
print '<input class="flat" type="text" size="8" name="search_company" value="'.dol_escape_htmltag($search_company).'">';
print '</td>';
}
// Town
@ -460,13 +468,17 @@ if ($resql)
{
$obj = $db->fetch_object($resql);
$var=!$var;
print "<tr ".$bc[$var].">";
$shipment->id=$obj->rowid;
$shipment->ref=$obj->ref;
$companystatic->id=$obj->socid;
$companystatic->ref=$obj->name;
$companystatic->name=$obj->name;
$var=!$var;
print "<tr ".$bc[$var].">";
// Ref
if (! empty($arrayfields['e.ref']['checked']))
{
@ -476,9 +488,14 @@ if ($resql)
if (! $i) $totalarray['nbfield']++;
}
$companystatic->id=$obj->socid;
$companystatic->ref=$obj->name;
$companystatic->name=$obj->name;
// Ref customer
if (! empty($arrayfields['e.ref_customer']['checked']))
{
print "<td>";
print $obj->ref_customer;
print "</td>\n";
if (! $i) $totalarray['nbfield']++;
}
// Third party
if (! empty($arrayfields['s.nom']['checked']))

View File

@ -27,6 +27,10 @@
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
$langs->load("sendings");
$langs->load("companies");
@ -110,37 +114,39 @@ if ($id > 0 || ! empty($ref))
// Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
/*
if (! empty($conf->projet->enabled)) {
$langs->load("projects");
$morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
if ($user->rights->supplier_proposal->creer) {
if ($action != 'classify') {
$morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
}
if ($action == 'classify') {
// $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
$morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '">';
$morehtmlref .= '<input type="hidden" name="action" value="classin">';
$morehtmlref .= '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
$morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
$morehtmlref .= '<input type="submit" class="button" value="' . $langs->trans("Modify") . '">';
$morehtmlref .= '</form>';
} else {
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
}
} else {
if (! empty($object->fk_project)) {
$proj = new Project($db);
$proj->fetch($object->fk_project);
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
$morehtmlref .= $proj->ref;
$morehtmlref .= '</a>';
} else {
$morehtmlref .= '';
}
}
}*/
if (! empty($conf->projet->enabled)) {
$langs->load("projects");
$morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
if (0) { // Do not change on shipment
if ($action != 'classify') {
$morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
}
if ($action == 'classify') {
// $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
$morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '">';
$morehtmlref .= '<input type="hidden" name="action" value="classin">';
$morehtmlref .= '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
$morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
$morehtmlref .= '<input type="submit" class="button" value="' . $langs->trans("Modify") . '">';
$morehtmlref .= '</form>';
} else {
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
}
} else {
// We don't have project on shipment, so we will use the project or source object instead
// TODO Add project on shipment
$morehtmlref .= ' : ';
if (! empty($objectsrc->fk_project)) {
$proj = new Project($db);
$proj->fetch($objectsrc->fk_project);
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $objectsrc->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
$morehtmlref .= $proj->ref;
$morehtmlref .= '</a>';
} else {
$morehtmlref .= '';
}
}
}
$morehtmlref.='</div>';

View File

@ -21,6 +21,7 @@
/**
* \file htdocs/expedition/shipment.php
* \ingroup expedition
* \brief Tab shipments/delivery receipts on the order
*/
require '../main.inc.php';
@ -457,8 +458,8 @@ if ($id > 0 || ! empty($ref))
/**
* Lignes de commandes avec quantite livrees et reste a livrer
* Les quantites livrees sont stockees dans $commande->expeditions[fk_product]
* Lines or orders with quantity shipped and remain to ship
* Note: Qty shipped are already available into $commande->expeditions[fk_product]
*/
print '<table class="noborder noshadow" width="100%">';

View File

@ -263,7 +263,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre" height="24">';
print '<td align="center">'.$langs->trans("Year").'</td>';
print '<td align="center">'.$langs->trans("NbOfSendings").'</td>';
print '<td align="right">'.$langs->trans("NbOfSendings").'</td>';
/*print '<td align="center">'.$langs->trans("AmountTotal").'</td>';
print '<td align="center">'.$langs->trans("AmountAverage").'</td>';*/
print '</tr>';
@ -289,7 +289,10 @@ foreach ($data as $val)
$var=!$var;
print '<tr '.$bc[$var].' height="24">';
print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.'">'.$year.'</a></td>';
print '<td align="center">';
if ($year) print '<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.'">'.$year.'</a>';
else print $langs->trans("ValidationDateNotDefinedEvenIfShipmentValidated");
print '</td>';
print '<td align="right">'.$val['nb'].'</td>';
/*print '<td align="right">'.price(price2num($val['total'],'MT'),1).'</td>';
print '<td align="right">'.price(price2num($val['avg'],'MT'),1).'</td>';*/

View File

@ -275,9 +275,8 @@ class CommandeFournisseur extends CommonOrder
$this->lines=array();
$sql = "SELECT l.rowid, l.ref as ref_supplier, l.fk_product, l.product_type, l.label, l.description,";
$sql.= " l.qty,";
$sql.= " l.tva_tx, l.remise_percent, l.subprice,";
$sql = "SELECT l.rowid, l.ref as ref_supplier, l.fk_product, l.product_type, l.label, l.description, l.qty,";
$sql.= " l.vat_src_code, l.tva_tx, l.remise_percent, l.subprice,";
$sql.= " l.localtax1_tx, l. localtax2_tx, l.total_localtax1, l.total_localtax2,";
$sql.= " l.total_ht, l.total_tva, l.total_ttc, l.special_code, l.fk_parent_line, l.rang,";
$sql.= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.description as product_desc,";
@ -313,6 +312,8 @@ class CommandeFournisseur extends CommonOrder
$line->subprice = $objp->subprice;
$line->pu_ht = $objp->subprice;
$line->remise_percent = $objp->remise_percent;
$line->vat_src_code = $objp->vat_src_code;
$line->total_ht = $objp->total_ht;
$line->total_tva = $objp->total_tva;
$line->total_localtax1 = $objp->total_localtax1;
@ -1012,7 +1013,7 @@ class CommandeFournisseur extends CommonOrder
{
$this->statut = 3;
$this->methode_commande_id = $methode;
$this->date_commande = $this->db->idate($date);
$this->date_commande = $date;
// Call trigger
$result=$this->call_trigger('ORDER_SUPPLIER_SUBMIT',$user);
@ -1040,7 +1041,7 @@ class CommandeFournisseur extends CommonOrder
$error++;
$this->error = $langs->trans('NotAuthorized');
$this->errors[] = $langs->trans('NotAuthorized');
dol_syslog(get_class($this)."::commande User not Authorized", LOG_ERR);
dol_syslog(get_class($this)."::commande User not Authorized", LOG_WARNING);
}
return ($error ? -1 : 1);
@ -1416,8 +1417,15 @@ class CommandeFournisseur extends CommonOrder
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc,$this->thirdparty);
$txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate.
// Clean vat code
$vat_src_code='';
if (preg_match('/\((.*)\)/', $txtva, $reg))
{
$vat_src_code = $reg[1];
$txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate.
}
$tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type, $this->thirdparty, $localtaxes_type, 100, $this->multicurrency_tx);
$total_ht = $tabprice[0];
$total_tva = $tabprice[1];
@ -1457,6 +1465,8 @@ class CommandeFournisseur extends CommonOrder
$this->line->subprice=$pu_ht;
$this->line->rang=$this->rang;
$this->line->info_bits=$info_bits;
$this->line->vat_src_code=$vat_src_code;
$this->line->total_ht=$total_ht;
$this->line->total_tva=$total_tva;
$this->line->total_localtax1=$total_localtax1;
@ -2260,8 +2270,15 @@ class CommandeFournisseur extends CommonOrder
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc, $this->thirdparty);
$txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate.
// Clean vat code
$vat_src_code='';
if (preg_match('/\((.*)\)/', $vatrate, $reg))
{
$vat_src_code = $reg[1];
$vatrate = preg_replace('/\s*\(.*\)/', '', $vatrate); // Remove code into vatrate.
}
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $this->thirdparty, $localtaxes_type, 100, $this->multicurrency_tx);
$total_ht = $tabprice[0];
$total_tva = $tabprice[1];
@ -2288,28 +2305,29 @@ class CommandeFournisseur extends CommonOrder
//$this->line->label=$label;
$this->line->desc=$desc;
$this->line->qty=$qty;
$this->line->tva_tx=$txtva;
$this->line->localtax1_tx=$txlocaltax1;
$this->line->localtax2_tx=$txlocaltax2;
$this->line->vat_src_code = $vat_src_code;
$this->line->tva_tx = $txtva;
$this->line->localtax1_tx = $txlocaltax1;
$this->line->localtax2_tx = $txlocaltax2;
$this->line->localtax1_type = $localtaxes_type[0];
$this->line->localtax2_type = $localtaxes_type[2];
$this->line->remise_percent=$remise_percent;
$this->line->subprice=$pu;
$this->line->rang=$this->rang;
$this->line->info_bits=$info_bits;
$this->line->total_ht=$total_ht;
$this->line->total_tva=$total_tva;
$this->line->total_localtax1=$total_localtax1;
$this->line->total_localtax2=$total_localtax2;
$this->line->total_ttc=$total_ttc;
$this->line->product_type=$type;
$this->line->special_code=$this->special_code;
$this->line->origin=$this->origin;
$this->line->fk_unit=$fk_unit;
$this->line->date_start=$date_start;
$this->line->date_end=$date_end;
$this->line->remise_percent = $remise_percent;
$this->line->subprice = $pu;
$this->line->rang = $this->rang;
$this->line->info_bits = $info_bits;
$this->line->total_ht = $total_ht;
$this->line->total_tva = $total_tva;
$this->line->total_localtax1= $total_localtax1;
$this->line->total_localtax2= $total_localtax2;
$this->line->total_ttc = $total_ttc;
$this->line->product_type = $type;
$this->line->special_code = $this->special_code;
$this->line->origin = $this->origin;
$this->line->fk_unit = $fk_unit;
$this->line->date_start = $date_start;
$this->line->date_end = $date_end;
// Multicurrency
$this->line->fk_multicurrency = $this->fk_multicurrency;
@ -2995,8 +3013,8 @@ class CommandeFournisseurLigne extends CommonOrderLine
if (empty($this->tva_tx)) $this->tva_tx=0;
if (empty($this->localtax1_tx)) $this->localtax1_tx=0;
if (empty($this->localtax2_tx)) $this->localtax2_tx=0;
if (empty($this->localtax1_type)) $this->localtax1_type=0;
if (empty($this->localtax2_type)) $this->localtax2_type=0;
if (empty($this->localtax1_type)) $this->localtax1_type='0';
if (empty($this->localtax2_type)) $this->localtax2_type='0';
if (empty($this->total_localtax1)) $this->total_localtax1=0;
if (empty($this->total_localtax2)) $this->total_localtax2=0;
if (empty($this->rang)) $this->rang=0;
@ -3025,7 +3043,7 @@ class CommandeFournisseurLigne extends CommonOrderLine
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element;
$sql.= " (fk_commande, label, description, date_start, date_end,";
$sql.= " fk_product, product_type,";
$sql.= " qty, tva_tx, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type, remise_percent, subprice, ref,";
$sql.= " qty, vat_src_code, tva_tx, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type, remise_percent, subprice, ref,";
$sql.= " total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, fk_unit,";
$sql.= " fk_multicurrency, multicurrency_code, multicurrency_subprice, multicurrency_total_ht, multicurrency_total_tva, multicurrency_total_ttc";
$sql.= ")";
@ -3035,17 +3053,20 @@ class CommandeFournisseurLigne extends CommonOrderLine
if ($this->fk_product) { $sql.= $this->fk_product.","; }
else { $sql.= "null,"; }
$sql.= "'".$this->product_type."',";
$sql.= "'".$this->qty."', ".$this->tva_tx.", ".$this->localtax1_tx.", ".$this->localtax2_tx;
$sql.= "'".$this->qty."', ";
$sql.= ", '".$this->localtax1_type."',";
$sql.= " '".$this->localtax2_type."'";
$sql.= ", ".$this->remise_percent.",'".price2num($this->subprice,'MU')."','".$this->ref_supplier."',";
$sql.= "'".price2num($this->total_ht)."',";
$sql.= "'".price2num($this->total_tva)."',";
$sql.= "'".price2num($this->total_localtax1)."',";
$sql.= "'".price2num($this->total_localtax2)."',";
$sql.= "'".price2num($this->total_ttc)."',";
$sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->vat_src_code."'").",";
$sql.= " ".$this->tva_tx.", ";
$sql.= " ".$this->localtax1_tx.",";
$sql.= " ".$this->localtax2_tx.",";
$sql.= " '".$this->localtax1_type."',";
$sql.= " '".$this->localtax2_type."',";
$sql.= " ".$this->remise_percent.", ".price2num($this->subprice,'MU').", '".$this->db->escape($this->ref_supplier)."',";
$sql.= " ".price2num($this->total_ht).",";
$sql.= " ".price2num($this->total_tva).",";
$sql.= " ".price2num($this->total_localtax1).",";
$sql.= " ".price2num($this->total_localtax2).",";
$sql.= " ".price2num($this->total_ttc).",";
$sql.= ($this->fk_unit ? "'".$this->db->escape($this->fk_unit)."'":"null");
$sql.= ", ".($this->fk_multicurrency ? $this->fk_multicurrency : "null");
$sql.= ", '".$this->db->escape($this->multicurrency_code)."'";
@ -3114,32 +3135,34 @@ class CommandeFournisseurLigne extends CommonOrderLine
// Mise a jour ligne en base
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET";
$sql.= " description='".$this->db->escape($this->desc)."'";
$sql.= ",subprice='".price2num($this->subprice)."'";
$sql.= " description='".$this->db->escape($this->desc)."'";
$sql.= ", subprice='".price2num($this->subprice)."'";
//$sql.= ",remise='".price2num($remise)."'";
$sql.= ",remise_percent='".price2num($this->remise_percent)."'";
$sql.= ",tva_tx='".price2num($this->tva_tx)."'";
$sql.= ",localtax1_tx='".price2num($this->total_localtax1)."'";
$sql.= ",localtax2_tx='".price2num($this->total_localtax2)."'";
$sql.= ",localtax1_type='".$this->localtax1_type."'";
$sql.= ",localtax2_type='".$this->localtax2_type."'";
$sql.= ",qty='".price2num($this->qty)."'";
$sql.= ",date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null");
$sql.= ",date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= ",info_bits='".$this->info_bits."'";
$sql.= ",total_ht='".price2num($this->total_ht)."'";
$sql.= ",total_tva='".price2num($this->total_tva)."'";
$sql.= ",total_localtax1='".price2num($this->total_localtax1)."'";
$sql.= ",total_localtax2='".price2num($this->total_localtax2)."'";
$sql.= ",total_ttc='".price2num($this->total_ttc)."'";
$sql.= ",product_type=".$this->product_type;
$sql.= ($this->fk_unit ? ",fk_unit='".$this->db->escape($this->fk_unit)."'":", fk_unit=null");
$sql.= ", remise_percent='".price2num($this->remise_percent)."'";
$sql.= ", vat_src_code = '".(empty($this->vat_src_code)?'':$this->vat_src_code)."'";
$sql.= ", tva_tx='".price2num($this->tva_tx)."'";
$sql.= ", localtax1_tx='".price2num($this->total_localtax1)."'";
$sql.= ", localtax2_tx='".price2num($this->total_localtax2)."'";
$sql.= ", localtax1_type='".$this->localtax1_type."'";
$sql.= ", localtax2_type='".$this->localtax2_type."'";
$sql.= ", qty='".price2num($this->qty)."'";
$sql.= ", date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null");
$sql.= ", date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= ", info_bits='".$this->info_bits."'";
$sql.= ", total_ht='".price2num($this->total_ht)."'";
$sql.= ", total_tva='".price2num($this->total_tva)."'";
$sql.= ", total_localtax1='".price2num($this->total_localtax1)."'";
$sql.= ", total_localtax2='".price2num($this->total_localtax2)."'";
$sql.= ", total_ttc='".price2num($this->total_ttc)."'";
$sql.= ", product_type=".$this->product_type;
$sql.= ($this->fk_unit ? ", fk_unit='".$this->db->escape($this->fk_unit)."'":", fk_unit=null");
// Multicurrency
$sql.= " , multicurrency_subprice=".price2num($this->subprice * $this->multicurrency_tx)."";
$sql.= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
$sql.= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
$sql.= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
$sql.= ", multicurrency_subprice=".price2num($this->subprice * $this->multicurrency_tx)."";
$sql.= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
$sql.= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
$sql.= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
$sql.= " WHERE rowid = ".$this->id;

View File

@ -2552,8 +2552,8 @@ class SupplierInvoiceLine extends CommonObjectLine
if (empty($this->tva_tx)) $this->tva_tx=0;
if (empty($this->localtax1_tx)) $this->localtax1_tx=0;
if (empty($this->localtax2_tx)) $this->localtax2_tx=0;
if (empty($this->localtax1_type)) $this->localtax1_type=0;
if (empty($this->localtax2_type)) $this->localtax2_type=0;
if (empty($this->localtax1_type)) $this->localtax1_type='0';
if (empty($this->localtax2_type)) $this->localtax2_type='0';
if (empty($this->total_localtax1)) $this->total_localtax1=0;
if (empty($this->total_localtax2)) $this->total_localtax2=0;
if (empty($this->rang)) $this->rang=0;
@ -2604,6 +2604,7 @@ class SupplierInvoiceLine extends CommonObjectLine
$sql.= " ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null").",";
$sql.= " '".$this->db->escape($this->desc)."',";
$sql.= " ".price2num($this->qty).",";
$sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->vat_src_code."'").",";
$sql.= " ".price2num($this->tva_tx).",";
$sql.= " ".price2num($this->localtax1_tx).",";

View File

@ -29,6 +29,7 @@
ALTER TABLE llx_product_lot MODIFY COLUMN entity integer DEFAULT 1;
UPDATE llx_product_lot SET entity = 1 WHERE entity IS NULL;
ALTER TABLE llx_c_actioncomm ADD COLUMN picto varchar(48);
ALTER TABLE llx_facturedet ADD INDEX idx_facturedet_fk_code_ventilation (fk_code_ventilation);
ALTER TABLE llx_facture_fourn_det ADD INDEX idx_facture_fourn_det_fk_code_ventilation (fk_code_ventilation);
@ -36,6 +37,7 @@ ALTER TABLE llx_facture_fourn_det ADD INDEX idx_facture_fourn_det_fk_code_ventil
ALTER TABLE llx_facture_fourn_det ADD INDEX idx_facture_fourn_det_fk_product (fk_product);
ALTER TABLE llx_facture_rec ADD COLUMN fk_user_modif integer;
ALTER TABLE llx_expedition ADD COLUMN fk_user_modif integer;
ALTER TABLE llx_adherent ADD COLUMN model_pdf varchar(255);
@ -173,5 +175,5 @@ ALTER TABLE llx_bank_account ADD COLUMN note_public text;
ALTER TABLE llx_bank_account ADD COLUMN model_pdf varchar(255);
ALTER TABLE llx_bank_account ADD COLUMN import_key varchar(14);
ALTER TABLE llx_overwrite_trans ADD COLUMN integer DEFAULT 1 NOT NULL;
ALTER TABLE llx_overwrite_trans ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER rowid;

View File

@ -263,6 +263,7 @@ delete from llx_commande_fournisseur_dispatch where fk_commandefourndet = 0 or f
delete from llx_menu where menu_handler = 'smartphone';
update llx_expedition set date_valid = date_creation where fk_statut = 1 and date_valid IS NULL;
-- Detect bad consistency between duraction_effective of a task and sum of time of tasks
-- select pt.rowid, pt.duration_effective, SUM(ptt.task_duration) as y from llx_projet_task as pt, llx_projet_task_time as ptt where ptt.fk_task = pt.rowid group by pt.rowid, pt.duration_effective having pt.duration_effective <> y;

View File

@ -1,7 +1,7 @@
-- ========================================================================
-- Copyright (C) 2001-2002,2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
-- Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
-- Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
-- Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
-- Copyright (C) 2012 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
@ -26,7 +26,8 @@ create table llx_c_actioncomm
libelle varchar(48) NOT NULL,
module varchar(16) DEFAULT NULL,
active tinyint DEFAULT 1 NOT NULL,
todo tinyint,
todo tinyint, -- deprecated
color varchar(9),
picto varchar(48),
position integer NOT NULL DEFAULT 0
)ENGINE=innodb;

View File

@ -32,11 +32,12 @@ create table llx_expedition
ref_customer varchar(30), -- customer number
date_creation datetime, -- date de creation
fk_user_author integer, -- createur
fk_user_author integer, -- author of creation
fk_user_modif integer, -- author of last change
date_valid datetime, -- date de validation
fk_user_valid integer, -- valideur
date_expedition datetime, -- shipping date
date_delivery datetime DEFAULT NULL, -- delivery date
date_delivery datetime DEFAULT NULL, -- date planned of delivery
date_expedition datetime, -- not used (deprecated)
fk_address integer DEFAULT NULL, -- delivery address (deprecated)
fk_shipping_method integer,
tracking_number varchar(50),

View File

@ -1017,7 +1017,7 @@ SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where
ShowProfIdInAddress=Show professionnal id with addresses on documents
ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
TranslationUncomplete=Partial translation
SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="http://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
MAIN_DISABLE_METEO=Disable meteo view
TestLoginToAPI=Test login to API
ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.

View File

@ -1,10 +1,10 @@
# Dolibarr language file - Source file is en_US - deliveries
Delivery=Delivery
DeliveryRef=Ref Delivery
DeliveryCard=Delivery card
DeliveryCard=Receipt card
DeliveryOrder=Delivery order
DeliveryDate=Delivery date
CreateDeliveryOrder=Generate delivery order
CreateDeliveryOrder=Generate delivery receipt
DeliveryStateSaved=Delivery state saved
SetDeliveryDate=Set shipping date
ValidateDeliveryReceipt=Validate delivery receipt

View File

@ -379,7 +379,7 @@ ActionsToDoShort=To do
ActionsDoneShort=Done
ActionNotApplicable=Not applicable
ActionRunningNotStarted=To start
ActionRunningShort=Started
ActionRunningShort=In progress
ActionDoneShort=Finished
ActionUncomplete=Uncomplete
CompanyFoundation=Company/Foundation
@ -570,6 +570,7 @@ TextUsedInTheMessageBody=Email body
SendAcknowledgementByMail=Send confirmation email
EMail=E-mail
NoEMail=No email
Email=Email
NoMobilePhone=No mobile phone
Owner=Owner
FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.

View File

@ -20,6 +20,7 @@ CreateASending=Create a shipment
QtyShipped=Qty shipped
QtyToShip=Qty to ship
QtyReceived=Qty received
QtyInOtherShipments=Qty in other shipments
KeepToShip=Remain to ship
OtherSendingsForSameOrder=Other shipments for this order
SendingsAndReceivingForSameOrder=Shipments and receivings for this order
@ -40,6 +41,8 @@ DocumentModelMerou=Merou A5 model
WarningNoQtyLeftToSend=Warning, no products waiting to be shipped.
StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known).
DateDeliveryPlanned=Planned date of delivery
RefDeliveryReceipt=Ref delivery receipt
StatusReceipt=Status delivery receipt
DateReceived=Date delivery received
SendShippingByEMail=Send shipment by EMail
SendShippingRef=Submission of shipment %s

View File

@ -10,4 +10,6 @@ descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to bil
descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid
descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated
descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated
descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify shipped linked source order on shipping validate if quantity shipped is the same as in order
descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order
AutomaticCreation=Automatic creation
AutomaticClassification=Automatic classification

View File

@ -9,74 +9,81 @@ ACCOUNTING_EXPORT_DEVISE=Exportar divisa
Selectformat=Seleccione el formato del archivo
ACCOUNTING_EXPORT_PREFIX_SPEC=Especifique el prefijo del nombre de archivo
AccountancySetupDoneFromAccountancyMenu=La mayor parte de la configuración de la contabilidad se realiza desde el menú %s
ConfigAccountingExpert=Configuración del módulo contable
Journalization=Procesar diarios
Journaux=Diarios
JournalFinancial=Diarios financieros
BackToChartofaccounts=Volver al plan contable
Chartofaccounts=Plan contable
AccountancyArea=Accountancy area
AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year...
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
AccountancyAreaDescChart=STEP %s: Create or check your chart of account from menu %s
AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on your invoice lines.<br>For this you can use the menu entry %s.
AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on your payment lines.<br>For this, go on the card of each financial account. You can start from page %s.
AccountancyAreaDescVat=STEP %s: Check the binding between vat payment and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on records related to VAT payments.<br>You can set accounting accounts to use for each VAT from page %s.
AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on records related to payment of salaries.<br>For this you can use the menu entry %s.
AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (social or fiscal contributions) and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on records related to payments of social contributions.<br>For this you can use the menu entry %s.
AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on records related to payments of donation.<br>You can set the account dedicated for that from the menu entry %s.
AccountancyArea=Área contabilidad
AccountancyAreaDescIntro=El uso del módulo de contabilidad se realiza en varios pasos:
AccountancyAreaDescActionOnce=Las siguientes acciones se ejecutan normalmente una sola vez, o una vez al año...
AccountancyAreaDescActionFreq=Las siguientes acciones se ejecutan normalmente cada mes, semana o día en empresas muy grandes...
AccountancyAreaDescChartModel=PASO %s: Crear un modelo de plan general contable desde el menú %s
AccountancyAreaDescChart=PASO %s: Crear o comprobar el contenido de su plan general contable desde el menú %s
AccountancyAreaDescBank=PASO %s: Verificar la unión entre cuentas bancarias y sus cuentas contables. Completar las consolidaciones que faltan. Esto le ahorrará tiempo en el futuro en los próximos pasos en los que sugiere la cuenta contable predeterminada correcta en sus líneas de pago.<br>Para ello, vaya a la ficha de cada cuenta financiera. Puede empezar en la página %s.
AccountancyAreaDescVat=PASO %s: Verificar la unión entre los IVAs y sus cuentas contables. Completar las consolidaciones que faltan. Esto le ahorrará tiempo en el futuro en los próximos pasos en los que sugiere la cuenta contable predeterminada correcta en los registros relacionados con el pago del IVA.<br>Puede configurar las cuentas contables a usar en cada IVA en la página %s.
AccountancyAreaDescSal=PASO %s: Verificar la unión entre los salarios y sus cuentas contables. Completar las consolidaciones que faltan. Esto le ahorrará tiempo en el futuro en los próximos pasos en los que sugiere la cuenta contable predeterminada correcta en los registros relacionados con el pago de salarios.<br>Para ello se puede utilizar el menú %s.
AccountancyAreaDescContrib=PASO %s: Verificar la unión entre los gastos especiales (impuestos varios) y sus cuentas contables. Completar las consolidaciones que faltan. Esto le ahorrará tiempo en el futuro en los próximos pasos por los que sugiere la cuenta contable predeterminada correcta en los registros relacionados con los pagos de impuestos. <br> Para ello puede utilizar el menú %s.
AccountancyAreaDescDonation=PASO %s: Verificar la unión entre donaciones y sus cuentas contables. Completar las consolidaciones que faltan. Esto le ahorrará tiempo en el futuro en los próximos pasos en los que sugiere la cuenta contable predeterminada correcta en los registros relacionados con los pagos de donaciones.<br>Puede configurar las cuentas desde el menú %s.
AccountancyAreaDescMisc=PASO %s: Compruebe la unión entre las líneas de las diversas transacciones y sus cuentas contables. Completar las consolidaciones que faltan.<br>Para ello puede utilizar el menú %s.
AccountancyAreaDescProd=PASO %s: Verificar la unión entre los productos/servicios y sus cuentas contables. Completar las consolidaciones que falten. Esto le ahorrará tiempo en el futuro en los próximos pasos en los que sugiere la cuenta contable predeterminada correcta en sus líneas de factura.<br>Para ello puede utilizar el menú %s.
AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done. Complete missing bindings. Once binding is complete, application will be able to record transactions in General Ledger in one click.<br>For this you can use the menu entry %s.
AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done. Complete missing bindings. Once binding is complete, application will be able to record transactions in General Ledger in one click.<br>For this you can use the menu entry %s.
AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. Add or edit existing transactions and generate reports
AccountancyAreaDescCustomer=PASO %s: Verificar la unión entre líneas de facturas a clientes y sus cuentas contables. Completar las consolidaciones que faltan. Una vez que la unión es completada, la aplicación será capaz de generar las transacciones del diario en el Libro Mayor en un solo clic. <br> Para ello puede utilizar el menú %s.
AccountancyAreaDescSupplier=PASO %s: Verificar la unión entre líneas de facturas de proveedores y sus cuentas contables. Completar las consolidaciones que faltan. Una vez que la unión es completada, la aplicación será capaz de generar las transacciones del diario en el Libro Mayor en un solo clic. <br> Para ello puede utilizar el menú %s.
AccountancyAreaDescWriteRecords=PASO %s: Escribir las transacciones en el Libro Mayor. Para ello, entre en cada diario, y haga clic en el botón de "Generar transacciones en el Libro Mayor".
AccountancyAreaDescAnalyze=PASO %s: Añadir o editar transacciones existentes, generar informes y exportaciones.
Selectchartofaccounts=Seleccione un plan contable
AccountancyAreaDescClosePeriod=PASO %s: Cerrar periodo, por lo que no podrá hacer modificaciones en un futuro.
MenuAccountancy=Contabilidad
Selectchartofaccounts=Seleccione un plan contable activo
ChangeAndLoad=Cambiar y cargar
Addanaccount=Añadir una cuenta contable
AccountAccounting=Cuenta contable
AccountAccountingShort=Cuenta
AccountAccountingSuggest=Accounting account suggest
Ventilation=Binding to accounts
ProductsBinding=Products bindings
MenuAccountancy=Contabilidad
CustomersVentilation=Customer invoice binding
SuppliersVentilation=Supplier invoice binding
Reports=Informes
NewAccount=Nueva cuenta contable
Create=Crear
CreateMvts=Create new transaction
UpdateMvts=Modification of a transaction
WriteBookKeeping=Record operations in General Ledger
MenuDefaultAccounts=Cuentas contables por defecto
MenuProductsAccounts=Cuentas contables de productos
ProductsBinding=Cuentas de productos
Ventilation=Contabilizar
CustomersVentilation=Contabilizar facturas a clientes
SuppliersVentilation=Contabilizar facturas de proveedores
CreateMvts=Crear nuevo movimiento
UpdateMvts=Modificar transacción
WriteBookKeeping=Registrar movimientos en el Libro Mayor
Bookkeeping=Libro Mayor
AccountBalance=Saldo de la cuenta
CAHTF=Total purchase supplier before tax
InvoiceLines=Lines of invoices to bind
InvoiceLinesDone=Bound lines of invoices
IntoAccount=Bind line with the accounting account
Ventilate=Bind
InvoiceLines=Líneas de facturas a contabilizar
InvoiceLinesDone=Líneas de facturas contabilizadas
IntoAccount=Contabilizar línea con la cuenta contable
Ventilate=Contabilizar
LineId=Id línea
Processing=Tratamiento
EndProcessing=Final del tratamiento
AnyLineVentilate=Any lines to bind
EndProcessing=Proceso terminado.
SelectedLines=Líneas seleccionadas
Lineofinvoice=Línea de la factura
VentilatedinAccount=Binded successfully to the accounting account
NotVentilatedinAccount=Not bound to the accounting account
XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
XLineFailedToBeBinded=%s products/services were not bound to any accounting account
NoAccountSelected=No se ha seleccionado cuenta contable
VentilatedinAccount=Contabilizada con éxito en la cuenta contable
NotVentilatedinAccount=Cuenta sin contabilización en la contabilidad
XLineSuccessfullyBinded=%s productos/servicios unidos a una cuenta contable.
XLineFailedToBeBinded=%s productos/servicios sin cuenta contable
ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements
ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements
ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos a contabilizar que se muestran por página (máximo recomendado: 50)
ACCOUNTING_LIST_SORT_VENTILATION_TODO=Ordenar las páginas de contabilización "A contabilizar" por los elementos más recientes
ACCOUNTING_LIST_SORT_VENTILATION_DONE=Ordenar las páginas de contabilización "Contabilizadas" por los elementos más recientes
ACCOUNTING_LENGTH_DESCRIPTION=Longitud para la visualización de productos y servicios en los listados (Ideal = 50)
ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Longitud para la visualización de la descripción de productos y servicios en los listados (Ideal = 50)
ACCOUNTING_LENGTH_DESCRIPTION=Longitud para la visualización de la descripción de productos y servicios en los listados (Ideal = 50)
ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Longitud para la visualización de la descripción de la cuenta de productos y servicios en los listados (Ideal = 50)
ACCOUNTING_LENGTH_GACCOUNT=Longitud de las cuentas generales
ACCOUNTING_LENGTH_AACCOUNT=Longitud de las subcuentas
ACCOUNTING_MANAGE_ZERO=Administrar el cero al final de una cuenta contable. Necesaria por algunos países. Desactivada por defecto. Tener cuidado con la función "longitud de las cuentas".
BANK_DISABLE_DIRECT_INPUT=Desactivar entrada libre de transacciones bancarias (Activadas por defecto con este módulo)
ACCOUNTING_MANAGE_ZERO=Gestiona el cero al final de una cuenta contable. Necesario en algunos países. Desactivada por defecto. Si está activada, también debe establecer los siguientes dos parámetros (o será ignorada)
BANK_DISABLE_DIRECT_INPUT=Desactivar transacciones directas en cuenta bancaria
ACCOUNTING_SELL_JOURNAL=Diario de ventas
ACCOUNTING_PURCHASE_JOURNAL=Diario de compras
@ -101,62 +108,60 @@ Labelcompte=Descripción
Sens=Sentido
Codejournal=Diario
NumPiece=Apunte
TransactionNumShort=Núm. transacción
AccountingCategory=Categoría contable
GroupByAccountAccounting=Agrupar por cuenta contable
NotMatch=No establecido
DeleteMvt=Eliminar líneas del Libro Mayor
DelYear=Año a eliminar
DelJournal=Diario a eliminar
ConfirmDeleteMvt=Esto borrará todas las líneas del libro de mayor del año y/o de los diarios específicos
ConfirmDeleteMvt=Esto eliminará todas las lineas del Libro Mayor del año y/o de un diario específico. Se requiere al menos un criterio.
ConfirmDeleteMvtPartial=Esto borrará todas las líneas seleccionadas del libro de mayor
DelBookKeeping=Eliminar los registros del Diario Mayor
DescSellsJournal=Diario de ventas
DescPurchasesJournal=Diario de compras
FinanceJournal=Diario financiero
DescFinanceJournal=El diario financiero incluye todos los tipos de pagos por cuenta bancaria
DescJournalOnlyBindedVisible=This is a view of records that are bound to products/services accountancy account and can be recorded into the General Ledger.
VATAccountNotDefined=Account for VAT not defined
ThirdpartyAccountNotDefined=Account for third party not defined
ProductAccountNotDefined=Account for product not defined
BankAccountNotDefined=Account for bank not defined
DescJournalOnlyBindedVisible=Esta es una vista de registros que están vinculados a una cuenta contable de productos/servicios y pueden ser registrados en el Libro Mayor.
VATAccountNotDefined=Cuenta contable para IVA no definida
ThirdpartyAccountNotDefined=Cuenta contable de tercero no definida
ProductAccountNotDefined=Cuenta contable de producto no definida
BankAccountNotDefined=Cuenta contable bancaria no definida
CustomerInvoicePayment=Cobro de factura a cliente
ThirdPartyAccount=Cuenta de tercero
NewAccountingMvt=New transaction
NumMvts=Numero of transaction
ListeMvts=List of movements
NewAccountingMvt=Nuevo movimiento
NumMvts=Número de movimiento
ListeMvts=Listado de movimientos
ErrorDebitCredit=Debe y Haber no pueden contener un valor al mismo tiempo
ReportThirdParty=List third party account
DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
ReportThirdParty=Listado de cuentas de terceros
DescThirdPartyReport=Consulte aquí el listado de clientes y proveedores y sus códigos contables
ListAccounts=Listado de cuentas contables
Pcgtype=Tipo del plan
Pcgsubtype=Subcuenta
Accountparent=Padre de la cuenta
TotalVente=Total facturación antes de impuestos
TotalMarge=Total margen ventas
DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account
DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account
DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account
ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account:
DescVentilCustomer=Consulte aquí la lista de líneas de facturas a clientes enlazadas (o no) a una cuenta contable de producto
DescVentilMore=En la mayoría de los casos, si utiliza productos o servicios predefinidos y establece la cuenta contable en la ficha del producto/servicio, la aplicación será capaz de hacer toda la contabilización entre las líneas de la factura y la cuenta contable de su plan general contable, con un clic en el botón <strong>"%s"</strong>, Si no se ha establecido la cuenta contable en la ficha del producto/servicio o si todavía tiene algunas líneas no contabilizadas a alguna cuenta, tendrá que hacer una contabilización manual desde el menú "<strong>%s</strong>".
DescVentilDoneCustomer=Consulte aquí las líneas de facturas a clientes y las cuentas contables de sus productos
DescVentilTodoCustomer=Contabilizar líneas de factura aún no contabilizadas con una cuenta contable de producto
ChangeAccount=Cambie la cuenta del producto/servicio para las líneas seleccionadas a la cuenta:
Vide=-
DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account
DescVentilDoneSupplier=Consult here the list of the lines of invoices supplier and their accounting account
DescVentilSupplier=Consulte aquí la lista de líneas de facturas de proveedores enlazadas (o no) a una cuenta contable de producto
DescVentilDoneSupplier=Consulte aquí la lista de facturas de proveedores y sus cuentas contables
ValidateHistory=Vincular automáticamente
AutomaticBindingDone=Vinculación automática finalizada
ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada
MvtNotCorrectlyBalanced=Movimiento descuadrado. Debe = %s. Haber = %s
FicheVentilation=Binding card
GeneralLedgerIsWritten=Operations are written in the general ledger
GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded.
NoNewRecordSaved=No new record saved
ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account
ChangeBinding=Change the binding
FicheVentilation=Ficha contable
GeneralLedgerIsWritten=Transacciones escritas en el libro mayor
GeneralLedgerSomeRecordWasNotRecorded=Algunas de las operaciones que no podrán registrarse.
NoNewRecordSaved=No se guardaron nuevos registros
ListOfProductsWithoutAccountingAccount=Listado de productos sin cuentas contables
ChangeBinding=Cambiar la unión
## Admin
ApplyMassCategories=Aplicar categorías en masa
@ -178,7 +183,8 @@ Modelcsv_cogilog=Eportar a Cogilog
## Tools - Init accounting account on product / service
InitAccountancy=Iniciar contabilidad
InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accountancy account defined for sales and purchases. Check before that setup of chart of accounts is complete.
InitAccountancyDesc=Puede usar esta página para inicializar el código contable en productos y servicios que no tienen código contable definido para ventas y compras
DefaultBindingDesc=Esta página puede usarse para establecer una cuenta predeterminada que se utilizará para enlazar registros de salarios, donaciones, impuestos e IVA cuando no tengan establecida una cuenta contable.
Options=Opciones
OptionModeProductSell=Modo ventas
OptionModeProductBuy=Modo compras
@ -193,12 +199,11 @@ Calculated=Calculado
Formula=Fórmula
## Error
ErrorNoAccountingCategoryForThisCountry=Sin categorías contables para este país
ErrorNoAccountingCategoryForThisCountry=Sin categorías contables para %s (Vea Inicio - Configuración - Diccionarios)
ExportNotSupported=El formato de exportación configurado no es soportado en esta página
BookeppingLineAlreayExists=Lineas ya existentes en la contabilidad
Binded=Lines bound
ToBind=Lines to bind
WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version.
Binded=Líneas contabilizadas
ToBind=Líneas a contabilizar
WarningReportNotReliable=Advertencia, este informe no se basa en el libro mayor, por lo que no es fiable aún. Se sustituirá por un informe correcto en una próxima versión.

View File

@ -22,7 +22,7 @@ SessionId=ID sesión
SessionSaveHandler=Modalidad de salvaguardado de sesiones
SessionSavePath=Localización salvaguardado de sesiones
PurgeSessions=Purga de sesiones
ConfirmPurgeSessions=¿Está seguro de querer purgar todas las sesiones? Desconectará a todos los usuarios (excepto a si mismo)
ConfirmPurgeSessions=¿Realmente desea purgar todas las sesiones? Esto desconectará todos los usuarios (excepto a si mismo).
NoSessionListWithThisHandler=El gestor de período de sesiones configurado en su PHP no enumera las sesiones en curso
LockNewSessions=Bloquear nuevas conexiones
ConfirmLockNewSessions=¿Está seguro de querer restringir el acceso a Dolibarr a su usuario? Solamente el login <b>%s</b> podrá conectarse si confirma.
@ -53,8 +53,6 @@ ErrorModuleRequireDolibarrVersion=Error, este módulo requiere una versión %s o
ErrorDecimalLargerThanAreForbidden=Error, las precisiones superiores a <b>%s</b> no están soportadas.
DictionarySetup=Diccionarios
Dictionary=Diccionarios
Chartofaccounts=Plan contable
Fiscalyear=Año fiscal
ErrorReservedTypeSystemSystemAuto=El uso del tipo 'system' y 'systemauto' está reservado. Puede utilizar 'user' como valor para añadir su propio registro
ErrorCodeCantContainZero=El código no puede contener el valor 0
DisableJavascript=Deshabilitar Javascript y funciones Ajax (Recomendado para personas ciegas o navegadores de texto)
@ -64,7 +62,7 @@ DelaiedFullListToSelectCompany=Esperar a que presione una tecla antes de cargar
DelaiedFullListToSelectContact=Esperar a que presione una tecla antes de cargar el contenido de la lista combinada de contactos (Esto puede incrementar el rendimiento si tiene un gran número de contactos)
NumberOfKeyToSearch=Nº de caracteres para desencadenar la búsqueda: %s
NotAvailableWhenAjaxDisabled=No disponible cuando Ajax esté desactivado
AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
AllowToSelectProjectFromOtherCompany=En un documento de un tercero, puede elegir un proyecto vinculado a otro tercero
JavascriptDisabled=Javascript desactivado
UsePreviewTabs=Ver fichas "vista previa"
ShowPreview=Ver vista previa
@ -143,7 +141,7 @@ PurgeRunNow=Purgar
PurgeNothingToDelete=Sin directorios o archivos a eliminar.
PurgeNDirectoriesDeleted=<b>%s</b> archivos o directorios eliminados
PurgeAuditEvents=Purgar los eventos de seguridad
ConfirmPurgeAuditEvents=¿Está seguro de querer purgar la lista de los eventos de auditoría de seguridad (Se borrará toda la lista, pero esto no afecta a sus datos)?
ConfirmPurgeAuditEvents=¿Está seguro de que desea purgar todos los eventos de seguridad? Se eliminarán todos los registros de seguridad, no se eliminarán datos.
GenerateBackup=Generar copia de seguridad
Backup=Copia de seguridad
Restore=Restauración
@ -178,10 +176,10 @@ ExtendedInsert=Instrucciones INSERT extendidas
NoLockBeforeInsert=Sin instrucción LOCK antes del INSERT
DelayedInsert=Inserciones con retraso
EncodeBinariesInHexa=Codificar los campos binarios en hexadecimal
IgnoreDuplicateRecords=Ignorar los errores de duplicación (INSERT IGNORE)
IgnoreDuplicateRecords=Ignorar los errores por registro duplicado (INSERT IGNORE)
AutoDetectLang=Autodetección (navegador)
FeatureDisabledInDemo=Opción deshabilitada en demo
FeatureAvailableOnlyOnStable=Feature only available on official stable versions
FeatureAvailableOnlyOnStable=Funcionaliad disponible únicamente en versiones oficiales estables
Rights=Permisos
BoxesDesc=Los paneles son componentes que muestran algunos datos que pueden añadirse para personalizar algunas páginas. Puede elegir entre mostrar o no el panel mediante la selección de la página de destino y haciendo clic en 'Activar', o haciendo clic en la papelera para desactivarlo.
OnlyActiveElementsAreShown=Sólo los elementos de <a href="%s">módulos activados</a> son mostrados.
@ -244,6 +242,9 @@ MAIN_MAIL_EMAIL_STARTTLS= Uso de encriptación TLS (STARTTLS)
MAIN_DISABLE_ALL_SMS=Desactivar globalmente todo envío de SMS (para modo de pruebas o demo)
MAIN_SMS_SENDMODE=Método de envío de SMS
MAIN_MAIL_SMS_FROM=Número de teléfono por defecto para los envíos SMS
MAIN_MAIL_DEFAULT_FROMTYPE=Remitente de e-mails para envíos manuales (e-mail del usuario o e-mail de la empresa)
UserEmail=e-mail de usuario
CompanyEmail=e-mail de empresa
FeatureNotAvailableOnLinux=Funcionalidad no disponible en sistemas Unix. Pruebe su sendmail localmente.
SubmitTranslation=Si la traducción de este idioma no está completa o si encuentra errores, puede corregir esto editando los archivos en el directorio <b>langs/%s</b> y enviar su cambio a www.transifex.com/dolibarr-association/dolibarr/
SubmitTranslationENUS=Si la traducción de este idioma es incompleta o si encuentra errores, puede corregirlos mediante la edición de los archivos en el directorio <b>langs/%s</b> y el envío los cambios al foro www.dolibarr.es o a los desarrolladores en github.com/Dolibarr/dolibarr.
@ -282,7 +283,7 @@ LastStableVersion=Última versión estable
LastActivationDate=Última fecha de activación
UpdateServerOffline=Actualizar servidor offline
GenericMaskCodes=Puede introducir cualquier máscara numérica. En esta máscara, puede utilizar las siguientes etiquetas:<br><b>{000000} </b> corresponde a un número que se incrementa en cada uno de %s. Introduzca tantos ceros como longitud desee mostrar. El contador se completará a partir de ceros por la izquierda con el fin de tener tantos ceros como la máscara. <br> <b> {000000+000}</ b> Igual que el anterior, con una compensación correspondiente al número a la derecha del signo + se aplica a partir del primer %s. <br> <b> {000000@x}</b> igual que el anterior, pero el contador se restablece a cero cuando se llega a x meses (x entre 1 y 12). Si esta opción se utiliza y x es de 2 o superior, entonces la secuencia {yy}{mm} o {yyyy}{mm} también es necesaria. <br> <b> {dd} </b> días (01 a 31). <br><b> {mm}</b> mes (01 a 12). <br><b>{yy}</b>, <b>{yyyy}</b> ou <b>{y}</b> año en 2, 4 ó 1 cifra.<br>
GenericMaskCodes2=<b>{cccc}</b> the client code on n characters<br><b>{cccc000}</b> the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.<br><b>{tttt}</b> The code of third party type on n characters (see dictionary-thirdparty types).<br>
GenericMaskCodes2=<b>{cccc}</b> código de cliente con n caracteres<br><b>{cccc000}</b> código de cliente con n caracteres es seguido por un contador dedicado a clientes. Este contador dedicado a clientes se reseteará al mismo tiempo que el contador global.<br><b>{tttt}</b> El código del tipo de empresa con n caracteres (vea diccionarios->tipos de empresa).<br>
GenericMaskCodes3=Cualquier otro carácter en la máscara se quedará sin cambios. <br>No se permiten espacios <br>
GenericMaskCodes4a=<u>Ejemplo en la 99 ª %s del tercero La Empresa realizada el 31/03/2007: </u><br>
GenericMaskCodes4b=<u>Ejemplo sobre un tercero creado el 31/03/2007:</u><br>
@ -397,7 +398,7 @@ EnableAndSetupModuleCron=Si desea tener esta factura recurrente para generarla a
ModuleCompanyCodeAquarium=Devuelve un código contable compuesto de<br>%s seguido del código tercero de proveedor para el código contable de proveedor,<br>%s seguido del código tercero de cliente para el código contable de cliente.
ModuleCompanyCodePanicum=Devuelve un código contable vacío.
ModuleCompanyCodeDigitaria=Devuelve un código contable compuesto siguiendo el código de tercero. El código está formado por carácter ' C ' en primera posición seguido de los 5 primeros caracteres del código tercero.
Use3StepsApproval=Por defecto los pedidos a proveedor necesitan crearse y aprobarse por dos usuarios diferentes (un paso/usuario para crear y un usuario/paso para aprobar. Si un usuario dispone de permisos para crear y aprobar, un paso/usuario podría ser suficiente). Puede consultar esta opción un tercer paso/usuario de aprobación si el importe es mayor a un valor dedicado (entonces serán necesarios 3 pasos: 1=validación, 2=primera aprobación, 3=segunda aprobación si el importe es mayor)<br>Dejar vacío si una aprobación (2 pasos) es suficiente, indicar un valor bajo (0.1) si siempre es necesaria una segunda aprobación
Use3StepsApproval=De forma predeterminada, los pedidos a proveedor deben ser creados y aprobados por 2 usuarios diferentes (un paso/usuario para crear y un paso/usuario para aprobar. Tenga en cuenta que si el usuario tiene tanto el permiso para crear y aprobar, un paso usuario será suficiente) . Puede pedir con esta opción introducir una tercera etapa de aprobación/usuario, si la cantidad es superior a un valor específico (por lo que serán necesarios 3 pasos: 1 validación, 2=primera aprobación y 3=segunda aprobación si la cantidad es suficiente).<br>Deje vacío si una aprobación (2 pasos) es suficiente, si se establece en un valor muy bajo (0,1) se requiere siempre una segunda aprobación.
UseDoubleApproval=Usar 3 pasos de aprobación si el importe (sin IVA) es mayor que...
# Modules
@ -482,7 +483,7 @@ Module510Desc=Gestión de contratos de empleados, salarios y pagos
Module520Name=Crédito
Module520Desc=Gestión de créditos
Module600Name=Notificaciones
Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails
Module600Desc=Enviar notificaciones por e-mail (desencadenados por algunos eventos) a los usuarios (configuración definida para cada usuario), los contactos de terceros (configuración definida en cada tercero) o e-mails fijos
Module700Name=Donaciones
Module700Desc=Gestión de donaciones
Module770Name=Informes de gastos
@ -758,7 +759,7 @@ Permission1236=Exportar facturas de proveedores, atributos y pagos
Permission1237=Exportar pedidos de proveedores junto con sus detalles
Permission1251=Lanzar las importaciones en masa a la base de datos (carga de datos)
Permission1321=Exportar facturas a clientes, atributos y cobros
Permission1322=Reopen a paid bill
Permission1322=Reabrir una factura pagada
Permission1421=Exportar pedidos de clientes y atributos
Permission20001=Leer peticiones días retribuidos (suyos y subordinados)
Permission20002=Cear/modificar sus días retribuidos
@ -869,7 +870,7 @@ LabelUsedByDefault=Etiqueta que se utilizará si no se encuentra traducción par
LabelOnDocuments=Etiqueta sobre documentos
NbOfDays=Nº de días
AtEndOfMonth=A fin de mes
CurrentNext=Current/Next
CurrentNext=Actual/Siguiente
Offset=Decálogo
AlwaysActive=Siempre activo
Upgrade=Actualización
@ -1107,7 +1108,6 @@ CompanyIdProfChecker=Reglas sobre los ID profesionales
MustBeUnique=¿Debe ser único?
MustBeMandatory=¿Obligatorio para crear terceros?
MustBeInvoiceMandatory=¿Obligatorio para validar facturas?
Miscellaneous=Miscelánea
##### Webcal setup #####
WebCalUrlForVCalExport=Un vínculo de exportación del calendario en formato <b>%s</b> estará disponible en la url: %s
##### Invoices #####
@ -1318,7 +1318,7 @@ ProductServiceSetup=Configuración de los módulos Productos y Servicios
NumberOfProductShowInSelect=Nº de productos máx. en las listas (0=sin límite)
ViewProductDescInFormAbility=Visualización de las descripciones de los productos en los formularios
MergePropalProductCard=Activar en el producto/servicio la pestaña Documentos una opción para fusionar documentos PDF de productos al presupuesto PDF azur si el producto/servicio se encuentra en el presupuesto
ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
ViewProductDescInThirdpartyLanguageAbility=Visualización de las descripciones de productos en el idioma del tercero
UseSearchToSelectProductTooltip=También si usted tiene una gran cantidad de producto (> 100 000), puede aumentar la velocidad mediante el establecimiento PRODUCT_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena.
UseSearchToSelectProduct=Utilice un formulario de búsqueda para elegir un producto (en lugar de una lista desplegable).
SetDefaultBarcodeTypeProducts=Tipo de código de barras utilizado por defecto para los productos
@ -1427,7 +1427,7 @@ DetailTarget=Comportamiento del enlace (_blank para abrir una nueva ventana)
DetailLevel=Nivel (-1:menú superior, 0:principal, >0 menú y submenú)
ModifMenu=Modificación del menú
DeleteMenu=Eliminar entrada de menú
ConfirmDeleteMenu=Está seguro de querer eliminar la entrada de menú <b>%s</b> ?
ConfirmDeleteMenu=¿Está seguro de querer eliminar la entrada de menú <b>%s</b>?
FailedToInitializeMenu=Error al inicialiar el menú
##### Tax #####
TaxSetup=Configuración del módulo impuestos sociales o fiscales
@ -1524,14 +1524,14 @@ TaskModelModule=Módulo de documentos informes de tareas
UseSearchToSelectProject=Utilice los campos de autocompletar para seleccionar proyectos (en lugar de utilizar un cuadro de lista).
##### ECM (GED) #####
##### Fiscal Year #####
FiscalYears=Años fiscales
FiscalYearCard=Ficha Año fiscal
AccountingPeriods=Periodos contables
AccountingPeriodCard=Periodo contable
NewFiscalYear=Nuevo año fiscal
OpenFiscalYear=Abrir año fiscal
CloseFiscalYear=Cerrar año fiscal
DeleteFiscalYear=Eliminar año fiscal
ConfirmDeleteFiscalYear=¿Está seguro de querer eliminar este año fiscal?
ShowFiscalYear=Mostrar año fiscal
ShowFiscalYear=Ver periodo contable
AlwaysEditable=Puede editarse siempre
MAIN_APPLICATION_TITLE=Forzar visibilidad del nombre de aplicación (advertencia: indicar su propio nombre aquí puede romper la característica de relleno automático de inicio de sesión al utilizar la aplicación móvil DoliDroid)
NbMajMin=Número mínimo de caracteres en mayúsculas
@ -1552,7 +1552,7 @@ ListOfNotificationsPerUser=Listado de notificaciones por usuario*
ListOfNotificationsPerUserOrContact=Listado de notificaciones por usuario* o por contacto**
ListOfFixedNotifications=Listado de notificaciones fijas
GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para añadir o elliminar notificaciones a usuarios
GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
GoOntoContactCardToAddMore=Vaya a la pestaña "Notificaciones" de un contacto de tercero para añadir o eliminar notificaciones para contactos/direcciones
Threshold=Valor mínimo/umbral
BackupDumpWizard=Asistente para crear una copia de seguridad de la base de datos
SomethingMakeInstallFromWebNotPossible=No es posible la instalación de módulos externos desde la interfaz web por la siguiente razón:
@ -1596,7 +1596,7 @@ MailToSendIntervention=Para enviar intervención
MailToSendSupplierRequestForQuotation=Para enviar solicitud de presupuesto de proveedor
MailToSendSupplierOrder=Para enviar pedido a proveedor
MailToSendSupplierInvoice=Para enviar factura de proveedor
MailToThirdparty=To send email from third party page
MailToThirdparty=Para enviar e-mail desde la página del tercero
ByDefaultInList=Mostrar por defecto en modo lista
YouUseLastStableVersion=Debe usar la última versión estable
TitleExampleForMajorRelease=Ejemplo de mensaje que puede usar para anunciar esta release mayor (no dude en usarlo en sus sitios web)
@ -1628,7 +1628,7 @@ ListOfAvailableAPIs=Listado de APIs disponibles
activateModuleDependNotSatisfied=El módulo "%s" depende del módulo "%s" que falta, por lo que el módulo "%1$s" puede no funcionar correctamente. Instale el módulo "%2$s" o desactive el módulo "%1$s" si no quiere sorpresas
CommandIsNotInsideAllowedCommands=El comando que intenta ejecutar no se encuentra en el listado de comandos permitidos en el parámetro<strong> $dolibarr_main_restrict_os_commands</strong> en el archivo <strong>conf.php</strong>.
LandingPage=Landing page
SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
SamePriceAlsoForSharedCompanies=Si se utiliza un módulo multi-empresa, con la opción "precio único", el precio será el mismo para todas las empresas si los productos son compartidos entre ellas
ModuleEnabledAdminMustCheckRights=El módulo ha sido activado. Los permisos para los módulos activados se dan solamente a los usuarios administradores. Deberá otorgar permisos manualmente a otros usuarios si es necesario.
UserHasNoPermissions=Este usuario no tiene permisos definidos
TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
TypeCdr=Use "Ninguno" si la fecha del plazo de pago es la fecha de factura más un delta en días (delta es el campo "Nº de días")<br>Use "A final de mes", si, después del delta, la fecha debe aumentarse para llegar al final del mes (+ opcional "Offset" en días)<br>Use "Actual/Siguiente" para tener la fecha del plazo de pago sea el primer N de cada mes (N se almacena en el campo "Nº de días")

View File

@ -3,7 +3,6 @@ IdAgenda=ID de evento
Actions=Eventos
Agenda=Agenda
Agendas=Agendas
Calendar=Calendario
LocalAgenda=Calendario interno
ActionsOwnedBy=Acontecimiento asignado a
ActionsOwnedByShort=Propietario
@ -34,11 +33,27 @@ AgendaAutoActionDesc= Defina aquí los eventos que desea que Dolibarr cree autom
AgendaSetupOtherDesc= Esta página le permite configurar algunas opciones que permiten exportar una vista de su agenda Dolibar a un calendario externo (thunderbird, google calendar, ...)
AgendaExtSitesDesc=Esta página le permite configurar calendarios externos para su visualización en la agenda de Dolibarr.
ActionsEvents=Eventos para que Dolibarr cree un evento en la agenda de forma automática
##### Agenda event labels #####
NewCompanyToDolibarr=Tercero %s creado
ContractValidatedInDolibarr=Contrato %s validado
PropalClosedSignedInDolibarr=Presupuesto %s firmado
PropalClosedRefusedInDolibarr=Presupuesto %s rechazado
PropalValidatedInDolibarr=Presupuesto %s validado
PropalClassifiedBilledInDolibarr=Presupuesto %s clasificado facturado
InvoiceValidatedInDolibarr=Factura %s validada
InvoiceValidatedInDolibarrFromPos=Factura %s validada desde TPV
InvoiceBackToDraftInDolibarr=Factura %s devuelta a borrador
InvoiceDeleteDolibarr=Factura %s eliminada
InvoicePaidInDolibarr=Factura %s pasada a pagada
InvoiceCanceledInDolibarr=Factura %s cancelada
MemberValidatedInDolibarr=Miembro %s validado
MemberResiliatedInDolibarr=Miembro %s terminado
MemberDeletedInDolibarr=Miembro %s eliminado
MemberSubscriptionAddedInDolibarr=Subscripción del miembro %s añadida
ShipmentValidatedInDolibarr=Expedición %s validada
ShipmentClassifyClosedInDolibarr=Expedición %s clasificada como facturada
ShipmentUnClassifyCloseddInDolibarr=Expedición %s clasificada como reabierta
ShipmentDeletedInDolibarr=Expedición %s eliminada
OrderValidatedInDolibarr=Pedido %s validado
OrderDeliveredInDolibarr=Pedido %s clasificado como enviado
OrderCanceledInDolibarr=Pedido %s anulado
@ -57,9 +72,9 @@ InterventionSentByEMail=Intervención %s enviada por e-mail
ProposalDeleted=Presupuesto eliminado
OrderDeleted=Pedido eliminado
InvoiceDeleted=Factura eliminada
NewCompanyToDolibarr= Tercero creado
DateActionStart= Fecha de inicio
DateActionEnd= Fecha finalización
##### End agenda events #####
DateActionStart=Fecha de inicio
DateActionEnd=Fecha finalización
AgendaUrlOptions1=Puede también añadir estos parámetros al filtro de salida:
AgendaUrlOptions2=<b>login=%s</b> para restringir inserciones a acciones creadas o asignadas al usuario <b>%s</b>.
AgendaUrlOptions3=<b>logina=%s</b> para restringir inserciones a acciones creadas por el usuario <b>%s</b>.
@ -86,7 +101,7 @@ MyAvailability=Mi disponibilidad
ActionType=Tipo de evento
DateActionBegin=Fecha de inicio del evento
CloneAction=Clonar evento
ConfirmCloneEvent=¿Está seguro de querer clonar el evento <b>%s</b> ?
ConfirmCloneEvent=¿Esta seguro de querer clonar el evento <b>%s</b>?
RepeatEvent=Repetir evento
EveryWeek=Cada semana
EveryMonth=Cada mes

View File

@ -41,7 +41,7 @@ BankAccountOwner=Nombre del titular de la cuenta
BankAccountOwnerAddress=Dirección del titular de la cuenta
RIBControlError=El dígito de control indica que la información de esta cuenta bancaria es incompleta o incorrecta.
CreateAccount=Crear cuenta
NewAccount=Nueva cuenta
NewBankAccount=Nueva cuenta
NewFinancialAccount=Nueva cuenta financiera
MenuNewFinancialAccount=Nueva cuenta
EditFinancialAccount=Edición cuenta
@ -84,8 +84,8 @@ AddBankRecordLong=Realizar un registro manual fuera de una factura
ConciliatedBy=Conciliado por
DateConciliating=Fecha conciliación
BankLineConciliated=Registro conciliado
Reconciled=Reconciled
NotReconciled=Not reconciled
Reconciled=Reconciliado
NotReconciled=No reconciliado
CustomerInvoicePayment=Cobro a cliente
SupplierInvoicePayment=Pago a proveedor
SubscriptionPayment=Pago cuota
@ -94,7 +94,7 @@ SocialContributionPayment=Pago impuesto social/fiscal
BankTransfer=Transferencia bancaria
BankTransfers=Transferencias bancarias
MenuBankInternalTransfer=Transferencia interna
TransferDesc=Transferir de una cuenta a otra, Dolibarr escribirá dos registros (uno de débito en la cuenta de origen y uno de crédito en la cuenta destino con el mismo importe, etiqueta y fecha para dicha transancción)
TransferDesc=Al crear una transferencia de una de sus cuentas bancarias hacia otra, Dolibarr crea dos registros contables (uno de débito en una cuenta y otro de crédito, del mismo importe, en la otra cuenta. Se utiliza para los dos registros la misma etiqueta de transferencia y la misma fecha)
TransferFrom=De
TransferTo=Hacia
TransferFromToDone=La transferencia de <b>%s</b> hacia <b>%s</b> de <b>%s</b> %s se ha creado.
@ -129,7 +129,7 @@ FutureTransaction=Transacción futura. No es posible conciliar.
SelectChequeTransactionAndGenerate=Seleccione/filtre los cheques a incluir en la remesa y haga clic en "Crear".
InputReceiptNumber=Indique el extracto bancario relacionado con la conciliación. Utilice un valor numérico ordenable: YYYYMM o YYYYMMDD
EventualyAddCategory=Eventualmente, indique una categoría en la que clasificar los registros
ToConciliate=To reconcile ?
ToConciliate=¿A conciliar?
ThenCheckLinesAndConciliate=A continuación, compruebe las líneas presentes en el extracto bancario y haga clic
DefaultRIB=Cuenta bancaria por defecto
AllRIB=Todas las cuentas bancarias
@ -144,4 +144,4 @@ CheckRejected=Cheque devuelto
CheckRejectedAndInvoicesReopened=Cheque devuelto y facturas reabiertas
BankAccountModelModule=Modelos de documentos para cuentas bancarias
DocumentModelSepaMandate=Plantilla de mandato SEPA, usable únicamente para paises miembros de la UEE
DocumentModelBan=Template to print a page with BAN information.
DocumentModelBan=Plantilla para imprimir una página con la información IBAN.

View File

@ -157,13 +157,13 @@ CustomersDraftInvoices=Facturas a clientes borrador
SuppliersDraftInvoices=Facturas de proveedores borrador
Unpaid=Pendientes
ConfirmDeleteBill=¿Está seguro de querer eliminar esta factura?
ConfirmValidateBill=¿Está seguro de querer validar esta factura con la referencia <b>%s</b> ?
ConfirmUnvalidateBill=¿Está seguro de querer devolver la factura <b>%s</b> al estado borrador?
ConfirmClassifyPaidBill=¿Esta seguro de querer clasificar la factura <b>%s</b> como pagada?
ConfirmCancelBill=¿Está seguro de querer anular la factura <b>%s</b> ?
ConfirmCancelBillQuestion=¿Por qué razón quiere abandonar la factura?
ConfirmClassifyPaidPartially=¿Está seguro de querer clasificar la factura <b>%s</b> como pagada?
ConfirmClassifyPaidPartiallyQuestion=Esta factura no ha sido totalmente pagada. ¿Por qué quiere clasificarla como pagada?
ConfirmValidateBill=¿Está seguro de querer validar esta factura con referencia <b>%s</b>?
ConfirmUnvalidateBill=¿Está seguro de querer cambiar el estado de la factura <b>%s</b> a borrador?
ConfirmClassifyPaidBill=¿Está seguro de querer cambiar el estado de la factura <b>%s</b> a pagado?
ConfirmCancelBill=¿Está seguro de querer anular la factura <b>%s</b>?
ConfirmCancelBillQuestion=¿Porqué quiere clasificar esta factura como 'abandonada'?
ConfirmClassifyPaidPartially=¿Está seguro de querer cambiar el estado de la factura <b>%s</b> a pagado?
ConfirmClassifyPaidPartiallyQuestion=Esta factura no ha sido pagado completamente. ¿Cual es la razón para cerrar esta factura?
ConfirmClassifyPaidPartiallyReasonAvoir=El resto a pagar <b>(%s %s)</b> es un descuento otorgado por pronto pago. Regularizaré el IVA con un abono.
ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El resto a pagar <b>(%s %s)</b> es un descuento otorgado por pronto pago. Acepto perder el IVA en este descuento.
ConfirmClassifyPaidPartiallyReasonDiscountVat=El resto a pagar <b>(%s %s)</b> es un descuento otorgado por pronto pago. Recuperaré el IVA sin usar un abono.
@ -178,9 +178,9 @@ ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Esta elección es posible
ConfirmClassifyPaidPartiallyReasonOtherDesc=Esta elección será posible, por ejemplo, en los casos siguiente:<br>-pago parcial ya que una partida de productos se ha devuleto.<br>- reclamado por no entregar productos de la factura <br>En todos los casos, la reclamación debe regularizarse mediante un abono
ConfirmClassifyAbandonReasonOther=Otro
ConfirmClassifyAbandonReasonOtherDesc=Esta elección será para cualquier otro caso. Por ejemplo a raíz de la intención de crear una factura rectificativa.
ConfirmCustomerPayment=¿Confirma el proceso de este pago de <b>%s</b> %s ?
ConfirmSupplierPayment=¿Confirma el proceso de este pago de <b>%s</b> %s ?
ConfirmValidatePayment=¿Está seguro de querer validar este pago (ninguna modificación es posible una vez el pago esté validado)?
ConfirmCustomerPayment=¿Confirma el proceso de este pago de <b>%s</b> %s?
ConfirmSupplierPayment=¿Confirma el proceso de este pago de <b>%s</b> %s?
ConfirmValidatePayment=¿Está seguro de querer validar este pago? No se permiten cambios después de validar el pago.
ValidateBill=Validar factura
UnvalidateBill=Devolver factura a borrador
NumberOfBills=Nº de facturas
@ -269,7 +269,7 @@ Deposits=Anticipos
DiscountFromCreditNote=Descuento resultante del abono %s
DiscountFromDeposit=Pagos de la factura de anticipo %s
AbsoluteDiscountUse=Este tipo de descuento no puede ser utilizado en una factura antes de su validación
CreditNoteDepositUse=La factura debe de estar validada para poder utilizar este tipo de créditos
CreditNoteDepositUse=La factura debe ser validada para usar este tipo de crédito.
NewGlobalDiscount=Nuevo descuento fijo
NewRelativeDiscount=Nuevo descuento
NoteReason=Nota/Motivo
@ -295,15 +295,15 @@ RemoveDiscount=Eliminar descuento
WatermarkOnDraftBill=Marca de agua en facturas borrador (nada si está vacía)
InvoiceNotChecked=Ninguna factura está seleccionada
CloneInvoice=Clonar factura
ConfirmCloneInvoice=¿Está seguro de querer clonar esta factura?
ConfirmCloneInvoice=¿Está seguro de querer clonar esta factura <b>%s</b>?
DisabledBecauseReplacedInvoice=Acción desactivada porque es una factura reemplazada
DescTaxAndDividendsArea=Este área muestra un resumen de todos los pagos realizados en gastos especiales. Solamente se incluyen los registros del año seleccionado.
NbOfPayments=Nº de pagos
SplitDiscount=Dividir el dto. en dos
ConfirmSplitDiscount=¿Está seguro de querer dividir el descuento de <b>%s</b> %s en 2 descuentos más pequeños?
ConfirmSplitDiscount=¿Está seguro de querer dividir este descuento de <b>%s</b> %s en 2 descuentos menores?
TypeAmountOfEachNewDiscount=Indique el importe para cada parte:
TotalOfTwoDiscountMustEqualsOriginal=La suma del importe de los 2 nuevos descuentos debe de ser la misma que el importa del descuento a dividir.
ConfirmRemoveDiscount=¿Está seguro de querer eliminar este descuento?
ConfirmRemoveDiscount=¿Está seguro de querer borrar este descuento?
RelatedBill=Factura asociada
RelatedBills=Facturas asociadas
RelatedCustomerInvoices=Facturas a clientes asociadas
@ -381,7 +381,7 @@ ExtraInfos=Informaciones complementarias
RegulatedOn=Pagar el
ChequeNumber=Cheque nº
ChequeOrTransferNumber=Cheque/Transferencia nº
ChequeBordereau=Comprobar
ChequeBordereau=Comprobar agenda
ChequeMaker=Transmisor Cheque/Transferencia
ChequeBank=Banco del cheque
CheckBank=Verificar
@ -437,8 +437,8 @@ ToMakePaymentBack=Reembolsar
ListOfYourUnpaidInvoices=Listado de facturas impagadas
NoteListOfYourUnpaidInvoices=Nota: Este listado incluye solamente los terceros de los que usted es comercial.
RevenueStamp=Timbre fiscal
YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
YouMustCreateInvoiceFromThird=Esta opción solo está disponible al crear una factura desde la pestaña 'cliente' en terceros
YouMustCreateInvoiceFromSupplierThird=Esta opción solo está disponible al crear una factura desde la pestaña 'proveedor' en terceros
YouMustCreateStandardInvoiceFirstDesc=Tiene que crear una factura estandar antes de convertirla a "plantilla" para crear una nueva plantilla de factura
PDFCrabeDescription=Modelo de factura completo (modelo recomendado por defecto)
PDFCrevetteDescription=Modelo PDF de factura Crevette. Un completo modelo de facturas de situación
@ -481,5 +481,5 @@ ToCreateARecurringInvoice=Para crear una factura recurrente para este contrato,
ToCreateARecurringInvoiceGene=Para generar las facturas futuras regularmente y manualmente, vaya al menú <strong>%s - %s - %s</strong>.
ToCreateARecurringInvoiceGeneAuto=Si necesita generar facturas automáticamente, dígale a su administrador que active y configure el módulo <strong>%s</strong>. Tenga en cuenta que los dos métodos (manual y automático) pueden usarse conjuntamente sin ningún riesgo de duplicación.
DeleteRepeatableInvoice=Eliminar plantilla de factura
ConfirmDeleteRepeatableInvoice=¿Está seguro de querer eliminar esta plantilla de factura?
ConfirmDeleteRepeatableInvoice=¿Está seguro de querer borrar la plantilla para facturas?

View File

@ -30,7 +30,7 @@ BoxTitleLastSupplierBills=Últimas %s facturas de proveedores
BoxTitleLastModifiedProspects=Últimos %s presupuestos modificados
BoxTitleLastModifiedMembers=Últimos %s miembros
BoxTitleLastFicheInter=Últimas %s intervenciones modificadas
BoxTitleOldestUnpaidCustomerBills=Las %s facturas a clientes más antiguras pendientes de cobro
BoxTitleOldestUnpaidCustomerBills=Las %s facturas a clientes más antiguas pendientes de cobro
BoxTitleOldestUnpaidSupplierBills=Las %s facturas de proveedores más antiguas pendientes de pago
BoxTitleCurrentAccounts=Balance de cuentas abiertas
BoxTitleLastModifiedContacts=Últimos %s contactos/direcciones modificados

View File

@ -34,7 +34,7 @@ CompanyIsInSuppliersCategories=Este tercero se encuentra en las siguientes etiqu
MemberIsInCategories=Este miembro se encuentra en las siguientes etiquetas/categorías
ContactIsInCategories=Este contacto se encuentra en las siguientes etiquetas/categorías de contactos
ProductHasNoCategory=Este producto/servicio no se encuentra en ninguna etiqueta/categoría en particular
CompanyHasNoCategory=This third party is not in any tags/categories
CompanyHasNoCategory=Este tercero no se encuentra en ninguna etiqueta/categoría
MemberHasNoCategory=Este miembro no se encuentra en ninguna etiqueta/categoría en particular
ContactHasNoCategory=Este contacto no se encuentra en ninguna etiqueta/categoría
ProjectHasNoCategory=Este proyecto no se encuentra en ninguna etiqueta/categoría

View File

@ -2,9 +2,9 @@
ErrorCompanyNameAlreadyExists=El nombre de la empresa %s ya existe. Indique otro.
ErrorSetACountryFirst=Defina en primer lugar el país
SelectThirdParty=Seleccionar un tercero
ConfirmDeleteCompany=¿Está seguro de querer eliminar esta empresa y toda la información dependiente?
ConfirmDeleteCompany=¿Está seguro de querer eliminar esta empresa y toda su información inherente?
DeleteContact=Eliminar un contacto
ConfirmDeleteContact=¿Está seguro de querer eliminar este contacto y toda su información inherente?
ConfirmDeleteContact=¿Está seguro de querer eliminar este contacto y toda la información dependiente?
MenuNewThirdParty=Nuevo tercero
MenuNewCustomer=Nuevo cliente
MenuNewProspect=Nuevo cliente potencial
@ -14,7 +14,7 @@ NewCompany=Nueva empresa (cliente potencial, cliente, proveedor)
NewThirdParty=Nuevo tercero (cliente potencial, cliente, proveedor)
CreateDolibarrThirdPartySupplier=Crear un tercero (proveedor)
CreateThirdPartyOnly=Crear tercero
CreateThirdPartyAndContact=Create a third party + a child contact
CreateThirdPartyAndContact=Crear un tercero + un contacto
ProspectionArea=Área de prospección
IdThirdParty=ID tercero
IdCompany=Id empresa
@ -40,7 +40,7 @@ ThirdPartySuppliers=Proveedores
ThirdPartyType=Tipo de tercero
Company/Fundation=Empresa/asociación
Individual=Particular
ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
ToCreateContactWithSameName=Creará automáticamente un contacto físico con la misma información. en la mayoría de casos. En la mayoría de los casos, incluso si el tercero es una persona física, la creación de un tercero por sí solo es suficiente.
ParentCompany=Sede central
Subsidiaries=Filiales
ReportByCustomers=Informe por cliente
@ -75,7 +75,7 @@ Poste= Puesto
DefaultLang=Idioma por defecto
VATIsUsed=Sujeto a IVA
VATIsNotUsed=No sujeto a IVA
CopyAddressFromSoc=Fill address with third party address
CopyAddressFromSoc=Copiar dirección de la empresa
ThirdpartyNotCustomerNotSupplierSoNoRef=Tercero que no es cliente ni proveedor, sin objetos referenciados
##### Local Taxes #####
LocalTax1IsUsed=Usar segunda tasa
@ -287,7 +287,7 @@ CompanyDeleted=La empresa "%s" ha sido eliminada
ListOfContacts=Listado de contactos
ListOfContactsAddresses=Listado de contactos/direcciones
ListOfThirdParties=Listado de terceros
ShowCompany=Show third party
ShowCompany=Mostrar tercero
ShowContact=Mostrar contacto
ContactsAllShort=Todos (sin filtro)
ContactType=Tipo de contacto
@ -398,4 +398,4 @@ SaleRepresentativeLogin=Inicio de sesión del comercial
SaleRepresentativeFirstname=Nombre del comercial
SaleRepresentativeLastname=Apellidos del comercial
ErrorThirdpartiesMerge=Se produjo un error al eliminar los terceros. Por favor, compruebe el log. Los cambios han sido anulados.
NewCustomerSupplierCodeProposed=New customer or supplier code suggested on duplicate code
NewCustomerSupplierCodeProposed=El código de cliente o proveedor sugerido se encuentra duplicado

View File

@ -91,7 +91,7 @@ SupplierAccountancyCode=Código contable proveedor
CustomerAccountancyCodeShort=Cód. cuenta cliente
SupplierAccountancyCodeShort=Cód. cuenta proveedor
AccountNumber=Número de cuenta
NewAccount=Nueva cuenta
NewAccountingAccount=Nueva cuenta
SalesTurnover=Volumen de ventas
SalesTurnoverMinimum=Volumen de ventas mínimo
ByExpenseIncome=Por gastos e ingresos
@ -169,7 +169,7 @@ InvoiceRef=Ref. factura
CodeNotDef=No definido
WarningDepositsNotIncluded=Las facturas de anticipo aún no están incluidas en esta versión en el módulo de contabilidad.
DatePaymentTermCantBeLowerThanObjectDate=La fecha límite de pago no puede ser inferior a la fecha del objeto
Pcg_version=Versión del plan
Pcg_version=Modelos de planes contables
Pcg_type=Tipo de cuenta
Pcg_subtype=Subtipo de cuenta
InvoiceLinesToDispatch=Líneas de facturas a contabilizar
@ -186,7 +186,7 @@ CalculationMode=Modo de cálculo
AccountancyJournal=Código contable diario
ACCOUNTING_VAT_SOLD_ACCOUNT=Código contable por defecto para el IVA repercutido (IVA de ventas)
ACCOUNTING_VAT_BUY_ACCOUNT=Código contable por defecto para el IVA soportado (IVA de compras)
ACCOUNTING_VAT_PAY_ACCOUNT=Código contable por defecto para el IVA soportado
ACCOUNTING_VAT_PAY_ACCOUNT=Código contable por defecto para el pago de IVA
ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta contable por defecto para clientes
ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable por defecto para proveedores
CloneTax=Clonar una tasa social/fiscal
@ -202,3 +202,4 @@ LinkedFichinter=Enlazar a una intervención
ImportDataset_tax_contrib=Importe impuestos sociales/fiscales
ImportDataset_tax_vat=Importe pagos IVA
ErrorBankAccountNotFound=Error: No se encuentra la cuenta bancaria
FiscalPeriod=Periodo contable

View File

@ -33,12 +33,12 @@ AddContract=Crear contrato
DeleteAContract=Eliminar un contrato
CloseAContract=Cerrar un contrato
ConfirmDeleteAContract=¿Está seguro de querer eliminar este contrato?
ConfirmValidateContract=¿Está seguro de querer validar este contrato bajo la referencia <b>%s</b> ?
ConfirmCloseContract=¿Está seguro de querer cerrar este contrato?
ConfirmCloseService=¿Está seguro de querer cerrar este servicio?
ConfirmValidateContract=¿Está seguro de querer validar este contrato bajo la referencia <b>%s</b>?
ConfirmCloseContract=Esto cerrará todos los servicios (activos o no) ¿Está seguro de querer cerrar este contrato?
ConfirmCloseService=¿Está seguro de querer cerrar este servicio en fecha <b>%s</b>?
ValidateAContract=Validar un contrato
ActivateService=Activar el servicio
ConfirmActivateService=¿Está seguro de querer activar este servicio en fecha %s?
ConfirmActivateService=¿Está seguro de querer activar este servicio en fecha <b>%s</b>?
RefContract=Ref. contrato
DateContract=Fecha contrato
DateServiceActivate=Fecha activación del servicio

View File

@ -10,7 +10,7 @@ SetDeliveryDate=Indicar la fecha de entrega
ValidateDeliveryReceipt=Validar la nota de entrega
ValidateDeliveryReceiptConfirm=¿Está seguro de que desea validar esta entrega?
DeleteDeliveryReceipt=Eliminar la nota de entrega
DeleteDeliveryReceiptConfirm=¿Está seguro de querer eliminar esta nota de entrega?
DeleteDeliveryReceiptConfirm=¿Está seguro de querer eliminar la nota de entrega <b>%s</b>?
DeliveryMethod=Método de envío
TrackingNumber=Nº de seguimiento
DeliveryNotValidated=Nota de recepción no validada

View File

@ -6,7 +6,7 @@ Donor=Donante
AddDonation=Crear una donación
NewDonation=Nueva donación
DeleteADonation=Eliminar una donación
ConfirmDeleteADonation=¿Está seguro de querer eliminar esta donación?
ConfirmDeleteADonation=¿Esta seguro de querer eliminar esta donación?
ShowDonation=Mostrar donación
PublicDonation=Donación pública
DonationsArea=Área de donaciones

View File

@ -41,4 +41,3 @@ CannotRemoveDirectoryContainsFiles=No se puede eliminar porque contiene archivos
ECMFileManager=Explorador de archivos
ECMSelectASection=Seleccione un directorio en el árbol de la izquierda
DirNotSynchronizedSyncFirst=Este directorio fue creado o modificado fuera del módulo GED. Haga clic en el botón "Actualizar" para resincronizar la información del disco y la base de datos para ver el contenido de ese directorio.

View File

@ -129,7 +129,7 @@ ErrorPHPNeedModule=Error, su PHP debe tener instalado el módulo <b>%s</b> para
ErrorOpenIDSetupNotComplete=Ha configurado Dolibarr para aceptar la autentificación OpenID, pero la URL del servicio OpenID no se encuentra definida en la constante %s
ErrorWarehouseMustDiffers=El almacén de origen y destino deben de ser diferentes
ErrorBadFormat=¡El formato es erróneo!
ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, este miembro aún no está enlazado a un tercero. Enlace el miembro a un tercero existente o cree un tercero nuevo antes de crear la suscripción con la factura.
ErrorThereIsSomeDeliveries=Error, hay entregas vinculadas a este envío. No se puede eliminar.
ErrorCantDeletePaymentReconciliated=No se puede eliminar un pago que ha generado una transacción bancaria que se encuentra conciliada
ErrorCantDeletePaymentSharedWithPayedInvoice=No se puede eliminar un pago de varias factura con alguna factura con estado Pagada
@ -176,6 +176,7 @@ ErrorStockIsNotEnoughToAddProductOnShipment=No hay stock suficiente del producto
ErrorStockIsNotEnoughToAddProductOnProposal=No hay stock suficiente del producto %s para añadirlo a un nuevo presupuesto.
ErrorFailedToLoadLoginFileForMode=No se puede obtener el archivo de login para el modo '%s'.
ErrorModuleNotFound=No se ha encontrado el archivo del módulo.
ErrorFieldAccountNotDefinedForBankLine=Valor para la cuenta contable no definida para la línea bancaria origen %s
# Warnings
WarningPasswordSetWithNoAccount=Se fijó una contraseña para este miembro. Sin embargo, no se ha creado ninguna cuenta de usuario. Así que esta contraseña no se puede utilizar para acceder a Dolibarr. Puede ser utilizada por un módulo/interfaz externo, pero si no necesitar definir accesos de un miembro, puede desactivar la opción "Administrar un inicio de sesión para cada miembro" en la configuración del módulo miembros. Si necesita administrar un inicio de sesión, pero no necesita ninguna contraseña, puede dejar este campo vacío para evitar esta advertencia. Nota: También puede usarse el correo electrónico como inicio de sesión si el miembro está vinculada a un usuario.

View File

@ -26,8 +26,6 @@ FieldTitle=Título campo
NowClickToGenerateToBuildExportFile=Ahora, seleccione el formato de exportación de la lista desplegable y haga clic en "Generar" para generar el archivo exportación...
AvailableFormats=Formatos disponibles
LibraryShort=Librería
LibraryUsed=Librería utilizada
LibraryVersion=Versión
Step=Paso
FormatedImport=Asistente de importación
FormatedImportDesc1=Esta área permite realizar importaciones personalizadas de datos mediante un ayudante que evita tener conocimientos técnicos de Dolibarr.

View File

@ -11,7 +11,7 @@ TypeOfSupport=Tipo de soporte
TypeSupportCommunauty=Comunitario (gratuito)
TypeSupportCommercial=Comercial
TypeOfHelp=Tipo
NeedHelpCenter=¿Necesita soporte o ayuda?
NeedHelpCenter=¿Necesita ayuda o soporte?
Efficiency=Eficacia
TypeHelpOnly=Sólamente ayuda
TypeHelpDev=Ayuda+Desarrollo

View File

@ -100,4 +100,4 @@ HolidaysCanceled=Días libres retribuidos cancelados
HolidaysCanceledBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido cancelada.
FollowedByACounter=1: Este tipo de día retribuido necesita ser seguido por un contador. El contador se incrementa de forma manual o automáticamente y cuando se valida una solicitud, el contador disminuye.<br> 0: No es seguido por un contador.
NoLeaveWithCounterDefined=No hay ningún tipo de peticiones definidas que deben ser seguidas por un contador
GoIntoDictionaryHolidayTypes=Vaya a <strong>Inicoi - Configuración - Diccionarios - Tipos de vacaciones </strong> para configurar los diferentes tipos.
GoIntoDictionaryHolidayTypes=Vaya a <strong>Inicio - Configuración - Diccionarios - Tipos de vacaciones </strong> para configurar los diferentes tipos.

View File

@ -62,7 +62,6 @@ KeepEmptyIfNoPassword=Deje vacío si el usuario no tiene contraseña
SaveConfigurationFile=Grabación del archivo de configuración
ServerConnection=Conexión al servidor
DatabaseCreation=Creación de la base de datos
UserCreation=Creación del usuario
CreateDatabaseObjects=Creación de los objetos de la base de datos
ReferenceDataLoading=Carga de los datos de referencia
TablesAndPrimaryKeysCreation=Creación de las tablas y los índices
@ -133,7 +132,7 @@ MigrationFinished=Actualización terminada
LastStepDesc=<strong>Último paso</strong>: Indique aquí la cuenta y la contraseña del primer usuario que usted utilizará para conectarse a la aplicación. No pierda estos identificadores, es la cuenta que permite administrar el resto.
ActivateModule=Activación del módulo %s
ShowEditTechnicalParameters=Pulse aquí para ver/editar los parámetros técnicos (modo experto)
WarningUpgrade=Advertencia: \n¿Ha realizado una copia de seguridad de su base de datos antes? \nEsto es altamente recomendado: por ejemplo, debido a algunos errores en los sistemas de bases de datos (por ejemplo MySQL versión 5.5.40/41/42/43), algunos datos o tablas pueden perderse durante este proceso, por lo que es altamente recomendado tener un volcado completo de la base de datos antes de iniciar la actualización.\n\nHaga clic en Aceptar para iniciar el proceso de actualización...
WarningUpgrade=Advertencia: \\n¿Ha realizado una copia de seguridad de su base de datos antes? \\nEsto es altamente recomendado: por ejemplo, debido a algunos errores en los sistemas de bases de datos (por ejemplo MySQL versión 5.5.40/41/42/43), algunos datos o tablas pueden perderse durante este proceso, por lo que es altamente recomendado tener un volcado completo de la base de datos antes de iniciar la actualización.\\n\\nHaga clic en Aceptar para iniciar el proceso de actualización...
ErrorDatabaseVersionForbiddenForMigration=Su versión de base de datos es la %s. Tiene un error crítico que hace que pierda los datos si cambia la estructura de la base de datos, como esto es necesario para el proceso de actualización, este no se va a realizar hasta que actualice su base de datos a una versión mayor con el error subsanado (listado de versiones conocidas con este error: %s)
KeepDefaultValuesWamp=Está utilizando el asistente de instalación DoliWamp, los valores propuestos aquí están optimizados. Cambielos solamente si está seguro de ello.
KeepDefaultValuesDeb=Está utilizando el asistente de instalación Dolibarr de un paquete Linux (Ubuntu, Debian, Fedora...), los valores propuestos aquí están optimizados. Sólo será necesaria la contraseña del propietario de la base de datos a crear. Cambie la otra información sólamente si está seguro de ello.

View File

@ -18,8 +18,8 @@ CloneIntervention=Cerrar intervención
ConfirmDeleteIntervention=¿Está seguro de querer eliminar esta intervención?
ConfirmValidateIntervention=¿Está seguro de querer validar esta intervención bajo la referencia <b>%s</b>?
ConfirmModifyIntervention=¿Está seguro de querer modificar esta intervención?
ConfirmDeleteInterventionLine=¿Está seguro de querer eliminar esta linea?
ConfirmCloneIntervention=¿Está seguro de querer cerrar esta intervención?
ConfirmDeleteInterventionLine==¿Está seguro de querer eliminar esta linea?
ConfirmCloneIntervention=¿Está seguro de querer clonar esta intervención?
NameAndSignatureOfInternalContact=Nombre y firma del participante:
NameAndSignatureOfExternalContact=Nombre y firma del cliente:
DocumentModelStandard=Documento modelo estándar para intervenciones

View File

@ -1,3 +1,4 @@
# Dolibarr language file - Source file is en_US - languages
LinkANewFile=Vincular un nuevo archivo/documento
LinkedFiles=Archivos y documentos vinculados
NoLinkFound=Sin enlaces registrados

View File

@ -90,7 +90,7 @@ SendMailing=Enviar E-Mailing
SendMail=Enviar e-mail
MailingNeedCommand=Por razones de seguridad, el envío de un E-Mailing en masa debe realizarse en línea de comandos. Pida a su administrador que lance el comando siguiente para para enviar la correspondencia a a todos los destinatarios:
MailingNeedCommand2=Puede enviar en línea añadiendo el parámetro MAILING_LIMIT_SENDBYWEB con un valor numérico que indica el máximo nº de e-mails a enviar por sesión. Para ello vaya a Inicio - Configuración - Varios.
ConfirmSendingEmailing=¿Confirma el envío del e-mailing?
ConfirmSendingEmailing=Si no puede o prefiere enviarlos con su navegador, por favor confirme que está seguro de que desea enviar emailing desde su navegador
LimitSendingEmailing=Nota: El envío de e-mailings desde la interfaz web se realiza en tandas por razones de seguridad y timeouts, se enviarán a <b>%s</b> destinatarios por tanda.
TargetsReset=Vaciar lista
ToClearAllRecipientsClickHere=Para vaciar la lista de los destinatarios de este E-Mailing, haga click en el botón
@ -128,7 +128,7 @@ AdvTgtMaxVal=Valor máxio
AdvTgtSearchDtHelp=Use un intervalo para seleccionar una fecha
AdvTgtStartDt=Fecha inicio
AdvTgtEndDt=Fecha fin
AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third party email or just contact email
AdvTgtTypeOfIncudeHelp=Destinatario el e-mail del tercero y el e-mail del contacto del tercero, o solamente el e-mail del tercero o el e-mail del contacto
AdvTgtTypeOfIncude=Tipo de e-mail destinatario
AdvTgtContactHelp=Usar solamente si ha escogido contacto en "Tipo de e-mail destinatario"
AddAll=Añadir todo

View File

@ -28,6 +28,7 @@ NoTemplateDefined=Sin plantilla definida para este tipo de e-mail
AvailableVariables=Variables de substitución disponibles
NoTranslation=Sin traducción
NoRecordFound=No se han encontrado registros
NoRecordDeleted=No se ha eliminado el registro
NotEnoughDataYet=No hay suficientes datos
NoError=Ningún error
Error=Error
@ -69,6 +70,7 @@ SeeHere=Vea aquí
BackgroundColorByDefault=Color de fondo
FileRenamed=El archivo ha sido renombrado correctamente
FileUploaded=El archivo se ha subido correctamente
FileGenerated=el archivo ha sido generado correctamente
FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo" para ello.
NbOfEntries=Nº de entradas
GoToWikiHelpPage=Leer la ayuda en línea (es necesario acceso a Internet )
@ -228,7 +230,7 @@ DateReference=Fecha de referencia
DateStart=Fecha de inicio
DateEnd=Fecha de fin
DateCreation=Fecha de creación
DateCreationShort=Crear fecha
DateCreationShort=Fecha creación
DateModification=Fecha de modificación
DateModificationShort=Fecha modif.
DateLastModification=Fecha última modificación
@ -572,8 +574,9 @@ BackToList=Volver al listado
GoBack=Volver atrás
CanBeModifiedIfOk=Puede modificarse si es valido
CanBeModifiedIfKo=Puede modificarse si no es valido
ValueIsValid=Value is valid
ValueIsNotValid=Value is not valid
ValueIsValid=Valor válido
ValueIsNotValid=Valor no válido
RecordCreatedSuccessfully=Registro creado correctamente
RecordModifiedSuccessfully=Registro modificado con éxito
RecordsModified=%s registros modificados
RecordsDeleted=%s registros eliminados
@ -716,6 +719,7 @@ DeleteLine=Eliminación de línea
ConfirmDeleteLine=¿Está seguro de querer eliminar esta línea?
NoPDFAvailableForDocGenAmongChecked=Sin PDF disponibles para la generación de documentos entre los registros seleccionados
TooManyRecordForMassAction=Demasiados registros seleccionardos para la acción masiva. La acción está restringida a un listado de %s registros.
NoRecordSelected=No se han seleccionado registros
MassFilesArea=Área de archivos generados por acciones masivas
ShowTempMassFilesArea=Mostrar área de archivos generados por acciones masivas
RelatedObjects=Objetos relacionados
@ -725,6 +729,14 @@ ClickHere=Haga clic aquí
FrontOffice=Front office
BackOffice=Back office
View=Ver
Export=Exportar
Exports=Exportaciones
ExportFilteredList=Listado filtrado de exportación
ExportList=Listado de exportación
Miscellaneous=Miscelánea
Calendar=Calendario
GroupBy=Agrupado por...
ViewFlatList=Ver lista plana
# Week day
Monday=Lunes
Tuesday=Martes
@ -756,7 +768,7 @@ ShortSaturday=S
ShortSunday=D
SelectMailModel=Seleccione una plantilla de e-mail
SetRef=Establecer ref
Select2ResultFoundUseArrows=
Select2ResultFoundUseArrows=Varios resultados encontrados. Use las flechas para seleccionar.
Select2NotFound=No se han encontrado registros
Select2Enter=Introducir
Select2MoreCharacter=o más caracteres

View File

@ -29,7 +29,7 @@ MenuMembersToValidate=Miembros borrador
MenuMembersValidated=Miembros validados
MenuMembersUpToDate=Miembros al día
MenuMembersNotUpToDate=Miembros no al día
MenuMembersResiliated=Miembros dados de baja
MenuMembersResiliated=Miembros de baja
MembersWithSubscriptionToReceive=Miembros a la espera de recibir afiliación
DateSubscription=Fecha afiliación
DateEndSubscription=Fecha fin afiliación
@ -49,10 +49,10 @@ MemberStatusActiveLate=Afiliación no al día
MemberStatusActiveLateShort=No al día
MemberStatusPaid=Afiliación al día
MemberStatusPaidShort=Al día
MemberStatusResiliated=Miembro dado de baja
MemberStatusResiliated=Miembro de baja
MemberStatusResiliatedShort=De baja
MembersStatusToValid=Miembros borrador
MembersStatusResiliated=Miembros dados de baja
MembersStatusResiliated=Miembros de baja
NewCotisation=Nueva afiliación
PaymentSubscription=Pago de cuotas
SubscriptionEndDate=Fecha fin afiliación
@ -152,7 +152,6 @@ MenuMembersStats=Estadísticas
LastMemberDate=Fecha último miembro
Nature=Naturaleza
Public=Información pública
Exports=Exportaciones
NewMemberbyWeb=Nuevo miembro añadido. En espera de validación
NewMemberForm=Formulario de inscripción
SubscriptionsStatistics=Estadísticas de cotizaciones

View File

@ -1,7 +1,7 @@
# Dolibarr language file - Source file is en_US - oauth
ConfigOAuth=Configuración Oauth
OAuthServices=OAuth services
ManualTokenGeneration=Manual token generation
OAuthServices=Servicios OAuth
ManualTokenGeneration=Generación manual de token
NoAccessToken=No hay token de acceso guardado en la base de datos local
HasAccessToken=Se ha generado y guardado en la base de datos local un token
NewTokenStored=Token recibido y guardado
@ -11,16 +11,15 @@ RequestAccess=Haga clic aquí para consultar/renovar acceso y recibir un nuevo t
DeleteAccess=Haga clic aquí para eliminar el token
UseTheFollowingUrlAsRedirectURI=Utilice la siguiente dirección URL como redireccionamiento URI al crear su credencial de su proveedor OAuth:
ListOfSupportedOauthProviders=Indique aquí la credencial proporcionada por su proveedor de OAuth2. Sólo son mostrados los proveedores OAuth2 soportados. Esta configuración puede ser usada por otros módulos que requieren autenticación OAuth2.
TOKEN_ACCESS=
TOKEN_REFRESH=Token Refresh Present
TOKEN_EXPIRED=Token expired
TOKEN_EXPIRE_AT=Token expire at
TOKEN_DELETE=Delete saved token
OAUTH_GOOGLE_NAME=Oauth Google service
OAUTH_GOOGLE_ID=Oauth Google Id
TOKEN_REFRESH=Refresco del token actual
TOKEN_EXPIRED=Token expirado
TOKEN_EXPIRE_AT=Token expira el
TOKEN_DELETE=Eliminar token guardado
OAUTH_GOOGLE_NAME=Servicio Oauth Google
OAUTH_GOOGLE_ID=Id Oauth Google
OAUTH_GOOGLE_SECRET=Oauth Google Secret
OAUTH_GOOGLE_DESC=Go on <a class="notasortlink" href="https://console.developers.google.com/" target="_blank">this page</a> then "Credentials" to create Oauth credentials
OAUTH_GITHUB_NAME=Oauth GitHub service
OAUTH_GITHUB_ID=Oauth GitHub Id
OAUTH_GOOGLE_DESC=Vaya a <a class="notasortlink" href="https://console.developers.google.com/" target="_blank">esta página</a> y a "Credenciales" para crear credenciales Oauth
OAUTH_GITHUB_NAME=Servicio Oauth GitHub
OAUTH_GITHUB_ID=Id Oauth Github
OAUTH_GITHUB_SECRET=Oauth GitHub Secret
OAUTH_GITHUB_DESC=Go on <a class="notasortlink" href="https://github.com/settings/developers" target="_blank">this page</a> then "Register a new application" to create Oauth credentials
OAUTH_GITHUB_DESC=Vaya a <a class="notasortlink" href="https://github.com/settings/developers" target="_blank">esta página</a> y a "Register a new application" para crear crecenciales Oauth

View File

@ -1,6 +1,5 @@
# Dolibarr language file - Source file is en_US - other
SecurityCode=Código seguridad
Calendar=Calendario
NumberingShort=Nº
Tools=Utilidades
ToolsDesc=Todas las utilidades que no están incluidas en otras entradas del menú se encuentran aquí.<br /><br />Están disponibes en el menú de la izquierda.
@ -43,7 +42,7 @@ Notify_SHIPPING_SENTBYMAIL=Envío expedición por e-mail
Notify_MEMBER_VALIDATE=Validación miembro
Notify_MEMBER_MODIFY=Miembro modificado
Notify_MEMBER_SUBSCRIPTION=Afiliación miembro
Notify_MEMBER_RESILIATE=Baja miembro
Notify_MEMBER_RESILIATE=Miembro de baja
Notify_MEMBER_DELETE=Eliminación miembro
Notify_PROJECT_CREATE=Creación de proyecto
Notify_TASK_CREATE=Tarea creada
@ -55,7 +54,6 @@ TotalSizeOfAttachedFiles=Tamaño total de los archivos/documentos adjuntos
MaxSize=Tamaño máximo
AttachANewFile=Adjuntar nuevo archivo/documento
LinkedObject=Objeto adjuntado
Miscellaneous=Miscelánea
NbOfActiveNotifications=Número de notificaciones (nº de destinatarios)
PredefinedMailTest=Esto es un correo de prueba.\nLas 2 líneas están separadas por un retorno de carro a la línea.
PredefinedMailTestHtml=Esto es un e-mail de <b>prueba</b>(la palabra prueba debe de estar en negrita).<br>Las 2 líneas están separadas por un retorno de carro en la línea
@ -201,33 +199,13 @@ IfAmountHigherThan=si el importe es mayor que <strong>%s</strong>
SourcesRepository=Repositorio de los fuentes
Chart=Gráfico
##### Calendar common #####
NewCompanyToDolibarr=Empresa %s añadida
ContractValidatedInDolibarr=Contrato %s validado
PropalClosedSignedInDolibarr=Presupuesto %s firmado
PropalClosedRefusedInDolibarr=Presupuesto %s rechazado
PropalValidatedInDolibarr=Presupuesto %s validado
PropalClassifiedBilledInDolibarr=Presupuesto %s clasificado facturado
InvoiceValidatedInDolibarr=Factura %s validada
InvoicePaidInDolibarr=Factura %s pasada a pagada
InvoiceCanceledInDolibarr=Factura %s cancelada
MemberValidatedInDolibarr=Miembro %s validado
MemberResiliatedInDolibarr=Miembro %s dado de baja
MemberDeletedInDolibarr=Miembro %s eliminado
MemberSubscriptionAddedInDolibarr=Subscripción del miembro %s añadida
ShipmentValidatedInDolibarr=Expedición %s validada
ShipmentClassifyClosedInDolibarr=Expedición %s clasificada como facturada
ShipmentUnClassifyCloseddInDolibarr=Expedición %s clasificada como reabierta
ShipmentDeletedInDolibarr=Expedición %s eliminada
##### Export #####
Export=Exportación
ExportsArea=Área de exportaciones
AvailableFormats=Formatos disponibles
LibraryUsed=Librería utilizada
LibraryVersion=Versión
LibraryVersion=Versión librería
ExportableDatas=Datos exportables
NoExportableData=No hay datos exportables (sin módulos con datos exportables cargados, o carecen de permisos)
NewExport=Nueva exportación
##### External sites #####
WebsiteSetup=Configuración del módulo website
WEBSITE_PAGEURL=URL de la página

View File

@ -20,5 +20,5 @@ AddDispatchBatchLine=Añada una línea para despacho por caducidad
WhenProductBatchModuleOnOptionAreForced=Si el módulo de Lotes/Series está activado, el incremento/decremento de stock es forzado a lo último escogido y no puede editarse. Otras opciones pueden definirse si se necesita
ProductDoesNotUseBatchSerial=Este producto no usa lotes/series
ProductLotSetup=Configuración del módulo lotes/series
ShowCurrentStockOfLot=Show current stock for couple product/lot
ShowLogOfMovementIfLot=Show log of movements for couple product/lot
ShowCurrentStockOfLot=Mostrar el stock actual de este producto/lote
ShowLogOfMovementIfLot=Ver los movimientos de stock de este producto/lote

View File

@ -199,11 +199,11 @@ PrintsheetForOneBarCode=Imprimir varias etiquetas por código de barras
BuildPageToPrint=Generar página a imprimir
FillBarCodeTypeAndValueManually=Rellenar tipo y valor del código de barras manualmente.
FillBarCodeTypeAndValueFromProduct=Rellenar tipo y valor del código de barras de un producto.
FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party.
FillBarCodeTypeAndValueFromThirdParty=Rellenar tipo y el valor del código de barras de un tercero
DefinitionOfBarCodeForProductNotComplete=Definición de tipo o valor de código de barras incompleta en el producto %s.
DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s.
DefinitionOfBarCodeForThirdpartyNotComplete=Definición de tipo o valor de código de barras incompleta en el tercero %s.
BarCodeDataForProduct=Información del código de barras del producto %s:
BarCodeDataForThirdparty=Barcode information of third party %s :
BarCodeDataForThirdparty=Información del código de barras del tercero %s:
ResetBarcodeForAllRecords=Definir códigos de barras para todos los registros (machacará los valores de códigos de barras ya registrados)
PriceByCustomer=Cambiar precios para cada cliente
PriceCatalogue=Un precio único de venta por producto/servicio

View File

@ -95,7 +95,7 @@ ConfirmValidateProject=¿Está seguro de querer validar este proyecto?
CloseAProject=Cerrar proyecto
ConfirmCloseAProject=¿Está seguro de querer cerrar este proyecto?
ReOpenAProject=Reabrir proyecto
ConfirmReOpenAProject=¿Está seguro de querer reabrir este proyecto?
ConfirmReOpenAProject=Está seguro de querer reabrir este proyecto?
ProjectContact=Contactos proyecto
ActionsOnProject=Eventos del proyecto
YouAreNotContactOfProject=Usted no es contacto de este proyecto privado
@ -123,7 +123,7 @@ ProjectReportDate=Cambiar las fechas de las tareas en función de la fecha de in
ErrorShiftTaskDate=Se ha producido un error en el cambio de las fechas de las tareas
ProjectsAndTasksLines=Proyectos y tareas
ProjectCreatedInDolibarr=Proyecto %s creado
ProjectModifiedInDolibarr=Project %s modified
ProjectModifiedInDolibarr=Proyecto %s modificado
TaskCreatedInDolibarr=La tarea %s fue creada
TaskModifiedInDolibarr=La tarea %s fue modificada
TaskDeletedInDolibarr=La tarea %s fue eliminada

View File

@ -57,7 +57,7 @@ DefaultProposalDurationValidity=Plazo de validez por defecto (en días)
UseCustomerContactAsPropalRecipientIfExist=Utilizar dirección contacto de seguimiento de cliente definido en vez de la dirección del tercero como destinatario de los presupuestos
ClonePropal=Clonar presupuesto
ConfirmClonePropal=¿Está seguro de querer clonar el presupuesto <b>%s</b>?
ConfirmReOpenProp=¿Está seguro de querer reabrir el presupuesto <b>%s</b> ?
ConfirmReOpenProp=¿Está seguro de querer reabrir el presupuesto <b>%s</b>?
ProposalsAndProposalsLines=Presupuestos a clientes y líneas de presupuestos
ProposalLine=Línea de presupuesto
AvailabilityPeriod=Tiempo de entrega

View File

@ -38,7 +38,7 @@ SmsStatusNotSent=No enviado
SmsSuccessfulySent=SMS enviado correctamente (desde %s hasta %s)
ErrorSmsRecipientIsEmpty=El número del destinatario está vacío
WarningNoSmsAdded=Sin nuevos números de teléfono a añadir a la lista de destinatarios.
ConfirmValidSms=¿Confirma la validación de esta campaña?
ConfirmValidSms=¿Confirma la eliminación de esta campaña?
NbOfUniqueSms=Nº de teléfonos únicos
NbOfSms=Nº de teléfono
ThisIsATestMessage=Este es un mensaje de prueba

View File

@ -19,7 +19,7 @@ AddSupplierProposal=Crear un presupuesto
SupplierProposalRefFourn=Ref. Proveedor
SupplierProposalDate=Fecha de entrega
SupplierProposalRefFournNotice=Antes de cerrar a "Aceptado", piense en consultar las referencias de proveedores.
ConfirmValidateAsk=¿Está seguro de querer validar este presupuesto bajo la referencia <b>%s</b> ?
ConfirmValidateAsk=¿Está seguro de querer validar este presupuesto bajo la referencia <b>%s</b>?
DeleteAsk=Eliminar presupuesto
ValidateAsk=Validar presupuesto
SupplierProposalStatusDraft=Borrador (a validar)
@ -34,12 +34,12 @@ SupplierProposalStatusNotSignedShort=Rechazado
CopyAskFrom=Crear presupuesto por copia de uno existente
CreateEmptyAsk=Crear un presupuesto en blanco
CloneAsk=Clonar presupuesto
ConfirmCloneAsk=¿Está seguro de querer clonar el presupuesto <b>%s</b> ?
ConfirmReOpenAsk=¿Está seguro de querer reabrir el presupuesto <b>%s</b> ?
ConfirmCloneAsk=¿Está seguro de querer clonar el presupuesto <b>%s</b>?
ConfirmReOpenAsk=¿Está seguro de querer reabrir el presupuesto <b>%s</b>?
SendAskByMail=Envío presupuesto por e-mail
SendAskRef=Enviando el presupuesto %s
SupplierProposalCard=Ficha presupuesto
ConfirmDeleteAsk=¿Está seguro de querer eliminar este presupuesto?
ConfirmDeleteAsk=¿Está seguro de querer eliminar este presupuesto <b>%s</b>?
ActionsOnSupplierProposal=Eventos del presupuesto
DocModelAuroreDescription=Modelo de presupuesto completo (logo...)
CommercialAsk=Presupuesto

View File

@ -24,7 +24,7 @@ ExportDataset_fournisseur_1=Facturas de proveedores y líneas de factura
ExportDataset_fournisseur_2=Facturas proveedores y pagos
ExportDataset_fournisseur_3=Pedidos de proveedores y líneas de pedido
ApproveThisOrder=Aprobar este pedido
ConfirmApproveThisOrder=¿Está seguro de querer aprobar el pedido a proveedor <b>%s</b>?
ConfirmApproveThisOrder=Está seguro de querer aprobar el pedido a proveedor <b>%s</b>?
DenyingThisOrder=Denegar este pedido
ConfirmDenyingThisOrder=¿Está seguro de querer denegar el pedido a proveedor <b>%s</b>?
ConfirmCancelThisOrder=¿Está seguro de querer cancelar el pedido a proveedor <b>%s</b>?

View File

@ -19,12 +19,12 @@ DeleteAUser=Eliminar un usuario
EnableAUser=Reactivar un usuario
DeleteGroup=Eliminar
DeleteAGroup=Eliminar un grupo
ConfirmDisableUser=¿Está seguro de querer desactivar al usuario <b>%s</b> ?
ConfirmDeleteUser=¿Está seguro de querer eliminar al usuario <b>%s</b> ?
ConfirmDeleteGroup=¿Está seguro de querer eliminar al grupo <b>%s</b> ?
ConfirmEnableUser=¿Está seguro de querer reactivar al usuario <b>%s</b> ?
ConfirmReinitPassword=¿Está seguro de querer generar una nueva contraseña al usuario <b>%s</b> ?
ConfirmSendNewPassword=¿Está seguro de querer enviar una nueva contraseña al usuario <b>%s</b> ?
ConfirmDisableUser=Está seguro de querer desactivar al usuario <b>%s</b>?
ConfirmDeleteUser=¿Está seguro de querer eliminar al usuario <b>%s</b>?
ConfirmDeleteGroup=¿Está seguro de querer eliminar al grupo <b>%s</b>?
ConfirmEnableUser=¿Está seguro de querer activar al usuario <b>%s</b>?
ConfirmReinitPassword=¿Está seguro de querer generar una nueva contraseña al usuario <b>%s</b>?
ConfirmSendNewPassword=¿Está seguro de querer generar y enviar una nueva contraseña al usuario <b>%s</b>?
NewUser=Nuevo usuario
CreateUser=Crear usuario
LoginNotDefined=El usuario no está definido

View File

@ -79,8 +79,8 @@ WithdrawMode=Modo domiciliación (FRST o RECUR)
WithdrawRequestAmount=Importe petición domiciliación:
WithdrawRequestErrorNilAmount=No es posible crear una petición de domiciliación con importe nulo
SepaMandate=Mandato SEPA
SepaMandateShort=SEPA Mandate
PleaseReturnMandate=Please return this mandate form by email to %s or by mail to
SepaMandateShort=Mandato SEPA
PleaseReturnMandate=Devuelva este formulario de mandato por e-mail a %s o por correo a
SEPALegalText=Al firmar este mandato, autoriza (A) %s a enviar instrucciones a su banco para cargar en su cuenta y (B) a su banco para cargar en su cuenta de acuerdo con las instrucciones de %s. Como parte de sus derechos, tiene derecho a una devolución en los términos y condiciones de su contrato con su banco. Una devolución debe reclamarse dentro de 8 semanas a partir de la fecha en que se hizo el cargo a su cuenta. Sus derechos con respecto al mandato anterior se explican en un comunicado que se puede obtener de su banco.
CreditorIdentifier=Identificador Acreedor
CreditorName=Nombre acreedor

View File

@ -169,7 +169,7 @@ InvoiceRef=Réf facture
CodeNotDef=Non défini
WarningDepositsNotIncluded=Les factures d'acomptes ne sont pas encore prises en compte dans cette version avec ce module de comptabilité.
DatePaymentTermCantBeLowerThanObjectDate=La date limite de règlement ne peut être inférieure à la date de l'object
Pcg_version=Version du plan
Pcg_version=Modèle de plan de compte
Pcg_type=Classe de compte
Pcg_subtype=Sous classe de compte
InvoiceLinesToDispatch=Lignes de factures à ventiler
@ -184,11 +184,11 @@ CalculationRuleDescSupplier=Selon le fournisseur, choisissez le mode approprié
TurnoverPerProductInCommitmentAccountingNotRelevant=Le chiffre d'affaires par produit, dans une comptabilité en mode <b>comptabilité de caisse</b> n'est pas définissable. Ce rapport n'est disponible qu'en mode de comptabilité dit <b>comptabilité d'engagement</b> (voir la configuration du module de comptabilité).
CalculationMode=Mode de calcul
AccountancyJournal=Code journal comptabilité
ACCOUNTING_VAT_SOLD_ACCOUNT=Code comptable par défaut pour l'encaissement de TVA (TVA sur les ventes)
ACCOUNTING_VAT_BUY_ACCOUNT=Code comptable par défaut pour le paiement de la TVA (TVA sur les achats)
ACCOUNTING_VAT_PAY_ACCOUNT=Code comptable par défaut pour le paiement de la TVA
ACCOUNTING_ACCOUNT_CUSTOMER=Code comptable par défaut des tiers clients
ACCOUNTING_ACCOUNT_SUPPLIER=Code comptable par défaut des tiers fournisseurs
ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour l'encaissement de TVA (TVA sur les ventes)
ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA (TVA sur les achats)
ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA
ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable par défaut des tiers clients
ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable par défaut des tiers fournisseurs
CloneTax=Cloner une charge sociale/fiscale
ConfirmCloneTax=Confirmez le clone du paiement de charge sociale/fiscale
CloneTaxForNextMonth=Cloner pour le mois suivant
@ -202,3 +202,4 @@ LinkedFichinter=Lié à une intervention
ImportDataset_tax_contrib=Importer les charges sociales/fiscales
ImportDataset_tax_vat=Importer les paiements de Tva
ErrorBankAccountNotFound=Erreur: compte banque non trouvé
FiscalPeriod=Période fiscale

View File

@ -70,6 +70,7 @@ SeeHere=Regardez ici
BackgroundColorByDefault=Couleur de fond
FileRenamed=Le fichier a été renommé avec succès
FileUploaded=Le fichier a été transféré avec succès
FileGenerated=Le fichier a été généré avec succès
FileWasNotUploaded=Un fichier a été sélectionné pour attachement mais n'a pas encore été uploadé. Cliquez sur "Joindre ce fichier" pour cela.
NbOfEntries=Nb d'entrées
GoToWikiHelpPage=Consulter l'aide (nécessite un accès internet)

View File

@ -1,6 +1,6 @@
# Dolibarr language file - Source file is en_US - salaries
SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Code comptable pour les paiements des salaires
SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Code comptable pour les charges de personnel
SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable par défaut pour les paiements des salaires
SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les charges de personnel
Salary=Salaire
Salaries=Salaires
NewSalaryPayment=Nouveau règlement de salaire

View File

@ -9,74 +9,81 @@ ACCOUNTING_EXPORT_DEVISE=Eksporter valuta
Selectformat=Velg filformat
ACCOUNTING_EXPORT_PREFIX_SPEC=Velg prefiks for filnavnet
AccountancySetupDoneFromAccountancyMenu=Mesteparten av regnskapet settes opp fra menyen %s
ConfigAccountingExpert=Konfigurasjon av modulen regnskapsekspert
Journalization=Journalføring
Journaux=Journaler
JournalFinancial=Finasielle journaler
BackToChartofaccounts=Returner kontotabell
Chartofaccounts=Diagram over kontoer
AccountancyArea=Accountancy area
AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year...
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
AccountancyAreaDescChart=STEP %s: Create or check your chart of account from menu %s
AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on your invoice lines.<br>For this you can use the menu entry %s.
AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on your payment lines.<br>For this, go on the card of each financial account. You can start from page %s.
AccountancyAreaDescVat=STEP %s: Check the binding between vat payment and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on records related to VAT payments.<br>You can set accounting accounts to use for each VAT from page %s.
AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on records related to payment of salaries.<br>For this you can use the menu entry %s.
AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (social or fiscal contributions) and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on records related to payments of social contributions.<br>For this you can use the menu entry %s.
AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. This will save you time in future for the next steps by suggesting you the correct default accounting account on records related to payments of donation.<br>You can set the account dedicated for that from the menu entry %s.
AccountancyArea=Område for regnskap
AccountancyAreaDescIntro=Bruk av regnskapsmodulen er gjort i flere skritt:
AccountancyAreaDescActionOnce=Følgende tiltak blir vanligvis utført en gang, eller en gang i året ...
AccountancyAreaDescActionFreq=Følgende tiltak blir vanligvis utført hver måned, uke eller dag for svært store selskaper ...
AccountancyAreaDescChartModel=TRINN %s: Lag en kontomodell fra menyen %s
AccountancyAreaDescChart=TRINN %s: Opprett eller kontroller innhold i din kontoplan fra meny %s
AccountancyAreaDescBank=TRINN %s: Sjekk at bindingen mellom bankkontoer og regnskapskontoer er gjort. Fullfør manglende bindinger. Dette vil spare deg for tid i fremtiden for de neste trinnene ved å foreslå deg riktig standard regnskapskonto på betalingslinjer. <br> For dette, gå til kortet for hver konto. Du kan starte fra side %s.
AccountancyAreaDescVat=TRINN %s: Sjekk at bindingen mellom MVA-betaling og regnskapskonto er gjort. Fullfør manglende bindinger. Dette vil spare deg for tid i fremtiden for de neste trinnene ved å foreslå deg riktig standard regnskapskonto på posten knyttet til MVA-innbetaling.<br>Du kan sette regnskapskontoer for hver MVA-sats på side %s.
AccountancyAreaDescSal=TRINN %s: Sjekk at bindingen mellom lønnsutbetaling og regnskapskonto er gjort. Fullfør manglende bindinger. Dette vil spare deg for tid i fremtiden for de neste trinnene ved å foreslå deg riktig standard regnskapskonto på posten knyttet til utbetaling av lønn.<br>Til dette kan du bruke menyoppføringen %s.
AccountancyAreaDescContrib=TRINN %s: Sjekk at bindingen mellom spesielle utgifter (diverse avgifter) og regnskapskonto er gjort. Fullfør manglende bindinger. Dette vil spare deg for tid i fremtiden for de neste trinnene ved å foreslå deg riktig standard regnskapskonto på posten knyttet til betaling av skatt.<br>Til dette kan du bruke menyoppføringen %s.
AccountancyAreaDescDonation=TRINN %s: Sjekk at bindingen mellom donasjon og regnskapskonto er gjort. Fullfør manglende bindinger. Dette vil spare deg for tid i fremtiden for de neste trinnene ved å foreslå deg riktig standard regnskapskonto på posten knyttet til utbetalinger av donasjon. <br> Du kan sette kontoen dedikert for dette fra menyoppføringen %s.
AccountancyAreaDescMisc=TRINN %s: Sjekk at standardbindingen mellom diverse transaksjonslinjer og regnskapskonto er gjort. Fullfør manglende bindinger.<br>Til dette kan du bruke menyoppføringen %s.
AccountancyAreaDescProd=TRINN %s: Sjekk at bindingen mellom varer/tjenester og regnskapskonto er gjort. Fullfør manglende bindinger. Dette vil spare deg for tid i fremtiden for de neste trinnene ved å foreslå riktig standard regnskapskonto på fakturalinjer.<br>Til dette kan du bruke menyoppføringen %s.
AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done. Complete missing bindings. Once binding is complete, application will be able to record transactions in General Ledger in one click.<br>For this you can use the menu entry %s.
AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done. Complete missing bindings. Once binding is complete, application will be able to record transactions in General Ledger in one click.<br>For this you can use the menu entry %s.
AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. Add or edit existing transactions and generate reports
AccountancyAreaDescCustomer=TRINN %s: Sjekk at bindingen mellom eksisterende kunde-fakturalinjer og regnskapskonto er gjort. Fullfør manglende bindinger. Når bindingen er fullført, vil applikasjonen kunne journalføre transaksjoner i hovedboken med ett klikk.<br>Til dette kan du bruke menyoppføringen %s.
AccountancyAreaDescSupplier=TRINN %s: Sjekk at bindingen mellom eksisterende leverandørfakturalinjer og regnskapskonto er gjort. Fullfør manglende bindinger. Når bindingen er fullført, vil applikasjonen kunne journalføre transaksjoner i hovedboken med ett klikk.<br>Til dette kan du bruke menyoppføringen %s.
AccountancyAreaDescWriteRecords=TRINN %s: Skriv transaksjoner inn i hovedboken. For å gjøre dette, kan du gå inn i hver journal, og klikk på knappen "Journalfør transaksjoner i hovedbok".
AccountancyAreaDescAnalyze=TRINN %s: Legg til eller endre eksisterende transaksjoner, generer rapporter og utfør eksport
Selectchartofaccounts=Velg kontotabell
AccountancyAreaDescClosePeriod=TRINN %s: Lukk perioden slik at ingen endringer kan bli gjort.
MenuAccountancy=Regnskap
Selectchartofaccounts=Velg kontomodell
ChangeAndLoad=Endre og last inn
Addanaccount=Legg til regnskapskonto
AccountAccounting=Regnskapskonto
AccountAccountingShort=Konto
AccountAccountingSuggest=Forslag til regnskapskonto
Ventilation=Binding to accounts
ProductsBinding=Products bindings
MenuAccountancy=Regnskap
CustomersVentilation=Customer invoice binding
SuppliersVentilation=Supplier invoice binding
Reports=Rapporter
NewAccount=Ny regnskapskonto
Create=Opprett
CreateMvts=Create new transaction
UpdateMvts=Modification of a transaction
WriteBookKeeping=Record operations in General Ledger
MenuDefaultAccounts=Standard kontoer
MenuProductsAccounts=Varekontoer
ProductsBinding=Varekontoer
Ventilation=Binding til kontoer
CustomersVentilation=Binding av kundefakturaer
SuppliersVentilation=Binding av leverandørfakturaer
CreateMvts=Opprett ny transaksjon
UpdateMvts=Endre en transaksjon
WriteBookKeeping=Journalfør transaksjoner i hovedboken
Bookkeeping=Hovedbok
AccountBalance=Kontobalanse
CAHTF=Totalt leverandørkjøp eks. MVA
InvoiceLines=Lines of invoices to bind
InvoiceLinesDone=Bound lines of invoices
IntoAccount=Bind line with the accounting account
InvoiceLines=Binding av fakturalinjer
InvoiceLinesDone=Bundne fakturalinjer
IntoAccount=Bind linje med regnskapskonto
Ventilate=Bind
LineId=ID-linje
Processing=Behandler
EndProcessing=Behandling ferdig
AnyLineVentilate=Any lines to bind
EndProcessing=Prosess terminert.
SelectedLines=Valgte linjer
Lineofinvoice=Fakturalinje
VentilatedinAccount=Binded successfully to the accounting account
NotVentilatedinAccount=Not bound to the accounting account
XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account
XLineFailedToBeBinded=%s products/services were not bound to any accounting account
NoAccountSelected=Ingen regnskapskonto valgt
VentilatedinAccount=Bundet til regnskapskontoen
NotVentilatedinAccount=Ikke bundet til regnskapskontoen
XLineSuccessfullyBinded=%s varer/tjenester bundet til en regnskapskonto
XLineFailedToBeBinded=%s varer/tjenester ble ikke bundet til en regnskapskonto
ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements
ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements
ACCOUNTING_LIMIT_LIST_VENTILATION=Antall elementer å binde vist pr. side (maksimum anbefalt er 50)
ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begynn sortering av siden "Bindinger å utføre" etter de nyeste først
ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begynn sortering av siden "Bindinger utført" etter de nyeste først
ACCOUNTING_LENGTH_DESCRIPTION=Lengde for visning av varer- og tjenesterbeskrivelser i lister (Anbefalt = 50)
ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Lengde for visning av varer- og tjenesters kontobeskrivelser i lister (Anbefalt = 50)
ACCOUNTING_LENGTH_DESCRIPTION=Avkort vare- og produktbeskrivelser i lister etter x karakterer (Anbefalt = 50)
ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Avkort vare- og produkt kontobeskrivelser i lister etter x karakterer (Anbefalt = 50)
ACCOUNTING_LENGTH_GACCOUNT=Lengde på hovedbokskontoer
ACCOUNTING_LENGTH_AACCOUNT=Lengde på tredjepartskontoer
ACCOUNTING_MANAGE_ZERO=Håndter nullen i slutten på en regnskapskonto. Trengs i noen land. Deaktivert som standard. Vær forsiktig med funksjonen "kontolengde".
BANK_DISABLE_DIRECT_INPUT=Deaktiver fritekst på banktransaksjoner (Standard er aktivert for dennemodulen)
ACCOUNTING_MANAGE_ZERO=Håndter nullen på slutten av en regnskapskonto. Trengs i noen land. Deaktivert som standard. Du må også sette de 2 følgende parametre (ellers blir de ignorert)
BANK_DISABLE_DIRECT_INPUT=Deaktiver direkteregistrering av transaksjoner på bankkonto
ACCOUNTING_SELL_JOURNAL=Salgsjournal
ACCOUNTING_PURCHASE_JOURNAL=Innkjøpsjournal
@ -101,23 +108,23 @@ Labelcompte=Kontoetikett
Sens=som betyr
Codejournal=Journal
NumPiece=Del nummer
TransactionNumShort=Transaksjonsnummer
AccountingCategory=Regnskapskategori
GroupByAccountAccounting=Grupper etter regnskapskonto
NotMatch=Ikke valgt
DeleteMvt=Slett linjer i hovedboken
DelYear=År som skal slettes
DelJournal=Journal som skal slettes
ConfirmDeleteMvt=Dette vil slette alle linjer i hovedboken for et år eller fra en spesifikk journal
ConfirmDeleteMvt=Dette vil slette alle linjer i hovedboken for året og/eller fra en spesifikk journal. Minst ett kriterie er påkrevet
ConfirmDeleteMvtPartial=Dette vil slette valgt linje(r) i hovedboken
DelBookKeeping=Slett postene i hovedboken
DescSellsJournal=Salgsjournal
DescPurchasesJournal=Innkjøpsjournal
DelBookKeeping=Slett posten i hovedboken
FinanceJournal=Finansjournal
DescFinanceJournal=Finansjournal med alle typer betalinger etter bankkonto
DescJournalOnlyBindedVisible=This is a view of records that are bound to products/services accountancy account and can be recorded into the General Ledger.
VATAccountNotDefined=Account for VAT not defined
ThirdpartyAccountNotDefined=Account for third party not defined
ProductAccountNotDefined=Account for product not defined
BankAccountNotDefined=Account for bank not defined
DescJournalOnlyBindedVisible=Her vises poster som er bundet til vare-/tjenestekontoer og kan registreres i hovedboken.
VATAccountNotDefined=MVA-konto er ikke definert
ThirdpartyAccountNotDefined=Konto for tredjepart er ikke definert
ProductAccountNotDefined=Konto for vare er ikke definert
BankAccountNotDefined=Konto for bank er ikke definert
CustomerInvoicePayment=Betaling av kundefaktura
ThirdPartyAccount=Tredjepart-konto
NewAccountingMvt=Ny transaksjon
@ -125,26 +132,24 @@ NumMvts=Transaksjonsnummer
ListeMvts=Liste over bevegelser
ErrorDebitCredit=Debet og kredit kan ikke ha en verdi samtidig
ReportThirdParty=List third party account
DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts
ReportThirdParty=List tredjepartskonto
DescThirdPartyReport=Liste over kunder og leverandører og deres regnskapskontoer
ListAccounts=Liste over regnskapskontoer
Pcgtype=Kontoklasse
Pcgsubtype=Underklasse av konto
Accountparent=Rot/base-kontoer
TotalVente=Total omsetning før skatt
TotalMarge=Total salgsmargin
DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account
DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account
DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account
ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account:
DescVentilCustomer=Liste over kunde-fakturalinjer (bundet eller ikke) til en vare-regnskapskonto
DescVentilMore=I de fleste tilfeller, hvis du bruker forhåndsdefinerte varer eller tjenester, og du setter kontonummeret på vare/tjeneste-kortet, vil programmet være i stand til å gjøre alle bindinger mellom fakturalinjer og regnskapskonto i din kontoplan, bare med et enkelt klikk på knappen <strong>"%s"</strong>. Hvis kontoen ikke ble satt på vare-/tjenestekortet eller hvis du fortsatt har noen linjer ikke bundet til noen konto, må du foreta en manuell binding fra menyen "<strong>%s</strong>".
DescVentilDoneCustomer=Liste over kunde-fakturalinjer og deres vare-regnskapskontoer
DescVentilTodoCustomer=Bind fakturalinjer som ikke allerede er bundet, til en vare-regnskapskonto
ChangeAccount=Endre regnskapskonto for valgte vare-/tjenestelinjer til følgende konto:
Vide=-
DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account
DescVentilDoneSupplier=Consult here the list of the lines of invoices supplier and their accounting account
DescVentilSupplier=Liste over leverandørfaktura-linjer bundet eller ikke bundet til en vare-regnskapskonto
DescVentilDoneSupplier=Liste over leverandørfakturalinjer og tilhørende regnskapskonto
ValidateHistory=Bind automatisk
AutomaticBindingDone=Automatisk binding utført
@ -152,11 +157,11 @@ AutomaticBindingDone=Automatisk binding utført
ErrorAccountancyCodeIsAlreadyUse=Feil, du kan ikke slette denne regnskapskontoen fordi den er i bruk
MvtNotCorrectlyBalanced=Bevegelse er ikke korrekt balansert. Kredit=%s. Debet=%s
FicheVentilation=Binding-kort
GeneralLedgerIsWritten=Transaksjonene ble registrert i hovedboken
GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded.
NoNewRecordSaved=No new record saved
ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account
ChangeBinding=Change the binding
GeneralLedgerIsWritten=Transaksjoner er ført inn i hovedboken
GeneralLedgerSomeRecordWasNotRecorded=Noen av transaksjonene kunne ikke registreres
NoNewRecordSaved=Ingen nye poster lagret
ListOfProductsWithoutAccountingAccount=Liste over varer som ikke bundet til en regnskapskonto
ChangeBinding=Endre bindingen
## Admin
ApplyMassCategories=Masseinnlegging av kategorier
@ -178,7 +183,8 @@ Modelcsv_cogilog=Eksport mot Cogilog
## Tools - Init accounting account on product / service
InitAccountancy=Initier regnskap
InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accountancy account defined for sales and purchases. Check before that setup of chart of accounts is complete.
InitAccountancyDesc=Denne siden kan brukes til å initialisere en regnskapskonto for varer og tjenester som ikke har regnskapskonto definert for salg og kjøp.
DefaultBindingDesc=Denne siden kan brukes til å sette en standardkonto til bruk for å for å koble transaksjonsposter om lønnsutbetaling, donasjon, skatter og MVA når ingen bestemt regnskapskonto er satt.
Options=Innstillinger
OptionModeProductSell=Salgsmodus
OptionModeProductBuy=Innkjøpsmodus
@ -193,12 +199,11 @@ Calculated=Kalkulert
Formula=Formel
## Error
ErrorNoAccountingCategoryForThisCountry=Ingen regnskapskategori er tilgjengelig for dette landet
ErrorNoAccountingCategoryForThisCountry=Ingen kontokategori tilgjengelig for landet %s (se Hjem - Oppsett - Ordlister)
ExportNotSupported=Eksportformatet som er satt opp støttes ikke på denne siden
BookeppingLineAlreayExists=Linjene eksisterer allerede i bokføringen
Binded=Lines bound
ToBind=Lines to bind
WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version.
Binded=Bundne linjer
ToBind=Linjer som skal bindes
WarningReportNotReliable=Advarsel! Denne rapporten er ikke basert på hovedboken, så den er ikke pålitelig enda. Den vil erstattes av en korrekt rapport i neste versjon

View File

@ -22,7 +22,7 @@ SessionId=Økt-ID
SessionSaveHandler=Håndterer for å lagre sesjoner
SessionSavePath=Sted for lagring av økt
PurgeSessions=Utrenskning av øktene
ConfirmPurgeSessions=Ønsker du virkelig å rense alle økter? Dette vil koble fra alle brukere (bortsett fra deg selv).
ConfirmPurgeSessions=Har du virkelig ønsker å rense alle økter? Dette vil frakoble alle brukere (bortsett fra deg selv).
NoSessionListWithThisHandler=Øktlagrings-behandleren i PHP tillater ikke å vise alle kjørende økter.
LockNewSessions=Lås nye tilkoblinger
ConfirmLockNewSessions=Er du sikker på at du vil begrense eventuelle nye Dolibarr tilkoblinger til deg selv?. Bare brukeren <b>%s</b> vil kunne koble til etter det.
@ -53,8 +53,6 @@ ErrorModuleRequireDolibarrVersion=Feil: Denne modulen krever Dolibarr versjon %s
ErrorDecimalLargerThanAreForbidden=Feil: Presisjon over <b>%s</b> støttes ikke.
DictionarySetup=Oppsett av ordliste
Dictionary=Ordlister
Chartofaccounts=Graf over kontoer
Fiscalyear=Regnskapsår
ErrorReservedTypeSystemSystemAuto=Verdiene 'system' og 'systemauto' for type er reservert. Du kan bruke 'user' som verdi for å legge til din egen oppføring
ErrorCodeCantContainZero=Koden kan ikke inneholde verdien 0
DisableJavascript=Deaktiver JavaScript og Ajax funksjoner (Anbefalt for tekstbaserte nettlesere og blinde)
@ -64,7 +62,7 @@ DelaiedFullListToSelectCompany=Vent med å trykke på noen taster før innholdet
DelaiedFullListToSelectContact=Vent med å trykke på noen taster før innholdet i kontakt-kombilisten er lastet (Dette kan øke ytelsen hvis du har et stort antall tredjeparter)
NumberOfKeyToSearch=Antall tegn for å starte søk: %s
NotAvailableWhenAjaxDisabled=Ikke tilgjengelig når Ajax er slått av
AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
AllowToSelectProjectFromOtherCompany=På elementer av en tredjepart, kan du velge et prosjekt knyttet til en annen tredjepart
JavascriptDisabled=JavaScript er deaktivert
UsePreviewTabs=Bruk faner for forhåndsvisning
ShowPreview=Forhåndsvisning
@ -143,7 +141,7 @@ PurgeRunNow=Start utrenskning
PurgeNothingToDelete=Ingen mapper eller filer å slette.
PurgeNDirectoriesDeleted=<b>%s</b> filer eller mapper slettet.
PurgeAuditEvents=Fjern alle sikkerhetshendelser
ConfirmPurgeAuditEvents=Er du sikker på at du vil fjerne alle sikkerhetshendelser? Alle sikkerhetslogger vil bli slettet, ingen andre data vil bli slettet.
ConfirmPurgeAuditEvents=Er du sikker på at du vil rense alle sikkerhetshendelser? Alle sikkerhetslogger vil bli slettet, ingen andre data vil bli fjernet.
GenerateBackup=Opprett sikkerhetskopi
Backup=Ta sikkerhetskopi
Restore=Gjenopprett fra sikkerhetskopi
@ -178,10 +176,10 @@ ExtendedInsert=Utvidet INSERT
NoLockBeforeInsert=Ingen låsekommandoer rundt INSERT
DelayedInsert=Forsinket INSERT
EncodeBinariesInHexa=Binære data kodes hexadecimalt
IgnoreDuplicateRecords=Ignorer duplikat-feil (INSERT IGNORE)
IgnoreDuplicateRecords=Ignorer feil ved postduplisering (INSERT IGNORE)
AutoDetectLang=Auto-oppdag (nettleserspråk)
FeatureDisabledInDemo=Funksjonen er slått av i demo
FeatureAvailableOnlyOnStable=Feature only available on official stable versions
FeatureAvailableOnlyOnStable=Egenskapen er kun tilgjengelig på offisielle, stabile versjoner
Rights=Tillatelser
BoxesDesc=Widgeter er komponenter som viser litt informasjon som du kan legge til for å tilpasse enkelte sider. Du kan velge mellom å vise widgeten eller ikke ved å velge målside og klikke på 'Aktiver', eller ved å klikke på søppelkassen for å deaktivere den.
OnlyActiveElementsAreShown=Bare elementer fra <a href="%s">aktiverte moduler</a> vises.
@ -194,8 +192,8 @@ WebSiteDesc=Referansesider for å finne flere moduler.
URL=Lenke
BoxesAvailable=Tilgjengelige widgeter
BoxesActivated=Aktiverte widgeter
ActivateOn=Aktivert den
ActiveOn=Aktivert den
ActivateOn=Aktivert
ActiveOn=Aktivert
SourceFile=Kildefil
AvailableOnlyIfJavascriptAndAjaxNotDisabled=Tilgjengelig bare hvis Javascript og Ajax er aktivert
Required=Påkrevet
@ -244,6 +242,9 @@ MAIN_MAIL_EMAIL_STARTTLS= Bruk TLS (STARTTL) kryptering
MAIN_DISABLE_ALL_SMS=Deaktiver alle SMS sendings (for testformål eller demoer)
MAIN_SMS_SENDMODE=Metode for å sende SMS
MAIN_MAIL_SMS_FROM=Standard avsender telefonnummer for sending av SMS
MAIN_MAIL_DEFAULT_FROMTYPE=Standard epost for manuell utsendelse (bruker- eller firma-epost)
UserEmail=Bruker-epost
CompanyEmail=Firma-epost
FeatureNotAvailableOnLinux=Funksjonen er ikke tilgjengelig på Unix/Linux. Test sendmail lokalt.
SubmitTranslation=Hvis oversettelsen for dette språket ikke er fullstendig eller du finner feil, kan du rette opp dette ved å redigere filene i katalogen <b>langs/%s</b> og sende endrede filer til www.transifex.com/dolibarr-association/dolibarr/
SubmitTranslationENUS=Hvis oversettelse for dette språket ikke er fullstendig eller du finner feil, kan du korrigere dette ved å redigere filer i katalogen <b>langs/%s</b> og sende endrede filer på dolibarr.org/forum eller for utviklere på github.com/Dolibarr/dolibarr.
@ -282,7 +283,7 @@ LastStableVersion=Siste stabile versjon
LastActivationDate=Siste aktiveringsdato
UpdateServerOffline=Oppdater serveren offline
GenericMaskCodes=Her kan du legge inn nummereringsmal. I malen kan du bruke følgende tagger:<br><b>{000000}</b> tilsvarer et tall som økes ved hver %s. Angi så mange nuller som du ønsker at lengden på telleren skal være. Telleren vil ha ledende nuller i henhold til malens lengde. <br><b>{000000+000}</b> samme som forrige, men med en forskyvning til høyre for + tegnet, starter fra første %s. <br><b>{000000@x}</b> samme som forrige, men telleren starter fra null når måned x nås (x mellom 1 og 12). Hvis dette valget brukes og x er 2 eller mer kreves også sekvensen {yy}{mm} eller {yyyy}{mm} kreves også. <br><b>{dd}</b> dag (01 til 31).<br><b>{mm}</b> måned (01 til 12).<br><b>{yy}</b>, <b>{yyyy}</b> eller <b>{y}</b> årstall over 2, 4 eller 1 siffer. <br> <b>{cccc000}</b> klientkoden på n tegn etterfulgt av en klientreferanse uten forskyvning og nullet med den globale telleren.<br><br>Alle andre tegn i malen vil forbli intakte.<br>Mellomrom er ikke tillatt.<br><br><u>Eksempel på den 99de %s av tredjeparten blir 31/01/2007:</u><br><b>ABC{yy}{mm}-{000000}</b> vil gi <b>ABC0701-000099</b><br><b>{0000+100}-ZZZ/{dd}/XXX</b> vil gi <b>0199-ZZZ/31/XXX</b><br>
GenericMaskCodes2=<b>{cccc}</b> the client code on n characters<br><b>{cccc000}</b> the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.<br><b>{tttt}</b> The code of third party type on n characters (see dictionary-thirdparty types).<br>
GenericMaskCodes2=<b>{cccc}</b> klientkoden på n tegn<br><b>{cccc000}</b> klientkoden på n tegn etterfølges av en teller dedikert til kunden. Denne telleren blir tilbakestilt til samtidig som den globale telleren.<br><b>{tttt}</b> Koden av tredjeparts type på n tegn (se ordbok-tredjepartstyper). <br>
GenericMaskCodes3=Alle andre tegn i masken vil være intakt. <br> Mellomrom er ikke tillatt. <br>
GenericMaskCodes4a=<u>Eksempel på 99. %s av tredjeparten TheCompany gjort 31.01.2007:</u><br>
GenericMaskCodes4b=<u>Eksempel på tredjepart opprettet på 2007-03-01:</u> <br>
@ -303,7 +304,7 @@ UseACacheDelay= Forsinkelse for cache eksport respons i sekunder (0 eller tom fo
DisableLinkToHelpCenter=Skjul linken <b>"Trenger du hjelp eller støtte"</b> på innloggingssiden
DisableLinkToHelp=Skjul lenke til online hjelp "<b>%s</b>"
AddCRIfTooLong=Det er ingen automatisk linjeskift, så hvis linjene er for lange og når ut av siden på dokumenter, må du legge til vognreturer i tekstfeltet.
ConfirmPurge=Er du sikker på at du vil utføre denne rensingen?<br>Dette vil slette absolutt alle datafilene permanent (ECM filer, vedlagte filer ...).
ConfirmPurge=Er du sikker på at du vil kjøre denne rensingen?<br> Det vil føre til at alle datafiler blir slettet, uten at du kan hente dem tilbake (ECM-filer, vedlegg...).
MinLength=Minimum lengde
LanguageFilesCachedIntoShmopSharedMemory=Filer .lang lastet i delt minne
ExamplesWithCurrentSetup=Eksempler med gjeldende oppsett
@ -381,10 +382,10 @@ ValueOverwrittenByUserSetup=Advarsel, denne verdien kan bli overskrevet av bruke
ExternalModule=Ekstern modul - Installert i katalog %s
BarcodeInitForThirdparties=Masseinitiering av strekkoder for tredjeparter
BarcodeInitForProductsOrServices=Masseinitiering eller sletting av strekkoder for varer og tjenester
CurrentlyNWithoutBarCode=For øyeblikket er det <strong>%s</strong> poster <strong>%s</strong> %s uten strekkode.
CurrentlyNWithoutBarCode=For øyeblikket har du <strong>%s</strong> poster på <strong>%s</strong> %s uten strekkode.
InitEmptyBarCode=Startverdi for neste %s tomme post
EraseAllCurrentBarCode=Slett alle gjeldende strekkode-verdier
ConfirmEraseAllCurrentBarCode=Er di sikker på at du vil slette alle gjeldende strekkode-verdier?
ConfirmEraseAllCurrentBarCode=Er du sikker på at du vil slette alle nåværende strekkodeverdier?
AllBarcodeReset=Alle strekkode-verdier er blitt slettet
NoBarcodeNumberingTemplateDefined=Ingen mal for strekkodenummerering er aktivert strekkodemodulen
EnableFileCache=Aktiver fil-cache
@ -397,7 +398,7 @@ EnableAndSetupModuleCron=Hvis du ønsker at gjentakende fakturaer skal genereres
ModuleCompanyCodeAquarium=Velger en regnskapskode bygget av: <br>%s etterfulgt av tredjeparts leverandørkode for en leverandør-regnskap kode,<br>%s etterfulgt av tredjepart kundekode for en kunde- regnskapkode.
ModuleCompanyCodePanicum=Velg en tom regnskapskode
ModuleCompanyCodeDigitaria=Regnskapskode avhenger av tredjepartskode. Koden består av karakteren "C" i første posisjon, etterfulgt av de første 5 tegnene i tredjepartskoden.
Use3StepsApproval=Som standard må innkjøpsordrer opprettes og godkjennes av 2 forskjellige brukere (ett skritt/bruker for å opprette og ett skritt/bruker for å godkjenne. Merk at hvis brukeren har både tillatelse til å opprette og godkjenne, vil ett skritt/bruker være nok) . Du kan spørre med dette alternativet for å innføre et tredje trinn/bruker-godkjenning, hvis beløpet er høyere enn en dedikert verdi (så 3 trinn vil være nødvendig: 1 = validering, 2 = første godkjenning og 3 = andre godkjenning dersom beløpet er høyt nok).<br> Sett denne tom hvis en godkjenning (2 trinn) er nok, sett den til en svært lav verdi (0,1) hvis det alltid kreves en annen godkjenning.
Use3StepsApproval=Som standard må innkjøpsordrer opprettes og godkjennes av 2 forskjellige brukere (1-bruker for å opprette og 2-bruker for å godkjenne. Merk at hvis brukeren har både tillatelse til å opprette og godkjenne, vil ett skritt være nok) . Du kan velge med dette alternativet å innføre et tredje trinn - brukergodkjenning. Hvis beløpet er høyere enn en valgt verdi (3 trinn vil være nødvendig: 1 - validering, 2 - første godkjenning og 3 - andre godkjenning dersom beløpet er høyt nok).<br> Sett denne til tom hvis en godkjenning (2 trinn) er nok, sett den til en svært lav verdi (0,1) hvisdet alltid kreves en andre godkjenning.
UseDoubleApproval=Bruk 3-trinns godkjennelse når beløpet (eks. MVA) er høyere enn...
# Modules
@ -482,7 +483,7 @@ Module510Desc=Håndtering av arbeidskontrakter, lønn og utbetalinger
Module520Name=Lån
Module520Desc=Administrering av lån
Module600Name=Varselmeldinger
Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails
Module600Desc=Send epostvarsler (utløst av noen forretningshendelser) til brukere (oppsett definert for hver bruker), tredjeparts kontaktliste (oppsett definert for hver tredjepart) eller faste eposter
Module700Name=Donasjoner
Module700Desc=Behandling av donasjoner
Module770Name=Utgiftsrapporter
@ -758,7 +759,7 @@ Permission1236=Eksportere leverandørordre, attributter og betalinger
Permission1237=Eksporter leverandør-bestillinger og detaljer
Permission1251=Kjør masseimport av eksterne data til database (datalast)
Permission1321=Eksportere kundefakturaer, attributter og betalinger
Permission1322=Reopen a paid bill
Permission1322=Gjenåpne en betalt regning
Permission1421=Eksport kundeordre og attributter
Permission20001=Les ferieforespørsler (dine og underordnedes)
Permission20002=Opprett/endre ferieforespørsler
@ -869,7 +870,7 @@ LabelUsedByDefault=Etiketten som brukes som standard hvis ingen oversettelse kan
LabelOnDocuments=Etiketten på dokumenter
NbOfDays=Antall dager
AtEndOfMonth=Ved månedsslutt
CurrentNext=Current/Next
CurrentNext=Nåværende/Neste
Offset=Forskyvning
AlwaysActive=Alltid aktiv
Upgrade=Oppgrader
@ -1105,9 +1106,8 @@ WatermarkOnDraft=Vannmerke på utkast
JSOnPaimentBill=Aktiver egenskap for å autoutfylle betalingslinjer i betalingsskjema
CompanyIdProfChecker=Regler for profesjonell ID
MustBeUnique=Må være unik?
MustBeMandatory=Obligatorisk for å opprette tredjeparter?
MustBeInvoiceMandatory=Obligatorisk for å validere fakturaer?
Miscellaneous=Diverse
MustBeMandatory=Obligatorisk å opprette tredjeparter?
MustBeInvoiceMandatory=Obligatorisk å validere fakturaer?
##### Webcal setup #####
WebCalUrlForVCalExport=En eksportlenke til <b>%s</b> formatet er tilgjengelig på følgende lenke: %s
##### Invoices #####
@ -1318,7 +1318,7 @@ ProductServiceSetup=Oppsett av varer- og tjenester-modulen
NumberOfProductShowInSelect=Maks. antall varer i utvalgslister (0=ingen grenser)
ViewProductDescInFormAbility=Visualisering av varebeskrivelser i skjemaer (ellers som oppsprett-tips)
MergePropalProductCard=I "Vedlagte filer"-fanen i "Varer og tjenester" kan du aktivere en opsjon for å flette PDF-varedokument til tilbud PDF-azur hvis varen/tjenesten er i tilbudet
ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
ViewProductDescInThirdpartyLanguageAbility=Visualisering av varebeskrivelser i tredjepartens språk
UseSearchToSelectProductTooltip=Hvis du har mange varer (>100 000), kan du øke hastigeten ved å sette konstanten PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Oppsett->Annet. Søket vil da begrenses til starten av søkestrengen
UseSearchToSelectProduct=Bruk et søkeskjema for å velge vare (i stedet for en nedtrekksliste)
SetDefaultBarcodeTypeProducts=Standard strekkodetype for varer
@ -1427,7 +1427,7 @@ DetailTarget=Mål for lenker (blank topp åpner et nytt vindu)
DetailLevel=Nivå (-1:toppmeny, 0:headermeny, >0 meny og undermeny)
ModifMenu=Menyendring
DeleteMenu=Slett menyoppføring
ConfirmDeleteMenu=Er du sikker på at du vil slette menyoppføringen <b>%s</b> ?
ConfirmDeleteMenu=Er du sikker på at du vil slette menyoppføringen <b>%s</b>?
FailedToInitializeMenu=Klarte ikke å initialisere menyen
##### Tax #####
TaxSetup=Modul for skatter,avgifter og utbytte
@ -1482,7 +1482,7 @@ NbOfBoomarkToShow=Maksimalt antall bokmerker som skal vises i venstre meny
WebServicesSetup=Oppsett av webservices-modul
WebServicesDesc=Ved å aktivere denne modulen, vil Dolibarr bli en webtjeneste-server og tilby diverse web-tjenester.
WSDLCanBeDownloadedHere=WSDL beskrivelsefil for tilbydte tjenester kan lastes ned her
EndPointIs=SOAP klienter må sende sine forespørsler til Dolibarr endepunktet tilgjengelig på URL
EndPointIs=SOAP-klienter må sende sine forespørsler til Dolibarr endepunkt tilgjengelig på URL
##### API ####
ApiSetup=Oppsett av API-modul
ApiDesc=Ved å aktivere denne modulen, blir Dolibarr en REST-server for diverse web-tjenester
@ -1524,14 +1524,14 @@ TaskModelModule=Dokumentmal for oppgaverapporter
UseSearchToSelectProject=Bruk autokomplettering for å velge prosjekt (i stedet for listeboks)
##### ECM (GED) #####
##### Fiscal Year #####
FiscalYears=Regnskapsår
FiscalYearCard=Kort for regnskapsår
NewFiscalYear=Nytt regnskapsår
OpenFiscalYear=Åpne regnskapsår
CloseFiscalYear=Lukk regnskapsår
DeleteFiscalYear=Slett regnskapsår
ConfirmDeleteFiscalYear=Er du sikker på at du vil slette dette regnskapsåret?
ShowFiscalYear=Vis regnskapsår
AccountingPeriods=Regnskapsperioder
AccountingPeriodCard=Regnskapsperiode
NewFiscalYear=Ny regnskapsperiode
OpenFiscalYear=Åpne regnskapsperiode
CloseFiscalYear=Lukk regnskapsperiode
DeleteFiscalYear=Slett regnskapsperiode
ConfirmDeleteFiscalYear=Er du sikker på at du vil slette denne regnskapsperioden?
ShowFiscalYear=Vis regnskapsperiode
AlwaysEditable=Kan alltid endres
MAIN_APPLICATION_TITLE=Tving synlig navn på program (advarsel: Å sette ditt eget navn her kan fjerne autofyll logginn-funksjonen når du bruker DoliDroid mobilapplikasjon)
NbMajMin=Minste antall store bokstaver
@ -1552,7 +1552,7 @@ ListOfNotificationsPerUser=Liste over varslinger pr. bruker*
ListOfNotificationsPerUserOrContact=Liste over varslinger pr. bruker* eller pr. kontakt**
ListOfFixedNotifications=Liste over faste varslinger
GoOntoUserCardToAddMore=Gå til fanen "Varslinger" hos en bruker for å legge til eller fjerne en varsling
GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
GoOntoContactCardToAddMore=Gå til fanen "Notefikasjoner" hos en tredjepart for å legge til notifikasjoner for kontakter/adresser
Threshold=Terskel
BackupDumpWizard=Veiviser for å bygge database-backup dumpfil
SomethingMakeInstallFromWebNotPossible=Installasjon av ekstern modul er ikke mulig fra webgrensesnittet på grunn av:
@ -1596,7 +1596,7 @@ MailToSendIntervention=For å sende intervensjon
MailToSendSupplierRequestForQuotation=For å sende forespørsel til leverandør
MailToSendSupplierOrder=For å sende leverandørordre
MailToSendSupplierInvoice=For å sende leverandørfaktura
MailToThirdparty=To send email from third party page
MailToThirdparty=For å sende epost fra tredjepart-side
ByDefaultInList=Vis som standard for liste
YouUseLastStableVersion=Du bruker siste stabile verjon
TitleExampleForMajorRelease=Eksempel på melding du kan bruke for å annonsere større oppdateringer (du kan bruke denne på dine websider)
@ -1628,7 +1628,7 @@ ListOfAvailableAPIs=Liste over tilgjengelige API'er
activateModuleDependNotSatisfied=Modul "%s" avhenger av modulen "%s", som mangler, slik at modulen "%1$s" kanskje ikke virker korrekt. Installer modulen "%2$s" eller deaktiver modulen "%1$s" hvis du vil unngå ubehagelige overraskelser
CommandIsNotInsideAllowedCommands=Kommandoen du prøver å kjøre er ikke i listen over tillatte kommandoer definert i parameter <strong>$dolibarr_main_restrict_os_commands</strong> i <strong>conf.php</strong> filen.
LandingPage=Landingsside
SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
SamePriceAlsoForSharedCompanies=Hvis du bruker en multiselskapsmodul, og har valgt "En pris", vil prisen være den samme for alle selskaper om varene er delt mellom miljøer
ModuleEnabledAdminMustCheckRights=Modulen er blitt aktivert. Tillatelser for aktivert(e) modul(er) ble kun gitt til brukere med admin-rettigheter. Du kan gi utvidede rettigheter til andre brukere ved behov.
UserHasNoPermissions=Denne brukeren har ingen tillatelser
TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
TypeCdr=Bruk "Ingen" hvis dato for betalingsfrist er fakturadato pluss en delta i dager (delta er feltet "Antall dager")<br>Bruk "På slutten av måneden", dersom det etter delta, at dato må økes for å komme til slutten av måneden (+ en valgfri "Offset" i dager)<br>Bruk "Nåværene/Neste" for å få betalingsdato til å være den første N-te i måneden (N lagres i feltet "Antall dager")

View File

@ -3,7 +3,6 @@ IdAgenda=Hendelses-ID
Actions=Handlinger
Agenda=Agenda
Agendas=Agendaer
Calendar=Kalender
LocalAgenda=Intern kalender
ActionsOwnedBy=Hendelse tilhører
ActionsOwnedByShort=Eier
@ -34,11 +33,27 @@ AgendaAutoActionDesc= Her defineres hendelser som du vil at Dolibarr skal oppret
AgendaSetupOtherDesc= Her kan du gjøre andre innstillinger i agendamodulen.
AgendaExtSitesDesc=Denne siden lar deg sette opp eksterne kalendere for å visning i Dolibarr agenda.
ActionsEvents=Handlinger som Dolibarr automatisk registrerer i agendaen
##### Agenda event labels #####
NewCompanyToDolibarr=Tredjepart %s opprettet
ContractValidatedInDolibarr=Kontrakt %s validert
PropalClosedSignedInDolibarr=Tilbud %s signert
PropalClosedRefusedInDolibarr=Tilbud %s avvist
PropalValidatedInDolibarr=Tilbud godkjent
PropalClassifiedBilledInDolibarr=Tilbud %s klassifisert betalt
InvoiceValidatedInDolibarr=Faktura %s validert
InvoiceValidatedInDolibarrFromPos=Faktura %s godkjent fra POS
InvoiceBackToDraftInDolibarr=Sett faktura %s tilbake til utkaststatus
InvoiceDeleteDolibarr=Faktura %s slettet
InvoicePaidInDolibarr=Faktura %s endret til betalt
InvoiceCanceledInDolibarr=Faktura %s kansellert
MemberValidatedInDolibarr=Medlem %s validert
MemberResiliatedInDolibarr=Medlem %s terminert
MemberDeletedInDolibarr=Medlem %s slettet
MemberSubscriptionAddedInDolibarr=Abonnement for medlem %s lagt til
ShipmentValidatedInDolibarr=Leveranse %s validert
ShipmentClassifyClosedInDolibarr=Levering %s klassifisert som fakturert
ShipmentUnClassifyCloseddInDolibarr=Levering %s klassifisert som gjenåpnet
ShipmentDeletedInDolibarr=Leveranse %s slettet
OrderValidatedInDolibarr=Ordre %s validert
OrderDeliveredInDolibarr=Ordre %s klassifisert som levert
OrderCanceledInDolibarr=Ordre %s kansellert
@ -57,9 +72,9 @@ InterventionSentByEMail=Intervensjon %s sendt på epost
ProposalDeleted=Tilbud slettet
OrderDeleted=Ordre slettet
InvoiceDeleted=Faktura slettet
NewCompanyToDolibarr= Tredjepart opprettet
DateActionStart= Startdato
DateActionEnd= Sluttdato
##### End agenda events #####
DateActionStart=Startdato
DateActionEnd=Sluttdato
AgendaUrlOptions1=Du kan også bruke følgende parametere til å filtrere listen:
AgendaUrlOptions2=<b>login=%s</b> for å begrense resultat til hendelse som er opprettet av eller tildelt bruker<b>%s</b>.
AgendaUrlOptions3=<b>logina=%s</b> for å begrense resultat til hendelser eiet av en bruker <b>%s</b>.

View File

@ -41,7 +41,7 @@ BankAccountOwner=Kontoeier
BankAccountOwnerAddress=Kontoeiers adresse
RIBControlError=Integritetssjekk feilet. Dette betyr at informasjon om denne kontoen er ufullstendig eller feil (sjekk land, nummer og IBAN).
CreateAccount=Opprett konto
NewAccount=Ny konto
NewBankAccount=Ny konto
NewFinancialAccount=Ny hovedbokskonto
MenuNewFinancialAccount=Ny hovedbokskonto
EditFinancialAccount=Rediger konto
@ -58,13 +58,13 @@ Account=Konto
BankTransactionByCategories=Transaksjoner etter kategorier
BankTransactionForCategory=Transaksjoner i kategorien <b>%s</b>
RemoveFromRubrique=Fjern lenke med kategori
RemoveFromRubriqueConfirm=Er du sikker på at du vil fjerne lenken mellom transaksjonen og kategorien?
RemoveFromRubriqueConfirm=Er du sikker på at du vil fjerne koblingen mellom transaksjonen og kategorien?
ListBankTransactions=Oversikt over transaksjoner
IdTransaction=Transaksjons-ID
BankTransactions=Banktransaksjoner
ListTransactions=List over transaksjoner
ListTransactionsByCategory=Liste over transaksjoner/kategorier
TransactionsToConciliate=Transaksjon du vil stemme av
TransactionsToConciliate=Transaksjoner til avstemming
Conciliable=Kan avstemmes
Conciliate=Avstem
Conciliation=Avstemming
@ -94,21 +94,21 @@ SocialContributionPayment=Betaling av skatter og avgifter
BankTransfer=Bankoverføring
BankTransfers=Bankoverføringer
MenuBankInternalTransfer=Intern overførsel
TransferDesc=Ved overføring fra en konto til en annen, vil Dolibarr skrive to poster (en belastning i kildekonto og kreditt på målkontoen. Det samme beløpet (unntatt tegn), etiketten og dato brukes for denne transaksjonen)
TransferDesc=Når du overfører fra en konto til en annen, vil Dolibarr opprette to poster (Debet i kildekonto og kredit i målkonto. Samme beløp (bortsett fra fortegn), etikett og dato vil bli brukt i denne transaksjonen)
TransferFrom=Fra
TransferTo=Til
TransferFromToDone=En overføring fra <b>%s</b> til <b>%s</b> på <b>%s</b> %s er registrert.
CheckTransmitter=Avsender
ValidateCheckReceipt=Validere mottak av sjekk?
ConfirmValidateCheckReceipt=Er du sikker på at du vil validere mottak av sjekk? Du kan ikke endre dette senere.
DeleteCheckReceipt=Slett denne sjekkbetalingen?
ConfirmDeleteCheckReceipt=Er du sikker på at du vil slette denne sjekkbetalingen?
ValidateCheckReceipt=Valider sjekkvittering?
ConfirmValidateCheckReceipt=Er du sikker på at du vil validere denne sjekkvitteringen? Ingen endringer kan utføres etter at dette er gjort.
DeleteCheckReceipt=Slett denne sjekkvitteringen?
ConfirmDeleteCheckReceipt=Er du sikker på at du vil slette denne sjekkvitteringen?
BankChecks=Banksjekker
BankChecksToReceipt=Ventende sjekkinnskudd
ShowCheckReceipt=Vis sjekkinnskuddskvittering
NumberOfCheques=Antall sjekker
DeleteTransaction=Slett transaksjon
ConfirmDeleteTransaction=Er du sikker på at du vil slette transaksjonen?
ConfirmDeleteTransaction=Er du sikker på at du vil slette denne transaksjonen?
ThisWillAlsoDeleteBankRecord=Dette vil også slette genererte banktransaksjoner
BankMovements=Bevegelser
PlannedTransactions=Planlagte transaksjoner
@ -136,7 +136,7 @@ AllRIB=Alle BAN
LabelRIB=BAN Etikett
NoBANRecord=Ingen BAN kort
DeleteARib=BAN-kort slettet
ConfirmDeleteRib=Er du sikker på at du vil slette dette BAN-kortet?
ConfirmDeleteRib=Er du sikker på at du vil slette denne BAN-posten?
RejectCheck=Returnert sjekk
ConfirmRejectCheck=Er du sikker på at du vil merke denne sjekken som avvist?
RejectCheckDate=Dato for returnert sjekk

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