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 - 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 - 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. 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 ***** ***** ChangeLog for 4.0.1 compared to 4.0.0 *****
FIX: #2853 FIX: #2853
FIX: #2991 FIX: #2991

View File

@ -147,7 +147,7 @@ These are features that Dolibarr does **not** yet fully support:
## DOCUMENTATION ## 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 ## 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: 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" * 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: 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 Note: To compare 2 packages: debdiff package1.dsc package2.dsc
* Test package (see dedicated chapter to test it with debian unstable env) * 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 See rest of process into dedicated chapter "To test a package" to test it with debian unstable env
* If package .deb is ok: * 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 commit -m "Upstream version x.y"
bzr push bzr push
# Init debian dir repository into launchpad (when repository for sources does not exist) # 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] - 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] bzr push lp:~yourlogin/+junk/debian-[dev|stable]
# Define a recipe into launchpad (a rule to build packages into a PPA) # 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 cd bzr
vi dolibarr.recipe vi dolibarr-[beta|stable].recipe
For dev: For beta/dev:
# bzr-builder format 0.3 deb-version {debupstream}-0~{revno} # bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
lp:dolibarr lp:dolibarr
merge packaging lp:~yourlogin/+junk/debian-dev 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 merge packaging lp:~yourlogin/+junk/debian-stable
- Run command - Run command
cd bzr 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] This will create a directory "working-dir" with dolibarr sources and will add sources from ~yourlogin/+junk/debian-[dev|stable]
- Test package sources - Test package sources
sudo pbuilder build <working-dir>/<project>_<version>.dsc 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; } if ($RPMSUBVERSION eq 'auto') { $RPMSUBVERSION = $newbuild; $RPMSUBVERSION =~ s/^.*-//gi; }
$FILENAMETGZ2="$PROJECT-$MAJOR.$MINOR.$REL1"; $FILENAMETGZ2="$PROJECT-$MAJOR.$MINOR.$REL1";
$FILENAMERPM=$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm"; $FILENAMERPM=$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm";
$FILENAMERPMSRC=$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm";
# For Deb # For Deb
$newbuild = $BUILD; $newbuild = $BUILD;
$newbuild =~ s/(dev|alpha)/1/gi; # dev $newbuild =~ s/(dev|alpha)/1/gi; # dev
@ -733,8 +734,8 @@ if ($nboftargetok) {
print "Remove target ".$FILENAMERPM."...\n"; print "Remove target ".$FILENAMERPM."...\n";
unlink("$NEWDESTI/".$FILENAMERPM); unlink("$NEWDESTI/".$FILENAMERPM);
print "Remove target ".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm...\n"; print "Remove target ".$FILENAMERPMSRC."...\n";
unlink("$NEWDESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm"); unlink("$NEWDESTI/".$FILENAMERPMSRC);
print "Create directory $BUILDROOT/$FILENAMETGZ2\n"; print "Create directory $BUILDROOT/$FILENAMETGZ2\n";
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2`; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2`;
@ -1140,10 +1141,11 @@ if ($nboftargetok) {
print "\nList of files to publish (BUILD=$BUILD)\n"; print "\nList of files to publish (BUILD=$BUILD)\n";
%filestoscansf=( %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/$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/${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/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'Dolibarr installer for Windows (DoliWamp)',
"$DESTI/standard/$FILENAMETGZ.tgz"=>'Dolibarr ERP-CRM', "$DESTI/standard/$FILENAMETGZ.tgz"=>'Dolibarr ERP-CRM',
"$DESTI/standard/$FILENAMETGZ.zip"=>'Dolibarr ERP-CRM' "$DESTI/standard/$FILENAMETGZ.zip"=>'Dolibarr ERP-CRM'
@ -1151,6 +1153,7 @@ if ($nboftargetok) {
%filestoscanstableasso=( %filestoscanstableasso=(
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'signatures', "$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'signatures',
"$DESTI/package_rpm_generic/$FILENAMERPM"=>'package_rpm_generic', "$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/${FILENAMEDEB}_all.deb"=>'package_debian-ubuntu',
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'package_debian-ubuntu', "$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'package_debian-ubuntu',
"$DESTI/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'package_windows', "$DESTI/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'package_windows',
@ -1212,9 +1215,10 @@ if ($nboftargetok) {
my $filesize = -s $file; my $filesize = -s $file;
if (! $filesize) { next; } if (! $filesize) { next; }
print "\n"; if ($target eq 'SF') {
if ($filestoscan{$file} eq 'none') {
if ($target eq 'SF' && $filestoscan{$file} ne 'none') { next;
}
$destFolder="$NEWPUBLISH/$filestoscan{$file}/".$MAJOR.'.'.$MINOR.'.'.$BUILD; $destFolder="$NEWPUBLISH/$filestoscan{$file}/".$MAJOR.'.'.$MINOR.'.'.$BUILD;
} }
elsif ($target eq 'ASSO' and $NEWPUBLISH =~ /stable/) { elsif ($target eq 'ASSO' and $NEWPUBLISH =~ /stable/) {
@ -1231,6 +1235,8 @@ if ($nboftargetok) {
$filenameonly =~ s/.*\/[^\/]+\/([^\/])+$/$1/; $filenameonly =~ s/.*\/[^\/]+\/([^\/])+$/$1/;
$destFolder="$NEWPUBLISH/$dirnameonly"; $destFolder="$NEWPUBLISH/$dirnameonly";
} }
print "\n";
print "Publish file ".$file." to ".$destFolder."\n"; print "Publish file ".$file." to ".$destFolder."\n";
# mkdir # 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" 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: 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 Then add into Advanded - Attributes
OBS:Screenshots http://www.dolibarr.org/images/dolibarr_screenshot1.png OBS:Screenshots http://www.dolibarr.org/images/dolibarr_screenshot1.png

View File

@ -34,7 +34,7 @@ AutoReqProv: no
%description %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 and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities. Management (CRM) but also for different other activities.

View File

@ -75,7 +75,7 @@ AutoReqProv: no
%description %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 and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities. Management (CRM) but also for different other activities.

View File

@ -33,7 +33,7 @@ AutoReqProv: no
%description %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 and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities. Management (CRM) but also for different other activities.

View File

@ -36,7 +36,7 @@ AutoReqProv: no
%description %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 and medium companies, foundations or freelances. It includes different
features for Enterprise Resource Planning (ERP) and Customer Relationship features for Enterprise Resource Planning (ERP) and Customer Relationship
Management (CRM) but also for different other activities. 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/includes</exclude-pattern>
<exclude-pattern type="relative">htdocs/conf.php</exclude-pattern> <exclude-pattern type="relative">htdocs/conf.php</exclude-pattern>
<exclude-pattern type="relative">*/nltechno*</exclude-pattern> <exclude-pattern type="relative">*/nltechno*</exclude-pattern>
<exclude-pattern type="relative">*/htdocs/includes</exclude-pattern>
<!-- List of all tests --> <!-- List of all tests -->

View File

@ -1786,12 +1786,14 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='')
print '<td>'; print '<td>';
if (! empty($conf->accounting->enabled)) 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'); print $formaccountancy->select_account($accountancy_account, $fieldlist[$field], 1, '', 1, 1, 'maxwidth200 maxwidthonsmartphone');
} }
else 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>'; 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("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("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("NewTranslationStringToShow"),$_SERVER["PHP_SELF"],'transvalue','',$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 '<td align="center"></td>';
print "</tr>\n"; 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("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("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("CurrentTranslationString"),$_SERVER["PHP_SELF"],'transvalue','',$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 '<td align="center"></td>';
print "</tr>\n"; print "</tr>\n";
@ -399,7 +399,7 @@ if ($mode == 'searchkey')
//} //}
print '</td>'; print '</td>';
// Action column // 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); $searchpitco=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
print $searchpitco; print $searchpitco;
print '</td>'; print '</td>';
@ -427,10 +427,10 @@ if ($mode == 'searchkey')
$htmltext = $langs->trans("OriginalValueWas", $newlangfileonly->tab_translate[$key]); $htmltext = $langs->trans("OriginalValueWas", $newlangfileonly->tab_translate[$key]);
print $form->textwithpicto('', $htmltext, 1, 'warning'); print $form->textwithpicto('', $htmltext, 1, 'warning');
} }
if (! empty($conf->multicompany->enabled) && !$user->entity) /*if (! empty($conf->multicompany->enabled) && !$user->entity)
{ {
print $val; print $val;
} }*/
print '</td></tr>'."\n"; print '</td></tr>'."\n";
} }

View File

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

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * 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> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -73,8 +73,10 @@ print '<table class="noborder" width="100%">'."\n";
clearstatcache(); clearstatcache();
$workflowcodes=array( $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'), '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_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'), '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. // 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) if ($oldfamily != $family)
{ {
print '<tr class="liste_titre">'."\n"; 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 ' <td align="center">'.$langs->trans("Status").'</td>';
print "</tr>\n"; print "</tr>\n";
$oldfamily = $family; $oldfamily = $family;

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* 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 Simon TOSSER <simon@kornog-computing.com>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es> * 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_contact, a.percent as percentage,";
$sql.= " a.fk_element, a.elementtype,"; $sql.= " a.fk_element, a.elementtype,";
$sql.= " a.priority, a.fulldayevent, a.location, a.punctual, a.transparency,"; $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.= " s.nom as socname,";
$sql.= " u.firstname, u.lastname as lastname"; $sql.= " u.firstname, u.lastname as lastname";
$sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a "; $sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a ";
@ -535,17 +535,18 @@ class ActionComm extends CommonObject
{ {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$this->id = $obj->id; $this->id = $obj->id;
$this->ref = $obj->ref; $this->ref = $obj->ref;
$this->ref_ext = $obj->ref_ext; $this->ref_ext = $obj->ref_ext;
// Properties of parent table llx_c_actioncomm (will be deprecated in future) // Properties of parent table llx_c_actioncomm
$this->type_id = $obj->type_id; $this->type_id = $obj->type_id;
$this->type_code = $obj->type_code; $this->type_code = $obj->type_code;
$this->type_color = $obj->type_color; $this->type_color = $obj->type_color;
$this->type_picto = $obj->type_picto;
$transcode=$langs->trans("Action".$obj->type_code); $transcode=$langs->trans("Action".$obj->type_code);
$type_libelle=($transcode!="Action".$obj->type_code?$transcode:$obj->libelle); $type_label=($transcode!="Action".$obj->type_code?$transcode:$obj->type_label);
$this->type = $type_libelle; $this->type = $type_label;
$this->code = $obj->code; $this->code = $obj->code;
$this->label = $obj->label; $this->label = $obj->label;
@ -1018,7 +1019,7 @@ class ActionComm extends CommonObject
*/ */
function getLibStatut($mode,$hidenastatus=0) 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 $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 $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 $hidenastatus 1=Show nothing if status is "Not applicable"
* @param int $datestart Date start of event
* @return string Label * @return string Label
*/ */
function LibStatut($percent,$mode,$hidenastatus=0) function LibStatut($percent,$mode,$hidenastatus=0,$datestart='')
{ {
global $langs; global $langs;

View File

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

View File

@ -318,7 +318,8 @@ if ($resql)
print '<tr class="liste_titre">'; 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("Ref"),$_SERVER["PHP_SELF"],"a.id",$param,"","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"a.label",$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("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("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); 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 '<tr class="liste_titre">';
print '<td class="liste_titre"></td>'; print '<td class="liste_titre"></td>';
print '<td class="liste_titre"><input type="text" name="search_title" value="'.$search_title.'"></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"></td>';
//print '<td class="liste_titre"><input type="text" name="search_type" value="'.$search_type.'"></td>'; //print '<td class="liste_titre"><input type="text" name="search_type" value="'.$search_type.'"></td>';
} //}
print '<td class="liste_titre" align="center">'; print '<td class="liste_titre" align="center">';
print $form->select_date($datestart, 'datestart', 0, 0, 1, '', 1, 0, 1); print $form->select_date($datestart, 'datestart', 0, 0, 1, '', 1, 0, 1);
print '</td>'; print '</td>';
@ -380,6 +381,7 @@ if ($resql)
$actionstatic->ref=$obj->id; $actionstatic->ref=$obj->id;
$actionstatic->type_code=$obj->type_code; $actionstatic->type_code=$obj->type_code;
$actionstatic->type_label=$obj->type_label; $actionstatic->type_label=$obj->type_label;
$actionstatic->type_picto=$obj->type_picto;
$actionstatic->label=$obj->label; $actionstatic->label=$obj->label;
print "<tr ".$bc[$var].">"; print "<tr ".$bc[$var].">";
@ -394,12 +396,22 @@ if ($resql)
print $actionstatic->label; print $actionstatic->label;
print '</td>'; print '</td>';
// Type
print '<td>';
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
{ {
$labeltype=$obj->type_code; if ($actionstatic->type_picto) print img_picto('', $actionstatic->type_picto);
if (! empty($arraylist[$labeltype])) $labeltype=$arraylist[$labeltype]; else {
print '<td>'.dol_trunc($labeltype,28).'</td>'; 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 // Start date
print '<td align="center" class="nowrap">'; print '<td align="center" class="nowrap">';
@ -455,7 +467,8 @@ if ($resql)
print '</td>'; print '</td>';
// Status/Percent // 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>'; print '<td></td>';

View File

@ -9,7 +9,6 @@
* Copyright (C) 2013 Alexandre Spangaro <aspangaro.dolibarr@gmail.com> * Copyright (C) 2013 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
* Copyright (C) 2015 Frederic France <frederic.france@free.fr> * Copyright (C) 2015 Frederic France <frederic.france@free.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com> * Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
*
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or * the Free Software Foundation; either version 3 of the License, or
@ -89,7 +88,7 @@ $hookmanager->initHooks(array('commcard','globalcard'));
* Actions * 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 $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'); if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
@ -440,7 +439,8 @@ if ($id > 0)
{ {
$langs->load("members"); $langs->load("members");
$langs->load("users"); $langs->load("users");
print '<tr><td>'.$langs->trans("LinkedToDolibarrMember").'</td>';
print '<tr><td class="titlefield">'.$langs->trans("LinkedToDolibarrMember").'</td>';
print '<td>'; print '<td>';
$adh=new Adherent($db); $adh=new Adherent($db);
$result=$adh->fetch('','',$object->id); $result=$adh->fetch('','',$object->id);
@ -459,13 +459,13 @@ if ($id > 0)
print "</table>"; print "</table>";
print '<br>';
print '<div class="underbanner clearboth"></div>';
print '<table class="border" width="100%">';
if ($object->client == 2 || $object->client == 3) if ($object->client == 2 || $object->client == 3)
{ {
print '<br>';
print '<div class="underbanner clearboth"></div>';
print '<table class="border" width="100%">';
// Level of prospect // Level of prospect
print '<tr><td class="titlefield nowrap">'; print '<tr><td class="titlefield nowrap">';
print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">'; print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">';
@ -484,7 +484,8 @@ if ($id > 0)
// Status // Status
$object->loadCacheOfProspStatus(); $object->loadCacheOfProspStatus();
print '<tr><td>'.$langs->trans("StatusProsp").'</td><td colspan="3">'.$object->getLibProspCommStatut(4, $object->cacheprospectstatus[$object->stcomm_id]['label']); 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) foreach($object->cacheprospectstatus as $key => $val)
{ {
$titlealt='default'; $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>'; 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 '</div></td></tr>';
print "</table>";
} }
print "</table>";
print '</div><div class="fichehalfright"><div class="ficheaddleft">'; 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 int $date_end End date of the line
* @param array $array_options extrafields array * @param array $array_options extrafields array
* @param string $fk_unit Code of the unit to use. Null to use the default one * @param string $fk_unit Code of the unit to use. Null to use the default one
* @param string $origin 'order', ... * @param string $origin 'order', ...
* @param int $origin_id Id of origin object * @param int $origin_id Id of origin object
* @return int >0 if OK, <0 if KO * @return int >0 if OK, <0 if KO
* *
* @see add_product * @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. // 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); $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); $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->label=$label;
$this->line->desc=$desc; $this->line->desc=$desc;
$this->line->qty=$qty; $this->line->qty=$qty;
$this->line->vat_src_code=$vat_src_code;
$this->line->tva_tx=$txtva; $this->line->tva_tx=$txtva;
$this->line->localtax1_tx=$txlocaltax1; $this->line->localtax1_tx=$txlocaltax1;
$this->line->localtax2_tx=$txlocaltax2; $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. // 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); $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); $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]; $total_ht = $tabprice[0];
@ -681,6 +697,8 @@ class Propal extends CommonObject
$this->line->remise_percent = $remise_percent; $this->line->remise_percent = $remise_percent;
$this->line->subprice = $pu; $this->line->subprice = $pu;
$this->line->info_bits = $info_bits; $this->line->info_bits = $info_bits;
$this->line->vat_src_code = $vat_src_code;
$this->line->total_ht = $total_ht; $this->line->total_ht = $total_ht;
$this->line->total_tva = $total_tva; $this->line->total_tva = $total_tva;
$this->line->total_localtax1 = $total_localtax1; $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 // 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 = '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.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.date_start, pt.date_end, pt.product_type, pt.rang, pt.fk_parent_line,';
$sql.= ' pt.fk_unit,'; $sql.= ' pt.fk_unit,';
$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,'; $sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,';
$sql.= ' p.description as product_desc,'; $sql.= ' p.description as product_desc,';
$sql.= ' p.entity'; $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.= ' 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.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pt';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid';
$sql.= ' WHERE pt.fk_propal = '.$this->id; $sql.= ' WHERE pt.fk_propal = '.$this->id;
@ -3330,6 +3348,8 @@ class Propal extends CommonObject
$this->lines[$i]->subprice = $obj->subprice; $this->lines[$i]->subprice = $obj->subprice;
$this->lines[$i]->fk_remise_except = $obj->fk_remise_except; $this->lines[$i]->fk_remise_except = $obj->fk_remise_except;
$this->lines[$i]->remise_percent = $obj->remise_percent; $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]->tva_tx = $obj->tva_tx;
$this->lines[$i]->info_bits = $obj->info_bits; $this->lines[$i]->info_bits = $obj->info_bits;
$this->lines[$i]->total_ht = $obj->total_ht; $this->lines[$i]->total_ht = $obj->total_ht;
@ -3685,7 +3705,7 @@ class PropaleLigne extends CommonObjectLine
// Insert line into database // Insert line into database
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'propaldet'; $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'propaldet';
$sql.= ' (fk_propal, fk_parent_line, label, description, fk_product, product_type,'; $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.= ' subprice, remise_percent, ';
$sql.= ' info_bits, '; $sql.= ' info_bits, ';
$sql.= ' total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, fk_product_fournisseur_price, buy_price_ht, special_code, rang,'; $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->product_type."',";
$sql.= " ".($this->fk_remise_except?"'".$this->fk_remise_except."'":"null").","; $sql.= " ".($this->fk_remise_except?"'".$this->fk_remise_except."'":"null").",";
$sql.= " ".price2num($this->qty).","; $sql.= " ".price2num($this->qty).",";
$sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->vat_src_code."'").",";
$sql.= " ".price2num($this->tva_tx).","; $sql.= " ".price2num($this->tva_tx).",";
$sql.= " ".price2num($this->localtax1_tx).","; $sql.= " ".price2num($this->localtax1_tx).",";
$sql.= " ".price2num($this->localtax2_tx).","; $sql.= " ".price2num($this->localtax2_tx).",";
@ -3873,41 +3894,42 @@ class PropaleLigne extends CommonObjectLine
// Mise a jour ligne en base // Mise a jour ligne en base
$sql = "UPDATE ".MAIN_DB_PREFIX."propaldet SET"; $sql = "UPDATE ".MAIN_DB_PREFIX."propaldet SET";
$sql.= " description='".$this->db->escape($this->desc)."'"; $sql.= " description='".$this->db->escape($this->desc)."'";
$sql.= " , label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null"); $sql.= ", label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
$sql.= " , product_type=".$this->product_type; $sql.= ", product_type=".$this->product_type;
$sql.= " , tva_tx='".price2num($this->tva_tx)."'"; $sql.= ", vat_src_code = '".(empty($this->vat_src_code)?'':$this->vat_src_code)."'";
$sql.= " , localtax1_tx=".price2num($this->localtax1_tx); $sql.= ", tva_tx='".price2num($this->tva_tx)."'";
$sql.= " , localtax2_tx=".price2num($this->localtax2_tx); $sql.= ", localtax1_tx=".price2num($this->localtax1_tx);
$sql.= " , localtax1_type='".$this->localtax1_type."'"; $sql.= ", localtax2_tx=".price2num($this->localtax2_tx);
$sql.= " , localtax2_type='".$this->localtax2_type."'"; $sql.= ", localtax1_type='".$this->localtax1_type."'";
$sql.= " , qty='".price2num($this->qty)."'"; $sql.= ", localtax2_type='".$this->localtax2_type."'";
$sql.= " , subprice=".price2num($this->subprice).""; $sql.= ", qty='".price2num($this->qty)."'";
$sql.= " , remise_percent=".price2num($this->remise_percent).""; $sql.= ", subprice=".price2num($this->subprice)."";
$sql.= " , price=".price2num($this->price).""; // TODO A virer $sql.= ", remise_percent=".price2num($this->remise_percent)."";
$sql.= " , remise=".price2num($this->remise).""; // TODO A virer $sql.= ", price=".price2num($this->price).""; // TODO A virer
$sql.= " , info_bits='".$this->info_bits."'"; $sql.= ", remise=".price2num($this->remise).""; // TODO A virer
$sql.= ", info_bits='".$this->info_bits."'";
if (empty($this->skip_update_total)) if (empty($this->skip_update_total))
{ {
$sql.= " , total_ht=".price2num($this->total_ht).""; $sql.= ", total_ht=".price2num($this->total_ht)."";
$sql.= " , total_tva=".price2num($this->total_tva).""; $sql.= ", total_tva=".price2num($this->total_tva)."";
$sql.= " , total_ttc=".price2num($this->total_ttc).""; $sql.= ", total_ttc=".price2num($this->total_ttc)."";
$sql.= " , total_localtax1=".price2num($this->total_localtax1).""; $sql.= ", total_localtax1=".price2num($this->total_localtax1)."";
$sql.= " , total_localtax2=".price2num($this->total_localtax2).""; $sql.= ", total_localtax2=".price2num($this->total_localtax2)."";
} }
$sql.= " , fk_product_fournisseur_price=".(! empty($this->fk_fournprice)?"'".$this->fk_fournprice."'":"null"); $sql.= ", fk_product_fournisseur_price=".(! empty($this->fk_fournprice)?"'".$this->fk_fournprice."'":"null");
$sql.= " , buy_price_ht=".price2num($this->pa_ht); $sql.= ", buy_price_ht=".price2num($this->pa_ht);
if (strlen($this->special_code)) $sql.= " , special_code=".$this->special_code; 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_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null");
if (! empty($this->rang)) $sql.= ", rang=".$this->rang; if (! empty($this->rang)) $sql.= ", rang=".$this->rang;
$sql.= " , date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null"); $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.= ", date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= " , fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit); $sql.= ", fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit);
// Multicurrency // Multicurrency
$sql.= " , multicurrency_subprice=".price2num($this->multicurrency_subprice).""; $sql.= ", multicurrency_subprice=".price2num($this->multicurrency_subprice)."";
$sql.= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; $sql.= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
$sql.= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; $sql.= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
$sql.= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; $sql.= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
$sql.= " WHERE rowid = ".$this->rowid; $sql.= " WHERE rowid = ".$this->rowid;

View File

@ -279,11 +279,13 @@ if ($socid > 0)
print '<br>'; print '<br>';
print load_fiche_titre($langs->trans("NewGlobalDiscount"),'',''); print load_fiche_titre($langs->trans("NewGlobalDiscount"),'','');
print '<div class="underbanner clearboth"></div>';
print '<table class="border" width="100%">'; 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 '<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 '<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 '<td>';
print $form->load_tva('tva_tx',GETPOST('tva_tx'),$mysoc,$object); print $form->load_tva('tva_tx',GETPOST('tva_tx'),$mysoc,$object);
print '</td></tr>'; 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. // 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); $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); $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->label=$label;
$this->line->desc=$desc; $this->line->desc=$desc;
$this->line->qty=$qty; $this->line->qty=$qty;
$this->line->vat_src_code=$vat_src_code;
$this->line->tva_tx=$txtva; $this->line->tva_tx=$txtva;
$this->line->localtax1_tx=$txlocaltax1; $this->line->localtax1_tx=$txlocaltax1;
$this->line->localtax2_tx=$txlocaltax2; $this->line->localtax2_tx=$txlocaltax2;
@ -1727,7 +1736,7 @@ class Commande extends CommonOrder
{ {
$this->lines=array(); $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.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.total_ht, l.total_ttc, l.total_tva, l.total_localtax1, l.total_localtax2, l.date_start, l.date_end,';
$sql.= ' l.fk_unit,'; $sql.= ' l.fk_unit,';
@ -1762,6 +1771,8 @@ class Commande extends CommonOrder
$line->description = $objp->description; // Description line $line->description = $objp->description; // Description line
$line->product_type = $objp->product_type; $line->product_type = $objp->product_type;
$line->qty = $objp->qty; $line->qty = $objp->qty;
$line->vat_src_code = $objp->vat_src_code;
$line->tva_tx = $objp->tva_tx; $line->tva_tx = $objp->tva_tx;
$line->localtax1_tx = $objp->localtax1_tx; $line->localtax1_tx = $objp->localtax1_tx;
$line->localtax2_tx = $objp->localtax2_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. // 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); $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); $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->label=$label;
$this->line->desc=$desc; $this->line->desc=$desc;
$this->line->qty=$qty; $this->line->qty=$qty;
$this->line->tva_tx=$txtva;
$this->line->localtax1_tx=$txlocaltax1; $this->line->vat_src_code = $vat_src_code;
$this->line->localtax2_tx=$txlocaltax2; $this->line->tva_tx = $txtva;
$this->line->localtax1_tx = $txlocaltax1;
$this->line->localtax2_tx = $txlocaltax2;
$this->line->localtax1_type = $localtaxes_type[0]; $this->line->localtax1_type = $localtaxes_type[0];
$this->line->localtax2_type = $localtaxes_type[2]; $this->line->localtax2_type = $localtaxes_type[2];
$this->line->remise_percent=$remise_percent; $this->line->remise_percent = $remise_percent;
$this->line->subprice=$subprice; $this->line->subprice = $subprice;
$this->line->info_bits=$info_bits; $this->line->info_bits = $info_bits;
$this->line->special_code=$special_code; $this->line->special_code = $special_code;
$this->line->total_ht=$total_ht; $this->line->total_ht = $total_ht;
$this->line->total_tva=$total_tva; $this->line->total_tva = $total_tva;
$this->line->total_localtax1=$total_localtax1; $this->line->total_localtax1= $total_localtax1;
$this->line->total_localtax2=$total_localtax2; $this->line->total_localtax2= $total_localtax2;
$this->line->total_ttc=$total_ttc; $this->line->total_ttc = $total_ttc;
$this->line->date_start=$date_start; $this->line->date_start = $date_start;
$this->line->date_end=$date_end; $this->line->date_end = $date_end;
$this->line->product_type=$type; $this->line->product_type = $type;
$this->line->fk_parent_line=$fk_parent_line; $this->line->fk_parent_line = $fk_parent_line;
$this->line->skip_update_total=$skip_update_total; $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->fk_fournprice = $fk_fournprice;
$this->line->pa_ht = $pa_ht; $this->line->pa_ht = $pa_ht;
@ -3325,7 +3345,7 @@ class Commande extends CommonOrder
* @param int $withpicto Add picto into link * @param int $withpicto Add picto into link
* @param int $option Where point the link (0=> main card, 1,2 => shipment) * @param int $option Where point the link (0=> main card, 1,2 => shipment)
* @param int $max Max length to show * @param int $max Max length to show
* @param int $short Use short labels * @param int $short ???
* @param int $notooltip 1=Disable tooltip * @param int $notooltip 1=Disable tooltip
* @return string String with URL * @return string String with URL
*/ */
@ -3931,7 +3951,7 @@ class OrderLine extends CommonOrderLine
// Insertion dans base de la ligne // Insertion dans base de la ligne
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'commandedet'; $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'commandedet';
$sql.= ' (fk_commande, fk_parent_line, label, description, qty, '; $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.= ' fk_product, product_type, remise_percent, subprice, price, remise, fk_remise_except,';
$sql.= ' special_code, rang, fk_product_fournisseur_price, buy_price_ht,'; $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,'; $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.= " ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null").",";
$sql.= " '".$this->db->escape($this->desc)."',"; $sql.= " '".$this->db->escape($this->desc)."',";
$sql.= " '".price2num($this->qty)."',"; $sql.= " '".price2num($this->qty)."',";
$sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->vat_src_code."'").",";
$sql.= " '".price2num($this->tva_tx)."',"; $sql.= " '".price2num($this->tva_tx)."',";
$sql.= " '".price2num($this->localtax1_tx)."',"; $sql.= " '".price2num($this->localtax1_tx)."',";
$sql.= " '".price2num($this->localtax2_tx)."',"; $sql.= " '".price2num($this->localtax2_tx)."',";

View File

@ -906,9 +906,9 @@ if ($resql)
print '</td>'; print '</td>';
} }
// Town // 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 // 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 // State
if (! empty($arrayfields['state.nom']['checked'])) if (! empty($arrayfields['state.nom']['checked']))
{ {
@ -951,14 +951,14 @@ if ($resql)
{ {
// Amount // Amount
print '<td class="liste_titre" align="right">'; 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>'; print '</td>';
} }
if (! empty($arrayfields['c.total_vat']['checked'])) if (! empty($arrayfields['c.total_vat']['checked']))
{ {
// Amount // Amount
print '<td class="liste_titre" align="right">'; 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>'; print '</td>';
} }
if (! empty($arrayfields['c.total_ttc']['checked'])) if (! empty($arrayfields['c.total_ttc']['checked']))

View File

@ -429,7 +429,7 @@ if ($id > 0 || ! empty($ref))
if ($object->canBeConciliated() > 0) { if ($object->canBeConciliated() > 0) {
// If not cash account and can be reconciliate // If not cash account and can be reconciliate
if ($user->rights->banque->consolidate) { 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 { } else {
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>'; 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); $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 open a list of transaction of a dedicated account and no page was set by defaut
// We force on last page. // We force on last page.
@ -519,6 +519,13 @@ if (($id > 0 || ! empty($ref)) && GETPOST("page",'int') === '')
$offset = $limit * $page; $offset = $limit * $page;
if ($page < 0) $page = 0; 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($search_ref)) $mode_balance_ok=false;
if (! empty($req_nb)) $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'); $limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit;
$sortorder = GETPOST('sortorder', 'alpha'); $sortfield = GETPOST("sortfield",'alpha');
$page = GETPOST('page', 'int'); $sortorder = GETPOST("sortorder",'alpha');
$page = GETPOST("page",'int');
$pageplusone = GETPOST("pageplusone",'int');
if ($pageplusone) $page = $pageplusone - 1;
if ($page == -1) { $page = 0; } if ($page == -1) { $page = 0; }
$offset = $limit * $page;
$pageprev = $page - 1;
$pagenext = $page + 1;
if (! $sortorder) $sortorder="ASC"; if (! $sortorder) $sortorder="ASC";
if (! $sortfield) $sortfield="s.nom"; if (! $sortfield) $sortfield="s.nom";
$offset = $conf->liste_limit * $page; $object = new Account($db);
$pageprev = $page - 1; if ($id > 0 || ! empty($ref))
$pagenext = $page + 1; {
$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); $banklinestatic=new AccountLine($db);
$remisestatic = new RemiseCheque($db); $remisestatic = new RemiseCheque($db);
// Load account // Must be before button action
$object = new Account($db); $param='';
if ($id > 0 || ! empty($ref)) if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
{ if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
$object->fetch($id, $ref); if ($id > 0) $param.='&id='.urlencode($id);
}
if (empty($num)) if (empty($num))
{ {
@ -138,7 +151,7 @@ if (empty($num))
if ($object->canBeConciliated() > 0) { if ($object->canBeConciliated() > 0) {
// If not cash account and can be reconciliate // If not cash account and can be reconciliate
if ($user->rights->banque->consolidate) { 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 { } else {
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>'; print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
} }
@ -216,7 +229,7 @@ if (empty($num))
else else
{ {
/** /**
* Affiche liste ecritures d'un releve * Show list of bank statements
*/ */
$ve=$_GET["ve"]; $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. // 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); $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); $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->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->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->tva_tx = $txtva;
$this->line->localtax1_tx = $txlocaltax1; $this->line->localtax1_tx = $txlocaltax1;
$this->line->localtax2_tx = $txlocaltax2; $this->line->localtax2_tx = $txlocaltax2;
@ -4543,43 +4550,43 @@ class FactureLigne extends CommonInvoiceLine
// Mise a jour ligne en base // Mise a jour ligne en base
$sql = "UPDATE ".MAIN_DB_PREFIX."facturedet SET"; $sql = "UPDATE ".MAIN_DB_PREFIX."facturedet SET";
$sql.= " description='".$this->db->escape($this->desc)."'"; $sql.= " description='".$this->db->escape($this->desc)."'";
$sql.= ",label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null"); $sql.= ", label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
$sql.= ",subprice=".price2num($this->subprice).""; $sql.= ", subprice=".price2num($this->subprice)."";
$sql.= ",remise_percent=".price2num($this->remise_percent).""; $sql.= ", remise_percent=".price2num($this->remise_percent)."";
if ($this->fk_remise_except) $sql.= ",fk_remise_except=".$this->fk_remise_except; if ($this->fk_remise_except) $sql.= ", fk_remise_except=".$this->fk_remise_except;
else $sql.= ",fk_remise_except=null"; else $sql.= ", fk_remise_except=null";
$sql.= ",vat_src_code = '".(empty($this->vat_src_code)?'':$this->vat_src_code)."'"; $sql.= ", vat_src_code = '".(empty($this->vat_src_code)?'':$this->vat_src_code)."'";
$sql.= ",tva_tx=".price2num($this->tva_tx).""; $sql.= ", tva_tx=".price2num($this->tva_tx)."";
$sql.= ",localtax1_tx=".price2num($this->localtax1_tx).""; $sql.= ", localtax1_tx=".price2num($this->localtax1_tx)."";
$sql.= ",localtax2_tx=".price2num($this->localtax2_tx).""; $sql.= ", localtax2_tx=".price2num($this->localtax2_tx)."";
$sql.= ",localtax1_type='".$this->localtax1_type."'"; $sql.= ", localtax1_type='".$this->localtax1_type."'";
$sql.= ",localtax2_type='".$this->localtax2_type."'"; $sql.= ", localtax2_type='".$this->localtax2_type."'";
$sql.= ",qty=".price2num($this->qty).""; $sql.= ", qty=".price2num($this->qty)."";
$sql.= ",date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null"); $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.= ", date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= ",product_type=".$this->product_type; $sql.= ", product_type=".$this->product_type;
$sql.= ",info_bits='".$this->info_bits."'"; $sql.= ", info_bits='".$this->info_bits."'";
$sql.= ",special_code='".$this->special_code."'"; $sql.= ", special_code='".$this->special_code."'";
if (empty($this->skip_update_total)) if (empty($this->skip_update_total))
{ {
$sql.= ",total_ht=".price2num($this->total_ht).""; $sql.= ", total_ht=".price2num($this->total_ht)."";
$sql.= ",total_tva=".price2num($this->total_tva).""; $sql.= ", total_tva=".price2num($this->total_tva)."";
$sql.= ",total_ttc=".price2num($this->total_ttc).""; $sql.= ", total_ttc=".price2num($this->total_ttc)."";
$sql.= ",total_localtax1=".price2num($this->total_localtax1).""; $sql.= ", total_localtax1=".price2num($this->total_localtax1)."";
$sql.= ",total_localtax2=".price2num($this->total_localtax2).""; $sql.= ", total_localtax2=".price2num($this->total_localtax2)."";
} }
$sql.= " , fk_product_fournisseur_price=".(! empty($this->fk_fournprice)?"'".$this->db->escape($this->fk_fournprice)."'":"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.= ", buy_price_ht='".price2num($this->pa_ht)."'";
$sql.= ",fk_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null"); $sql.= ", fk_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null");
if (! empty($this->rang)) $sql.= ", rang=".$this->rang; if (! empty($this->rang)) $sql.= ", rang=".$this->rang;
$sql .= ", situation_percent=" . $this->situation_percent; $sql.= ", situation_percent=" . $this->situation_percent;
$sql .= ", fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit); $sql.= ", fk_unit=".(!$this->fk_unit ? 'NULL' : $this->fk_unit);
// Multicurrency // Multicurrency
$sql.= " , multicurrency_subprice=".price2num($this->multicurrency_subprice).""; $sql.= ", multicurrency_subprice=".price2num($this->multicurrency_subprice)."";
$sql.= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; $sql.= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
$sql.= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; $sql.= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
$sql.= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; $sql.= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
$sql.= " WHERE rowid = ".$this->rowid; $sql.= " WHERE rowid = ".$this->rowid;

View File

@ -49,7 +49,10 @@ if (! $error && count($toselect) > $maxformassaction)
$error++; $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') if (! $error && $massaction == 'confirm_presend')
{ {
$resaction = ''; $resaction = '';

View File

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

View File

@ -1148,7 +1148,6 @@ abstract class CommonObject
*/ */
function fetch_origin() function fetch_origin()
{ {
// TODO uniformise code
if ($this->origin == 'shipping') $this->origin = 'expedition'; if ($this->origin == 'shipping') $this->origin = 'expedition';
if ($this->origin == 'delivery') $this->origin = 'livraison'; if ($this->origin == 'delivery') $this->origin = 'livraison';
@ -2799,7 +2798,11 @@ abstract class CommonObject
if (! $error) if (! $error)
{ {
$this->db->commit(); $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; return 1;
} }
else else

View File

@ -1618,9 +1618,11 @@ class Form
* @param int $socid Thirdparty Id (to get also price dedicated to this customer) * @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 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 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 * @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; global $langs,$conf;
@ -1660,28 +1662,30 @@ class Form
} }
else 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 * Return list of products for a customer
* *
* @param int $selected Preselected product * @param int $selected Preselected product
* @param string $htmlname Name of select html * @param string $htmlname Name of select html
* @param string $filtertype Filter on product type (''=nofilter, 0=product, 1=service) * @param string $filtertype Filter on product type (''=nofilter, 0=product, 1=service)
* @param int $limit Limit on number of returned lines * @param int $limit Limit on number of returned lines
* @param int $price_level Level of price to show * @param int $price_level Level of price to show
* @param string $filterkey Filter on product * @param string $filterkey Filter on product
* @param int $status -1=Return all products, 0=Products not on sell, 1=Products on sell * @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 $finished Filter on finished field: 2=No filter
* @param int $outputmode 0=HTML select string, 1=Array * @param int $outputmode 0=HTML select string, 1=Array
* @param int $socid Thirdparty Id (to get also price dedicated to this customer) * @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 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 int $forcecombo Force to use combo box
* @return array Array of keys for json * @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; global $langs,$conf,$user,$db;
@ -1782,7 +1786,7 @@ class Form
$nodatarole=($comboenhancement?' data-role="none"':''); $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=''; $textifempty='';
// Do not use textifempty = ' ' or '&nbsp;' here, or search on key will search on ' key'. // 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->remise = $objp2->remise;
$objp->price_by_qty_rowid = $objp2->rowid; $objp->price_by_qty_rowid = $objp2->rowid;
$this->constructProductListOption($objp, $opt, $optJson, 0, $selected); $this->constructProductListOption($objp, $opt, $optJson, 0, $selected, $hidepriceinlabel);
$j++; $j++;
@ -1851,7 +1855,7 @@ class Form
$objp->price_ttc = price2num($objp->price_ttc,'MU'); $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 // Add new entry
// "key" value of json key array is used by jQuery automatically as selected value // "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 // "label" value of json key array is used by jQuery automatically as text for combo box
@ -1931,13 +1935,13 @@ class Form
$opt.= '>'; $opt.= '>';
$opt.= $objp->ref; $opt.= $objp->ref;
if ($outbarcode) $opt.=' ('.$outbarcode.')'; if ($outbarcode) $opt.=' ('.$outbarcode.')';
$opt.=' - '.dol_trunc($label,$maxlengtharticle).' - '; $opt.=' - '.dol_trunc($label,$maxlengtharticle);
$objRef = $objp->ref; $objRef = $objp->ref;
if (! empty($filterkey) && $filterkey != '') $objRef=preg_replace('/('.preg_quote($filterkey).')/i','<strong>$1</strong>',$objRef,1); if (! empty($filterkey) && $filterkey != '') $objRef=preg_replace('/('.preg_quote($filterkey).')/i','<strong>$1</strong>',$objRef,1);
$outval.=$objRef; $outval.=$objRef;
if ($outbarcode) $outval.=' ('.$outbarcode.')'; if ($outbarcode) $outval.=' ('.$outbarcode.')';
$outval.=' - '.dol_trunc($label,$maxlengtharticle).' - '; $outval.=' - '.dol_trunc($label,$maxlengtharticle);
$found=0; $found=0;
@ -1962,13 +1966,13 @@ class Form
$found=1; $found=1;
if ($objp2->price_base_type == 'HT') if ($objp2->price_base_type == 'HT')
{ {
$opt.= price($objp2->price,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("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"); $outval.= ' - '.price($objp2->price,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("HT");
} }
else else
{ {
$opt.= price($objp2->price_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("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"); $outval.= ' - '.price($objp2->price_ttc,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("TTC");
} }
$outprice_ht=price($objp2->price); $outprice_ht=price($objp2->price);
$outprice_ttc=price($objp2->price_ttc); $outprice_ttc=price($objp2->price_ttc);
@ -1990,15 +1994,15 @@ class Form
$outdiscount=$objp->remise_percent; $outdiscount=$objp->remise_percent;
if ($objp->quantity == 1) if ($objp->quantity == 1)
{ {
$opt.= price($objp->unitprice,1,$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)."/"; $outval.= ' - '.price($objp->unitprice,0,$langs,0,0,-1,$conf->currency)."/";
$opt.= $langs->trans("Unit"); // Do not use strtolower because it breaks utf8 encoding $opt.= $langs->trans("Unit"); // Do not use strtolower because it breaks utf8 encoding
$outval.=$langs->transnoentities("Unit"); $outval.=$langs->transnoentities("Unit");
} }
else else
{ {
$opt.= price($objp->price,1,$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; $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 $opt.= $langs->trans("Units"); // Do not use strtolower because it breaks utf8 encoding
$outval.=$langs->transnoentities("Units"); $outval.=$langs->transnoentities("Units");
} }
@ -2028,13 +2032,13 @@ class Form
if ($objp->custprice_base_type == 'HT') if ($objp->custprice_base_type == 'HT')
{ {
$opt.= price($objp->custprice,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("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"); $outval.= ' - '.price($objp->custprice,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("HT");
} }
else else
{ {
$opt.= price($objp->custprice_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("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"); $outval.= ' - '.price($objp->custprice_ttc,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("TTC");
} }
$outprice_ht=price($objp->custprice); $outprice_ht=price($objp->custprice);
@ -2049,13 +2053,13 @@ class Form
{ {
if ($objp->price_base_type == 'HT') if ($objp->price_base_type == 'HT')
{ {
$opt.= price($objp->price,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("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"); $outval.= ' - '.price($objp->price,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("HT");
} }
else else
{ {
$opt.= price($objp->price_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("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"); $outval.= ' - '.price($objp->price_ttc,0,$langs,0,0,-1,$conf->currency).' '.$langs->transnoentities("TTC");
} }
$outprice_ht=price($objp->price); $outprice_ht=price($objp->price);
$outprice_ttc=price($objp->price_ttc); $outprice_ttc=price($objp->price_ttc);
@ -4210,21 +4214,21 @@ class Form
* Output an HTML select vat rate. * Output an HTML select vat rate.
* The name of this function should be selectVat. We keep bad name for compatibility purpose. * The name of this function should be selectVat. We keep bad name for compatibility purpose.
* *
* @param string $htmlname Name of HTML select field * @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 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_vendeuse Thirdparty seller
* @param Societe $societe_acheteuse Thirdparty buyer * @param Societe $societe_acheteuse Thirdparty buyer
* @param int $idprod Id product * @param int $idprod Id product
* @param int $info_bits Miscellaneous information on line (1 for NPR) * @param int $info_bits Miscellaneous information on line (1 for NPR)
* @param int $type ''=Unknown, 0=Product, 1=Service (Used if idprod not defined) * @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 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 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 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= 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. * 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. * Sinon la TVA proposee par defaut=0. Fin de regle.
* @param bool $options_only Return HTML options lines only (for ajax treatment) * @param bool $options_only Return HTML options lines only (for ajax treatment)
* @param int $addcode Add code into key in select list * @param int $addcode Add code into key in select list
* @return string * @return string
*/ */
function load_tva($htmlname='tauxtva', $selectedrate='', $societe_vendeuse='', $societe_acheteuse='', $idprod=0, $info_bits=0, $type='', $options_only=false, $addcode=0) 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); $defaultnpr=(preg_match('/\*/',$selectedrate) ? 1 : $defaultnpr);
$defaulttx=str_replace('*','',$selectedrate); $defaulttx=str_replace('*','',$selectedrate);
$defaultcode=''; $defaultcode='';
if (preg_match('/\s*\((.*)\)/', $defaulttx, $reg)) if (preg_match('/\((.*)\)/', $defaulttx, $reg))
{ {
$defaultcode=$reg[1]; $defaultcode=$reg[1];
$defaulttx=preg_replace('/\s*\(.*\)/','',$defaulttx); $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.'>'; if (! $options_only) $return.= '<select class="flat" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled':'').$title.'>';
$selectedfound=false;
foreach ($this->cache_vatrates as $rate) foreach ($this->cache_vatrates as $rate)
{ {
// Keep only 0 if seller is not subject to VAT // Keep only 0 if seller is not subject to VAT
@ -4342,13 +4347,21 @@ class Form
$return.= $rate['nprtva'] ? '*': ''; $return.= $rate['nprtva'] ? '*': '';
if ($addcode && $rate['code']) $return.=' ('.$rate['code'].')'; if ($addcode && $rate['code']) $return.=' ('.$rate['code'].')';
$return.= '"'; $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'; if ($defaultcode) // If defaultcode is defined, we used it in priority to select combo option instead of using rate+npr flag
} {
elseif ($rate['txtva'] == $defaulttx && $rate['nprtva'] == $defaultnpr) if ($defaultcode == $rate['code'])
{ {
$return.= ' selected'; $return.= ' selected';
$selectedfound=true;
}
}
elseif ($rate['txtva'] == $defaulttx && $rate['nprtva'] == $defaultnpr)
{
$return.= ' selected';
$selectedfound=true;
}
} }
$return.= '>'.vatrate($rate['libtva']); $return.= '>'.vatrate($rate['libtva']);
//$return.=($rate['code']?' '.$rate['code']:''); //$return.=($rate['code']?' '.$rate['code']:'');

View File

@ -62,7 +62,7 @@ class FormActions
$listofstatus = array( $listofstatus = array(
'-1' => $langs->trans("ActionNotApplicable"), '-1' => $langs->trans("ActionNotApplicable"),
'0' => $langs->trans("ActionRunningNotStarted"), '0' => $langs->trans("ActionsToDoShort"),
'50' => $langs->trans("ActionRunningShort"), '50' => $langs->trans("ActionRunningShort"),
'100' => $langs->trans("ActionDoneShort") '100' => $langs->trans("ActionDoneShort")
); );
@ -100,7 +100,7 @@ class FormActions
} }
else if (defaultvalue == 0) { else if (defaultvalue == 0) {
percentage.val(0); percentage.val(0);
percentage.prop('disabled', true); percentage.removeAttr('disabled'); /* Not disabled, we want to change it to higher value */
$('.hideifna').show(); $('.hideifna').show();
} }
else if (defaultvalue == 100) { 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 Conf $conf Object conf
* @param Translate $langs Object langs * @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 $actioncode Filter on actioncode
* @param string $donetodo Filter on event 'done' or 'todo' or ''=nofilter. * @param string $donetodo Filter on event 'done' or 'todo' or ''=nofilter.
* @param array $filters Filter on other fields * @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 * @return mixed Return html part or void if noprint is 1
* TODO change function to be able to list event linked to an object. * 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 $bc,$user,$conf;
global $form; global $form;
global $param;
// Check parameters // Check parameters
if (! is_object($filterobj)) dol_print_error('','BadParameter'); 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.note, a.percent,";
$sql.= " a.fk_element, a.elementtype,"; $sql.= " a.fk_element, a.elementtype,";
$sql.= " a.fk_user_author, a.fk_contact,"; $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"; $sql.= " u.login, u.rowid as user_id";
if (get_class($filterobj) == 'Societe') $sql.= ", sp.lastname, sp.firstname"; if (get_class($filterobj) == 'Societe') $sql.= ", sp.lastname, sp.firstname";
if (get_class($filterobj) == 'Adherent') $sql.= ", m.lastname, m.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 == '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 ($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']); 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); dol_syslog("company.lib::show_actions_done", LOG_DEBUG);
$resql=$db->query($sql); $resql=$db->query($sql);
@ -1028,15 +1032,18 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
'dateend'=>$db->jdate($obj->dp2), 'dateend'=>$db->jdate($obj->dp2),
'note'=>$obj->label, 'note'=>$obj->label,
'percent'=>$obj->percent, 'percent'=>$obj->percent,
'acode'=>$obj->acode, 'userid'=>$obj->user_id,
'libelle'=>$obj->libelle,
'userid'=>$obj->user_id,
'login'=>$obj->login, 'login'=>$obj->login,
'contact_id'=>$obj->fk_contact, 'contact_id'=>$obj->fk_contact,
'lastname'=>$obj->lastname, 'lastname'=>$obj->lastname,
'firstname'=>$obj->firstname, 'firstname'=>$obj->firstname,
'fk_element'=>$obj->fk_element, '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++; $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)) if (! empty($conf->mailing->enabled) && ! empty($objcon->email))
{ {
$langs->load("mails"); $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 = "SELECT m.rowid as id, mc.date_envoi as da, m.titre as note, '100' as percentage,";
$sql.= " 'AC_EMAILING' as acode,"; $sql.= " 'AC_EMAILING' as acode,";
$sql.= " u.rowid as user_id, u.login"; // User that valid action $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.'/comm/propal/class/propal.class.php';
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.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); $userstatic=new User($db);
$contactstatic = new Contact($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>'; if (get_class($filterobj) == 'Societe') $out.='</a>';
$out.='</td>'; $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("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>'.$langs->trans("Type").'</td>';
$out.='<td></td>'; $out.='<td></td>';
$out.='<td></td>'; $out.='<td></td>';
$out.='<td>'.$langs->trans("By").'</td>'; $out.='<td>'.$langs->trans("Owner").'</td>';
$out.='<td align="center">'.$langs->trans("Status").'</td>'; $out.=getTitleFieldOfList($langs->trans("Status"), 0, $_SERVER["PHP_SELF"], 'a.percent', '', $param, 'align="center"', $sortfield, $sortorder);
$out.='<td align="center"></td>'; $out.='<td align="center"></td>';
$out.='</tr>'; $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><input type="text" name="search_agenda_label" value="'.$filters['search_agenda_label'].'"></td>';
$out.='<td></td>'; $out.='<td></td>';
$out.='<td>'; $out.='<td>';
if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) { $out.=$formactions->select_type_actions($actioncode, "actioncode", '', empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:0, 0, 0, 1);
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.='</td>'; $out.='</td>';
$out.='<td></td>'; $out.='<td></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) foreach ($histo as $key=>$value)
{ {
$var=!$var; $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].">"; $out.="<tr ".$bc[$var].">";
// done or todo // Done or todo
if ($donetodo) if ($donetodo)
{ {
$out.='<td class="nowrap">'; $out.='<td class="nowrap">';
@ -1191,7 +1198,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
{ {
$actionstatic->type_code=$histo[$key]['acode']; $actionstatic->type_code=$histo[$key]['acode'];
$transcode=$langs->trans("Action".$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; //$actionstatic->libelle=$libelle;
$libelle=$histo[$key]['note']; $libelle=$histo[$key]['note'];
$actionstatic->id=$histo[$key]['id']; $actionstatic->id=$histo[$key]['id'];
@ -1218,7 +1225,17 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
} }
$out.="</td>\n"; $out.="</td>\n";
// Type
$out.='<td>'; $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.=$actionstatic->type;
$out.='</td>'; $out.='</td>';
@ -1292,7 +1309,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
$out.='</td>'; $out.='</td>';
// Statut // 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 // Actions
$out.='<td></td>'; $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", ...) 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 '?' preg_match('/^([^\?]+(\.css\.php|\.css|\.js\.php|\.js|\.png|\.jpg|\.php)?)/i',$path,$regs); // Take part before '?'
if (! empty($regs[1])) 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=$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 //$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; 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 * Return a string with VAT rate label formated for view output
* Used into pdf and HTML pages * 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 boolean $addpercent Add a percent % sign in output
* @param int $info_bits Miscellaneous information on vat (0=Default, 1=French NPR vat) * @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 * @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=''; $morelabel='';
@ -3345,7 +3359,7 @@ function vatrate($rate,$addpercent=false,$info_bits=0,$usestarfornpr=0)
if (preg_match('/\((.*)\)/',$rate,$reg)) if (preg_match('/\((.*)\)/',$rate,$reg))
{ {
$morelabel=' ('.$reg[1].')'; $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)) 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 (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 else $ref_prodserv = $prodser->ref; // Show local ref only
if (! empty($libelleproduitservice)) $ref_prodserv .= " - "; 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($txtva)) $txtva=0;
if (empty($seller) || ! is_object($seller)) 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) if (! is_object($mysoc)) // mysoc may be not defined (during migration process)
{ {
$mysoc=new Societe($db); $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)) 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 // 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); //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.= " FROM ".MAIN_DB_PREFIX."c_tva as cv";
$sql.= " WHERE cv.taux = ".$txtva; $sql.= " WHERE cv.taux = ".$txtva;
$sql.= " AND cv.fk_pays = ".$countryid; $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); $resql = $db->query($sql);
if ($resql) if ($resql)
{ {

View File

@ -21,8 +21,9 @@
* \ingroup expedition * \ingroup expedition
* \brief Library for expedition module * \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.'/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); $product_static=new Product($db);
$expedition=new Expedition($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 = "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,"; $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,"; //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.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("DateCreation").'</td>';
print '<td align="center">'.$langs->trans("DateDeliveryPlanned").'</td>'; print '<td align="center">'.$langs->trans("DateDeliveryPlanned").'</td>';
print '<td align="center">'.$langs->trans("QtyShipped").'</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>'.$langs->trans("DeliveryOrder").'</td>';
//print '<td align="center">'.$langs->trans("QtyReceived").'</td>'; //print '<td align="center">'.$langs->trans("QtyReceived").'</td>';
@ -309,6 +315,18 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
// Qty shipped // Qty shipped
print '<td align="center">'.$objp->qty_shipped.'</td>'; 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 // Informations on receipt
if (! empty($conf->livraison_bon->enabled)) if (! empty($conf->livraison_bon->enabled))
{ {

View File

@ -265,8 +265,14 @@ class modMultiCurrency extends DolibarrModules
$sql = array(); $sql = array();
//$this->_load_tables('/multicurrency/sql/'); //$this->_load_tables('/multicurrency/sql/');
$res = $this->_init($sql, $options);
return $this->_init($sql, $options); if ($res)
{
$this->createFirstCurrency();
}
return $res;
} }
/** /**
@ -284,5 +290,27 @@ class modMultiCurrency extends DolibarrModules
return $this->_remove($sql, $options); 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')); $hookmanager->initHooks(array('pdfgeneration'));
$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs); $parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
global $action; 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); $nblignes = count($object->lines);

View File

@ -111,7 +111,7 @@ $coldisplay=-1; // We remove first td
<?php <?php
$coldisplay++; $coldisplay++;
if ($this->situation_counter == 1 || !$this->situation_cycle_ref) { 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 { } else {
print '<td align="right"><input size="1" type="text" class="flat" name="tva_tx" value="' . price($line->tva_tx) . '" readonly />%</td>'; 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> </td>
<?php if ($object->element == 'supplier_proposal') { ?> <?php if ($object->element == 'supplier_proposal') { ?>
<td class="linecolrefsupplier" align="right"><?php echo $line->ref_fourn; ?></td> <td class="linecolrefsupplier" align="right"><?php echo $line->ref_fourn; ?></td>
<?php } ?> <?php }
<td align="right" class="linecolvat nowrap"><?php $coldisplay++; ?><?php echo vatrate($line->tva_tx,'%',$line->info_bits); ?></td> // 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> <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) 2014-2015 Francis Appels <francis.appels@yahoo.com>
* Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop> * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
* Copyright (C) 2016 Ferran Marcet <fmarcet@2byte.es> * 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 * 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 * 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/modules/expedition/modules_expedition.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.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.'/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->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->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->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->productbatch->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php';
if (! empty($conf->projet->enabled)) { if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
@ -75,6 +76,7 @@ $result=restrictedArea($user, $origin, $origin_id);
$action = GETPOST('action','alpha'); $action = GETPOST('action','alpha');
$confirm = GETPOST('confirm','alpha'); $confirm = GETPOST('confirm','alpha');
$cancel = GETPOST('cancel','alpha');
//PDF //PDF
$hidedetails = (GETPOST('hidedetails','int') ? GETPOST('hidedetails','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0)); $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 (empty($reshook))
{ {
if ($cancel) { $action = ''; }
include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once
// Set incoterm // Set incoterm
@ -127,6 +131,23 @@ if (empty($reshook))
$result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); $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') if ($action == 'update_extras')
{ {
// Fill array 'array_options' with data from update form // Fill array 'array_options' with data from update form
@ -181,9 +202,9 @@ if (empty($reshook))
$objectsrc->fetch($object->origin_id); $objectsrc->fetch($object->origin_id);
$object->socid = $objectsrc->socid; $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->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->fk_delivery_address = $objectsrc->fk_delivery_address;
$object->shipping_method_id = GETPOST('shipping_method_id','int'); $object->shipping_method_id = GETPOST('shipping_method_id','int');
$object->tracking_number = GETPOST('tracking_number','alpha'); $object->tracking_number = GETPOST('tracking_number','alpha');
@ -534,13 +555,21 @@ if (empty($reshook))
elseif ($action == 'classifybilled') elseif ($action == 'classifybilled')
{ {
$object->fetch($id); $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') elseif ($action == 'classifyclosed')
{ {
$object->fetch($id); $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'; include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
@ -566,9 +595,12 @@ llxHeader('',$langs->trans('Shipment'),'Expedition');
$form = new Form($db); $form = new Form($db);
$formfile = new FormFile($db); $formfile = new FormFile($db);
$formproduct = new FormProduct($db); $formproduct = new FormProduct($db);
$product_static = new Product($db);
if (! empty($conf->projet->enabled)) { $formproject = new FormProjets($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') if ($action == 'create2')
{ {
print load_fiche_titre($langs->trans("CreateASending")).'<br>'; print load_fiche_titre($langs->trans("CreateASending")).'<br>';
@ -1215,11 +1247,12 @@ else if ($id || $ref)
if ($object->id > 0) if ($object->id > 0)
{ {
if (!empty($object->origin)) if (!empty($object->origin) && $object->origin_id > 0)
{ {
$typeobject = $object->origin; $typeobject = $object->origin;
$origin = $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); $soc = new Societe($db);
@ -1232,17 +1265,13 @@ else if ($id || $ref)
$formconfirm=''; $formconfirm='';
/* // Confirm deleteion
* Confirmation de la suppression
*/
if ($action == 'delete') if ($action == 'delete')
{ {
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('DeleteSending'),$langs->trans("ConfirmDeleteSending",$object->ref),'confirm_delete','',0,1); $formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('DeleteSending'),$langs->trans("ConfirmDeleteSending",$object->ref),'confirm_delete','',0,1);
} }
/* // Confirmation validation
* Confirmation de la validation
*/
if ($action == 'valid') if ($action == 'valid')
{ {
$objectref = substr($object->ref, 1, 4); $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); $formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('ValidateSending'),$text,'confirm_valid','',0,1);
} }
/* // Confirm cancelation
* Confirmation de l'annulation
*/
if ($action == 'annuler') if ($action == 'annuler')
{ {
$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('CancelSending'),$langs->trans("ConfirmCancelSending",$object->ref),'confirm_cancel','',0,1); $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']; $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 // Shipment card
$linkback = '<a href="'.DOL_URL_ROOT.'/expedition/list.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/expedition/list.php">'.$langs->trans("BackToList").'</a>';
$morehtmlref='<div class="refidno">'; $morehtmlref='<div class="refidno">';
// Ref customer shipment // Ref customer shipment
$morehtmlref.=$form->editfieldkey("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1); $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_customer', $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->editfieldval("RefCustomer", 'ref_customer', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', null, null, '', 1);
// Thirdparty // Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project // Project
/*
if (! empty($conf->projet->enabled)) { if (! empty($conf->projet->enabled)) {
$langs->load("projects"); $langs->load("projects");
$morehtmlref .= '<br>' . $langs->trans('Project') . ' '; $morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
if ($user->rights->supplier_proposal->creer) { if (0) { // Do not change on shipment
if ($action != 'classify') { if ($action != 'classify') {
$morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; $morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
} }
@ -1325,17 +1361,20 @@ else if ($id || $ref)
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
} }
} else { } 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 = new Project($db);
$proj->fetch($object->fk_project); $proj->fetch($objectsrc->fk_project);
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">'; $morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $objectsrc->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
$morehtmlref .= $proj->ref; $morehtmlref .= $proj->ref;
$morehtmlref .= '</a>'; $morehtmlref .= '</a>';
} else { } else {
$morehtmlref .= ''; $morehtmlref .= '';
} }
} }
}*/ }
$morehtmlref.='</div>'; $morehtmlref.='</div>';
@ -1352,8 +1391,6 @@ else if ($id || $ref)
if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled)) if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))
{ {
print '<tr><td>'; print '<tr><td>';
$objectsrc=new Commande($db);
$objectsrc->fetch($object->$typeobject->id);
print $langs->trans("RefOrder").'</td>'; print $langs->trans("RefOrder").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $objectsrc->getNomUrl(1,'commande'); print $objectsrc->getNomUrl(1,'commande');
@ -1363,8 +1400,6 @@ else if ($id || $ref)
if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled)) if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))
{ {
print '<tr><td>'; print '<tr><td>';
$objectsrc=new Propal($db);
$objectsrc->fetch($object->$typeobject->id);
print $langs->trans("RefProposal").'</td>'; print $langs->trans("RefProposal").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $objectsrc->getNomUrl(1,'expedition'); print $objectsrc->getNomUrl(1,'expedition');
@ -1374,7 +1409,7 @@ else if ($id || $ref)
// Date creation // Date creation
print '<tr><td class="titlefield">'.$langs->trans("DateCreation").'</td>'; 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>'; print '</tr>';
// Delivery date planned // Delivery date planned
@ -1505,11 +1540,6 @@ else if ($id || $ref)
print "</td>\n"; print "</td>\n";
print '</tr>'; print '</tr>';
// Status
/*print '<tr><td>'.$langs->trans("Status").'</td>';
print '<td colspan="3">'.$object->getLibStatut(4)."</td>\n";
print '</tr>';*/
// Other attributes // Other attributes
$cols = 2; $cols = 2;
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; 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>'; 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("CalculatedWeight").'</td>';
print '<td align="center">'.$langs->trans("CalculatedVolume").'</td>'; print '<td align="center">'.$langs->trans("CalculatedVolume").'</td>';
//print '<td align="center">'.$langs->trans("Size").'</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++) for ($i = 0 ; $i < $num_prod ; $i++)
{ {
print "<tr ".$bc[$var].">"; print "<tr ".$bc[$var].">";
@ -1700,12 +1779,43 @@ else if ($id || $ref)
print "</td>\n"; print "</td>\n";
} }
// Qte commande // Qty ordered
print '<td align="center">'.$lines[$i]->qty_asked.'</td>'; 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>'; 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 // Weight
print '<td align="center">'; 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"); 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 // Size
//print '<td align="center">'.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->volume_units,"volume").'</td>'; //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)) if (! empty($conf->stock->enabled))
{ {
print '<td align="left">'; print '<td align="left">';
@ -1774,7 +1884,7 @@ else if ($id || $ref)
} }
print "</tr>"; print "</tr>";
//Display lines extrafields // Display lines extrafields
if (is_array($extralabelslines) && count($extralabelslines)>0) { if (is_array($extralabelslines) && count($extralabelslines)>0) {
$colspan= empty($conf->productbatch->enabled) ? 5 : 6; $colspan= empty($conf->productbatch->enabled) ? 5 : 6;
$line = new ExpeditionLigne($db); $line = new ExpeditionLigne($db);
@ -1787,6 +1897,10 @@ else if ($id || $ref)
$var=!$var; $var=!$var;
} }
// TODO Show also lines ordered but not delivered
print "</table>\n"; print "</table>\n";
} }
@ -1796,6 +1910,7 @@ else if ($id || $ref)
$object->fetchObjectLinked($object->id,$object->element); $object->fetchObjectLinked($object->id,$object->element);
/* /*
* Boutons actions * Boutons actions
*/ */
@ -1885,6 +2000,7 @@ else if ($id || $ref)
/* /*
* Documents generated * Documents generated
*/ */
if ($action != 'presend') if ($action != 'presend')
{ {
print '<div class="fichecenter"><div class="fichehalfleft">'; print '<div class="fichecenter"><div class="fichehalfleft">';
@ -1915,9 +2031,11 @@ else if ($id || $ref)
print '</div></div></div>'; print '</div></div></div>';
} }
/* /*
* Action presend * Action presend
*/ */
//Select mail models is same action as presend //Select mail models is same action as presend
if (GETPOST('modelselected')) { if (GETPOST('modelselected')) {
$action = 'presend'; $action = 'presend';
@ -2049,13 +2167,6 @@ else if ($id || $ref)
dol_fiche_end(); 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" // Change status of order to "shipment in process"
$ret = $this->setStatut(Commande::STATUS_SHIPMENTONPROCESS, $this->origin_id, $this->origin); $ret = $this->setStatut(Commande::STATUS_SHIPMENTONPROCESS, $this->origin_id, $this->origin);
if (! $ret)
if (! $ret)
{ {
$error++; $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/lib/sendings.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.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("orders");
$langs->load("sendings"); $langs->load("sendings");
@ -165,11 +169,10 @@ if ($id > 0 || ! empty($ref))
// Thirdparty // Thirdparty
$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project // Project
/*
if (! empty($conf->projet->enabled)) { if (! empty($conf->projet->enabled)) {
$langs->load("projects"); $langs->load("projects");
$morehtmlref .= '<br>' . $langs->trans('Project') . ' '; $morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
if ($user->rights->supplier_proposal->creer) { if (0) { // Do not change on shipment
if ($action != 'classify') { if ($action != 'classify') {
$morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; $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); $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
} }
} else { } 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 = new Project($db);
$proj->fetch($object->fk_project); $proj->fetch($objectsrc->fk_project);
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">'; $morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $objectsrc->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
$morehtmlref .= $proj->ref; $morehtmlref .= $proj->ref;
$morehtmlref .= '</a>'; $morehtmlref .= '</a>';
} else { } else {
$morehtmlref .= ''; $morehtmlref .= '';
} }
} }
}*/ }
$morehtmlref.='</div>'; $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'; $helpurl='EN:Module_Shipments|FR:Module_Exp&eacute;ditions|ES:M&oacute;dulo_Expediciones';
llxHeader('',$langs->trans('ListOfSendings'),$helpurl); 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.= ' 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.= " typent.code as typent_code,";
$sql.= " state.code_departement as state_code, state.nom as state_name,"; $sql.= " state.code_departement as state_code, state.nom as state_name,";
@ -310,6 +310,7 @@ if ($resql)
print '<tr class="liste_titre">'; 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']['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.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.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); 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'])) if (! empty($arrayfields['e.ref']['checked']))
{ {
print '<td class="liste_titre">'; 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>'; print '</td>';
} }
// Thirdparty // Thirdparty
if (! empty($arrayfields['s.nom']['checked'])) if (! empty($arrayfields['s.nom']['checked']))
{ {
print '<td class="liste_titre" align="left">'; 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>'; print '</td>';
} }
// Town // Town
@ -460,13 +468,17 @@ if ($resql)
{ {
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$var=!$var;
print "<tr ".$bc[$var].">";
$shipment->id=$obj->rowid; $shipment->id=$obj->rowid;
$shipment->ref=$obj->ref; $shipment->ref=$obj->ref;
$companystatic->id=$obj->socid;
$companystatic->ref=$obj->name;
$companystatic->name=$obj->name;
$var=!$var;
print "<tr ".$bc[$var].">";
// Ref // Ref
if (! empty($arrayfields['e.ref']['checked'])) if (! empty($arrayfields['e.ref']['checked']))
{ {
@ -476,9 +488,14 @@ if ($resql)
if (! $i) $totalarray['nbfield']++; if (! $i) $totalarray['nbfield']++;
} }
$companystatic->id=$obj->socid; // Ref customer
$companystatic->ref=$obj->name; if (! empty($arrayfields['e.ref_customer']['checked']))
$companystatic->name=$obj->name; {
print "<td>";
print $obj->ref_customer;
print "</td>\n";
if (! $i) $totalarray['nbfield']++;
}
// Third party // Third party
if (! empty($arrayfields['s.nom']['checked'])) if (! empty($arrayfields['s.nom']['checked']))

View File

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

View File

@ -21,6 +21,7 @@
/** /**
* \file htdocs/expedition/shipment.php * \file htdocs/expedition/shipment.php
* \ingroup expedition * \ingroup expedition
* \brief Tab shipments/delivery receipts on the order
*/ */
require '../main.inc.php'; require '../main.inc.php';
@ -457,8 +458,8 @@ if ($id > 0 || ! empty($ref))
/** /**
* Lignes de commandes avec quantite livrees et reste a livrer * Lines or orders with quantity shipped and remain to ship
* Les quantites livrees sont stockees dans $commande->expeditions[fk_product] * Note: Qty shipped are already available into $commande->expeditions[fk_product]
*/ */
print '<table class="noborder noshadow" width="100%">'; 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 '<table class="noborder" width="100%">';
print '<tr class="liste_titre" height="24">'; print '<tr class="liste_titre" height="24">';
print '<td align="center">'.$langs->trans("Year").'</td>'; 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("AmountTotal").'</td>';
print '<td align="center">'.$langs->trans("AmountAverage").'</td>';*/ print '<td align="center">'.$langs->trans("AmountAverage").'</td>';*/
print '</tr>'; print '</tr>';
@ -289,7 +289,10 @@ foreach ($data as $val)
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].' height="24">'; 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">'.$val['nb'].'</td>';
/*print '<td align="right">'.price(price2num($val['total'],'MT'),1).'</td>'; /*print '<td align="right">'.price(price2num($val['total'],'MT'),1).'</td>';
print '<td align="right">'.price(price2num($val['avg'],'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(); $this->lines=array();
$sql = "SELECT l.rowid, l.ref as ref_supplier, l.fk_product, l.product_type, l.label, l.description,"; $sql = "SELECT l.rowid, l.ref as ref_supplier, l.fk_product, l.product_type, l.label, l.description, l.qty,";
$sql.= " l.qty,"; $sql.= " l.vat_src_code, l.tva_tx, l.remise_percent, l.subprice,";
$sql.= " l.tva_tx, l.remise_percent, l.subprice,";
$sql.= " l.localtax1_tx, l. localtax2_tx, l.total_localtax1, l.total_localtax2,"; $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.= " 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,"; $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->subprice = $objp->subprice;
$line->pu_ht = $objp->subprice; $line->pu_ht = $objp->subprice;
$line->remise_percent = $objp->remise_percent; $line->remise_percent = $objp->remise_percent;
$line->vat_src_code = $objp->vat_src_code;
$line->total_ht = $objp->total_ht; $line->total_ht = $objp->total_ht;
$line->total_tva = $objp->total_tva; $line->total_tva = $objp->total_tva;
$line->total_localtax1 = $objp->total_localtax1; $line->total_localtax1 = $objp->total_localtax1;
@ -1012,7 +1013,7 @@ class CommandeFournisseur extends CommonOrder
{ {
$this->statut = 3; $this->statut = 3;
$this->methode_commande_id = $methode; $this->methode_commande_id = $methode;
$this->date_commande = $this->db->idate($date); $this->date_commande = $date;
// Call trigger // Call trigger
$result=$this->call_trigger('ORDER_SUPPLIER_SUBMIT',$user); $result=$this->call_trigger('ORDER_SUPPLIER_SUBMIT',$user);
@ -1040,7 +1041,7 @@ class CommandeFournisseur extends CommonOrder
$error++; $error++;
$this->error = $langs->trans('NotAuthorized'); $this->error = $langs->trans('NotAuthorized');
$this->errors[] = $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); return ($error ? -1 : 1);
@ -1416,7 +1417,14 @@ class CommandeFournisseur extends CommonOrder
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. // 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); $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); $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_ht = $tabprice[0];
@ -1457,6 +1465,8 @@ class CommandeFournisseur extends CommonOrder
$this->line->subprice=$pu_ht; $this->line->subprice=$pu_ht;
$this->line->rang=$this->rang; $this->line->rang=$this->rang;
$this->line->info_bits=$info_bits; $this->line->info_bits=$info_bits;
$this->line->vat_src_code=$vat_src_code;
$this->line->total_ht=$total_ht; $this->line->total_ht=$total_ht;
$this->line->total_tva=$total_tva; $this->line->total_tva=$total_tva;
$this->line->total_localtax1=$total_localtax1; $this->line->total_localtax1=$total_localtax1;
@ -2260,7 +2270,14 @@ class CommandeFournisseur extends CommonOrder
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. // 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); $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); $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_ht = $tabprice[0];
@ -2288,28 +2305,29 @@ class CommandeFournisseur extends CommonOrder
//$this->line->label=$label; //$this->line->label=$label;
$this->line->desc=$desc; $this->line->desc=$desc;
$this->line->qty=$qty; $this->line->qty=$qty;
$this->line->tva_tx=$txtva;
$this->line->localtax1_tx=$txlocaltax1; $this->line->vat_src_code = $vat_src_code;
$this->line->localtax2_tx=$txlocaltax2; $this->line->tva_tx = $txtva;
$this->line->localtax1_tx = $txlocaltax1;
$this->line->localtax2_tx = $txlocaltax2;
$this->line->localtax1_type = $localtaxes_type[0]; $this->line->localtax1_type = $localtaxes_type[0];
$this->line->localtax2_type = $localtaxes_type[2]; $this->line->localtax2_type = $localtaxes_type[2];
$this->line->remise_percent=$remise_percent; $this->line->remise_percent = $remise_percent;
$this->line->subprice=$pu; $this->line->subprice = $pu;
$this->line->rang=$this->rang; $this->line->rang = $this->rang;
$this->line->info_bits=$info_bits; $this->line->info_bits = $info_bits;
$this->line->total_ht=$total_ht; $this->line->total_ht = $total_ht;
$this->line->total_tva=$total_tva; $this->line->total_tva = $total_tva;
$this->line->total_localtax1=$total_localtax1; $this->line->total_localtax1= $total_localtax1;
$this->line->total_localtax2=$total_localtax2; $this->line->total_localtax2= $total_localtax2;
$this->line->total_ttc=$total_ttc; $this->line->total_ttc = $total_ttc;
$this->line->product_type=$type; $this->line->product_type = $type;
$this->line->special_code=$this->special_code; $this->line->special_code = $this->special_code;
$this->line->origin=$this->origin; $this->line->origin = $this->origin;
$this->line->fk_unit=$fk_unit; $this->line->fk_unit = $fk_unit;
$this->line->date_start=$date_start;
$this->line->date_end=$date_end;
$this->line->date_start = $date_start;
$this->line->date_end = $date_end;
// Multicurrency // Multicurrency
$this->line->fk_multicurrency = $this->fk_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->tva_tx)) $this->tva_tx=0;
if (empty($this->localtax1_tx)) $this->localtax1_tx=0; if (empty($this->localtax1_tx)) $this->localtax1_tx=0;
if (empty($this->localtax2_tx)) $this->localtax2_tx=0; if (empty($this->localtax2_tx)) $this->localtax2_tx=0;
if (empty($this->localtax1_type)) $this->localtax1_type=0; if (empty($this->localtax1_type)) $this->localtax1_type='0';
if (empty($this->localtax2_type)) $this->localtax2_type=0; if (empty($this->localtax2_type)) $this->localtax2_type='0';
if (empty($this->total_localtax1)) $this->total_localtax1=0; if (empty($this->total_localtax1)) $this->total_localtax1=0;
if (empty($this->total_localtax2)) $this->total_localtax2=0; if (empty($this->total_localtax2)) $this->total_localtax2=0;
if (empty($this->rang)) $this->rang=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 = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element;
$sql.= " (fk_commande, label, description, date_start, date_end,"; $sql.= " (fk_commande, label, description, date_start, date_end,";
$sql.= " fk_product, product_type,"; $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.= " 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.= " fk_multicurrency, multicurrency_code, multicurrency_subprice, multicurrency_total_ht, multicurrency_total_tva, multicurrency_total_ttc";
$sql.= ")"; $sql.= ")";
@ -3035,17 +3053,20 @@ class CommandeFournisseurLigne extends CommonOrderLine
if ($this->fk_product) { $sql.= $this->fk_product.","; } if ($this->fk_product) { $sql.= $this->fk_product.","; }
else { $sql.= "null,"; } else { $sql.= "null,"; }
$sql.= "'".$this->product_type."',"; $sql.= "'".$this->product_type."',";
$sql.= "'".$this->qty."', ".$this->tva_tx.", ".$this->localtax1_tx.", ".$this->localtax2_tx; $sql.= "'".$this->qty."', ";
$sql.= ", '".$this->localtax1_type."',"; $sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->vat_src_code."'").",";
$sql.= " '".$this->localtax2_type."'"; $sql.= " ".$this->tva_tx.", ";
$sql.= " ".$this->localtax1_tx.",";
$sql.= ", ".$this->remise_percent.",'".price2num($this->subprice,'MU')."','".$this->ref_supplier."',"; $sql.= " ".$this->localtax2_tx.",";
$sql.= "'".price2num($this->total_ht)."',"; $sql.= " '".$this->localtax1_type."',";
$sql.= "'".price2num($this->total_tva)."',"; $sql.= " '".$this->localtax2_type."',";
$sql.= "'".price2num($this->total_localtax1)."',"; $sql.= " ".$this->remise_percent.", ".price2num($this->subprice,'MU').", '".$this->db->escape($this->ref_supplier)."',";
$sql.= "'".price2num($this->total_localtax2)."',"; $sql.= " ".price2num($this->total_ht).",";
$sql.= "'".price2num($this->total_ttc)."',"; $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_unit ? "'".$this->db->escape($this->fk_unit)."'":"null");
$sql.= ", ".($this->fk_multicurrency ? $this->fk_multicurrency : "null"); $sql.= ", ".($this->fk_multicurrency ? $this->fk_multicurrency : "null");
$sql.= ", '".$this->db->escape($this->multicurrency_code)."'"; $sql.= ", '".$this->db->escape($this->multicurrency_code)."'";
@ -3114,32 +3135,34 @@ class CommandeFournisseurLigne extends CommonOrderLine
// Mise a jour ligne en base // Mise a jour ligne en base
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET"; $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET";
$sql.= " description='".$this->db->escape($this->desc)."'"; $sql.= " description='".$this->db->escape($this->desc)."'";
$sql.= ",subprice='".price2num($this->subprice)."'"; $sql.= ", subprice='".price2num($this->subprice)."'";
//$sql.= ",remise='".price2num($remise)."'"; //$sql.= ",remise='".price2num($remise)."'";
$sql.= ",remise_percent='".price2num($this->remise_percent)."'"; $sql.= ", remise_percent='".price2num($this->remise_percent)."'";
$sql.= ",tva_tx='".price2num($this->tva_tx)."'";
$sql.= ",localtax1_tx='".price2num($this->total_localtax1)."'"; $sql.= ", vat_src_code = '".(empty($this->vat_src_code)?'':$this->vat_src_code)."'";
$sql.= ",localtax2_tx='".price2num($this->total_localtax2)."'"; $sql.= ", tva_tx='".price2num($this->tva_tx)."'";
$sql.= ",localtax1_type='".$this->localtax1_type."'"; $sql.= ", localtax1_tx='".price2num($this->total_localtax1)."'";
$sql.= ",localtax2_type='".$this->localtax2_type."'"; $sql.= ", localtax2_tx='".price2num($this->total_localtax2)."'";
$sql.= ",qty='".price2num($this->qty)."'"; $sql.= ", localtax1_type='".$this->localtax1_type."'";
$sql.= ",date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null"); $sql.= ", localtax2_type='".$this->localtax2_type."'";
$sql.= ",date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null"); $sql.= ", qty='".price2num($this->qty)."'";
$sql.= ",info_bits='".$this->info_bits."'"; $sql.= ", date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null");
$sql.= ",total_ht='".price2num($this->total_ht)."'"; $sql.= ", date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
$sql.= ",total_tva='".price2num($this->total_tva)."'"; $sql.= ", info_bits='".$this->info_bits."'";
$sql.= ",total_localtax1='".price2num($this->total_localtax1)."'"; $sql.= ", total_ht='".price2num($this->total_ht)."'";
$sql.= ",total_localtax2='".price2num($this->total_localtax2)."'"; $sql.= ", total_tva='".price2num($this->total_tva)."'";
$sql.= ",total_ttc='".price2num($this->total_ttc)."'"; $sql.= ", total_localtax1='".price2num($this->total_localtax1)."'";
$sql.= ",product_type=".$this->product_type; $sql.= ", total_localtax2='".price2num($this->total_localtax2)."'";
$sql.= ($this->fk_unit ? ",fk_unit='".$this->db->escape($this->fk_unit)."'":", fk_unit=null"); $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 // Multicurrency
$sql.= " , multicurrency_subprice=".price2num($this->subprice * $this->multicurrency_tx).""; $sql.= ", multicurrency_subprice=".price2num($this->subprice * $this->multicurrency_tx)."";
$sql.= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; $sql.= ", multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
$sql.= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; $sql.= ", multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
$sql.= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; $sql.= ", multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
$sql.= " WHERE rowid = ".$this->id; $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->tva_tx)) $this->tva_tx=0;
if (empty($this->localtax1_tx)) $this->localtax1_tx=0; if (empty($this->localtax1_tx)) $this->localtax1_tx=0;
if (empty($this->localtax2_tx)) $this->localtax2_tx=0; if (empty($this->localtax2_tx)) $this->localtax2_tx=0;
if (empty($this->localtax1_type)) $this->localtax1_type=0; if (empty($this->localtax1_type)) $this->localtax1_type='0';
if (empty($this->localtax2_type)) $this->localtax2_type=0; if (empty($this->localtax2_type)) $this->localtax2_type='0';
if (empty($this->total_localtax1)) $this->total_localtax1=0; if (empty($this->total_localtax1)) $this->total_localtax1=0;
if (empty($this->total_localtax2)) $this->total_localtax2=0; if (empty($this->total_localtax2)) $this->total_localtax2=0;
if (empty($this->rang)) $this->rang=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.= " ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null").",";
$sql.= " '".$this->db->escape($this->desc)."',"; $sql.= " '".$this->db->escape($this->desc)."',";
$sql.= " ".price2num($this->qty).","; $sql.= " ".price2num($this->qty).",";
$sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->vat_src_code."'").","; $sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->vat_src_code."'").",";
$sql.= " ".price2num($this->tva_tx).","; $sql.= " ".price2num($this->tva_tx).",";
$sql.= " ".price2num($this->localtax1_tx).","; $sql.= " ".price2num($this->localtax1_tx).",";

View File

@ -29,6 +29,7 @@
ALTER TABLE llx_product_lot MODIFY COLUMN entity integer DEFAULT 1; ALTER TABLE llx_product_lot MODIFY COLUMN entity integer DEFAULT 1;
UPDATE llx_product_lot SET entity = 1 WHERE entity IS NULL; 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_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); 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_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_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); 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 model_pdf varchar(255);
ALTER TABLE llx_bank_account ADD COLUMN import_key varchar(14); 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'; 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 -- 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; -- 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) 2001-2002,2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
-- Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net> -- Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
-- Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro> -- Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
-- --
-- This program is free software; you can redistribute it and/or modify -- 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 -- 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, libelle varchar(48) NOT NULL,
module varchar(16) DEFAULT NULL, module varchar(16) DEFAULT NULL,
active tinyint DEFAULT 1 NOT NULL, active tinyint DEFAULT 1 NOT NULL,
todo tinyint, todo tinyint, -- deprecated
color varchar(9), color varchar(9),
picto varchar(48),
position integer NOT NULL DEFAULT 0 position integer NOT NULL DEFAULT 0
)ENGINE=innodb; )ENGINE=innodb;

View File

@ -32,11 +32,12 @@ create table llx_expedition
ref_customer varchar(30), -- customer number ref_customer varchar(30), -- customer number
date_creation datetime, -- date de creation 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 date_valid datetime, -- date de validation
fk_user_valid integer, -- valideur fk_user_valid integer, -- valideur
date_expedition datetime, -- shipping date date_delivery datetime DEFAULT NULL, -- date planned of delivery
date_delivery datetime DEFAULT NULL, -- delivery date date_expedition datetime, -- not used (deprecated)
fk_address integer DEFAULT NULL, -- delivery address (deprecated) fk_address integer DEFAULT NULL, -- delivery address (deprecated)
fk_shipping_method integer, fk_shipping_method integer,
tracking_number varchar(50), 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 ShowProfIdInAddress=Show professionnal id with addresses on documents
ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
TranslationUncomplete=Partial translation 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 MAIN_DISABLE_METEO=Disable meteo view
TestLoginToAPI=Test login to API 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. 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 # Dolibarr language file - Source file is en_US - deliveries
Delivery=Delivery Delivery=Delivery
DeliveryRef=Ref Delivery DeliveryRef=Ref Delivery
DeliveryCard=Delivery card DeliveryCard=Receipt card
DeliveryOrder=Delivery order DeliveryOrder=Delivery order
DeliveryDate=Delivery date DeliveryDate=Delivery date
CreateDeliveryOrder=Generate delivery order CreateDeliveryOrder=Generate delivery receipt
DeliveryStateSaved=Delivery state saved DeliveryStateSaved=Delivery state saved
SetDeliveryDate=Set shipping date SetDeliveryDate=Set shipping date
ValidateDeliveryReceipt=Validate delivery receipt ValidateDeliveryReceipt=Validate delivery receipt

View File

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

View File

@ -20,6 +20,7 @@ CreateASending=Create a shipment
QtyShipped=Qty shipped QtyShipped=Qty shipped
QtyToShip=Qty to ship QtyToShip=Qty to ship
QtyReceived=Qty received QtyReceived=Qty received
QtyInOtherShipments=Qty in other shipments
KeepToShip=Remain to ship KeepToShip=Remain to ship
OtherSendingsForSameOrder=Other shipments for this order OtherSendingsForSameOrder=Other shipments for this order
SendingsAndReceivingForSameOrder=Shipments and receivings 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. 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). 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 DateDeliveryPlanned=Planned date of delivery
RefDeliveryReceipt=Ref delivery receipt
StatusReceipt=Status delivery receipt
DateReceived=Date delivery received DateReceived=Date delivery received
SendShippingByEMail=Send shipment by EMail SendShippingByEMail=Send shipment by EMail
SendShippingRef=Submission of shipment %s 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_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_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_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 Selectformat=Seleccione el formato del archivo
ACCOUNTING_EXPORT_PREFIX_SPEC=Especifique el prefijo del nombre de 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 ConfigAccountingExpert=Configuración del módulo contable
Journalization=Procesar diarios
Journaux=Diarios Journaux=Diarios
JournalFinancial=Diarios financieros JournalFinancial=Diarios financieros
BackToChartofaccounts=Volver al plan contable BackToChartofaccounts=Volver al plan contable
Chartofaccounts=Plan contable
AccountancyArea=Accountancy area AccountancyArea=Área contabilidad
AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescIntro=El uso del módulo de contabilidad se realiza en varios pasos:
AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... AccountancyAreaDescActionOnce=Las siguientes acciones se ejecutan normalmente una sola vez, o una vez al año...
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... AccountancyAreaDescActionFreq=Las siguientes acciones se ejecutan normalmente cada mes, semana o día en empresas muy grandes...
AccountancyAreaDescChart=STEP %s: Create or check your chart of account from menu %s AccountancyAreaDescChartModel=PASO %s: Crear un modelo de plan general contable desde el menú %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. AccountancyAreaDescChart=PASO %s: Crear o comprobar el contenido de su plan general contable desde el menú %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. 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=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. 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=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. 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=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. 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=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. 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. 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=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. 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=STEP %s: Write transactions into the General Ledger. Add or edit existing transactions and generate reports 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 Addanaccount=Añadir una cuenta contable
AccountAccounting=Cuenta contable AccountAccounting=Cuenta contable
AccountAccountingShort=Cuenta AccountAccountingShort=Cuenta
AccountAccountingSuggest=Accounting account suggest AccountAccountingSuggest=Accounting account suggest
Ventilation=Binding to accounts MenuDefaultAccounts=Cuentas contables por defecto
ProductsBinding=Products bindings MenuProductsAccounts=Cuentas contables de productos
ProductsBinding=Cuentas de productos
MenuAccountancy=Contabilidad Ventilation=Contabilizar
CustomersVentilation=Customer invoice binding CustomersVentilation=Contabilizar facturas a clientes
SuppliersVentilation=Supplier invoice binding SuppliersVentilation=Contabilizar facturas de proveedores
Reports=Informes CreateMvts=Crear nuevo movimiento
NewAccount=Nueva cuenta contable UpdateMvts=Modificar transacción
Create=Crear WriteBookKeeping=Registrar movimientos en el Libro Mayor
CreateMvts=Create new transaction
UpdateMvts=Modification of a transaction
WriteBookKeeping=Record operations in General Ledger
Bookkeeping=Libro Mayor Bookkeeping=Libro Mayor
AccountBalance=Saldo de la cuenta AccountBalance=Saldo de la cuenta
CAHTF=Total purchase supplier before tax CAHTF=Total purchase supplier before tax
InvoiceLines=Lines of invoices to bind InvoiceLines=Líneas de facturas a contabilizar
InvoiceLinesDone=Bound lines of invoices InvoiceLinesDone=Líneas de facturas contabilizadas
IntoAccount=Bind line with the accounting account IntoAccount=Contabilizar línea con la cuenta contable
Ventilate=Bind
Ventilate=Contabilizar
LineId=Id línea
Processing=Tratamiento Processing=Tratamiento
EndProcessing=Final del tratamiento EndProcessing=Proceso terminado.
AnyLineVentilate=Any lines to bind
SelectedLines=Líneas seleccionadas SelectedLines=Líneas seleccionadas
Lineofinvoice=Línea de la factura Lineofinvoice=Línea de la factura
VentilatedinAccount=Binded successfully to the accounting account NoAccountSelected=No se ha seleccionado cuenta contable
NotVentilatedinAccount=Not bound to the accounting account VentilatedinAccount=Contabilizada con éxito en la cuenta contable
XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account NotVentilatedinAccount=Cuenta sin contabilización en la contabilidad
XLineFailedToBeBinded=%s products/services were not bound to any accounting account 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_LIMIT_LIST_VENTILATION=Número de elementos a contabilizar que se muestran por página (máximo recomendado: 50)
ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements 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=Begin the sorting of the page "Binding done" by the most recent elements 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=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 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_GACCOUNT=Longitud de las cuentas generales
ACCOUNTING_LENGTH_AACCOUNT=Longitud de las subcuentas 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". 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 entrada libre de transacciones bancarias (Activadas por defecto con este módulo) BANK_DISABLE_DIRECT_INPUT=Desactivar transacciones directas en cuenta bancaria
ACCOUNTING_SELL_JOURNAL=Diario de ventas ACCOUNTING_SELL_JOURNAL=Diario de ventas
ACCOUNTING_PURCHASE_JOURNAL=Diario de compras ACCOUNTING_PURCHASE_JOURNAL=Diario de compras
@ -101,62 +108,60 @@ Labelcompte=Descripción
Sens=Sentido Sens=Sentido
Codejournal=Diario Codejournal=Diario
NumPiece=Apunte NumPiece=Apunte
TransactionNumShort=Núm. transacción
AccountingCategory=Categoría contable AccountingCategory=Categoría contable
GroupByAccountAccounting=Agrupar por cuenta contable
NotMatch=No establecido NotMatch=No establecido
DeleteMvt=Eliminar líneas del Libro Mayor DeleteMvt=Eliminar líneas del Libro Mayor
DelYear=Año a eliminar DelYear=Año a eliminar
DelJournal=Diario 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 ConfirmDeleteMvtPartial=Esto borrará todas las líneas seleccionadas del libro de mayor
DelBookKeeping=Eliminar los registros del Diario Mayor DelBookKeeping=Eliminar los registros del Diario Mayor
DescSellsJournal=Diario de ventas
DescPurchasesJournal=Diario de compras
FinanceJournal=Diario financiero FinanceJournal=Diario financiero
DescFinanceJournal=El diario financiero incluye todos los tipos de pagos por cuenta bancaria 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. 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=Account for VAT not defined VATAccountNotDefined=Cuenta contable para IVA no definida
ThirdpartyAccountNotDefined=Account for third party not defined ThirdpartyAccountNotDefined=Cuenta contable de tercero no definida
ProductAccountNotDefined=Account for product not defined ProductAccountNotDefined=Cuenta contable de producto no definida
BankAccountNotDefined=Account for bank not defined BankAccountNotDefined=Cuenta contable bancaria no definida
CustomerInvoicePayment=Cobro de factura a cliente CustomerInvoicePayment=Cobro de factura a cliente
ThirdPartyAccount=Cuenta de tercero ThirdPartyAccount=Cuenta de tercero
NewAccountingMvt=New transaction NewAccountingMvt=Nuevo movimiento
NumMvts=Numero of transaction NumMvts=Número de movimiento
ListeMvts=List of movements ListeMvts=Listado de movimientos
ErrorDebitCredit=Debe y Haber no pueden contener un valor al mismo tiempo ErrorDebitCredit=Debe y Haber no pueden contener un valor al mismo tiempo
ReportThirdParty=List third party account ReportThirdParty=Listado de cuentas de terceros
DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts DescThirdPartyReport=Consulte aquí el listado de clientes y proveedores y sus códigos contables
ListAccounts=Listado de cuentas contables ListAccounts=Listado de cuentas contables
Pcgtype=Tipo del plan Pcgtype=Tipo del plan
Pcgsubtype=Subcuenta Pcgsubtype=Subcuenta
Accountparent=Padre de la cuenta
TotalVente=Total facturación antes de impuestos TotalVente=Total facturación antes de impuestos
TotalMarge=Total margen ventas TotalMarge=Total margen ventas
DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account DescVentilCustomer=Consulte aquí la lista de líneas de facturas a clientes enlazadas (o no) a una cuenta contable de producto
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>". 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=Consult here the list of the lines of invoices customers and their product accounting account DescVentilDoneCustomer=Consulte aquí las líneas de facturas a clientes y las cuentas contables de sus productos
DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account DescVentilTodoCustomer=Contabilizar líneas de factura aún no contabilizadas con una cuenta contable de producto
ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: ChangeAccount=Cambie la cuenta del producto/servicio para las líneas seleccionadas a la cuenta:
Vide=- Vide=-
DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account DescVentilSupplier=Consulte aquí la lista de líneas de facturas de proveedores enlazadas (o no) a una cuenta contable de producto
DescVentilDoneSupplier=Consult here the list of the lines of invoices supplier and their accounting account DescVentilDoneSupplier=Consulte aquí la lista de facturas de proveedores y sus cuentas contables
ValidateHistory=Vincular automáticamente ValidateHistory=Vincular automáticamente
AutomaticBindingDone=Vinculación automática finalizada AutomaticBindingDone=Vinculación automática finalizada
ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada
MvtNotCorrectlyBalanced=Movimiento descuadrado. Debe = %s. Haber = %s MvtNotCorrectlyBalanced=Movimiento descuadrado. Debe = %s. Haber = %s
FicheVentilation=Binding card FicheVentilation=Ficha contable
GeneralLedgerIsWritten=Operations are written in the general ledger GeneralLedgerIsWritten=Transacciones escritas en el libro mayor
GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. GeneralLedgerSomeRecordWasNotRecorded=Algunas de las operaciones que no podrán registrarse.
NoNewRecordSaved=No new record saved NoNewRecordSaved=No se guardaron nuevos registros
ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ListOfProductsWithoutAccountingAccount=Listado de productos sin cuentas contables
ChangeBinding=Change the binding ChangeBinding=Cambiar la unión
## Admin ## Admin
ApplyMassCategories=Aplicar categorías en masa ApplyMassCategories=Aplicar categorías en masa
@ -178,7 +183,8 @@ Modelcsv_cogilog=Eportar a Cogilog
## Tools - Init accounting account on product / service ## Tools - Init accounting account on product / service
InitAccountancy=Iniciar contabilidad 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 Options=Opciones
OptionModeProductSell=Modo ventas OptionModeProductSell=Modo ventas
OptionModeProductBuy=Modo compras OptionModeProductBuy=Modo compras
@ -193,12 +199,11 @@ Calculated=Calculado
Formula=Fórmula Formula=Fórmula
## Error ## 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 ExportNotSupported=El formato de exportación configurado no es soportado en esta página
BookeppingLineAlreayExists=Lineas ya existentes en la contabilidad BookeppingLineAlreayExists=Lineas ya existentes en la contabilidad
Binded=Lines bound Binded=Líneas contabilizadas
ToBind=Lines to bind ToBind=Líneas a contabilizar
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.
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 SessionSaveHandler=Modalidad de salvaguardado de sesiones
SessionSavePath=Localización salvaguardado de sesiones SessionSavePath=Localización salvaguardado de sesiones
PurgeSessions=Purga 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 NoSessionListWithThisHandler=El gestor de período de sesiones configurado en su PHP no enumera las sesiones en curso
LockNewSessions=Bloquear nuevas conexiones 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. 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. ErrorDecimalLargerThanAreForbidden=Error, las precisiones superiores a <b>%s</b> no están soportadas.
DictionarySetup=Diccionarios DictionarySetup=Diccionarios
Dictionary=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 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 ErrorCodeCantContainZero=El código no puede contener el valor 0
DisableJavascript=Deshabilitar Javascript y funciones Ajax (Recomendado para personas ciegas o navegadores de texto) 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) 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 NumberOfKeyToSearch=Nº de caracteres para desencadenar la búsqueda: %s
NotAvailableWhenAjaxDisabled=No disponible cuando Ajax esté desactivado 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 JavascriptDisabled=Javascript desactivado
UsePreviewTabs=Ver fichas "vista previa" UsePreviewTabs=Ver fichas "vista previa"
ShowPreview=Ver vista previa ShowPreview=Ver vista previa
@ -143,7 +141,7 @@ PurgeRunNow=Purgar
PurgeNothingToDelete=Sin directorios o archivos a eliminar. PurgeNothingToDelete=Sin directorios o archivos a eliminar.
PurgeNDirectoriesDeleted=<b>%s</b> archivos o directorios eliminados PurgeNDirectoriesDeleted=<b>%s</b> archivos o directorios eliminados
PurgeAuditEvents=Purgar los eventos de seguridad 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 GenerateBackup=Generar copia de seguridad
Backup=Copia de seguridad Backup=Copia de seguridad
Restore=Restauración Restore=Restauración
@ -178,10 +176,10 @@ ExtendedInsert=Instrucciones INSERT extendidas
NoLockBeforeInsert=Sin instrucción LOCK antes del INSERT NoLockBeforeInsert=Sin instrucción LOCK antes del INSERT
DelayedInsert=Inserciones con retraso DelayedInsert=Inserciones con retraso
EncodeBinariesInHexa=Codificar los campos binarios en hexadecimal 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) AutoDetectLang=Autodetección (navegador)
FeatureDisabledInDemo=Opción deshabilitada en demo FeatureDisabledInDemo=Opción deshabilitada en demo
FeatureAvailableOnlyOnStable=Feature only available on official stable versions FeatureAvailableOnlyOnStable=Funcionaliad disponible únicamente en versiones oficiales estables
Rights=Permisos 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. 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. 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_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_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_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. 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/ 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. 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 LastActivationDate=Última fecha de activación
UpdateServerOffline=Actualizar servidor offline 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> 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> 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> 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> 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. 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. 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. 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... UseDoubleApproval=Usar 3 pasos de aprobación si el importe (sin IVA) es mayor que...
# Modules # Modules
@ -482,7 +483,7 @@ Module510Desc=Gestión de contratos de empleados, salarios y pagos
Module520Name=Crédito Module520Name=Crédito
Module520Desc=Gestión de créditos Module520Desc=Gestión de créditos
Module600Name=Notificaciones 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 Module700Name=Donaciones
Module700Desc=Gestión de donaciones Module700Desc=Gestión de donaciones
Module770Name=Informes de gastos 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 Permission1237=Exportar pedidos de proveedores junto con sus detalles
Permission1251=Lanzar las importaciones en masa a la base de datos (carga de datos) Permission1251=Lanzar las importaciones en masa a la base de datos (carga de datos)
Permission1321=Exportar facturas a clientes, atributos y cobros 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 Permission1421=Exportar pedidos de clientes y atributos
Permission20001=Leer peticiones días retribuidos (suyos y subordinados) Permission20001=Leer peticiones días retribuidos (suyos y subordinados)
Permission20002=Cear/modificar sus días retribuidos 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 LabelOnDocuments=Etiqueta sobre documentos
NbOfDays=Nº de días NbOfDays=Nº de días
AtEndOfMonth=A fin de mes AtEndOfMonth=A fin de mes
CurrentNext=Current/Next CurrentNext=Actual/Siguiente
Offset=Decálogo Offset=Decálogo
AlwaysActive=Siempre activo AlwaysActive=Siempre activo
Upgrade=Actualización Upgrade=Actualización
@ -1107,7 +1108,6 @@ CompanyIdProfChecker=Reglas sobre los ID profesionales
MustBeUnique=¿Debe ser único? MustBeUnique=¿Debe ser único?
MustBeMandatory=¿Obligatorio para crear terceros? MustBeMandatory=¿Obligatorio para crear terceros?
MustBeInvoiceMandatory=¿Obligatorio para validar facturas? MustBeInvoiceMandatory=¿Obligatorio para validar facturas?
Miscellaneous=Miscelánea
##### Webcal setup ##### ##### Webcal setup #####
WebCalUrlForVCalExport=Un vínculo de exportación del calendario en formato <b>%s</b> estará disponible en la url: %s WebCalUrlForVCalExport=Un vínculo de exportación del calendario en formato <b>%s</b> estará disponible en la url: %s
##### Invoices ##### ##### 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) 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 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 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. 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). 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 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ú) DetailLevel=Nivel (-1:menú superior, 0:principal, >0 menú y submenú)
ModifMenu=Modificación del menú ModifMenu=Modificación del menú
DeleteMenu=Eliminar entrada de 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ú FailedToInitializeMenu=Error al inicialiar el menú
##### Tax ##### ##### Tax #####
TaxSetup=Configuración del módulo impuestos sociales o fiscales 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). UseSearchToSelectProject=Utilice los campos de autocompletar para seleccionar proyectos (en lugar de utilizar un cuadro de lista).
##### ECM (GED) ##### ##### ECM (GED) #####
##### Fiscal Year ##### ##### Fiscal Year #####
FiscalYears=Años fiscales AccountingPeriods=Periodos contables
FiscalYearCard=Ficha Año fiscal AccountingPeriodCard=Periodo contable
NewFiscalYear=Nuevo año fiscal NewFiscalYear=Nuevo año fiscal
OpenFiscalYear=Abrir año fiscal OpenFiscalYear=Abrir año fiscal
CloseFiscalYear=Cerrar año fiscal CloseFiscalYear=Cerrar año fiscal
DeleteFiscalYear=Eliminar año fiscal DeleteFiscalYear=Eliminar año fiscal
ConfirmDeleteFiscalYear=¿Está seguro de querer eliminar este 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 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) 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 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** ListOfNotificationsPerUserOrContact=Listado de notificaciones por usuario* o por contacto**
ListOfFixedNotifications=Listado de notificaciones fijas ListOfFixedNotifications=Listado de notificaciones fijas
GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para añadir o elliminar notificaciones a usuarios 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 Threshold=Valor mínimo/umbral
BackupDumpWizard=Asistente para crear una copia de seguridad de la base de datos 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: 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 MailToSendSupplierRequestForQuotation=Para enviar solicitud de presupuesto de proveedor
MailToSendSupplierOrder=Para enviar pedido a proveedor MailToSendSupplierOrder=Para enviar pedido a proveedor
MailToSendSupplierInvoice=Para enviar factura de 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 ByDefaultInList=Mostrar por defecto en modo lista
YouUseLastStableVersion=Debe usar la última versión estable 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) 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 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>. 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 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. 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 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 Actions=Eventos
Agenda=Agenda Agenda=Agenda
Agendas=Agendas Agendas=Agendas
Calendar=Calendario
LocalAgenda=Calendario interno LocalAgenda=Calendario interno
ActionsOwnedBy=Acontecimiento asignado a ActionsOwnedBy=Acontecimiento asignado a
ActionsOwnedByShort=Propietario 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, ...) 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. 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 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 PropalValidatedInDolibarr=Presupuesto %s validado
PropalClassifiedBilledInDolibarr=Presupuesto %s clasificado facturado
InvoiceValidatedInDolibarr=Factura %s validada InvoiceValidatedInDolibarr=Factura %s validada
InvoiceValidatedInDolibarrFromPos=Factura %s validada desde TPV InvoiceValidatedInDolibarrFromPos=Factura %s validada desde TPV
InvoiceBackToDraftInDolibarr=Factura %s devuelta a borrador InvoiceBackToDraftInDolibarr=Factura %s devuelta a borrador
InvoiceDeleteDolibarr=Factura %s eliminada 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 OrderValidatedInDolibarr=Pedido %s validado
OrderDeliveredInDolibarr=Pedido %s clasificado como enviado OrderDeliveredInDolibarr=Pedido %s clasificado como enviado
OrderCanceledInDolibarr=Pedido %s anulado OrderCanceledInDolibarr=Pedido %s anulado
@ -57,9 +72,9 @@ InterventionSentByEMail=Intervención %s enviada por e-mail
ProposalDeleted=Presupuesto eliminado ProposalDeleted=Presupuesto eliminado
OrderDeleted=Pedido eliminado OrderDeleted=Pedido eliminado
InvoiceDeleted=Factura eliminada InvoiceDeleted=Factura eliminada
NewCompanyToDolibarr= Tercero creado ##### End agenda events #####
DateActionStart= Fecha de inicio DateActionStart=Fecha de inicio
DateActionEnd= Fecha finalización DateActionEnd=Fecha finalización
AgendaUrlOptions1=Puede también añadir estos parámetros al filtro de salida: 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>. 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>. 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 ActionType=Tipo de evento
DateActionBegin=Fecha de inicio del evento DateActionBegin=Fecha de inicio del evento
CloneAction=Clonar 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 RepeatEvent=Repetir evento
EveryWeek=Cada semana EveryWeek=Cada semana
EveryMonth=Cada mes EveryMonth=Cada mes

View File

@ -41,7 +41,7 @@ BankAccountOwner=Nombre del titular de la cuenta
BankAccountOwnerAddress=Dirección 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. RIBControlError=El dígito de control indica que la información de esta cuenta bancaria es incompleta o incorrecta.
CreateAccount=Crear cuenta CreateAccount=Crear cuenta
NewAccount=Nueva cuenta NewBankAccount=Nueva cuenta
NewFinancialAccount=Nueva cuenta financiera NewFinancialAccount=Nueva cuenta financiera
MenuNewFinancialAccount=Nueva cuenta MenuNewFinancialAccount=Nueva cuenta
EditFinancialAccount=Edición cuenta EditFinancialAccount=Edición cuenta
@ -84,8 +84,8 @@ AddBankRecordLong=Realizar un registro manual fuera de una factura
ConciliatedBy=Conciliado por ConciliatedBy=Conciliado por
DateConciliating=Fecha conciliación DateConciliating=Fecha conciliación
BankLineConciliated=Registro conciliado BankLineConciliated=Registro conciliado
Reconciled=Reconciled Reconciled=Reconciliado
NotReconciled=Not reconciled NotReconciled=No reconciliado
CustomerInvoicePayment=Cobro a cliente CustomerInvoicePayment=Cobro a cliente
SupplierInvoicePayment=Pago a proveedor SupplierInvoicePayment=Pago a proveedor
SubscriptionPayment=Pago cuota SubscriptionPayment=Pago cuota
@ -94,7 +94,7 @@ SocialContributionPayment=Pago impuesto social/fiscal
BankTransfer=Transferencia bancaria BankTransfer=Transferencia bancaria
BankTransfers=Transferencias bancarias BankTransfers=Transferencias bancarias
MenuBankInternalTransfer=Transferencia interna 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 TransferFrom=De
TransferTo=Hacia TransferTo=Hacia
TransferFromToDone=La transferencia de <b>%s</b> hacia <b>%s</b> de <b>%s</b> %s se ha creado. 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". 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 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 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 ThenCheckLinesAndConciliate=A continuación, compruebe las líneas presentes en el extracto bancario y haga clic
DefaultRIB=Cuenta bancaria por defecto DefaultRIB=Cuenta bancaria por defecto
AllRIB=Todas las cuentas bancarias AllRIB=Todas las cuentas bancarias
@ -144,4 +144,4 @@ CheckRejected=Cheque devuelto
CheckRejectedAndInvoicesReopened=Cheque devuelto y facturas reabiertas CheckRejectedAndInvoicesReopened=Cheque devuelto y facturas reabiertas
BankAccountModelModule=Modelos de documentos para cuentas bancarias BankAccountModelModule=Modelos de documentos para cuentas bancarias
DocumentModelSepaMandate=Plantilla de mandato SEPA, usable únicamente para paises miembros de la UEE 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 SuppliersDraftInvoices=Facturas de proveedores borrador
Unpaid=Pendientes Unpaid=Pendientes
ConfirmDeleteBill=¿Está seguro de querer eliminar esta factura? ConfirmDeleteBill=¿Está seguro de querer eliminar esta factura?
ConfirmValidateBill=¿Está seguro de querer validar esta factura con la referencia <b>%s</b> ? ConfirmValidateBill=¿Está seguro de querer validar esta factura con referencia <b>%s</b>?
ConfirmUnvalidateBill=¿Está seguro de querer devolver la factura <b>%s</b> al estado borrador? ConfirmUnvalidateBill=¿Está seguro de querer cambiar el estado de la factura <b>%s</b> a borrador?
ConfirmClassifyPaidBill=¿Esta seguro de querer clasificar la factura <b>%s</b> como pagada? 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> ? ConfirmCancelBill=¿Está seguro de querer anular la factura <b>%s</b>?
ConfirmCancelBillQuestion=¿Por qué razón quiere abandonar la factura? ConfirmCancelBillQuestion=¿Porqué quiere clasificar esta factura como 'abandonada'?
ConfirmClassifyPaidPartially=¿Está seguro de querer clasificar la factura <b>%s</b> como pagada? ConfirmClassifyPaidPartially=¿Está seguro de querer cambiar el estado de la factura <b>%s</b> a pagado?
ConfirmClassifyPaidPartiallyQuestion=Esta factura no ha sido totalmente pagada. ¿Por qué quiere clasificarla como pagada? 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. 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. 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. 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 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 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. 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 ? ConfirmCustomerPayment=¿Confirma el proceso de este pago de <b>%s</b> %s?
ConfirmSupplierPayment=¿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)? ConfirmValidatePayment=¿Está seguro de querer validar este pago? No se permiten cambios después de validar el pago.
ValidateBill=Validar factura ValidateBill=Validar factura
UnvalidateBill=Devolver factura a borrador UnvalidateBill=Devolver factura a borrador
NumberOfBills=Nº de facturas NumberOfBills=Nº de facturas
@ -269,7 +269,7 @@ Deposits=Anticipos
DiscountFromCreditNote=Descuento resultante del abono %s DiscountFromCreditNote=Descuento resultante del abono %s
DiscountFromDeposit=Pagos de la factura de anticipo %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 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 NewGlobalDiscount=Nuevo descuento fijo
NewRelativeDiscount=Nuevo descuento NewRelativeDiscount=Nuevo descuento
NoteReason=Nota/Motivo NoteReason=Nota/Motivo
@ -295,15 +295,15 @@ RemoveDiscount=Eliminar descuento
WatermarkOnDraftBill=Marca de agua en facturas borrador (nada si está vacía) WatermarkOnDraftBill=Marca de agua en facturas borrador (nada si está vacía)
InvoiceNotChecked=Ninguna factura está seleccionada InvoiceNotChecked=Ninguna factura está seleccionada
CloneInvoice=Clonar factura 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 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. 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 NbOfPayments=Nº de pagos
SplitDiscount=Dividir el dto. en dos 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: 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. 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 RelatedBill=Factura asociada
RelatedBills=Facturas asociadas RelatedBills=Facturas asociadas
RelatedCustomerInvoices=Facturas a clientes asociadas RelatedCustomerInvoices=Facturas a clientes asociadas
@ -381,7 +381,7 @@ ExtraInfos=Informaciones complementarias
RegulatedOn=Pagar el RegulatedOn=Pagar el
ChequeNumber=Cheque nº ChequeNumber=Cheque nº
ChequeOrTransferNumber=Cheque/Transferencia nº ChequeOrTransferNumber=Cheque/Transferencia nº
ChequeBordereau=Comprobar ChequeBordereau=Comprobar agenda
ChequeMaker=Transmisor Cheque/Transferencia ChequeMaker=Transmisor Cheque/Transferencia
ChequeBank=Banco del cheque ChequeBank=Banco del cheque
CheckBank=Verificar CheckBank=Verificar
@ -437,8 +437,8 @@ ToMakePaymentBack=Reembolsar
ListOfYourUnpaidInvoices=Listado de facturas impagadas ListOfYourUnpaidInvoices=Listado de facturas impagadas
NoteListOfYourUnpaidInvoices=Nota: Este listado incluye solamente los terceros de los que usted es comercial. NoteListOfYourUnpaidInvoices=Nota: Este listado incluye solamente los terceros de los que usted es comercial.
RevenueStamp=Timbre fiscal RevenueStamp=Timbre fiscal
YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party YouMustCreateInvoiceFromThird=Esta opción solo está disponible al crear una factura desde la pestaña 'cliente' en terceros
YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party 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 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) PDFCrabeDescription=Modelo de factura completo (modelo recomendado por defecto)
PDFCrevetteDescription=Modelo PDF de factura Crevette. Un completo modelo de facturas de situación 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>. 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. 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 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 BoxTitleLastModifiedProspects=Últimos %s presupuestos modificados
BoxTitleLastModifiedMembers=Últimos %s miembros BoxTitleLastModifiedMembers=Últimos %s miembros
BoxTitleLastFicheInter=Últimas %s intervenciones modificadas 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 BoxTitleOldestUnpaidSupplierBills=Las %s facturas de proveedores más antiguas pendientes de pago
BoxTitleCurrentAccounts=Balance de cuentas abiertas BoxTitleCurrentAccounts=Balance de cuentas abiertas
BoxTitleLastModifiedContacts=Últimos %s contactos/direcciones modificados 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 MemberIsInCategories=Este miembro se encuentra en las siguientes etiquetas/categorías
ContactIsInCategories=Este contacto se encuentra en las siguientes etiquetas/categorías de contactos 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 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 MemberHasNoCategory=Este miembro no se encuentra en ninguna etiqueta/categoría en particular
ContactHasNoCategory=Este contacto no se encuentra en ninguna etiqueta/categoría ContactHasNoCategory=Este contacto no se encuentra en ninguna etiqueta/categoría
ProjectHasNoCategory=Este proyecto 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. ErrorCompanyNameAlreadyExists=El nombre de la empresa %s ya existe. Indique otro.
ErrorSetACountryFirst=Defina en primer lugar el país ErrorSetACountryFirst=Defina en primer lugar el país
SelectThirdParty=Seleccionar un tercero 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 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 MenuNewThirdParty=Nuevo tercero
MenuNewCustomer=Nuevo cliente MenuNewCustomer=Nuevo cliente
MenuNewProspect=Nuevo cliente potencial MenuNewProspect=Nuevo cliente potencial
@ -14,7 +14,7 @@ NewCompany=Nueva empresa (cliente potencial, cliente, proveedor)
NewThirdParty=Nuevo tercero (cliente potencial, cliente, proveedor) NewThirdParty=Nuevo tercero (cliente potencial, cliente, proveedor)
CreateDolibarrThirdPartySupplier=Crear un tercero (proveedor) CreateDolibarrThirdPartySupplier=Crear un tercero (proveedor)
CreateThirdPartyOnly=Crear tercero CreateThirdPartyOnly=Crear tercero
CreateThirdPartyAndContact=Create a third party + a child contact CreateThirdPartyAndContact=Crear un tercero + un contacto
ProspectionArea=Área de prospección ProspectionArea=Área de prospección
IdThirdParty=ID tercero IdThirdParty=ID tercero
IdCompany=Id empresa IdCompany=Id empresa
@ -40,7 +40,7 @@ ThirdPartySuppliers=Proveedores
ThirdPartyType=Tipo de tercero ThirdPartyType=Tipo de tercero
Company/Fundation=Empresa/asociación Company/Fundation=Empresa/asociación
Individual=Particular 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 ParentCompany=Sede central
Subsidiaries=Filiales Subsidiaries=Filiales
ReportByCustomers=Informe por cliente ReportByCustomers=Informe por cliente
@ -75,7 +75,7 @@ Poste= Puesto
DefaultLang=Idioma por defecto DefaultLang=Idioma por defecto
VATIsUsed=Sujeto a IVA VATIsUsed=Sujeto a IVA
VATIsNotUsed=No 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 ThirdpartyNotCustomerNotSupplierSoNoRef=Tercero que no es cliente ni proveedor, sin objetos referenciados
##### Local Taxes ##### ##### Local Taxes #####
LocalTax1IsUsed=Usar segunda tasa LocalTax1IsUsed=Usar segunda tasa
@ -287,7 +287,7 @@ CompanyDeleted=La empresa "%s" ha sido eliminada
ListOfContacts=Listado de contactos ListOfContacts=Listado de contactos
ListOfContactsAddresses=Listado de contactos/direcciones ListOfContactsAddresses=Listado de contactos/direcciones
ListOfThirdParties=Listado de terceros ListOfThirdParties=Listado de terceros
ShowCompany=Show third party ShowCompany=Mostrar tercero
ShowContact=Mostrar contacto ShowContact=Mostrar contacto
ContactsAllShort=Todos (sin filtro) ContactsAllShort=Todos (sin filtro)
ContactType=Tipo de contacto ContactType=Tipo de contacto
@ -398,4 +398,4 @@ SaleRepresentativeLogin=Inicio de sesión del comercial
SaleRepresentativeFirstname=Nombre del comercial SaleRepresentativeFirstname=Nombre del comercial
SaleRepresentativeLastname=Apellidos 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. 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 CustomerAccountancyCodeShort=Cód. cuenta cliente
SupplierAccountancyCodeShort=Cód. cuenta proveedor SupplierAccountancyCodeShort=Cód. cuenta proveedor
AccountNumber=Número de cuenta AccountNumber=Número de cuenta
NewAccount=Nueva cuenta NewAccountingAccount=Nueva cuenta
SalesTurnover=Volumen de ventas SalesTurnover=Volumen de ventas
SalesTurnoverMinimum=Volumen de ventas mínimo SalesTurnoverMinimum=Volumen de ventas mínimo
ByExpenseIncome=Por gastos e ingresos ByExpenseIncome=Por gastos e ingresos
@ -169,7 +169,7 @@ InvoiceRef=Ref. factura
CodeNotDef=No definido CodeNotDef=No definido
WarningDepositsNotIncluded=Las facturas de anticipo aún no están incluidas en esta versión en el módulo de contabilidad. 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 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_type=Tipo de cuenta
Pcg_subtype=Subtipo de cuenta Pcg_subtype=Subtipo de cuenta
InvoiceLinesToDispatch=Líneas de facturas a contabilizar InvoiceLinesToDispatch=Líneas de facturas a contabilizar
@ -186,7 +186,7 @@ CalculationMode=Modo de cálculo
AccountancyJournal=Código contable diario AccountancyJournal=Código contable diario
ACCOUNTING_VAT_SOLD_ACCOUNT=Código contable por defecto para el IVA repercutido (IVA de ventas) 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_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_CUSTOMER=Cuenta contable por defecto para clientes
ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable por defecto para proveedores ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable por defecto para proveedores
CloneTax=Clonar una tasa social/fiscal 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_contrib=Importe impuestos sociales/fiscales
ImportDataset_tax_vat=Importe pagos IVA ImportDataset_tax_vat=Importe pagos IVA
ErrorBankAccountNotFound=Error: No se encuentra la cuenta bancaria ErrorBankAccountNotFound=Error: No se encuentra la cuenta bancaria
FiscalPeriod=Periodo contable

View File

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

View File

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

View File

@ -6,7 +6,7 @@ Donor=Donante
AddDonation=Crear una donación AddDonation=Crear una donación
NewDonation=Nueva donación NewDonation=Nueva donación
DeleteADonation=Eliminar una 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 ShowDonation=Mostrar donación
PublicDonation=Donación pública PublicDonation=Donación pública
DonationsArea=Área de donaciones DonationsArea=Área de donaciones

View File

@ -41,4 +41,3 @@ CannotRemoveDirectoryContainsFiles=No se puede eliminar porque contiene archivos
ECMFileManager=Explorador de archivos ECMFileManager=Explorador de archivos
ECMSelectASection=Seleccione un directorio en el árbol de la izquierda 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. 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 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 ErrorWarehouseMustDiffers=El almacén de origen y destino deben de ser diferentes
ErrorBadFormat=¡El formato es erróneo! 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. 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 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 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. 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'. ErrorFailedToLoadLoginFileForMode=No se puede obtener el archivo de login para el modo '%s'.
ErrorModuleNotFound=No se ha encontrado el archivo del módulo. 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 # 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. 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... 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 AvailableFormats=Formatos disponibles
LibraryShort=Librería LibraryShort=Librería
LibraryUsed=Librería utilizada
LibraryVersion=Versión
Step=Paso Step=Paso
FormatedImport=Asistente de importación 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. 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) TypeSupportCommunauty=Comunitario (gratuito)
TypeSupportCommercial=Comercial TypeSupportCommercial=Comercial
TypeOfHelp=Tipo TypeOfHelp=Tipo
NeedHelpCenter=¿Necesita soporte o ayuda? NeedHelpCenter=¿Necesita ayuda o soporte?
Efficiency=Eficacia Efficiency=Eficacia
TypeHelpOnly=Sólamente ayuda TypeHelpOnly=Sólamente ayuda
TypeHelpDev=Ayuda+Desarrollo 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. 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. 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 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 SaveConfigurationFile=Grabación del archivo de configuración
ServerConnection=Conexión al servidor ServerConnection=Conexión al servidor
DatabaseCreation=Creación de la base de datos DatabaseCreation=Creación de la base de datos
UserCreation=Creación del usuario
CreateDatabaseObjects=Creación de los objetos de la base de datos CreateDatabaseObjects=Creación de los objetos de la base de datos
ReferenceDataLoading=Carga de los datos de referencia ReferenceDataLoading=Carga de los datos de referencia
TablesAndPrimaryKeysCreation=Creación de las tablas y los índices 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. 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 ActivateModule=Activación del módulo %s
ShowEditTechnicalParameters=Pulse aquí para ver/editar los parámetros técnicos (modo experto) 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) 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. 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. 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? ConfirmDeleteIntervention=¿Está seguro de querer eliminar esta intervención?
ConfirmValidateIntervention=¿Está seguro de querer validar esta intervención bajo la referencia <b>%s</b>? ConfirmValidateIntervention=¿Está seguro de querer validar esta intervención bajo la referencia <b>%s</b>?
ConfirmModifyIntervention=¿Está seguro de querer modificar esta intervención? ConfirmModifyIntervention=¿Está seguro de querer modificar esta intervención?
ConfirmDeleteInterventionLine=¿Está seguro de querer eliminar esta linea? ConfirmDeleteInterventionLine==¿Está seguro de querer eliminar esta linea?
ConfirmCloneIntervention=¿Está seguro de querer cerrar esta intervención? ConfirmCloneIntervention=¿Está seguro de querer clonar esta intervención?
NameAndSignatureOfInternalContact=Nombre y firma del participante: NameAndSignatureOfInternalContact=Nombre y firma del participante:
NameAndSignatureOfExternalContact=Nombre y firma del cliente: NameAndSignatureOfExternalContact=Nombre y firma del cliente:
DocumentModelStandard=Documento modelo estándar para intervenciones 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 LinkANewFile=Vincular un nuevo archivo/documento
LinkedFiles=Archivos y documentos vinculados LinkedFiles=Archivos y documentos vinculados
NoLinkFound=Sin enlaces registrados NoLinkFound=Sin enlaces registrados

View File

@ -90,7 +90,7 @@ SendMailing=Enviar E-Mailing
SendMail=Enviar e-mail 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: 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. 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. 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 TargetsReset=Vaciar lista
ToClearAllRecipientsClickHere=Para vaciar la lista de los destinatarios de este E-Mailing, haga click en el botón 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 AdvTgtSearchDtHelp=Use un intervalo para seleccionar una fecha
AdvTgtStartDt=Fecha inicio AdvTgtStartDt=Fecha inicio
AdvTgtEndDt=Fecha fin 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 AdvTgtTypeOfIncude=Tipo de e-mail destinatario
AdvTgtContactHelp=Usar solamente si ha escogido contacto en "Tipo de e-mail destinatario" AdvTgtContactHelp=Usar solamente si ha escogido contacto en "Tipo de e-mail destinatario"
AddAll=Añadir todo 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 AvailableVariables=Variables de substitución disponibles
NoTranslation=Sin traducción NoTranslation=Sin traducción
NoRecordFound=No se han encontrado registros NoRecordFound=No se han encontrado registros
NoRecordDeleted=No se ha eliminado el registro
NotEnoughDataYet=No hay suficientes datos NotEnoughDataYet=No hay suficientes datos
NoError=Ningún error NoError=Ningún error
Error=Error Error=Error
@ -69,6 +70,7 @@ SeeHere=Vea aquí
BackgroundColorByDefault=Color de fondo BackgroundColorByDefault=Color de fondo
FileRenamed=El archivo ha sido renombrado correctamente FileRenamed=El archivo ha sido renombrado correctamente
FileUploaded=El archivo se ha subido 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. 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 NbOfEntries=Nº de entradas
GoToWikiHelpPage=Leer la ayuda en línea (es necesario acceso a Internet ) GoToWikiHelpPage=Leer la ayuda en línea (es necesario acceso a Internet )
@ -228,7 +230,7 @@ DateReference=Fecha de referencia
DateStart=Fecha de inicio DateStart=Fecha de inicio
DateEnd=Fecha de fin DateEnd=Fecha de fin
DateCreation=Fecha de creación DateCreation=Fecha de creación
DateCreationShort=Crear fecha DateCreationShort=Fecha creación
DateModification=Fecha de modificación DateModification=Fecha de modificación
DateModificationShort=Fecha modif. DateModificationShort=Fecha modif.
DateLastModification=Fecha última modificación DateLastModification=Fecha última modificación
@ -572,8 +574,9 @@ BackToList=Volver al listado
GoBack=Volver atrás GoBack=Volver atrás
CanBeModifiedIfOk=Puede modificarse si es valido CanBeModifiedIfOk=Puede modificarse si es valido
CanBeModifiedIfKo=Puede modificarse si no es valido CanBeModifiedIfKo=Puede modificarse si no es valido
ValueIsValid=Value is valid ValueIsValid=Valor válido
ValueIsNotValid=Value is not valid ValueIsNotValid=Valor no válido
RecordCreatedSuccessfully=Registro creado correctamente
RecordModifiedSuccessfully=Registro modificado con éxito RecordModifiedSuccessfully=Registro modificado con éxito
RecordsModified=%s registros modificados RecordsModified=%s registros modificados
RecordsDeleted=%s registros eliminados RecordsDeleted=%s registros eliminados
@ -716,6 +719,7 @@ DeleteLine=Eliminación de línea
ConfirmDeleteLine=¿Está seguro de querer eliminar esta 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 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. 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 MassFilesArea=Área de archivos generados por acciones masivas
ShowTempMassFilesArea=Mostrar área de archivos generados por acciones masivas ShowTempMassFilesArea=Mostrar área de archivos generados por acciones masivas
RelatedObjects=Objetos relacionados RelatedObjects=Objetos relacionados
@ -725,6 +729,14 @@ ClickHere=Haga clic aquí
FrontOffice=Front office FrontOffice=Front office
BackOffice=Back office BackOffice=Back office
View=Ver 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 # Week day
Monday=Lunes Monday=Lunes
Tuesday=Martes Tuesday=Martes
@ -756,7 +768,7 @@ ShortSaturday=S
ShortSunday=D ShortSunday=D
SelectMailModel=Seleccione una plantilla de e-mail SelectMailModel=Seleccione una plantilla de e-mail
SetRef=Establecer ref SetRef=Establecer ref
Select2ResultFoundUseArrows= Select2ResultFoundUseArrows=Varios resultados encontrados. Use las flechas para seleccionar.
Select2NotFound=No se han encontrado registros Select2NotFound=No se han encontrado registros
Select2Enter=Introducir Select2Enter=Introducir
Select2MoreCharacter=o más caracteres Select2MoreCharacter=o más caracteres

View File

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

View File

@ -1,7 +1,7 @@
# Dolibarr language file - Source file is en_US - oauth # Dolibarr language file - Source file is en_US - oauth
ConfigOAuth=Configuración Oauth ConfigOAuth=Configuración Oauth
OAuthServices=OAuth services OAuthServices=Servicios OAuth
ManualTokenGeneration=Manual token generation ManualTokenGeneration=Generación manual de token
NoAccessToken=No hay token de acceso guardado en la base de datos local 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 HasAccessToken=Se ha generado y guardado en la base de datos local un token
NewTokenStored=Token recibido y guardado 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 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: 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. 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=Refresco del token actual
TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expirado
TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expira el
TOKEN_EXPIRE_AT=Token expire at TOKEN_DELETE=Eliminar token guardado
TOKEN_DELETE=Delete saved token OAUTH_GOOGLE_NAME=Servicio Oauth Google
OAUTH_GOOGLE_NAME=Oauth Google service OAUTH_GOOGLE_ID=Id Oauth Google
OAUTH_GOOGLE_ID=Oauth Google Id
OAUTH_GOOGLE_SECRET=Oauth Google Secret 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_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=Oauth GitHub service OAUTH_GITHUB_NAME=Servicio Oauth GitHub
OAUTH_GITHUB_ID=Oauth GitHub Id OAUTH_GITHUB_ID=Id Oauth Github
OAUTH_GITHUB_SECRET=Oauth GitHub Secret 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 # Dolibarr language file - Source file is en_US - other
SecurityCode=Código seguridad SecurityCode=Código seguridad
Calendar=Calendario
NumberingShort=Nº NumberingShort=Nº
Tools=Utilidades 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. 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_VALIDATE=Validación miembro
Notify_MEMBER_MODIFY=Miembro modificado Notify_MEMBER_MODIFY=Miembro modificado
Notify_MEMBER_SUBSCRIPTION=Afiliación miembro Notify_MEMBER_SUBSCRIPTION=Afiliación miembro
Notify_MEMBER_RESILIATE=Baja miembro Notify_MEMBER_RESILIATE=Miembro de baja
Notify_MEMBER_DELETE=Eliminación miembro Notify_MEMBER_DELETE=Eliminación miembro
Notify_PROJECT_CREATE=Creación de proyecto Notify_PROJECT_CREATE=Creación de proyecto
Notify_TASK_CREATE=Tarea creada Notify_TASK_CREATE=Tarea creada
@ -55,7 +54,6 @@ TotalSizeOfAttachedFiles=Tamaño total de los archivos/documentos adjuntos
MaxSize=Tamaño máximo MaxSize=Tamaño máximo
AttachANewFile=Adjuntar nuevo archivo/documento AttachANewFile=Adjuntar nuevo archivo/documento
LinkedObject=Objeto adjuntado LinkedObject=Objeto adjuntado
Miscellaneous=Miscelánea
NbOfActiveNotifications=Número de notificaciones (nº de destinatarios) 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. 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 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 SourcesRepository=Repositorio de los fuentes
Chart=Gráfico 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 #####
Export=Exportación
ExportsArea=Área de exportaciones ExportsArea=Área de exportaciones
AvailableFormats=Formatos disponibles AvailableFormats=Formatos disponibles
LibraryUsed=Librería utilizada LibraryUsed=Librería utilizada
LibraryVersion=Versión LibraryVersion=Versión librería
ExportableDatas=Datos exportables ExportableDatas=Datos exportables
NoExportableData=No hay datos exportables (sin módulos con datos exportables cargados, o carecen de permisos) NoExportableData=No hay datos exportables (sin módulos con datos exportables cargados, o carecen de permisos)
NewExport=Nueva exportación
##### External sites ##### ##### External sites #####
WebsiteSetup=Configuración del módulo website WebsiteSetup=Configuración del módulo website
WEBSITE_PAGEURL=URL de la página 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 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 ProductDoesNotUseBatchSerial=Este producto no usa lotes/series
ProductLotSetup=Configuración del módulo lotes/series ProductLotSetup=Configuración del módulo lotes/series
ShowCurrentStockOfLot=Show current stock for couple product/lot ShowCurrentStockOfLot=Mostrar el stock actual de este producto/lote
ShowLogOfMovementIfLot=Show log of movements for couple product/lot 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 BuildPageToPrint=Generar página a imprimir
FillBarCodeTypeAndValueManually=Rellenar tipo y valor del código de barras manualmente. FillBarCodeTypeAndValueManually=Rellenar tipo y valor del código de barras manualmente.
FillBarCodeTypeAndValueFromProduct=Rellenar tipo y valor del código de barras de un producto. 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. 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: 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) 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 PriceByCustomer=Cambiar precios para cada cliente
PriceCatalogue=Un precio único de venta por producto/servicio 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 CloseAProject=Cerrar proyecto
ConfirmCloseAProject=¿Está seguro de querer cerrar este proyecto? ConfirmCloseAProject=¿Está seguro de querer cerrar este proyecto?
ReOpenAProject=Reabrir proyecto ReOpenAProject=Reabrir proyecto
ConfirmReOpenAProject=¿Está seguro de querer reabrir este proyecto? ConfirmReOpenAProject=Está seguro de querer reabrir este proyecto?
ProjectContact=Contactos proyecto ProjectContact=Contactos proyecto
ActionsOnProject=Eventos del proyecto ActionsOnProject=Eventos del proyecto
YouAreNotContactOfProject=Usted no es contacto de este proyecto privado 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 ErrorShiftTaskDate=Se ha producido un error en el cambio de las fechas de las tareas
ProjectsAndTasksLines=Proyectos y tareas ProjectsAndTasksLines=Proyectos y tareas
ProjectCreatedInDolibarr=Proyecto %s creado ProjectCreatedInDolibarr=Proyecto %s creado
ProjectModifiedInDolibarr=Project %s modified ProjectModifiedInDolibarr=Proyecto %s modificado
TaskCreatedInDolibarr=La tarea %s fue creada TaskCreatedInDolibarr=La tarea %s fue creada
TaskModifiedInDolibarr=La tarea %s fue modificada TaskModifiedInDolibarr=La tarea %s fue modificada
TaskDeletedInDolibarr=La tarea %s fue eliminada 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 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 ClonePropal=Clonar presupuesto
ConfirmClonePropal=¿Está seguro de querer clonar el presupuesto <b>%s</b>? 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 ProposalsAndProposalsLines=Presupuestos a clientes y líneas de presupuestos
ProposalLine=Línea de presupuesto ProposalLine=Línea de presupuesto
AvailabilityPeriod=Tiempo de entrega AvailabilityPeriod=Tiempo de entrega

View File

@ -38,7 +38,7 @@ SmsStatusNotSent=No enviado
SmsSuccessfulySent=SMS enviado correctamente (desde %s hasta %s) SmsSuccessfulySent=SMS enviado correctamente (desde %s hasta %s)
ErrorSmsRecipientIsEmpty=El número del destinatario está vacío 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. 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 NbOfUniqueSms=Nº de teléfonos únicos
NbOfSms=Nº de teléfono NbOfSms=Nº de teléfono
ThisIsATestMessage=Este es un mensaje de prueba ThisIsATestMessage=Este es un mensaje de prueba

View File

@ -19,7 +19,7 @@ AddSupplierProposal=Crear un presupuesto
SupplierProposalRefFourn=Ref. Proveedor SupplierProposalRefFourn=Ref. Proveedor
SupplierProposalDate=Fecha de entrega SupplierProposalDate=Fecha de entrega
SupplierProposalRefFournNotice=Antes de cerrar a "Aceptado", piense en consultar las referencias de proveedores. 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 DeleteAsk=Eliminar presupuesto
ValidateAsk=Validar presupuesto ValidateAsk=Validar presupuesto
SupplierProposalStatusDraft=Borrador (a validar) SupplierProposalStatusDraft=Borrador (a validar)
@ -34,12 +34,12 @@ SupplierProposalStatusNotSignedShort=Rechazado
CopyAskFrom=Crear presupuesto por copia de uno existente CopyAskFrom=Crear presupuesto por copia de uno existente
CreateEmptyAsk=Crear un presupuesto en blanco CreateEmptyAsk=Crear un presupuesto en blanco
CloneAsk=Clonar presupuesto CloneAsk=Clonar presupuesto
ConfirmCloneAsk=¿Está seguro de querer clonar 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> ? ConfirmReOpenAsk=¿Está seguro de querer reabrir el presupuesto <b>%s</b>?
SendAskByMail=Envío presupuesto por e-mail SendAskByMail=Envío presupuesto por e-mail
SendAskRef=Enviando el presupuesto %s SendAskRef=Enviando el presupuesto %s
SupplierProposalCard=Ficha presupuesto 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 ActionsOnSupplierProposal=Eventos del presupuesto
DocModelAuroreDescription=Modelo de presupuesto completo (logo...) DocModelAuroreDescription=Modelo de presupuesto completo (logo...)
CommercialAsk=Presupuesto 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_2=Facturas proveedores y pagos
ExportDataset_fournisseur_3=Pedidos de proveedores y líneas de pedido ExportDataset_fournisseur_3=Pedidos de proveedores y líneas de pedido
ApproveThisOrder=Aprobar este 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 DenyingThisOrder=Denegar este pedido
ConfirmDenyingThisOrder=¿Está seguro de querer denegar el pedido a proveedor <b>%s</b>? 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>? 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 EnableAUser=Reactivar un usuario
DeleteGroup=Eliminar DeleteGroup=Eliminar
DeleteAGroup=Eliminar un grupo DeleteAGroup=Eliminar un grupo
ConfirmDisableUser=¿Está seguro de querer desactivar 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> ? ConfirmDeleteUser=¿Está seguro de querer eliminar al usuario <b>%s</b>?
ConfirmDeleteGroup=¿Está seguro de querer eliminar al grupo <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> ? 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> ? 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> ? ConfirmSendNewPassword=¿Está seguro de querer generar y enviar una nueva contraseña al usuario <b>%s</b>?
NewUser=Nuevo usuario NewUser=Nuevo usuario
CreateUser=Crear usuario CreateUser=Crear usuario
LoginNotDefined=El usuario no está definido 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: WithdrawRequestAmount=Importe petición domiciliación:
WithdrawRequestErrorNilAmount=No es posible crear una petición de domiciliación con importe nulo WithdrawRequestErrorNilAmount=No es posible crear una petición de domiciliación con importe nulo
SepaMandate=Mandato SEPA SepaMandate=Mandato SEPA
SepaMandateShort=SEPA Mandate SepaMandateShort=Mandato SEPA
PleaseReturnMandate=Please return this mandate form by email to %s or by mail to 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. 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 CreditorIdentifier=Identificador Acreedor
CreditorName=Nombre acreedor CreditorName=Nombre acreedor

View File

@ -169,7 +169,7 @@ InvoiceRef=Réf facture
CodeNotDef=Non défini CodeNotDef=Non défini
WarningDepositsNotIncluded=Les factures d'acomptes ne sont pas encore prises en compte dans cette version avec ce module de comptabilité. 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 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_type=Classe de compte
Pcg_subtype=Sous classe de compte Pcg_subtype=Sous classe de compte
InvoiceLinesToDispatch=Lignes de factures à ventiler 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é). 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 CalculationMode=Mode de calcul
AccountancyJournal=Code journal comptabilité AccountancyJournal=Code journal comptabilité
ACCOUNTING_VAT_SOLD_ACCOUNT=Code comptable par défaut pour l'encaissement de TVA (TVA sur les ventes) ACCOUNTING_VAT_SOLD_ACCOUNT=Compte 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_BUY_ACCOUNT=Compte 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_VAT_PAY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA
ACCOUNTING_ACCOUNT_CUSTOMER=Code comptable par défaut des tiers clients ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable par défaut des tiers clients
ACCOUNTING_ACCOUNT_SUPPLIER=Code comptable par défaut des tiers fournisseurs ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable par défaut des tiers fournisseurs
CloneTax=Cloner une charge sociale/fiscale CloneTax=Cloner une charge sociale/fiscale
ConfirmCloneTax=Confirmez le clone du paiement de charge sociale/fiscale ConfirmCloneTax=Confirmez le clone du paiement de charge sociale/fiscale
CloneTaxForNextMonth=Cloner pour le mois suivant CloneTaxForNextMonth=Cloner pour le mois suivant
@ -202,3 +202,4 @@ LinkedFichinter=Lié à une intervention
ImportDataset_tax_contrib=Importer les charges sociales/fiscales ImportDataset_tax_contrib=Importer les charges sociales/fiscales
ImportDataset_tax_vat=Importer les paiements de Tva ImportDataset_tax_vat=Importer les paiements de Tva
ErrorBankAccountNotFound=Erreur: compte banque non trouvé ErrorBankAccountNotFound=Erreur: compte banque non trouvé
FiscalPeriod=Période fiscale

View File

@ -70,6 +70,7 @@ SeeHere=Regardez ici
BackgroundColorByDefault=Couleur de fond BackgroundColorByDefault=Couleur de fond
FileRenamed=Le fichier a été renommé avec succès FileRenamed=Le fichier a été renommé avec succès
FileUploaded=Le fichier a été transféré 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. 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 NbOfEntries=Nb d'entrées
GoToWikiHelpPage=Consulter l'aide (nécessite un accès internet) 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 # Dolibarr language file - Source file is en_US - salaries
SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Code comptable pour les paiements des salaires SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable par défaut pour les paiements des salaires
SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Code comptable pour les charges de personnel SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les charges de personnel
Salary=Salaire Salary=Salaire
Salaries=Salaires Salaries=Salaires
NewSalaryPayment=Nouveau règlement de salaire NewSalaryPayment=Nouveau règlement de salaire

View File

@ -9,74 +9,81 @@ ACCOUNTING_EXPORT_DEVISE=Eksporter valuta
Selectformat=Velg filformat Selectformat=Velg filformat
ACCOUNTING_EXPORT_PREFIX_SPEC=Velg prefiks for filnavnet ACCOUNTING_EXPORT_PREFIX_SPEC=Velg prefiks for filnavnet
AccountancySetupDoneFromAccountancyMenu=Mesteparten av regnskapet settes opp fra menyen %s
ConfigAccountingExpert=Konfigurasjon av modulen regnskapsekspert ConfigAccountingExpert=Konfigurasjon av modulen regnskapsekspert
Journalization=Journalføring
Journaux=Journaler Journaux=Journaler
JournalFinancial=Finasielle journaler JournalFinancial=Finasielle journaler
BackToChartofaccounts=Returner kontotabell BackToChartofaccounts=Returner kontotabell
Chartofaccounts=Diagram over kontoer
AccountancyArea=Accountancy area AccountancyArea=Område for regnskap
AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescIntro=Bruk av regnskapsmodulen er gjort i flere skritt:
AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... AccountancyAreaDescActionOnce=Følgende tiltak blir vanligvis utført en gang, eller en gang i året ...
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... AccountancyAreaDescActionFreq=Følgende tiltak blir vanligvis utført hver måned, uke eller dag for svært store selskaper ...
AccountancyAreaDescChart=STEP %s: Create or check your chart of account from menu %s AccountancyAreaDescChartModel=TRINN %s: Lag en kontomodell fra menyen %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. AccountancyAreaDescChart=TRINN %s: Opprett eller kontroller innhold i din kontoplan fra meny %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. 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=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. 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=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. 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=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. 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=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. 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. 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=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. 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=STEP %s: Write transactions into the General Ledger. Add or edit existing transactions and generate reports 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 Addanaccount=Legg til regnskapskonto
AccountAccounting=Regnskapskonto AccountAccounting=Regnskapskonto
AccountAccountingShort=Konto AccountAccountingShort=Konto
AccountAccountingSuggest=Forslag til regnskapskonto AccountAccountingSuggest=Forslag til regnskapskonto
Ventilation=Binding to accounts MenuDefaultAccounts=Standard kontoer
ProductsBinding=Products bindings MenuProductsAccounts=Varekontoer
ProductsBinding=Varekontoer
MenuAccountancy=Regnskap Ventilation=Binding til kontoer
CustomersVentilation=Customer invoice binding CustomersVentilation=Binding av kundefakturaer
SuppliersVentilation=Supplier invoice binding SuppliersVentilation=Binding av leverandørfakturaer
Reports=Rapporter CreateMvts=Opprett ny transaksjon
NewAccount=Ny regnskapskonto UpdateMvts=Endre en transaksjon
Create=Opprett WriteBookKeeping=Journalfør transaksjoner i hovedboken
CreateMvts=Create new transaction
UpdateMvts=Modification of a transaction
WriteBookKeeping=Record operations in General Ledger
Bookkeeping=Hovedbok Bookkeeping=Hovedbok
AccountBalance=Kontobalanse AccountBalance=Kontobalanse
CAHTF=Totalt leverandørkjøp eks. MVA CAHTF=Totalt leverandørkjøp eks. MVA
InvoiceLines=Lines of invoices to bind InvoiceLines=Binding av fakturalinjer
InvoiceLinesDone=Bound lines of invoices InvoiceLinesDone=Bundne fakturalinjer
IntoAccount=Bind line with the accounting account IntoAccount=Bind linje med regnskapskonto
Ventilate=Bind Ventilate=Bind
LineId=ID-linje
Processing=Behandler Processing=Behandler
EndProcessing=Behandling ferdig EndProcessing=Prosess terminert.
AnyLineVentilate=Any lines to bind
SelectedLines=Valgte linjer SelectedLines=Valgte linjer
Lineofinvoice=Fakturalinje Lineofinvoice=Fakturalinje
VentilatedinAccount=Binded successfully to the accounting account NoAccountSelected=Ingen regnskapskonto valgt
NotVentilatedinAccount=Not bound to the accounting account VentilatedinAccount=Bundet til regnskapskontoen
XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account NotVentilatedinAccount=Ikke bundet til regnskapskontoen
XLineFailedToBeBinded=%s products/services were not bound to any accounting account 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_LIMIT_LIST_VENTILATION=Antall elementer å binde vist pr. side (maksimum anbefalt er 50)
ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begynn sortering av siden "Bindinger å utføre" etter de nyeste først
ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements 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=Avkort vare- og produktbeskrivelser i lister etter x karakterer (Anbefalt = 50)
ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Lengde for visning av varer- og tjenesters kontobeskrivelser i lister (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_GACCOUNT=Lengde på hovedbokskontoer
ACCOUNTING_LENGTH_AACCOUNT=Lengde på tredjepartskontoer 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". 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 fritekst på banktransaksjoner (Standard er aktivert for dennemodulen) BANK_DISABLE_DIRECT_INPUT=Deaktiver direkteregistrering av transaksjoner på bankkonto
ACCOUNTING_SELL_JOURNAL=Salgsjournal ACCOUNTING_SELL_JOURNAL=Salgsjournal
ACCOUNTING_PURCHASE_JOURNAL=Innkjøpsjournal ACCOUNTING_PURCHASE_JOURNAL=Innkjøpsjournal
@ -101,23 +108,23 @@ Labelcompte=Kontoetikett
Sens=som betyr Sens=som betyr
Codejournal=Journal Codejournal=Journal
NumPiece=Del nummer NumPiece=Del nummer
TransactionNumShort=Transaksjonsnummer
AccountingCategory=Regnskapskategori AccountingCategory=Regnskapskategori
GroupByAccountAccounting=Grupper etter regnskapskonto
NotMatch=Ikke valgt NotMatch=Ikke valgt
DeleteMvt=Slett linjer i hovedboken DeleteMvt=Slett linjer i hovedboken
DelYear=År som skal slettes DelYear=År som skal slettes
DelJournal=Journal 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 ConfirmDeleteMvtPartial=Dette vil slette valgt linje(r) i hovedboken
DelBookKeeping=Slett postene i hovedboken DelBookKeeping=Slett posten i hovedboken
DescSellsJournal=Salgsjournal
DescPurchasesJournal=Innkjøpsjournal
FinanceJournal=Finansjournal FinanceJournal=Finansjournal
DescFinanceJournal=Finansjournal med alle typer betalinger etter bankkonto 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. DescJournalOnlyBindedVisible=Her vises poster som er bundet til vare-/tjenestekontoer og kan registreres i hovedboken.
VATAccountNotDefined=Account for VAT not defined VATAccountNotDefined=MVA-konto er ikke definert
ThirdpartyAccountNotDefined=Account for third party not defined ThirdpartyAccountNotDefined=Konto for tredjepart er ikke definert
ProductAccountNotDefined=Account for product not defined ProductAccountNotDefined=Konto for vare er ikke definert
BankAccountNotDefined=Account for bank not defined BankAccountNotDefined=Konto for bank er ikke definert
CustomerInvoicePayment=Betaling av kundefaktura CustomerInvoicePayment=Betaling av kundefaktura
ThirdPartyAccount=Tredjepart-konto ThirdPartyAccount=Tredjepart-konto
NewAccountingMvt=Ny transaksjon NewAccountingMvt=Ny transaksjon
@ -125,26 +132,24 @@ NumMvts=Transaksjonsnummer
ListeMvts=Liste over bevegelser ListeMvts=Liste over bevegelser
ErrorDebitCredit=Debet og kredit kan ikke ha en verdi samtidig ErrorDebitCredit=Debet og kredit kan ikke ha en verdi samtidig
ReportThirdParty=List third party account ReportThirdParty=List tredjepartskonto
DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts DescThirdPartyReport=Liste over kunder og leverandører og deres regnskapskontoer
ListAccounts=Liste over regnskapskontoer ListAccounts=Liste over regnskapskontoer
Pcgtype=Kontoklasse Pcgtype=Kontoklasse
Pcgsubtype=Underklasse av konto Pcgsubtype=Underklasse av konto
Accountparent=Rot/base-kontoer
TotalVente=Total omsetning før skatt TotalVente=Total omsetning før skatt
TotalMarge=Total salgsmargin TotalMarge=Total salgsmargin
DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account DescVentilCustomer=Liste over kunde-fakturalinjer (bundet eller ikke) til en vare-regnskapskonto
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>". 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=Consult here the list of the lines of invoices customers and their product accounting account DescVentilDoneCustomer=Liste over kunde-fakturalinjer og deres vare-regnskapskontoer
DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account DescVentilTodoCustomer=Bind fakturalinjer som ikke allerede er bundet, til en vare-regnskapskonto
ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: ChangeAccount=Endre regnskapskonto for valgte vare-/tjenestelinjer til følgende konto:
Vide=- Vide=-
DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account DescVentilSupplier=Liste over leverandørfaktura-linjer bundet eller ikke bundet til en vare-regnskapskonto
DescVentilDoneSupplier=Consult here the list of the lines of invoices supplier and their accounting account DescVentilDoneSupplier=Liste over leverandørfakturalinjer og tilhørende regnskapskonto
ValidateHistory=Bind automatisk ValidateHistory=Bind automatisk
AutomaticBindingDone=Automatisk binding utført 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 ErrorAccountancyCodeIsAlreadyUse=Feil, du kan ikke slette denne regnskapskontoen fordi den er i bruk
MvtNotCorrectlyBalanced=Bevegelse er ikke korrekt balansert. Kredit=%s. Debet=%s MvtNotCorrectlyBalanced=Bevegelse er ikke korrekt balansert. Kredit=%s. Debet=%s
FicheVentilation=Binding-kort FicheVentilation=Binding-kort
GeneralLedgerIsWritten=Transaksjonene ble registrert i hovedboken GeneralLedgerIsWritten=Transaksjoner er ført inn i hovedboken
GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. GeneralLedgerSomeRecordWasNotRecorded=Noen av transaksjonene kunne ikke registreres
NoNewRecordSaved=No new record saved NoNewRecordSaved=Ingen nye poster lagret
ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ListOfProductsWithoutAccountingAccount=Liste over varer som ikke bundet til en regnskapskonto
ChangeBinding=Change the binding ChangeBinding=Endre bindingen
## Admin ## Admin
ApplyMassCategories=Masseinnlegging av kategorier ApplyMassCategories=Masseinnlegging av kategorier
@ -178,7 +183,8 @@ Modelcsv_cogilog=Eksport mot Cogilog
## Tools - Init accounting account on product / service ## Tools - Init accounting account on product / service
InitAccountancy=Initier regnskap 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 Options=Innstillinger
OptionModeProductSell=Salgsmodus OptionModeProductSell=Salgsmodus
OptionModeProductBuy=Innkjøpsmodus OptionModeProductBuy=Innkjøpsmodus
@ -193,12 +199,11 @@ Calculated=Kalkulert
Formula=Formel Formula=Formel
## Error ## 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 ExportNotSupported=Eksportformatet som er satt opp støttes ikke på denne siden
BookeppingLineAlreayExists=Linjene eksisterer allerede i bokføringen BookeppingLineAlreayExists=Linjene eksisterer allerede i bokføringen
Binded=Lines bound Binded=Bundne linjer
ToBind=Lines to bind ToBind=Linjer som skal bindes
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.
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 SessionSaveHandler=Håndterer for å lagre sesjoner
SessionSavePath=Sted for lagring av økt SessionSavePath=Sted for lagring av økt
PurgeSessions=Utrenskning av øktene 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. NoSessionListWithThisHandler=Øktlagrings-behandleren i PHP tillater ikke å vise alle kjørende økter.
LockNewSessions=Lås nye tilkoblinger 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. 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. ErrorDecimalLargerThanAreForbidden=Feil: Presisjon over <b>%s</b> støttes ikke.
DictionarySetup=Oppsett av ordliste DictionarySetup=Oppsett av ordliste
Dictionary=Ordlister 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 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 ErrorCodeCantContainZero=Koden kan ikke inneholde verdien 0
DisableJavascript=Deaktiver JavaScript og Ajax funksjoner (Anbefalt for tekstbaserte nettlesere og blinde) 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) 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 NumberOfKeyToSearch=Antall tegn for å starte søk: %s
NotAvailableWhenAjaxDisabled=Ikke tilgjengelig når Ajax er slått av 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 JavascriptDisabled=JavaScript er deaktivert
UsePreviewTabs=Bruk faner for forhåndsvisning UsePreviewTabs=Bruk faner for forhåndsvisning
ShowPreview=Forhåndsvisning ShowPreview=Forhåndsvisning
@ -143,7 +141,7 @@ PurgeRunNow=Start utrenskning
PurgeNothingToDelete=Ingen mapper eller filer å slette. PurgeNothingToDelete=Ingen mapper eller filer å slette.
PurgeNDirectoriesDeleted=<b>%s</b> filer eller mapper slettet. PurgeNDirectoriesDeleted=<b>%s</b> filer eller mapper slettet.
PurgeAuditEvents=Fjern alle sikkerhetshendelser 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 GenerateBackup=Opprett sikkerhetskopi
Backup=Ta sikkerhetskopi Backup=Ta sikkerhetskopi
Restore=Gjenopprett fra sikkerhetskopi Restore=Gjenopprett fra sikkerhetskopi
@ -178,10 +176,10 @@ ExtendedInsert=Utvidet INSERT
NoLockBeforeInsert=Ingen låsekommandoer rundt INSERT NoLockBeforeInsert=Ingen låsekommandoer rundt INSERT
DelayedInsert=Forsinket INSERT DelayedInsert=Forsinket INSERT
EncodeBinariesInHexa=Binære data kodes hexadecimalt EncodeBinariesInHexa=Binære data kodes hexadecimalt
IgnoreDuplicateRecords=Ignorer duplikat-feil (INSERT IGNORE) IgnoreDuplicateRecords=Ignorer feil ved postduplisering (INSERT IGNORE)
AutoDetectLang=Auto-oppdag (nettleserspråk) AutoDetectLang=Auto-oppdag (nettleserspråk)
FeatureDisabledInDemo=Funksjonen er slått av i demo 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 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. 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. OnlyActiveElementsAreShown=Bare elementer fra <a href="%s">aktiverte moduler</a> vises.
@ -194,8 +192,8 @@ WebSiteDesc=Referansesider for å finne flere moduler.
URL=Lenke URL=Lenke
BoxesAvailable=Tilgjengelige widgeter BoxesAvailable=Tilgjengelige widgeter
BoxesActivated=Aktiverte widgeter BoxesActivated=Aktiverte widgeter
ActivateOn=Aktivert den ActivateOn=Aktivert på
ActiveOn=Aktivert den ActiveOn=Aktivert på
SourceFile=Kildefil SourceFile=Kildefil
AvailableOnlyIfJavascriptAndAjaxNotDisabled=Tilgjengelig bare hvis Javascript og Ajax er aktivert AvailableOnlyIfJavascriptAndAjaxNotDisabled=Tilgjengelig bare hvis Javascript og Ajax er aktivert
Required=Påkrevet 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_DISABLE_ALL_SMS=Deaktiver alle SMS sendings (for testformål eller demoer)
MAIN_SMS_SENDMODE=Metode for å sende SMS MAIN_SMS_SENDMODE=Metode for å sende SMS
MAIN_MAIL_SMS_FROM=Standard avsender telefonnummer for sending av 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. 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/ 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. 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 LastActivationDate=Siste aktiveringsdato
UpdateServerOffline=Oppdater serveren offline 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> 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> 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> 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> 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 DisableLinkToHelpCenter=Skjul linken <b>"Trenger du hjelp eller støtte"</b> på innloggingssiden
DisableLinkToHelp=Skjul lenke til online hjelp "<b>%s</b>" 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. 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 MinLength=Minimum lengde
LanguageFilesCachedIntoShmopSharedMemory=Filer .lang lastet i delt minne LanguageFilesCachedIntoShmopSharedMemory=Filer .lang lastet i delt minne
ExamplesWithCurrentSetup=Eksempler med gjeldende oppsett 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 ExternalModule=Ekstern modul - Installert i katalog %s
BarcodeInitForThirdparties=Masseinitiering av strekkoder for tredjeparter BarcodeInitForThirdparties=Masseinitiering av strekkoder for tredjeparter
BarcodeInitForProductsOrServices=Masseinitiering eller sletting av strekkoder for varer og tjenester 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 InitEmptyBarCode=Startverdi for neste %s tomme post
EraseAllCurrentBarCode=Slett alle gjeldende strekkode-verdier 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 AllBarcodeReset=Alle strekkode-verdier er blitt slettet
NoBarcodeNumberingTemplateDefined=Ingen mal for strekkodenummerering er aktivert strekkodemodulen NoBarcodeNumberingTemplateDefined=Ingen mal for strekkodenummerering er aktivert strekkodemodulen
EnableFileCache=Aktiver fil-cache 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. 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 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. 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... UseDoubleApproval=Bruk 3-trinns godkjennelse når beløpet (eks. MVA) er høyere enn...
# Modules # Modules
@ -482,7 +483,7 @@ Module510Desc=Håndtering av arbeidskontrakter, lønn og utbetalinger
Module520Name=Lån Module520Name=Lån
Module520Desc=Administrering av lån Module520Desc=Administrering av lån
Module600Name=Varselmeldinger 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 Module700Name=Donasjoner
Module700Desc=Behandling av donasjoner Module700Desc=Behandling av donasjoner
Module770Name=Utgiftsrapporter Module770Name=Utgiftsrapporter
@ -758,7 +759,7 @@ Permission1236=Eksportere leverandørordre, attributter og betalinger
Permission1237=Eksporter leverandør-bestillinger og detaljer Permission1237=Eksporter leverandør-bestillinger og detaljer
Permission1251=Kjør masseimport av eksterne data til database (datalast) Permission1251=Kjør masseimport av eksterne data til database (datalast)
Permission1321=Eksportere kundefakturaer, attributter og betalinger Permission1321=Eksportere kundefakturaer, attributter og betalinger
Permission1322=Reopen a paid bill Permission1322=Gjenåpne en betalt regning
Permission1421=Eksport kundeordre og attributter Permission1421=Eksport kundeordre og attributter
Permission20001=Les ferieforespørsler (dine og underordnedes) Permission20001=Les ferieforespørsler (dine og underordnedes)
Permission20002=Opprett/endre ferieforespørsler Permission20002=Opprett/endre ferieforespørsler
@ -869,7 +870,7 @@ LabelUsedByDefault=Etiketten som brukes som standard hvis ingen oversettelse kan
LabelOnDocuments=Etiketten på dokumenter LabelOnDocuments=Etiketten på dokumenter
NbOfDays=Antall dager NbOfDays=Antall dager
AtEndOfMonth=Ved månedsslutt AtEndOfMonth=Ved månedsslutt
CurrentNext=Current/Next CurrentNext=Nåværende/Neste
Offset=Forskyvning Offset=Forskyvning
AlwaysActive=Alltid aktiv AlwaysActive=Alltid aktiv
Upgrade=Oppgrader Upgrade=Oppgrader
@ -1105,9 +1106,8 @@ WatermarkOnDraft=Vannmerke på utkast
JSOnPaimentBill=Aktiver egenskap for å autoutfylle betalingslinjer i betalingsskjema JSOnPaimentBill=Aktiver egenskap for å autoutfylle betalingslinjer i betalingsskjema
CompanyIdProfChecker=Regler for profesjonell ID CompanyIdProfChecker=Regler for profesjonell ID
MustBeUnique=Må være unik? MustBeUnique=Må være unik?
MustBeMandatory=Obligatorisk for å opprette tredjeparter? MustBeMandatory=Obligatorisk å opprette tredjeparter?
MustBeInvoiceMandatory=Obligatorisk for å validere fakturaer? MustBeInvoiceMandatory=Obligatorisk å validere fakturaer?
Miscellaneous=Diverse
##### Webcal setup ##### ##### Webcal setup #####
WebCalUrlForVCalExport=En eksportlenke til <b>%s</b> formatet er tilgjengelig på følgende lenke: %s WebCalUrlForVCalExport=En eksportlenke til <b>%s</b> formatet er tilgjengelig på følgende lenke: %s
##### Invoices ##### ##### Invoices #####
@ -1318,7 +1318,7 @@ ProductServiceSetup=Oppsett av varer- og tjenester-modulen
NumberOfProductShowInSelect=Maks. antall varer i utvalgslister (0=ingen grenser) NumberOfProductShowInSelect=Maks. antall varer i utvalgslister (0=ingen grenser)
ViewProductDescInFormAbility=Visualisering av varebeskrivelser i skjemaer (ellers som oppsprett-tips) 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 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 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) UseSearchToSelectProduct=Bruk et søkeskjema for å velge vare (i stedet for en nedtrekksliste)
SetDefaultBarcodeTypeProducts=Standard strekkodetype for varer 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) DetailLevel=Nivå (-1:toppmeny, 0:headermeny, >0 meny og undermeny)
ModifMenu=Menyendring ModifMenu=Menyendring
DeleteMenu=Slett menyoppføring 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 FailedToInitializeMenu=Klarte ikke å initialisere menyen
##### Tax ##### ##### Tax #####
TaxSetup=Modul for skatter,avgifter og utbytte 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 WebServicesSetup=Oppsett av webservices-modul
WebServicesDesc=Ved å aktivere denne modulen, vil Dolibarr bli en webtjeneste-server og tilby diverse web-tjenester. 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 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 #### ##### API ####
ApiSetup=Oppsett av API-modul ApiSetup=Oppsett av API-modul
ApiDesc=Ved å aktivere denne modulen, blir Dolibarr en REST-server for diverse web-tjenester 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) UseSearchToSelectProject=Bruk autokomplettering for å velge prosjekt (i stedet for listeboks)
##### ECM (GED) ##### ##### ECM (GED) #####
##### Fiscal Year ##### ##### Fiscal Year #####
FiscalYears=Regnskapsår AccountingPeriods=Regnskapsperioder
FiscalYearCard=Kort for regnskapsår AccountingPeriodCard=Regnskapsperiode
NewFiscalYear=Nytt regnskapsår NewFiscalYear=Ny regnskapsperiode
OpenFiscalYear=Åpne regnskapsår OpenFiscalYear=Åpne regnskapsperiode
CloseFiscalYear=Lukk regnskapsår CloseFiscalYear=Lukk regnskapsperiode
DeleteFiscalYear=Slett regnskapsår DeleteFiscalYear=Slett regnskapsperiode
ConfirmDeleteFiscalYear=Er du sikker på at du vil slette dette regnskapsåret? ConfirmDeleteFiscalYear=Er du sikker på at du vil slette denne regnskapsperioden?
ShowFiscalYear=Vis regnskapsår ShowFiscalYear=Vis regnskapsperiode
AlwaysEditable=Kan alltid endres 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) 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 NbMajMin=Minste antall store bokstaver
@ -1552,7 +1552,7 @@ ListOfNotificationsPerUser=Liste over varslinger pr. bruker*
ListOfNotificationsPerUserOrContact=Liste over varslinger pr. bruker* eller pr. kontakt** ListOfNotificationsPerUserOrContact=Liste over varslinger pr. bruker* eller pr. kontakt**
ListOfFixedNotifications=Liste over faste varslinger ListOfFixedNotifications=Liste over faste varslinger
GoOntoUserCardToAddMore=Gå til fanen "Varslinger" hos en bruker for å legge til eller fjerne en varsling 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 Threshold=Terskel
BackupDumpWizard=Veiviser for å bygge database-backup dumpfil BackupDumpWizard=Veiviser for å bygge database-backup dumpfil
SomethingMakeInstallFromWebNotPossible=Installasjon av ekstern modul er ikke mulig fra webgrensesnittet på grunn av: 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 MailToSendSupplierRequestForQuotation=For å sende forespørsel til leverandør
MailToSendSupplierOrder=For å sende leverandørordre MailToSendSupplierOrder=For å sende leverandørordre
MailToSendSupplierInvoice=For å sende leverandørfaktura 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 ByDefaultInList=Vis som standard for liste
YouUseLastStableVersion=Du bruker siste stabile verjon 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) 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 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. 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 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. 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 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 Actions=Handlinger
Agenda=Agenda Agenda=Agenda
Agendas=Agendaer Agendas=Agendaer
Calendar=Kalender
LocalAgenda=Intern kalender LocalAgenda=Intern kalender
ActionsOwnedBy=Hendelse tilhører ActionsOwnedBy=Hendelse tilhører
ActionsOwnedByShort=Eier 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. AgendaSetupOtherDesc= Her kan du gjøre andre innstillinger i agendamodulen.
AgendaExtSitesDesc=Denne siden lar deg sette opp eksterne kalendere for å visning i Dolibarr agenda. AgendaExtSitesDesc=Denne siden lar deg sette opp eksterne kalendere for å visning i Dolibarr agenda.
ActionsEvents=Handlinger som Dolibarr automatisk registrerer i agendaen 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 PropalValidatedInDolibarr=Tilbud godkjent
PropalClassifiedBilledInDolibarr=Tilbud %s klassifisert betalt
InvoiceValidatedInDolibarr=Faktura %s validert InvoiceValidatedInDolibarr=Faktura %s validert
InvoiceValidatedInDolibarrFromPos=Faktura %s godkjent fra POS InvoiceValidatedInDolibarrFromPos=Faktura %s godkjent fra POS
InvoiceBackToDraftInDolibarr=Sett faktura %s tilbake til utkaststatus InvoiceBackToDraftInDolibarr=Sett faktura %s tilbake til utkaststatus
InvoiceDeleteDolibarr=Faktura %s slettet 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 OrderValidatedInDolibarr=Ordre %s validert
OrderDeliveredInDolibarr=Ordre %s klassifisert som levert OrderDeliveredInDolibarr=Ordre %s klassifisert som levert
OrderCanceledInDolibarr=Ordre %s kansellert OrderCanceledInDolibarr=Ordre %s kansellert
@ -57,9 +72,9 @@ InterventionSentByEMail=Intervensjon %s sendt på epost
ProposalDeleted=Tilbud slettet ProposalDeleted=Tilbud slettet
OrderDeleted=Ordre slettet OrderDeleted=Ordre slettet
InvoiceDeleted=Faktura slettet InvoiceDeleted=Faktura slettet
NewCompanyToDolibarr= Tredjepart opprettet ##### End agenda events #####
DateActionStart= Startdato DateActionStart=Startdato
DateActionEnd= Sluttdato DateActionEnd=Sluttdato
AgendaUrlOptions1=Du kan også bruke følgende parametere til å filtrere listen: 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>. 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>. 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 BankAccountOwnerAddress=Kontoeiers adresse
RIBControlError=Integritetssjekk feilet. Dette betyr at informasjon om denne kontoen er ufullstendig eller feil (sjekk land, nummer og IBAN). RIBControlError=Integritetssjekk feilet. Dette betyr at informasjon om denne kontoen er ufullstendig eller feil (sjekk land, nummer og IBAN).
CreateAccount=Opprett konto CreateAccount=Opprett konto
NewAccount=Ny konto NewBankAccount=Ny konto
NewFinancialAccount=Ny hovedbokskonto NewFinancialAccount=Ny hovedbokskonto
MenuNewFinancialAccount=Ny hovedbokskonto MenuNewFinancialAccount=Ny hovedbokskonto
EditFinancialAccount=Rediger konto EditFinancialAccount=Rediger konto
@ -58,13 +58,13 @@ Account=Konto
BankTransactionByCategories=Transaksjoner etter kategorier BankTransactionByCategories=Transaksjoner etter kategorier
BankTransactionForCategory=Transaksjoner i kategorien <b>%s</b> BankTransactionForCategory=Transaksjoner i kategorien <b>%s</b>
RemoveFromRubrique=Fjern lenke med kategori 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 ListBankTransactions=Oversikt over transaksjoner
IdTransaction=Transaksjons-ID IdTransaction=Transaksjons-ID
BankTransactions=Banktransaksjoner BankTransactions=Banktransaksjoner
ListTransactions=List over transaksjoner ListTransactions=List over transaksjoner
ListTransactionsByCategory=Liste over transaksjoner/kategorier ListTransactionsByCategory=Liste over transaksjoner/kategorier
TransactionsToConciliate=Transaksjon du vil stemme av TransactionsToConciliate=Transaksjoner til avstemming
Conciliable=Kan avstemmes Conciliable=Kan avstemmes
Conciliate=Avstem Conciliate=Avstem
Conciliation=Avstemming Conciliation=Avstemming
@ -94,21 +94,21 @@ SocialContributionPayment=Betaling av skatter og avgifter
BankTransfer=Bankoverføring BankTransfer=Bankoverføring
BankTransfers=Bankoverføringer BankTransfers=Bankoverføringer
MenuBankInternalTransfer=Intern overførsel 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 TransferFrom=Fra
TransferTo=Til TransferTo=Til
TransferFromToDone=En overføring fra <b>%s</b> til <b>%s</b> på <b>%s</b> %s er registrert. TransferFromToDone=En overføring fra <b>%s</b> til <b>%s</b> på <b>%s</b> %s er registrert.
CheckTransmitter=Avsender CheckTransmitter=Avsender
ValidateCheckReceipt=Validere mottak av sjekk? ValidateCheckReceipt=Valider sjekkvittering?
ConfirmValidateCheckReceipt=Er du sikker på at du vil validere mottak av sjekk? Du kan ikke endre dette senere. ConfirmValidateCheckReceipt=Er du sikker på at du vil validere denne sjekkvitteringen? Ingen endringer kan utføres etter at dette er gjort.
DeleteCheckReceipt=Slett denne sjekkbetalingen? DeleteCheckReceipt=Slett denne sjekkvitteringen?
ConfirmDeleteCheckReceipt=Er du sikker på at du vil slette denne sjekkbetalingen? ConfirmDeleteCheckReceipt=Er du sikker på at du vil slette denne sjekkvitteringen?
BankChecks=Banksjekker BankChecks=Banksjekker
BankChecksToReceipt=Ventende sjekkinnskudd BankChecksToReceipt=Ventende sjekkinnskudd
ShowCheckReceipt=Vis sjekkinnskuddskvittering ShowCheckReceipt=Vis sjekkinnskuddskvittering
NumberOfCheques=Antall sjekker NumberOfCheques=Antall sjekker
DeleteTransaction=Slett transaksjon 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 ThisWillAlsoDeleteBankRecord=Dette vil også slette genererte banktransaksjoner
BankMovements=Bevegelser BankMovements=Bevegelser
PlannedTransactions=Planlagte transaksjoner PlannedTransactions=Planlagte transaksjoner
@ -136,7 +136,7 @@ AllRIB=Alle BAN
LabelRIB=BAN Etikett LabelRIB=BAN Etikett
NoBANRecord=Ingen BAN kort NoBANRecord=Ingen BAN kort
DeleteARib=BAN-kort slettet 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 RejectCheck=Returnert sjekk
ConfirmRejectCheck=Er du sikker på at du vil merke denne sjekken som avvist? ConfirmRejectCheck=Er du sikker på at du vil merke denne sjekken som avvist?
RejectCheckDate=Dato for returnert sjekk RejectCheckDate=Dato for returnert sjekk

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