Merge branch 'upstream/develop'

This commit is contained in:
aspangaro 2014-04-12 09:51:19 +02:00
commit bae2fe0921
673 changed files with 53840 additions and 45753 deletions

View File

@ -41,6 +41,8 @@ For users:
- New: Add field url as product properties. - New: Add field url as product properties.
- New: More options to create a credit note (can be filled autatically according to remain to pay). - New: More options to create a credit note (can be filled autatically according to remain to pay).
- New: Can define custom fields for categories. - New: Can define custom fields for categories.
- New: Prepare generation of SEPA files into module withdrawal.
- New: Can filter on status for supplier order.
- Fix: Project Task numbering customs rule works. - Fix: Project Task numbering customs rule works.
- Fix: Add actions events not implemented. - Fix: Add actions events not implemented.
@ -73,9 +75,54 @@ Dolibarr better:
- The deprecated way (with 4 parameters) to declare a new tab into a module descriptor file has been - The deprecated way (with 4 parameters) to declare a new tab into a module descriptor file has been
removed. You must now use the 6 parameters way. See file modMyModule.class.php for example. removed. You must now use the 6 parameters way. See file modMyModule.class.php for example.
- Remove the javascript function ac_delay() that is not used anymore by core code. - Remove the javascript function ac_delay() that is not used anymore by core code.
- Properties "dictionaries" into module descriptor files has been renamed into "dictionaries". - Properties "dictionnaries" into module descriptor files has been renamed into "dictionaries".
- Method form->select_currency() has been removed. Use instead print form->selectCurrency().
- Method form->select_methodes_commande() has been renamed into english name selectInputMethod().
***** ChangeLog for 3.5.2 compared to 3.5.1 *****
Fix: Can't add user for a task.
Fix: Autoselect of warehouse if there is only one warehouse.
Fix: Install of odt template for project and tasks.
Fix: [ bug #1318 ] Problem with enter key when adding an existing
product to a customer invoice.
Fix: [ bug #1307 ] Quotes get removed from several inputs.
Fix: [ bug #1317 ] Removing a category does not remove all child categories
Fix: [ bug #1312 ] Call to undefined function _()
Fix: Restore build for obs and launchpad.
Fix: deleting files into backup system tools.
Fix: Dump using php not not include lock on tables that are deleted.
Fix: Fixed a problem with bank accounts sharing across entities.
Fix: fields into group by of sql requests for module margins must be
same than fields into select.
Fix: When select_date is called with '' as preselected date,
automatic user date was not correctly et (We must set a date into PHP
server timezone area)
Fix: First param of select_date must always be forged with a dolibarr
date function and not time().
Fix: fix can't add line with product in supplier order
Fix: [bug #1309]
Fix: Solve pb of too many embedded tables
Fix: [ bug #1306 ] Fatal error when adding an external calendar
Fix: A fix to manage automatic creation of code for import.
Fix: Try to add code to provide easy way to fix warning on timezone not
defined.
Fix: Several fix into workflow/condition for invoice payments or convert
into discount.
Fix: Option MAIN_PDF_DASH_BETWEEN_LINES was not working when tcpdf was
making a pagebreak higher than 2 pages.
Fix: form to add images should not show link form.
Fix: Correction when adding order line with price as '0'.
Fix: [ bug #1283 ] ROUGET Shipment PDF.
Fix: [ bug #1300 ]
Fix: Miscellaneous problems on task tabs (withproject parameter lost and
download fails).
Fix: Avoid home project page to hung when too many tasks opened.
Fix: bug #1295: Error when creating an agenda extrafield with a number as reference
Fix: Translation of number for pt_PT.
Fix: Error on ajax_constantonoff function.
Fix: [ bug #1323 ] problème pour générer un odt depuis les taches dans projet.
Fix: Can not make withdrawals
***** ChangeLog for 3.5.1 compared to 3.5.0 ***** ***** ChangeLog for 3.5.1 compared to 3.5.0 *****
Fix: Do not report trigger errors twice. Fix: Do not report trigger errors twice.
@ -114,10 +161,11 @@ Fix: [ bug #520 ] Product statistics and detailed lists are wrong.
Fix: [ bug #1240 ] traduction. Fix: [ bug #1240 ] traduction.
Fix: [ bug #1238 ] When creating accompte with a %, free product are used for calculation. Fix: [ bug #1238 ] When creating accompte with a %, free product are used for calculation.
Fix: [ bug #1280 ] service with not end of date was tagged as expired. Fix: [ bug #1280 ] service with not end of date was tagged as expired.
Fix: [ bug #1295 ] Error when creating an agenda extrafield with a number as reference Fix: [ bug #1295 ] Error when creating an agenda extrafield with a number as reference.
Fix: [ bug #1306 ] Fatal error when adding an external calendar Fix: [ bug #1306 ] Fatal error when adding an external calendar.
New: Added es_CL language New: Added es_CL language
Fix: Margin tabs bad data show Fix: Margin tabs bad data show
Fix: [ bug #1318 ] Problem with enter key when adding an existing product to a customer invoice.
***** ChangeLog for 3.5 compared to 3.4.* ***** ***** ChangeLog for 3.5 compared to 3.4.* *****
For users: For users:
@ -251,18 +299,12 @@ parameter. All methods addline in this case were modified to remove this paramet
***** ChangeLog for 3.4.3 compared to 3.4.2 ***** ***** ChangeLog for 3.4.3 compared to 3.4.2 *****
Fix: Bad get of localtaxes into contracts add lines Fix: Bad get of localtaxes into contracts add lines
***** ChangeLog for 3.4.3 compared to 3.4.2 *****
Fix: Warning into bank conciliation feature.
Fix: Bad get of localtaxes into contracts add lines.
Fix: Add a limit into list to avoid browser to hang when database is too large.
Fix: [ bug #1212 ] 'jqueryFileTree.php' directory traversal vulnerability
***** ChangeLog for 3.4.3 compared to 3.4.2 *****
Fix: Warning into bank conciliation feature. Fix: Warning into bank conciliation feature.
Fix: Bad get of localtaxes into contracts add lines. Fix: Bad get of localtaxes into contracts add lines.
Fix: Add a limit into list to avoid browser to hang when database is too large. Fix: Add a limit into list to avoid browser to hang when database is too large.
Fix: [ bug #1212 ] 'jqueryFileTree.php' directory traversal vulnerability Fix: [ bug #1212 ] 'jqueryFileTree.php' directory traversal vulnerability
Fix: Agenda and Banks module were not working with multicompany module
Fix: [ bug #1317 ] Removing a category does not remove all child categories
***** ChangeLog for 3.4.2 compared to 3.4.1 ***** ***** ChangeLog for 3.4.2 compared to 3.4.1 *****
Fix: field's problem into company's page (RIB). Fix: field's problem into company's page (RIB).

View File

@ -166,8 +166,7 @@ Warning: Date must have format reported by "date -R"
Warning: Name and email must match value into debian/control file (Entry added here is used by next step). Warning: Name and email must match value into debian/control file (Entry added here is used by next step).
* We try to build package * We try to build package
> rm -fr ../build-area > rm -fr ../build-area; git-buildpackage -us -uc
> git-buildpackage -us -uc
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
@ -230,20 +229,20 @@ from origin/upstream and origin/pristine.
* Staying into git root directory, run * Staying into git root directory, run
> git-import-orig -vv ../dolibarr-3.3.4.tgz > git-import-orig -vv ../dolibarr-3.3.4.tgz
and enter version when requested.
Note: If there was errors solved manually after get-orig-sources.sh, you may need to make a git commit Note: If there was errors solved manually after get-orig-sources.sh, you may need to make a git commit
* Add an entry into debian/changelog * Add an entry into debian/changelog
> dch -v x.y.z-1 "My comment" will add entry. > dch -v x.y.z-w "My comment" will add entry.
For example: dch -v x.y.z-1 "New upstream release." for a new version For example: dch -v x.y.z-w "New upstream release." for a new version (x.y.z = version, w start from 1 and increaed for each new import)
Then modify changelog to replace "unstable" with "UNRELEASED". Then modify changelog to replace "unstable" with "UNRELEASED".
Then check/modify also the user/date signature:
Warning: Date must have format reported by "date -R" - Date must have format reported by "date -R"
Warning: Name and email must match value into debian/control file (Entry added here is used by next step). - Name and email must match value into debian/control file (Entry added here is used by next step).
* We try to build package * We try to build package
> rm -fr ../build-area > rm -fr ../build-area; git-buildpackage -us -uc
> git-buildpackage -us -uc
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
@ -272,4 +271,3 @@ http://packages.qa.debian.org
* Package will be into release when test will be moved as stable. * Package will be into release when test will be moved as stable.

View File

@ -37,7 +37,7 @@ $force_install_lockinstall='444';
//$force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; //$force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap';
//$force_dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; //$force_dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip';
//$force_dolibarr_lib_PHPEXCEL_PATH=''; //$force_dolibarr_lib_PHPEXCEL_PATH='';
//$force_dolibarr_js_CKEDITOR='/javascript/ckeditor'; //$force_dolibarr_js_CKEDITOR='/javascript/ckeditor'; // Use '/javascript/ckeditor' or 'disabled'
//$force_dolibarr_js_JQUERY='/javascript/jquery'; //$force_dolibarr_js_JQUERY='/javascript/jquery';
//$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; //$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
//$force_dolibarr_js_JQUERY_FLOT='/javascript/flot'; //$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';

View File

@ -20,7 +20,8 @@ $RPMSUBVERSION="auto"; # auto use value found into BUILD
@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages @LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages
%REQUIREMENTPUBLISH=( %REQUIREMENTPUBLISH=(
"SF"=>"git ssh rsync" "SF"=>"git ssh rsync",
"ASSO"=>"git ssh rsync"
); );
%REQUIREMENTTARGET=( # Tool requirement for each package %REQUIREMENTTARGET=( # Tool requirement for each package
"TGZ"=>"tar", "TGZ"=>"tar",
@ -58,7 +59,8 @@ $DIR||='.'; $DIR =~ s/([^\/\\])[\\\/]+$/$1/;
$SOURCE="$DIR/.."; $SOURCE="$DIR/..";
$DESTI="$SOURCE/build"; $DESTI="$SOURCE/build";
$PUBLISH="eldy,dolibarr\@frs.sourceforge.net:/home/frs/project/dolibarr"; $PUBLISHSTABLE="eldy,dolibarr\@frs.sourceforge.net:/home/frs/project/dolibarr";
$PUBLISHBETARC="ldestailleur\@asso.dolibarr.org:/home/dolibarr/dolibarr.org/files";
if (! $ENV{"DESTIBETARC"} || ! $ENV{"DESTISTABLE"}) if (! $ENV{"DESTIBETARC"} || ! $ENV{"DESTISTABLE"})
{ {
print "Error: Missing environment variables.\n"; print "Error: Missing environment variables.\n";
@ -174,15 +176,15 @@ for (0..@ARGV-1) {
} }
if ($ENV{"DESTIBETARC"} && $BUILD =~ /[a-z]/i) { $DESTI = $ENV{"DESTIBETARC"}; } # Force output dir if env DESTIBETARC is defined if ($ENV{"DESTIBETARC"} && $BUILD =~ /[a-z]/i) { $DESTI = $ENV{"DESTIBETARC"}; } # Force output dir if env DESTIBETARC is defined
if ($ENV{"DESTISTABLE"} && $BUILD =~ /^[0-9]+$/) { $DESTI = $ENV{"DESTISTABLE"}; } # Force output dir if env DESTISTABLE is defined if ($ENV{"DESTISTABLE"} && $BUILD =~ /^[0-9]+$/) { $DESTI = $ENV{"DESTISTABLE"}; } # Force output dir if env DESTISTABLE is defined
if ($ENV{"PUBLISHBETARC"} && $BUILD =~ /[a-z]/i) { $PUBLISH = $ENV{"PUBLISHBETARC"}; } # Force target site for publishing if env PUBLISHBETARC is defined if ($ENV{"PUBLISHBETARC"} && $BUILD =~ /[a-z]/i) { $PUBLISHBETARC = $ENV{"PUBLISHBETARC"}; } # Force target site for publishing if env PUBLISHBETARC is defined
if ($ENV{"PUBLISHSTABLE"} && $BUILD =~ /^[0-9]+$/) { $PUBLISH = $ENV{"PUBLISHSTABLE"}; } # Force target site for publishing if env PUBLISHSTABLE is defined if ($ENV{"PUBLISHSTABLE"} && $BUILD =~ /^[0-9]+$/) { $PUBLISHSTABLE = $ENV{"PUBLISHSTABLE"}; } # Force target site for publishing if env PUBLISHSTABLE is defined
print "Makepack version $VERSION\n"; print "Makepack version $VERSION\n";
print "Building/publishing package name: $PROJECT\n"; print "Building/publishing package name: $PROJECT\n";
print "Building/publishing package version: $MAJOR.$MINOR.$BUILD\n"; print "Building/publishing package version: $MAJOR.$MINOR.$BUILD\n";
print "Source directory (SOURCE): $SOURCE\n"; print "Source directory (SOURCE): $SOURCE\n";
print "Target directory (DESTI) : $DESTI\n"; print "Target directory (DESTI) : $DESTI\n";
print "Publishing target (PUBLISH): $PUBLISH\n"; #print "Publishing target (PUBLISH): $PUBLISH\n";
# Choose package targets # Choose package targets
@ -190,24 +192,27 @@ print "Publishing target (PUBLISH): $PUBLISH\n";
if ($target) { if ($target) {
if ($target eq "ALL") { if ($target eq "ALL") {
foreach my $key (@LISTETARGET) { foreach my $key (@LISTETARGET) {
if ($key ne 'SNAPSHOT' && $key ne 'SF') { $CHOOSEDTARGET{$key}=1; } if ($key ne 'SNAPSHOT' && $key ne 'SF' && $key ne 'ASSO') { $CHOOSEDTARGET{$key}=1; }
} }
} }
if ($target ne "ALL" && $target ne "SF") { $CHOOSEDTARGET{uc($target)}=1; } if ($target ne "ALL" && $target ne "SF" && $target ne "ASSO") { $CHOOSEDTARGET{uc($target)}=1; }
if ($target eq "SF") { $CHOOSEDPUBLISH{"SF"}=1; } if ($target eq "SF") { $CHOOSEDPUBLISH{"SF"}=1; }
if ($target eq "ASSO") { $CHOOSEDPUBLISH{"ASSO"}=1; }
} }
else { else {
my $found=0; my $found=0;
my $NUM_SCRIPT; my $NUM_SCRIPT;
my $cpt=0; my $cpt=0;
while (! $found) { while (! $found) {
printf(" %2d - %-12s (%s)\n",$cpt,"ALL (1..9)","Need ".join(",",values %REQUIREMENTTARGET)); printf(" %2d - %-14s (%s)\n",$cpt,"ALL (1..9)","Need ".join(",",values %REQUIREMENTTARGET));
foreach my $target (@LISTETARGET) { foreach my $target (@LISTETARGET) {
$cpt++; $cpt++;
printf(" %2d - %-12s (%s)\n",$cpt,$target,"Need ".$REQUIREMENTTARGET{$target}); printf(" %2d - %-14s (%s)\n",$cpt,$target,"Need ".$REQUIREMENTTARGET{$target});
} }
$cpt=98;
printf(" %2d - %-14s (%s)\n",$cpt,"ASSO (publish)","Need ".join(",",values %REQUIREMENTPUBLISH));
$cpt=99; $cpt=99;
printf(" %2d - %-12s (%s)\n",$cpt,"SF (publish)","Need ".join(",",values %REQUIREMENTPUBLISH)); printf(" %2d - %-14s (%s)\n",$cpt,"SF (publish)","Need ".join(",",values %REQUIREMENTPUBLISH));
# Ask which target to build # Ask which target to build
print "Choose one package number or several separated with space (0 - ".$cpt."): "; print "Choose one package number or several separated with space (0 - ".$cpt."): ";
@ -224,19 +229,25 @@ else {
} }
} }
print "\n"; print "\n";
if ($NUM_SCRIPT eq "99") { if ($NUM_SCRIPT eq "98") {
$CHOOSEDPUBLISH{"SF"}=1; $CHOOSEDPUBLISH{"ASSO"}=1;
} }
else { else
if ($NUM_SCRIPT eq "0") { {
foreach my $key (@LISTETARGET) { if ($NUM_SCRIPT eq "99") {
if ($key ne 'SNAPSHOT' && $key ne 'SF') { $CHOOSEDTARGET{$key}=1; } $CHOOSEDPUBLISH{"SF"}=1;
}
} }
else { else {
foreach my $num (split(/\s+/,$NUM_SCRIPT)) { if ($NUM_SCRIPT eq "0") {
$CHOOSEDTARGET{$LISTETARGET[$num-1]}=1; foreach my $key (@LISTETARGET) {
} if ($key ne 'SNAPSHOT' && $key ne 'ASSO' && $key ne 'SF') { $CHOOSEDTARGET{$key}=1; }
}
}
else {
foreach my $num (split(/\s+/,$NUM_SCRIPT)) {
$CHOOSEDTARGET{$LISTETARGET[$num-1]}=1;
}
}
} }
} }
} }
@ -301,10 +312,8 @@ foreach my $target (keys %CHOOSEDTARGET) {
} }
foreach my $target (keys %CHOOSEDPUBLISH) { foreach my $target (keys %CHOOSEDPUBLISH) {
if ($CHOOSEDPUBLISH{$target} < 0) { next; } if ($CHOOSEDPUBLISH{$target} < 0) { next; }
if ($target eq 'SF') if ($target eq 'ASSO') { $nbofpublishneedtag++; }
{ if ($target eq 'SF') { $nbofpublishneedtag++; }
$nbofpublishneedtag++;
}
$nboftargetok++; $nboftargetok++;
} }
@ -947,14 +956,14 @@ if ($nboftargetok) {
if ($CHOOSEDPUBLISH{$target} < 0) { next; } if ($CHOOSEDPUBLISH{$target} < 0) { next; }
print "\nList of files to publish\n"; print "\nList of files to publish\n";
%filestoscan=( %filestoscansf=(
"$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_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_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'
); );
foreach my $file (sort keys %filestoscan) foreach my $file (sort keys %filestoscansf)
{ {
$found=0; $found=0;
my $filesize = -s $file; my $filesize = -s $file;
@ -963,10 +972,14 @@ if ($nboftargetok) {
print "\n"; print "\n";
} }
if ($target eq 'SF') if ($target eq 'SF' || $target eq 'ASSO')
{ {
print "\n"; print "\n";
if ($target eq 'SF') { $PUBLISH = $PUBLISHSTABLE; }
if ($target eq 'ASSO' && $BUILD =~ /[a-z]/i) { $PUBLISH = $PUBLISHBETARC.'/lastbuild'; }
if ($target eq 'ASSO' && $BUILD =~ /^[0-9]+$/) { $PUBLISH = $PUBLISHBETARC.'/stable'; }
$NEWPUBLISH=$PUBLISH; $NEWPUBLISH=$PUBLISH;
print "Publish to target $NEWPUBLISH. Click enter or CTRL+C...\n"; print "Publish to target $NEWPUBLISH. Click enter or CTRL+C...\n";
@ -977,6 +990,8 @@ if ($nboftargetok) {
print "Create empty dir /tmp/emptydir. We need it to create target dir using rsync.\n"; print "Create empty dir /tmp/emptydir. We need it to create target dir using rsync.\n";
$ret=`mkdir -p "/tmp/emptydir/"`; $ret=`mkdir -p "/tmp/emptydir/"`;
%filestoscan=%filestoscansf;
foreach my $file (sort keys %filestoscan) foreach my $file (sort keys %filestoscan)
{ {
$found=0; $found=0;
@ -1001,6 +1016,7 @@ if ($nboftargetok) {
#$command="ssh eldy,dolibarr\@frs.sourceforge.net mkdir -p \"$destFolder\""; #$command="ssh eldy,dolibarr\@frs.sourceforge.net mkdir -p \"$destFolder\"";
#print "$command\n"; #print "$command\n";
#my $ret=`$command 2>&1`; #my $ret=`$command 2>&1`;
$command="rsync -s -e 'ssh' --recursive /tmp/emptydir/ \"".$destFolder."\""; $command="rsync -s -e 'ssh' --recursive /tmp/emptydir/ \"".$destFolder."\"";
print "$command\n"; print "$command\n";
my $ret=`$command 2>&1`; my $ret=`$command 2>&1`;

View File

@ -331,7 +331,7 @@ fi
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog %changelog
* Fri Feb 7 2014 Laurent Destailleur 3.6.0-0.2.b * Fri Feb 21 2014 Laurent Destailleur 3.6.0-0.2.b
- Upstream release - Upstream release
* Fri Feb 14 2014 Laurent Destailleur 3.5.2-0.3 * Fri Feb 14 2014 Laurent Destailleur 3.5.2-0.3

View File

@ -306,6 +306,11 @@ done >>%{name}.lang
%post %post
echo Run post script of packager dolibarr_generic.spec echo Run post script of packager dolibarr_generic.spec
echo Detected constant fedora=0%{?fedora}
echo Detected constant rhel_version=0%{?rhel_version}
echo Detected constant centos_version=0%{?centos_version}
echo Detected constant mdkversion=0%{?mdkversion}
echo Detected constant suse_version=0%{?suse_version}
# Define vars # Define vars
export docdir="/var/lib/dolibarr/documents" export docdir="/var/lib/dolibarr/documents"
@ -466,9 +471,12 @@ echo Restart mysql server
%else %else
%if 0%{?suse_version} %if 0%{?suse_version}
if [ -f /etc/init.d/mysqld ]; then if [ -f /etc/init.d/mysqld ]; then
/etc/init.d/mysqld restart /sbin/service mysqld restart
else #/etc/init.d/mysqld restart
fi
if [ -f /etc/init.d/mysql ]; then
/sbin/service mysql restart /sbin/service mysql restart
#/etc/init.d/mysql restart
fi fi
%else %else
if [ -f /etc/init.d/mysqld ]; then if [ -f /etc/init.d/mysqld ]; then
@ -559,7 +567,7 @@ fi
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog %changelog
* Mon Feb 7 2014 Laurent Destailleur 3.6.0-0.2.b * Mon Feb 21 2014 Laurent Destailleur 3.6.0-0.2.b
- Upstream release - Upstream release
* Fri Feb 14 2014 Laurent Destailleur 3.5.2-0.3 * Fri Feb 14 2014 Laurent Destailleur 3.5.2-0.3

View File

@ -336,7 +336,7 @@ fi
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog %changelog
* Mon Feb 7 2014 Laurent Destailleur 3.6.0-0.2.b * Mon Feb 21 2014 Laurent Destailleur 3.6.0-0.2.b
- Upstream release - Upstream release
* Fri Feb 14 2014 Laurent Destailleur 3.5.2-0.3 * Fri Feb 14 2014 Laurent Destailleur 3.5.2-0.3

View File

@ -290,8 +290,9 @@ fi
# Restart mysql # Restart mysql
echo Restart mysql echo Restart mysql
if [ -f /etc/init.d/mysqld ]; then if [ -f /etc/init.d/mysqld ]; then
/etc/init.d/mysqld restart /sbin/service mysqld restart
else fi
if [ -f /etc/init.d/mysql ]; then
/sbin/service mysql restart /sbin/service mysql restart
fi fi
@ -346,7 +347,7 @@ fi
# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release # version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog %changelog
* Mon Feb 7 2014 Laurent Destailleur 3.6.0-0.2.b * Mon Feb 21 2014 Laurent Destailleur 3.6.0-0.2.b
- Upstream release - Upstream release
* Fri Feb 14 2014 Laurent Destailleur 3.5.2-0.3 * Fri Feb 14 2014 Laurent Destailleur 3.5.2-0.3

View File

@ -0,0 +1,34 @@
#!/bin/sh
# Recursively deduplicate file lines on a per file basis
# Useful to deduplicate language files
#
# Needs awk 4.0 for the inplace fixing command
#
# Raphaël Doursenaud - rdoursenaud@gpcsolutions.fr
# Syntax
if [ "x$1" != "xlist" -a "x$1" != "xfix" ]
then
echo "Usage: deduplicatefilelinesrecursively.sh [list|fix]"
fi
# To detect
if [ "x$1" = "xlist" ]
then
for file in `find . -type f`
do
if [ `sort "$file" | uniq -d | wc -l` -gt 0 ]
then
echo "$file"
fi
done
fi
# To fix
if [ "x$1" = "xfix" ]
then
for file in `find . -type f`
do
awk -i inplace ' !x[$0]++' "$file"
done;
fi

21
dev/detectduplicatelangkey.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
# Helps find duplicate translation keys in language files
#
# Copyright (C) 2014 Raphaël Doursenaud - rdoursenaud@gpcsolutions.fr
for file in `find . -type f`
do
dupes=$(
sed "s/^\s*//" "$file" | # Remove any leading whitespace
sed "s/\s*\=/=/" | # Remove any whitespace before =
grep -Po "(^.*?)=" | # Non greedeely match everything before =
sed "s/\=//" | # Remove trailing = so we get the key
sort | uniq -d # Find duplicates
)
if [ -n "$dupes" ]
then
echo "Duplicates found in $file"
echo "$dupes"
fi
done

File diff suppressed because one or more lines are too long

View File

@ -171,6 +171,7 @@ export list="
--ignore-table=$base.llx_abonne_extrafields --ignore-table=$base.llx_abonne_extrafields
--ignore-table=$base.llx_abonne_type --ignore-table=$base.llx_abonne_type
--ignore-table=$base.llx_abonnement --ignore-table=$base.llx_abonnement
--ignore-table=$base.llx_bootstrap
--ignore-table=$base.llx_bt_namemap --ignore-table=$base.llx_bt_namemap
--ignore-table=$base.llx_bt_speedlimit --ignore-table=$base.llx_bt_speedlimit
--ignore-table=$base.llx_bt_summary --ignore-table=$base.llx_bt_summary

View File

@ -115,7 +115,7 @@ class modMyModule extends DolibarrModules
// Array to add new pages in new tabs // Array to add new pages in new tabs
// Example: $this->tabs = array('objecttype:+tabname1:Title1:mylangfile@mymodule:$user->rights->mymodule->read:/mymodule/mynewtab1.php?id=__ID__', // To add a new tab identified by code tabname1 // Example: $this->tabs = array('objecttype:+tabname1:Title1:mylangfile@mymodule:$user->rights->mymodule->read:/mymodule/mynewtab1.php?id=__ID__', // To add a new tab identified by code tabname1
// 'objecttype:+tabname2:Title2:mylangfile@mymodule:$user->rights->othermodule->read:/mymodule/mynewtab2.php?id=__ID__', // To add another new tab identified by code tabname2 // 'objecttype:+tabname2:Title2:mylangfile@mymodule:$user->rights->othermodule->read:/mymodule/mynewtab2.php?id=__ID__', // To add another new tab identified by code tabname2
// 'objecttype:-tabname':NU:conditiontoremove); // To remove an existing tab identified by code tabname // 'objecttype:-tabname:NU:conditiontoremove'); // To remove an existing tab identified by code tabname
// where objecttype can be // where objecttype can be
// 'thirdparty' to add a tab in third party view // 'thirdparty' to add a tab in third party view
// 'intervention' to add a tab in intervention view // 'intervention' to add a tab in intervention view

View File

@ -5,3 +5,9 @@ languages or to update translation files for existing languages.
See Dolibarr Wiki page: See Dolibarr Wiki page:
http://wiki.dolibarr.org/index.php/Translator_documentation http://wiki.dolibarr.org/index.php/Translator_documentation
For more informations on how to use them. For more informations on how to use them.
To install transifex client:
sudo pip install --upgrade transifex-client
To update transifex client:
sudo pip install --upgrade transifex-client

View File

@ -20,7 +20,7 @@ fi
if [ "x$1" = "xall" ] if [ "x$1" = "xall" ]
then then
for fic in ar_SA bg_BG bs_BA ca_ES cs_CZ da_DK de_DE el_GR es_ES et_EE eu_ES fa_IR fi_FI fr_FR he_IL hr_HR hu_HU id_ID is_IS it_IT ja_JP ko_KR lt_LT lv_LV mk_MK nb_NO nl_NL pl_PL pt_PT ro_RO ru_RU ru_UA sk_SK sl_SI sv_SE th_TH tr_TR uk_UA uz_UZ vi_VN zh_CN zh_TW for fic in ar_SA bg_BG bs_BA ca_ES cs_CZ da_DK de_DE el_GR es_ES et_EE eu_ES fa_IR fi_FI fr_FR he_IL hr_HR hu_HU id_ID is_IS it_IT ja_JP ko_KR lt_LT lv_LV mk_MK nb_NO nl_NL pl_PL pt_PT ro_RO ru_RU ru_UA sk_SK sl_SI sq_AL sv_SE th_TH tr_TR uk_UA uz_UZ vi_VN zh_CN zh_TW
do do
echo "tx pull -l $fic $2 $3" echo "tx pull -l $fic $2 $3"
tx pull -l $fic $2 $3 tx pull -l $fic $2 $3

View File

@ -20,7 +20,7 @@ fi
if [ "x$1" = "xall" ] if [ "x$1" = "xall" ]
then then
for fic in ar_SA bg_BG bs_BA ca_ES cs_CZ da_DK de_DE el_GR es_ES et_EE eu_ES fa_IR fi_FI fr_FR he_IL hr_HR hu_HU id_ID is_IS it_IT ja_JP ko_KR lt_LT lv_LV mk_MK nb_NO nl_NL pl_PL pt_PT ro_RO ru_RU ru_UA sk_SK sl_SI sv_SE th_TH tr_TR uk_UA uz_UZ vi_VN zh_CN zh_TW for fic in ar_SA bg_BG bs_BA ca_ES cs_CZ da_DK de_DE el_GR es_ES et_EE eu_ES fa_IR fi_FI fr_FR he_IL hr_HR hu_HU id_ID is_IS it_IT ja_JP ko_KR lt_LT lv_LV mk_MK nb_NO nl_NL pl_PL pt_PT ro_RO ru_RU ru_UA sk_SK sl_SI sq_AL sv_SE th_TH tr_TR uk_UA uz_UZ vi_VN zh_CN zh_TW
do do
echo "tx push --skip -t -l $fic $2 $3" echo "tx push --skip -t -l $fic $2 $3"
tx push --skip -t -l $fic $2 $3 tx push --skip -t -l $fic $2 $3

View File

@ -121,7 +121,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */ /* ************************************************************************** */
/* */ /* */
/* Creation d'un champ optionnel */ /* Creation of an optional field */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -135,7 +135,7 @@ if ($action == 'create')
/* ************************************************************************** */ /* ************************************************************************** */
/* */ /* */
/* Edition d'un champ optionnel */ /* Edition of an optional field */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname)) if ($action == 'edit' && ! empty($attrname))

View File

@ -124,7 +124,7 @@ if ($action != 'create' && $action != 'edit')
/* ************************************************************************** */ /* ************************************************************************** */
/* */ /* */
/* Creation d'un champ optionnel */ /* Creation of an optional field */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -138,7 +138,7 @@ if ($action == 'create')
/* ************************************************************************** */ /* ************************************************************************** */
/* */ /* */
/* Edition d'un champ optionnel */ /* Edition of an optional field */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname)) if ($action == 'edit' && ! empty($attrname))

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2002-2003 Jean-Louis Bergamo <jlb@j1b.org> * Copyright (C) 2002-2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 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
@ -330,54 +330,73 @@ if ($user->rights->adherent->cotisation->creer && $action == 'cotisation' && ! $
$invoice=new Facture($db); $invoice=new Facture($db);
$customer=new Societe($db); $customer=new Societe($db);
$result=$customer->fetch($object->fk_soc);
if ($result <= 0)
{
$errmsg=$customer->error;
$error++;
}
// Create draft invoice if (! $error)
$invoice->type= Facture::TYPE_STANDARD;
$invoice->cond_reglement_id=$customer->cond_reglement_id;
if (empty($invoice->cond_reglement_id))
{ {
$paymenttermstatic=new PaymentTerm($db); if (! ($object->fk_soc > 0))
$invoice->cond_reglement_id=$paymenttermstatic->getDefaultId(); {
if (empty($invoice->cond_reglement_id)) $langs->load("errors");
{ $errmsg=$langs->trans("ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst");
$error++; $error++;
$errmsg='ErrorNoPaymentTermRECEPFound'; }
}
} }
$invoice->socid=$object->fk_soc; if (! $error)
$invoice->date=$datecotisation;
$result=$invoice->create($user);
if ($result <= 0)
{ {
$errmsg=$invoice->error; $result=$customer->fetch($object->fk_soc);
$error++; if ($result <= 0)
{
$errmsg=$customer->error;
$error++;
}
} }
// Add line to draft invoice if (! $error)
$idprodsubscription=0;
$vattouse=0;
if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry')
{ {
$vattouse=get_default_tva($mysoc, $mysoc, $idprodsubscription); // Create draft invoice
$invoice->type= Facture::TYPE_STANDARD;
$invoice->cond_reglement_id=$customer->cond_reglement_id;
if (empty($invoice->cond_reglement_id))
{
$paymenttermstatic=new PaymentTerm($db);
$invoice->cond_reglement_id=$paymenttermstatic->getDefaultId();
if (empty($invoice->cond_reglement_id))
{
$error++;
$errmsg='ErrorNoPaymentTermRECEPFound';
}
}
$invoice->socid=$object->fk_soc;
$invoice->date=$datecotisation;
$result=$invoice->create($user);
if ($result <= 0)
{
$errmsg=$invoice->error;
$error++;
}
} }
//print xx".$vattouse." - ".$mysoc." - ".$customer;exit;
$result=$invoice->addline($label,0,1,$vattouse,0,0,$idprodsubscription,0,$datecotisation,$datesubend,0,0,'','TTC',$cotisation,1); if (! $error)
if ($result <= 0)
{ {
$errmsg=$invoice->error; // Add line to draft invoice
$error++; $idprodsubscription=0;
$vattouse=0;
if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry')
{
$vattouse=get_default_tva($mysoc, $mysoc, $idprodsubscription);
}
//print xx".$vattouse." - ".$mysoc." - ".$customer;exit;
$result=$invoice->addline($label,0,1,$vattouse,0,0,$idprodsubscription,0,$datecotisation,$datesubend,0,0,'','TTC',$cotisation,1);
if ($result <= 0)
{
$errmsg=$invoice->error;
$error++;
}
// Validate invoice
$result=$invoice->validate($user);
} }
// Validate invoice
$result=$invoice->validate($user);
// Add payment onto invoice // Add payment onto invoice
if ($option == 'bankviainvoice' && $accountid) if ($option == 'bankviainvoice' && $accountid)
{ {
@ -486,8 +505,8 @@ if ($rowid)
dol_fiche_head($head, 'subscription', $langs->trans("Member"), 0, 'user'); dol_fiche_head($head, 'subscription', $langs->trans("Member"), 0, 'user');
$rowspan=9; $rowspan=10;
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan+=1; if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan++;
if (! empty($conf->societe->enabled)) $rowspan++; if (! empty($conf->societe->enabled)) $rowspan++;
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'; print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
@ -764,9 +783,9 @@ if ($rowid)
} }
else else
{ {
if (! empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && ! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled) && $object->fk_soc) $bankviainvoice=1; if (! empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankviainvoice' && ! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) $bankviainvoice=1;
else if (! empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankdirect' && ! empty($conf->banque->enabled)) $bankdirect=1; else if (! empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'bankdirect' && ! empty($conf->banque->enabled)) $bankdirect=1;
else if (! empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && ! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled) && $object->fk_soc) $invoiceonly=1; else if (! empty($conf->global->ADHERENT_BANK_USE) && $conf->global->ADHERENT_BANK_USE == 'invoiceonly' && ! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) $invoiceonly=1;
} }
print "\n\n<!-- Form add subscription -->\n"; print "\n\n<!-- Form add subscription -->\n";
@ -917,12 +936,14 @@ if ($rowid)
if (! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) if (! empty($conf->societe->enabled) && ! empty($conf->facture->enabled))
{ {
print '<input type="radio" class="moreaction" id="invoiceonly" name="paymentsave" value="invoiceonly"'.(! empty($invoiceonly)?' checked="checked"':''); print '<input type="radio" class="moreaction" id="invoiceonly" name="paymentsave" value="invoiceonly"'.(! empty($invoiceonly)?' checked="checked"':'');
if (empty($object->fk_soc)) print ' disabled="disabled"'; //if (empty($object->fk_soc)) print ' disabled="disabled"';
print '> '.$langs->trans("MoreActionInvoiceOnly"); print '> '.$langs->trans("MoreActionInvoiceOnly");
if ($object->fk_soc) print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')'; if ($object->fk_soc) print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')';
else else
{ {
print ' ('.$langs->trans("NoThirdPartyAssociatedToMember"); print ' (';
if (empty($object->fk_soc)) print img_warning($langs->trans("NoThirdPartyAssociatedToMember"));
print $langs->trans("NoThirdPartyAssociatedToMember");
print ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">'; print ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">';
print $langs->trans("CreateDolibarrThirdParty"); print $langs->trans("CreateDolibarrThirdParty");
print '</a>)'; print '</a>)';
@ -934,12 +955,14 @@ if ($rowid)
if (! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled)) if (! empty($conf->banque->enabled) && ! empty($conf->societe->enabled) && ! empty($conf->facture->enabled))
{ {
print '<input type="radio" class="moreaction" id="bankviainvoice" name="paymentsave" value="bankviainvoice"'.(! empty($bankviainvoice)?' checked="checked"':''); print '<input type="radio" class="moreaction" id="bankviainvoice" name="paymentsave" value="bankviainvoice"'.(! empty($bankviainvoice)?' checked="checked"':'');
if (empty($object->fk_soc)) print ' disabled="disabled"'; //if (empty($object->fk_soc)) print ' disabled="disabled"';
print '> '.$langs->trans("MoreActionBankViaInvoice"); print '> '.$langs->trans("MoreActionBankViaInvoice");
if ($object->fk_soc) print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')'; if ($object->fk_soc) print ' ('.$langs->trans("ThirdParty").': '.$company->getNomUrl(1).')';
else else
{ {
print ' ('.$langs->trans("NoThirdPartyAssociatedToMember"); print ' (';
if (empty($object->fk_soc)) print img_warning($langs->trans("NoThirdPartyAssociatedToMember"));
print $langs->trans("NoThirdPartyAssociatedToMember");
print ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">'; print ' - <a href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">';
print $langs->trans("CreateDolibarrThirdParty"); print $langs->trans("CreateDolibarrThirdParty");
print '</a>)'; print '</a>)';

View File

@ -183,7 +183,7 @@ if ($resql)
if ($type > 0) if ($type > 0)
{ {
$membertype=new AdherentType($db); $membertype=new AdherentType($db);
$result=$membertype->fetch($_REQUEST["type"]); $result=$membertype->fetch(GETPOST("type"));
$titre.=" (".$membertype->libelle.")"; $titre.=" (".$membertype->libelle.")";
} }
@ -193,6 +193,7 @@ if ($resql)
if ($search_login) $param.="&search_login=".$search_login; if ($search_login) $param.="&search_login=".$search_login;
if ($search_email) $param.="&search_email=".$search_email; if ($search_email) $param.="&search_email=".$search_email;
if ($filter) $param.="&filter=".$filter; if ($filter) $param.="&filter=".$filter;
if ($type > 0) $param.="&type=".$type;
print_barre_liste($titre,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords); print_barre_liste($titre,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
if ($sall) if ($sall)

View File

@ -305,7 +305,7 @@ if ($action == 'edit' || $action == 'updateedit')
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'><td>'.$langs->trans("CompanyCurrency").'</td><td>'; print '<tr '.$bc[$var].'><td>'.$langs->trans("CompanyCurrency").'</td><td>';
$form->select_currency($conf->currency,"currency"); print $form->selectCurrency($conf->currency,"currency");
print '</td></tr>'."\n"; print '</td></tr>'."\n";
$var=!$var; $var=!$var;
@ -381,7 +381,7 @@ if ($action == 'edit' || $action == 'updateedit')
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("ManagingDirectors").'</td><td>'; print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("ManagingDirectors").'</td><td>';
print '<input name="MAIN_INFO_SOCIETE_MANAGERS" size="80" value="' . $conf->global->MAIN_INFO_SOCIETE_MANAGERS . '"></td></tr>'; print '<input name="MAIN_INFO_SOCIETE_MANAGERS" size="80" value="' . $conf->global->MAIN_INFO_SOCIETE_MANAGERS . '"></td></tr>';
// Capital // Capital
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("Capital").'</td><td>'; print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("Capital").'</td><td>';
@ -530,7 +530,7 @@ if ($action == 'edit' || $action == 'updateedit')
$var=true; $var=true;
$var=!$var; $var=!$var;
print "<tr ".$bc[$var]."><td width=\"140\"><label><input type=\"radio\" name=\"optiontva\" value=\"reel\"".($conf->global->FACTURE_TVAOPTION != "franchise"?" checked":"")."> ".$langs->trans("VATIsUsed")."</label></td>"; print "<tr ".$bc[$var]."><td width=\"140\"><label><input type=\"radio\" name=\"optiontva\" value=\"1\"".(empty($conf->global->FACTURE_TVAOPTION)?"":" checked")."> ".$langs->trans("VATIsUsed")."</label></td>";
print '<td colspan="2">'; print '<td colspan="2">';
print "<table>"; print "<table>";
print "<tr><td>".$langs->trans("VATIsUsedDesc")."</td></tr>"; print "<tr><td>".$langs->trans("VATIsUsedDesc")."</td></tr>";
@ -539,7 +539,7 @@ if ($action == 'edit' || $action == 'updateedit')
print "</td></tr>\n"; print "</td></tr>\n";
$var=!$var; $var=!$var;
print "<tr ".$bc[$var]."><td width=\"140\"><label><input type=\"radio\" name=\"optiontva\" value=\"franchise\"".($conf->global->FACTURE_TVAOPTION == "franchise"?" checked":"")."> ".$langs->trans("VATIsNotUsed")."</label></td>"; print "<tr ".$bc[$var]."><td width=\"140\"><label><input type=\"radio\" name=\"optiontva\" value=\"0\"".(empty($conf->global->FACTURE_TVAOPTION)?" checked":"")."> ".$langs->trans("VATIsNotUsed")."</label></td>";
print '<td colspan="2">'; print '<td colspan="2">';
print "<table>"; print "<table>";
print "<tr><td>".$langs->trans("VATIsNotUsedDesc")."</td></tr>"; print "<tr><td>".$langs->trans("VATIsNotUsedDesc")."</td></tr>";
@ -746,7 +746,7 @@ else
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("ManagingDirectors").'</td><td>'; print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("ManagingDirectors").'</td><td>';
print $conf->global->MAIN_INFO_SOCIETE_MANAGERS . '</td></tr>'; print $conf->global->MAIN_INFO_SOCIETE_MANAGERS . '</td></tr>';
// Capital // Capital
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("Capital").'</td><td>'; print '<tr '.$bc[$var].'><td width="35%">'.$langs->trans("Capital").'</td><td>';
@ -913,7 +913,7 @@ else
$var=true; $var=true;
$var=!$var; $var=!$var;
print "<tr ".$bc[$var]."><td width=\"140\"><label><input ".$bc[$var]." type=\"radio\" name=\"optiontva\" disabled value=\"reel\"".($conf->global->FACTURE_TVAOPTION != "franchise"?" checked":"")."> ".$langs->trans("VATIsUsed")."</label></td>"; print "<tr ".$bc[$var]."><td width=\"140\"><label><input ".$bc[$var]." type=\"radio\" name=\"optiontva\" disabled value=\"1\"".(empty($conf->global->FACTURE_TVAOPTION)?"":" checked")."> ".$langs->trans("VATIsUsed")."</label></td>";
print '<td colspan="2">'; print '<td colspan="2">';
print "<table>"; print "<table>";
print "<tr><td>".$langs->trans("VATIsUsedDesc")."</td></tr>"; print "<tr><td>".$langs->trans("VATIsUsedDesc")."</td></tr>";
@ -922,7 +922,7 @@ else
print "</td></tr>\n"; print "</td></tr>\n";
$var=!$var; $var=!$var;
print "<tr ".$bc[$var]."><td width=\"140\"><label><input ".$bc[$var]." type=\"radio\" name=\"optiontva\" disabled value=\"franchise\"".($conf->global->FACTURE_TVAOPTION == "franchise"?" checked":"")."> ".$langs->trans("VATIsNotUsed")."</label></td>"; print "<tr ".$bc[$var]."><td width=\"140\"><label><input ".$bc[$var]." type=\"radio\" name=\"optiontva\" disabled value=\"0\"".(empty($conf->global->FACTURE_TVAOPTION)?" checked":"")."> ".$langs->trans("VATIsNotUsed")."</label></td>";
print '<td colspan="2">'; print '<td colspan="2">';
print "<table>"; print "<table>";
print "<tr><td>".$langs->trans("VATIsNotUsedDesc")."</td></tr>"; print "<tr><td>".$langs->trans("VATIsNotUsedDesc")."</td></tr>";

View File

@ -167,8 +167,27 @@ else
$editor=new DolEditor('formtestfield',isset($conf->global->FCKEDITOR_TEST)?$conf->global->FCKEDITOR_TEST:'Test','',200,$mode,'In', true, $uselocalbrowser, 1, 120, 8, $readonly); $editor=new DolEditor('formtestfield',isset($conf->global->FCKEDITOR_TEST)?$conf->global->FCKEDITOR_TEST:'Test','',200,$mode,'In', true, $uselocalbrowser, 1, 120, 8, $readonly);
$editor->Create(); $editor->Create();
print '<center><br><input class="button" type="submit" name="save" value="'.$langs->trans("Save").'"></center>'."\n"; print '<center><br><input class="button" type="submit" name="save" value="'.$langs->trans("Save").'"></center>'."\n";
print '<div id="divforlog"></div>';
print '</form>'."\n"; print '</form>'."\n";
// Add env of ckeditor
// This is to show how CKEditor detect browser to understand why editor is disabled or not
if (1 == 2) // Change this to enable output
{
print '<br><script language="javascript">
function jsdump(obj, id) {
var out = \'\';
for (var i in obj) {
out += i + ": " + obj[i] + "<br>\n";
}
jQuery("#"+id).html(out);
}
jsdump(CKEDITOR.env, "divforlog");
</script>';
}
/* /*
print '<!-- Result -->'; print '<!-- Result -->';
print $_POST["formtestfield"]; print $_POST["formtestfield"];

View File

@ -51,6 +51,9 @@ if ($action == "set")
if (! $res > 0) $error++; if (! $res > 0) $error++;
} }
$res = dolibarr_set_const($db, "PRELEVEMENT_ICS", GETPOST("PRELEVEMENT_ICS"),'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
$id=GETPOST('PRELEVEMENT_ID_BANKACCOUNT','int'); $id=GETPOST('PRELEVEMENT_ID_BANKACCOUNT','int');
$account = new Account($db, $id); $account = new Account($db, $id);
@ -148,6 +151,13 @@ print '<tr class="impair"><td>'.$langs->trans("BankToReceiveWithdraw").'</td>';
print '<td align="left">'; print '<td align="left">';
print $form->select_comptes($conf->global->PRELEVEMENT_ID_BANKACCOUNT,'PRELEVEMENT_ID_BANKACCOUNT',0,"courant=1",1); print $form->select_comptes($conf->global->PRELEVEMENT_ID_BANKACCOUNT,'PRELEVEMENT_ID_BANKACCOUNT',0,"courant=1",1);
print '</td></tr>'; print '</td></tr>';
// ICS
print '<tr class="impair"><td>'.$langs->trans("ICS").'</td>';
print '<td align="left">';
print '<input type="text" name="PRELEVEMENT_ICS" value="'.$conf->global->PRELEVEMENT_ICS.'" size="9" ></td>';
print '</td></tr>';
print '</table>'; print '</table>';
print '<br>'; print '<br>';

View File

@ -50,7 +50,7 @@ if (! $user->admin)
if ($action == 'delete') if ($action == 'delete')
{ {
$file=$conf->admin->dir_output.'/backup/'.GETPOST('urlfile'); $file=$conf->admin->dir_output.'/'.GETPOST('urlfile');
$ret=dol_delete_file($file, 1); $ret=dol_delete_file($file, 1);
if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile'))); if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors'); else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');

View File

@ -58,7 +58,7 @@ if ($file && ! $what)
if ($action == 'delete') if ($action == 'delete')
{ {
$file=$conf->admin->dir_output.'/backup/'.GETPOST('urlfile'); $file=$conf->admin->dir_output.'/'.GETPOST('urlfile');
$ret=dol_delete_file($file, 1); $ret=dol_delete_file($file, 1);
if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile'))); if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors'); else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
@ -451,46 +451,53 @@ function backup_tables($outputfile, $tables='*')
//fwrite($handle,"/*!40101 SET character_set_client = utf8 */;\n"); //fwrite($handle,"/*!40101 SET character_set_client = utf8 */;\n");
$resqldrop=$db->query('SHOW CREATE TABLE '.$table); $resqldrop=$db->query('SHOW CREATE TABLE '.$table);
$row2 = $db->fetch_row($resqldrop); $row2 = $db->fetch_row($resqldrop);
fwrite($handle,$row2[1].";\n"); if (empty($row2[1]))
//fwrite($handle,"/*!40101 SET character_set_client = @saved_cs_client */;\n\n"); {
fwrite($handle, "\n-- WARNING: Show create table ".$table." return empy string when it should not.\n");
// Dumping the data (locking the table and disabling the keys check while doing the process)
fwrite($handle, "\n--\n-- Dumping data for table `".$table."`\n--\n");
if (!GETPOST("nobin_nolocks")) fwrite($handle, "LOCK TABLES `".$table."` WRITE;\n"); // Lock the table before inserting data (when the data will be imported back)
if (GETPOST("nobin_disable_fk")) fwrite($handle, "ALTER TABLE `".$table."` DISABLE KEYS;\n");
$sql='SELECT * FROM '.$table;
$result = $db->query($sql);
$num_fields = $db->num_rows($result);
while($row = $db->fetch_row($result)) {
// For each row of data we print a line of INSERT
fwrite($handle,'INSERT '.$delayed.$ignore.'INTO `'.$table.'` VALUES (');
$columns = count($row);
for($j=0; $j<$columns; $j++) {
// Processing each columns of the row to ensure that we correctly save the value (eg: add quotes for string - in fact we add quotes for everything, it's easier)
if ($row[$j] == null and !is_string($row[$j])) {
// IMPORTANT: if the field is NULL we set it NULL
$row[$j] = 'NULL';
} elseif(is_string($row[$j]) and $row[$j] == '') {
// if it's an empty string, we set it as an empty string
$row[$j] = "''";
} elseif(is_numeric($row[$j]) and !strcmp($row[$j], $row[$j]+0) ) { // test if it's a numeric type and the numeric version ($nb+0) == string version (eg: if we have 01, it's probably not a number but rather a string, else it would not have any leading 0)
// if it's a number, we return it as-is
$row[$j] = $row[$j];
} else { // else for all other cases we escape the value and put quotes around
$row[$j] = addslashes($row[$j]);
$row[$j] = preg_replace("#\n#", "\\n", $row[$j]);
$row[$j] = "'".$row[$j]."'";
}
}
fwrite($handle,implode(',', $row).");\n");
} }
if (GETPOST("nobin_disable_fk")) fwrite($handle, "ALTER TABLE `".$table."` ENABLE KEYS;\n"); // Enabling back the keys/index checking else
if (!GETPOST("nobin_nolocks")) fwrite($handle, "UNLOCK TABLES;\n"); // Unlocking the table {
fwrite($handle,"\n\n\n"); fwrite($handle,$row2[1].";\n");
} //fwrite($handle,"/*!40101 SET character_set_client = @saved_cs_client */;\n\n");
// Dumping the data (locking the table and disabling the keys check while doing the process)
fwrite($handle, "\n--\n-- Dumping data for table `".$table."`\n--\n");
if (!GETPOST("nobin_nolocks")) fwrite($handle, "LOCK TABLES `".$table."` WRITE;\n"); // Lock the table before inserting data (when the data will be imported back)
if (GETPOST("nobin_disable_fk")) fwrite($handle, "ALTER TABLE `".$table."` DISABLE KEYS;\n");
$sql='SELECT * FROM '.$table;
$result = $db->query($sql);
$num_fields = $db->num_rows($result);
while($row = $db->fetch_row($result))
{
// For each row of data we print a line of INSERT
fwrite($handle,'INSERT '.$delayed.$ignore.'INTO `'.$table.'` VALUES (');
$columns = count($row);
for($j=0; $j<$columns; $j++) {
// Processing each columns of the row to ensure that we correctly save the value (eg: add quotes for string - in fact we add quotes for everything, it's easier)
if ($row[$j] == null and !is_string($row[$j])) {
// IMPORTANT: if the field is NULL we set it NULL
$row[$j] = 'NULL';
} elseif(is_string($row[$j]) and $row[$j] == '') {
// if it's an empty string, we set it as an empty string
$row[$j] = "''";
} elseif(is_numeric($row[$j]) and !strcmp($row[$j], $row[$j]+0) ) { // test if it's a numeric type and the numeric version ($nb+0) == string version (eg: if we have 01, it's probably not a number but rather a string, else it would not have any leading 0)
// if it's a number, we return it as-is
$row[$j] = $row[$j];
} else { // else for all other cases we escape the value and put quotes around
$row[$j] = addslashes($row[$j]);
$row[$j] = preg_replace("#\n#", "\\n", $row[$j]);
$row[$j] = "'".$row[$j]."'";
}
}
fwrite($handle,implode(',', $row).");\n");
}
if (GETPOST("nobin_disable_fk")) fwrite($handle, "ALTER TABLE `".$table."` ENABLE KEYS;\n"); // Enabling back the keys/index checking
if (!GETPOST("nobin_nolocks")) fwrite($handle, "UNLOCK TABLES;\n"); // Unlocking the table
fwrite($handle,"\n\n\n");
}
}
/* Backup Procedure structure*/ /* Backup Procedure structure*/
/* /*
$result = $db->query('SHOW PROCEDURE STATUS'); $result = $db->query('SHOW PROCEDURE STATUS');

View File

@ -333,6 +333,20 @@ class Categorie extends CommonObject
$this->db->begin(); $this->db->begin();
/* FIX #1317 : Check for child cat and move up 1 level*/
if (! $error)
{
$sql = "UPDATE ".MAIN_DB_PREFIX."categorie";
$sql.= " SET fk_parent = ".$this->fk_parent;
$sql.= " WHERE fk_parent = ".$this->id;
if (!$this->db->query($sql))
{
$this->error=$this->db->lasterror();
dol_syslog("Error sql=".$sql." ".$this->error, LOG_ERR);
$error++;
}
}
if (! $error) if (! $error)
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_societe"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_societe";

View File

@ -538,7 +538,7 @@ if ($action == 'create')
// Busy // Busy
print '<tr><td width="30%" class="nowrap">'.$langs->trans("Busy").'</td><td>'; print '<tr><td width="30%" class="nowrap">'.$langs->trans("Busy").'</td><td>';
print '<input id="transparency" type="checkbox" name="transparency" value="'.$object->transparency.'">'; print '<input id="transparency" type="checkbox" name="transparency"'.($actioncomm->transparency?' checked="checked"':'').'>';
print '</td></tr>'; print '</td></tr>';
// Realised by // Realised by

View File

@ -312,7 +312,7 @@ $sql.= ' FROM ('.MAIN_DB_PREFIX.'c_actioncomm as ca,';
$sql.= " ".MAIN_DB_PREFIX."actioncomm as a)"; $sql.= " ".MAIN_DB_PREFIX."actioncomm as a)";
if (! $user->rights->societe->client->voir && ! $socid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON a.fk_soc = sc.fk_soc"; if (! $user->rights->societe->client->voir && ! $socid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON a.fk_soc = sc.fk_soc";
$sql.= ' WHERE a.fk_action = ca.id'; $sql.= ' WHERE a.fk_action = ca.id';
$sql.= ' AND a.entity IN ('.getEntity().')'; $sql.= ' AND a.entity IN ('.getEntity('agenda', 1).')';
if ($actioncode) $sql.=" AND ca.code='".$db->escape($actioncode)."'"; if ($actioncode) $sql.=" AND ca.code='".$db->escape($actioncode)."'";
if ($pid) $sql.=" AND a.fk_project=".$db->escape($pid); if ($pid) $sql.=" AND a.fk_project=".$db->escape($pid);
if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND (a.fk_soc IS NULL OR sc.fk_user = " .$user->id . ")"; if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND (a.fk_soc IS NULL OR sc.fk_user = " .$user->id . ")";

View File

@ -381,7 +381,7 @@ if ($id > 0)
print '<td colspan="3">'; print '<td colspan="3">';
$amount_discount=$object->getAvailableDiscounts(); $amount_discount=$object->getAvailableDiscounts();
if ($amount_discount < 0) dol_print_error($db,$object->error); if ($amount_discount < 0) dol_print_error($db,$object->error);
if ($amount_discount > 0) print '<a href="'.DOL_URL_ROOT.'/comm/remx.php?id='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?socid='.$object->id).'">'.price($amount_discount).'</a>&nbsp;'.$langs->trans("Currency".$conf->currency); if ($amount_discount > 0) print '<a href="'.DOL_URL_ROOT.'/comm/remx.php?id='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?socid='.$object->id).'">'.price($amount_discount,1,$langs,1,-1,-1,$conf->currency).'</a>';
else print $langs->trans("DiscountNone"); else print $langs->trans("DiscountNone");
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';

View File

@ -8,7 +8,7 @@
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2010-2011 Philippe Grand <philippe.grand@atoo-net.com> * Copyright (C) 2010-2011 Philippe Grand <philippe.grand@atoo-net.com>
* Copyright (C) 2012-2013 Christophe Battarel <christophe.battarel@altairis.fr> * Copyright (C) 2012-2013 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro> * Copyright (C) 2013-2014 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
@ -1187,12 +1187,12 @@ if ($action == 'create') {
// What trigger creation // What trigger creation
print '<tr><td>' . $langs->trans('Source') . '</td><td>'; print '<tr><td>' . $langs->trans('Source') . '</td><td>';
$form->select_demand_reason('', 'demand_reason_id', "SRC_PROP", 1); $form->selectInputReason('', 'demand_reason_id', "SRC_PROP", 1);
print '</td></tr>'; print '</td></tr>';
// Delivery delay // Delivery delay
print '<tr><td>' . $langs->trans('AvailabilityPeriod') . '</td><td colspan="2">'; print '<tr><td>' . $langs->trans('AvailabilityPeriod') . '</td><td colspan="2">';
$form->select_availability('', 'availability_id', '', 1); $form->selectAvailabilityDelay('', 'availability_id', '', 1);
print '</td></tr>'; print '</td></tr>';
// Delivery date (or manufacturing) // Delivery date (or manufacturing)
@ -1465,7 +1465,7 @@ if ($action == 'create') {
$absolute_creditnote = price2num($absolute_creditnote, 'MT'); $absolute_creditnote = price2num($absolute_creditnote, 'MT');
if ($absolute_discount) { if ($absolute_discount) {
if ($object->statut > 0) { if ($object->statut > 0) {
print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount), $langs->transnoentities("Currency" . $conf->currency)); print $langs->trans("CompanyHasAbsoluteDiscount", price($absolute_discount, 0, $langs, 0, 0, -1, $conf->currency));
} else { } else {
// Remise dispo de type non avoir // Remise dispo de type non avoir
$filter = 'fk_facture_source IS NULL'; $filter = 'fk_facture_source IS NULL';
@ -1474,7 +1474,7 @@ if ($action == 'create') {
} }
} }
if ($absolute_creditnote) { if ($absolute_creditnote) {
print $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency)) . '. '; print $langs->trans("CompanyHasCreditNote", price($absolute_creditnote, 0, $langs, 0, 0, -1, $conf->currency)) . '. ';
} }
if (! $absolute_discount && ! $absolute_creditnote) if (! $absolute_discount && ! $absolute_creditnote)
print $langs->trans("CompanyHasNoAbsoluteDiscount") . '.'; print $langs->trans("CompanyHasNoAbsoluteDiscount") . '.';
@ -1604,13 +1604,11 @@ if ($action == 'create') {
print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editdemandreason&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetDemandReason'), 1) . '</a></td>'; print '<td align="right"><a href="' . $_SERVER ["PHP_SELF"] . '?action=editdemandreason&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetDemandReason'), 1) . '</a></td>';
print '</tr></table>'; print '</tr></table>';
print '</td><td colspan="3">'; print '</td><td colspan="3">';
// print $object->demand_reason_id;
if ($action == 'editdemandreason') { if ($action == 'editdemandreason') {
$form->form_demand_reason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1); $form->formInputReason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1);
} else { } else {
$form->form_demand_reason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'none'); $form->formInputReason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'none');
} }
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';

View File

@ -2301,51 +2301,23 @@ class Propal extends CommonObject
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
* @return string Label * @return string Label
*/ */
function LibStatut($statut,$mode=1) function LibStatut($statut,$mode=1)
{ {
global $langs; global $langs;
$langs->load("propal"); $langs->load("propal");
if ($mode == 0) if ($statut==0) $statuttrans='statut0';
{ if ($statut==1) $statuttrans='statut1';
return $this->labelstatut[$statut]; if ($statut==2) $statuttrans='statut3';
} if ($statut==3) $statuttrans='statut5';
if ($mode == 1) if ($statut==4) $statuttrans='statut6';
{
return $this->labelstatut_short[$statut]; if ($mode == 0) return $this->labelstatut[$statut];
} if ($mode == 1) return $this->labelstatut_short[$statut];
if ($mode == 2) if ($mode == 2) return img_picto($this->labelstatut_short[$statut], $statuttrans).' '.$this->labelstatut_short[$statut];
{ if ($mode == 3) return img_picto($this->labelstatut[$statut], $statuttrans);
if ($statut==0) return img_picto($langs->trans('PropalStatusDraftShort'),'statut0').' '.$this->labelstatut_short[$statut]; if ($mode == 4) return img_picto($this->labelstatut[$statut],$statuttrans).' '.$this->labelstatut[$statut];
if ($statut==1) return img_picto($langs->trans('PropalStatusOpenedShort'),'statut1').' '.$this->labelstatut_short[$statut]; if ($mode == 5) return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($this->labelstatut_short[$statut],$statuttrans);
if ($statut==2) return img_picto($langs->trans('PropalStatusSignedShort'),'statut3').' '.$this->labelstatut_short[$statut];
if ($statut==3) return img_picto($langs->trans('PropalStatusNotSignedShort'),'statut5').' '.$this->labelstatut_short[$statut];
if ($statut==4) return img_picto($langs->trans('PropalStatusBilledShort'),'statut6').' '.$this->labelstatut_short[$statut];
}
if ($mode == 3)
{
if ($statut==0) return img_picto($langs->trans('PropalStatusDraftShort'),'statut0');
if ($statut==1) return img_picto($langs->trans('PropalStatusOpenedShort'),'statut1');
if ($statut==2) return img_picto($langs->trans('PropalStatusSignedShort'),'statut3');
if ($statut==3) return img_picto($langs->trans('PropalStatusNotSignedShort'),'statut5');
if ($statut==4) return img_picto($langs->trans('PropalStatusBilledShort'),'statut6');
}
if ($mode == 4)
{
if ($statut==0) return img_picto($langs->trans('PropalStatusDraft'),'statut0').' '.$this->labelstatut[$statut];
if ($statut==1) return img_picto($langs->trans('PropalStatusOpened'),'statut1').' '.$this->labelstatut[$statut];
if ($statut==2) return img_picto($langs->trans('PropalStatusSigned'),'statut3').' '.$this->labelstatut[$statut];
if ($statut==3) return img_picto($langs->trans('PropalStatusNotSigned'),'statut5').' '.$this->labelstatut[$statut];
if ($statut==4) return img_picto($langs->trans('PropalStatusBilled'),'statut6').' '.$this->labelstatut[$statut];
}
if ($mode == 5)
{
if ($statut==0) return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($langs->trans('PropalStatusDraftShort'),'statut0');
if ($statut==1) return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($langs->trans('PropalStatusOpenedShort'),'statut1');
if ($statut==2) return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($langs->trans('PropalStatusSignedShort'),'statut3');
if ($statut==3) return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($langs->trans('PropalStatusNotSignedShort'),'statut5');
if ($statut==4) return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($langs->trans('PropalStatusBilledShort'),'statut6');
}
} }

View File

@ -308,7 +308,7 @@ if ($result)
print '<input class="flat" size="10" type="text" name="search_author" value="'.$search_author.'">'; print '<input class="flat" size="10" type="text" name="search_author" value="'.$search_author.'">';
print '</td>'; print '</td>';
print '<td class="liste_titre" align="right">'; print '<td class="liste_titre" align="right">';
$formpropal->select_propal_statut($viewstatut,1); $formpropal->selectProposalStatus($viewstatut,1);
print '</td>'; print '</td>';
print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; print '<td class="liste_titre" align="right"><input class="liste_titre" type="image" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
print '</td>'; print '</td>';

View File

@ -544,9 +544,9 @@ else if ($action == 'addline' && $user->rights->commande->creer) {
if (! $error && ($qty >= 0) && (! empty($product_desc) || ! empty($idprod))) { if (! $error && ($qty >= 0) && (! empty($product_desc) || ! empty($idprod))) {
// Clean parameters // Clean parameters
$date_start = dol_mktime(0, 0, 0, GETPOST('date_start' . $predef . 'month'), GETPOST('date_start' . $predef . 'day'), GETPOST('date_start' . $predef . 'year')); $date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), 0, GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year'));
$date_end = dol_mktime(0, 0, 0, GETPOST('date_end' . $predef . 'month'), GETPOST('date_end' . $predef . 'day'), GETPOST('date_end' . $predef . 'year')); $date_end=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), 0, GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year'));
$price_base_type = (GETPOST('price_base_type', 'alpha') ? GETPOST('price_base_type', 'alpha') : 'HT'); $price_base_type = (GETPOST('price_base_type', 'alpha')?GETPOST('price_base_type', 'alpha'):'HT');
// Ecrase $pu par celui du produit // Ecrase $pu par celui du produit
// Ecrase $desc par celui du produit // Ecrase $desc par celui du produit
@ -735,13 +735,13 @@ else if ($action == 'addline' && $user->rights->commande->creer) {
*/ */
else if ($action == 'updateligne' && $user->rights->commande->creer && GETPOST('save') == $langs->trans('Save')) { else if ($action == 'updateligne' && $user->rights->commande->creer && GETPOST('save') == $langs->trans('Save')) {
// Clean parameters // Clean parameters
$date_start = ''; $date_start='';
$date_end = ''; $date_end='';
$date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear')); $date_start=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), 0, GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
$date_end = dol_mktime(0, 0, 0, GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear')); $date_end=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), 0, GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
$description = dol_htmlcleanlastbr(GETPOST('product_desc')); $description=dol_htmlcleanlastbr(GETPOST('product_desc'));
$pu_ht = GETPOST('price_ht'); $pu_ht=GETPOST('price_ht');
$vat_rate = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); $vat_rate=(GETPOST('tva_tx')?GETPOST('tva_tx'):0);
// Define info_bits // Define info_bits
$info_bits = 0; $info_bits = 0;
@ -1446,12 +1446,12 @@ if ($action == 'create' && $user->rights->commande->creer) {
// Delivery delay // Delivery delay
print '<tr><td>' . $langs->trans('AvailabilityPeriod') . '</td><td colspan="2">'; print '<tr><td>' . $langs->trans('AvailabilityPeriod') . '</td><td colspan="2">';
$form->select_availability($availability_id, 'availability_id', '', 1); $form->selectAvailabilityDelay($availability_id, 'availability_id', '', 1);
print '</td></tr>'; print '</td></tr>';
// What trigger creation // What trigger creation
print '<tr><td>' . $langs->trans('Source') . '</td><td colspan="2">'; print '<tr><td>' . $langs->trans('Source') . '</td><td colspan="2">';
$form->select_demand_reason($demand_reason_id, 'demand_reason_id', '', 1); $form->selectInputReason($demand_reason_id, 'demand_reason_id', '', 1);
print '</td></tr>'; print '</td></tr>';
// Project // Project
@ -1648,7 +1648,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
// => 1), // => 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"),
// 'value' => 1), // 'value' => 1),
array('type' => 'other','name' => 'idwarehouse','label' => $langs->trans("SelectWarehouseForStockDecrease"),'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse'), 'idwarehouse', '', 1))); array('type' => 'other','name' => 'idwarehouse','label' => $langs->trans("SelectWarehouseForStockDecrease"),'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1)));
} }
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateOrder'), $text, 'confirm_validate', $formquestion, 0, 1, 220); $formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateOrder'), $text, 'confirm_validate', $formquestion, 0, 1, 220);
@ -1668,7 +1668,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
// => 1), // => 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"),
// 'value' => 1), // 'value' => 1),
array('type' => 'other','name' => 'idwarehouse','label' => $langs->trans("SelectWarehouseForStockIncrease"),'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse'), 'idwarehouse', '', 1))); array('type' => 'other','name' => 'idwarehouse','label' => $langs->trans("SelectWarehouseForStockIncrease"),'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1)));
} }
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('UnvalidateOrder'), $text, 'confirm_modif', $formquestion, "yes", 1, 220); $formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('UnvalidateOrder'), $text, 'confirm_modif', $formquestion, "yes", 1, 220);
@ -1697,7 +1697,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
// => 1), // => 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"),
// 'value' => 1), // 'value' => 1),
array('type' => 'other','name' => 'idwarehouse','label' => $langs->trans("SelectWarehouseForStockIncrease"),'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse'), 'idwarehouse', '', 1))); array('type' => 'other','name' => 'idwarehouse','label' => $langs->trans("SelectWarehouseForStockIncrease"),'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1)));
} }
$formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('Cancel'), $text, 'confirm_cancel', $formquestion, 0, 1); $formconfirm = $form->formconfirm($_SERVER ["PHP_SELF"] . '?id=' . $object->id, $langs->trans('Cancel'), $text, 'confirm_cancel', $formquestion, 0, 1);
@ -1929,9 +1929,9 @@ if ($action == 'create' && $user->rights->commande->creer) {
print '</tr></table>'; print '</tr></table>';
print '</td><td colspan="3">'; print '</td><td colspan="3">';
if ($action == 'editdemandreason') { if ($action == 'editdemandreason') {
$form->form_demand_reason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1); $form->formInputReason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1);
} else { } else {
$form->form_demand_reason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'none'); $form->formInputReason($_SERVER ['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'none');
} }
// Removed because using dictionary is an admin feature, not a user feature. Ther is already the "star" to show info to admin users. // Removed because using dictionary is an admin feature, not a user feature. Ther is already the "star" to show info to admin users.
// This is to avoid too heavy screens and have an uniform look and feel for all screens. // This is to avoid too heavy screens and have an uniform look and feel for all screens.

View File

@ -53,7 +53,7 @@ $confirm=GETPOST('confirm','alpha');
$fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref :'')); $fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref :''));
$fieldtype = (! empty($ref) ? 'ref' :'rowid'); $fieldtype = (! empty($ref) ? 'ref' :'rowid');
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'banque',$fieldvalue,'bank_account','','',$fieldtype); $result=restrictedArea($user,'banque',$fieldvalue,'bank_account&bank_account','','',$fieldtype);
$paiementtype=GETPOST('paiementtype','alpha',3); $paiementtype=GETPOST('paiementtype','alpha',3);
$req_nb=GETPOST("req_nb",'',3); $req_nb=GETPOST("req_nb",'',3);

View File

@ -43,7 +43,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'banque',$id,'bank_account','','',$fieldid); $result=restrictedArea($user,'banque',$id,'bank_account&bank_account','','',$fieldid);
/* /*

View File

@ -44,7 +44,7 @@ if (isset($_GET["id"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'banque',$id,'bank_account','','',$fieldid); $result=restrictedArea($user,'banque',$id,'bank_account&bank_account','','',$fieldid);
/* /*
@ -256,7 +256,7 @@ if ($action == 'create')
print '<td colspan="3">'; print '<td colspan="3">';
$selectedcode=$account->account_currency_code; $selectedcode=$account->account_currency_code;
if (! $selectedcode) $selectedcode=$conf->currency; if (! $selectedcode) $selectedcode=$conf->currency;
$form->select_currency((isset($_POST["account_currency_code"])?$_POST["account_currency_code"]:$selectedcode), 'account_currency_code'); print $form->selectCurrency((isset($_POST["account_currency_code"])?$_POST["account_currency_code"]:$selectedcode), 'account_currency_code');
//print $langs->trans("Currency".$conf->currency); //print $langs->trans("Currency".$conf->currency);
//print '<input type="hidden" name="account_currency_code" value="'.$conf->currency.'">'; //print '<input type="hidden" name="account_currency_code" value="'.$conf->currency.'">';
print '</td></tr>'; print '</td></tr>';
@ -325,7 +325,7 @@ if ($action == 'create')
print '<tr><td valign="top">'.$langs->trans("Date").'</td>'; print '<tr><td valign="top">'.$langs->trans("Date").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
$form->select_date(time(), 're', 0, 0, 0, 'formsoc'); $form->select_date('', 're', 0, 0, 0, 'formsoc');
print '</td></tr>'; print '</td></tr>';
print '<tr><td valign="top">'.$langs->trans("BalanceMinimalAllowed").'</td>'; print '<tr><td valign="top">'.$langs->trans("BalanceMinimalAllowed").'</td>';
@ -374,7 +374,7 @@ else
if ($action == 'delete') if ($action == 'delete')
{ {
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$account->id,$langs->trans("DeleteAccount"),$langs->trans("ConfirmDeleteAccount"),"confirm_delete"); print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$account->id,$langs->trans("DeleteAccount"),$langs->trans("ConfirmDeleteAccount"),"confirm_delete");
} }
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
@ -531,7 +531,7 @@ else
print '<td colspan="3">'; print '<td colspan="3">';
$selectedcode=$account->account_currency_code; $selectedcode=$account->account_currency_code;
if (! $selectedcode) $selectedcode=$conf->currency; if (! $selectedcode) $selectedcode=$conf->currency;
$form->select_currency((isset($_POST["account_currency_code"])?$_POST["account_currency_code"]:$selectedcode), 'account_currency_code'); print $form->selectCurrency((isset($_POST["account_currency_code"])?$_POST["account_currency_code"]:$selectedcode), 'account_currency_code');
//print $langs->trans("Currency".$conf->currency); //print $langs->trans("Currency".$conf->currency);
//print '<input type="hidden" name="account_currency_code" value="'.$conf->currency.'">'; //print '<input type="hidden" name="account_currency_code" value="'.$conf->currency.'">';
print '</td></tr>'; print '</td></tr>';

View File

@ -41,7 +41,7 @@ if (isset($_GET["account"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'banque',$id,'bank_account','','',$fieldid); $result=restrictedArea($user,'banque',$id,'bank_account&bank_account','','',$fieldid);
$account=$_GET["account"]; $account=$_GET["account"];
$mode='standard'; $mode='standard';

View File

@ -42,7 +42,7 @@ if (isset($_GET["account"]) || isset($_GET["ref"]))
} }
$fieldid = isset($_GET["ref"])?'ref':'rowid'; $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'banque',$id,'bank_account','','',$fieldid); $result=restrictedArea($user,'banque',$id,'bank_account&bank_account','','',$fieldid);
$vline=isset($_GET["vline"])?$_GET["vline"]:$_POST["vline"]; $vline=isset($_GET["vline"])?$_GET["vline"]:$_POST["vline"];

View File

@ -181,8 +181,8 @@ if ($resql)
print '<td class="nobordernopadding">'; print '<td class="nobordernopadding">';
print $obj->societe; print $obj->societe;
print ($obj->societe && $obj->nom?' / ':''); print ($obj->societe && ($obj->lastname || $obj->firstname)?' / ':'');
print dolGetFirstLastname($obj->nom,$obj->firstname); print dolGetFirstLastname($obj->lastname,$obj->firstname);
print '</td>'; print '</td>';
print '<td align="right" class="nobordernopadding">'; print '<td align="right" class="nobordernopadding">';

View File

@ -52,6 +52,7 @@ require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
$langs->load('bills'); $langs->load('bills');
$langs->load('companies'); $langs->load('companies');
$langs->load('compta');
$langs->load('products'); $langs->load('products');
$langs->load('banks'); $langs->load('banks');
$langs->load('main'); $langs->load('main');
@ -336,7 +337,7 @@ else if ($action == 'set_ref_client' && $user->rights->facture->creer) {
} }
// Classify to validated // Classify to validated
else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->facture->valider) else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->facture->valider)
{ {
$idwarehouse = GETPOST('idwarehouse'); $idwarehouse = GETPOST('idwarehouse');
@ -346,7 +347,7 @@ else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->factu
// Check parameters // Check parameters
// Check for mandatory prof id // Check for mandatory prof id
for($i = 1; $i < 6; $i ++) for($i = 1; $i < 6; $i ++)
{ {
$idprof_mandatory = 'SOCIETE_IDPROF' . ($i) . '_INVOICE_MANDATORY'; $idprof_mandatory = 'SOCIETE_IDPROF' . ($i) . '_INVOICE_MANDATORY';
$idprof = 'idprof' . $i; $idprof = 'idprof' . $i;
@ -375,10 +376,10 @@ else if ($action == 'confirm_valid' && $confirm == 'yes' && $user->rights->factu
} }
} }
if (! $error) if (! $error)
{ {
$result = $object->validate($user, '', $idwarehouse); $result = $object->validate($user, '', $idwarehouse);
if ($result >= 0) if ($result >= 0)
{ {
// Define output language // Define output language
$outputlangs = $langs; $outputlangs = $langs;
@ -677,13 +678,13 @@ else if ($action == 'add' && $user->rights->facture->creer)
$id = $object->create($user); $id = $object->create($user);
if (GETPOST('invoiceAvoirWithLines', 'int')==1 && $id>0) if (GETPOST('invoiceAvoirWithLines', 'int')==1 && $id>0)
{ {
$facture_source = new Facture($db); // fetch origin object $facture_source = new Facture($db); // fetch origin object
if ($facture_source->fetch($object->fk_facture_source)>0) if ($facture_source->fetch($object->fk_facture_source)>0)
{ {
foreach($facture_source->lines as $line) foreach($facture_source->lines as $line)
{ {
$line->fk_facture = $object->id; $line->fk_facture = $object->id;
@ -734,7 +735,7 @@ else if ($action == 'add' && $user->rights->facture->creer)
} }
// Standard invoice or Deposit invoice created from a Predefined invoice // Standard invoice or Deposit invoice created from a Predefined invoice
if (($_POST['type'] == 0 || $_POST['type'] == 3) && $_POST['fac_rec'] > 0) if (($_POST['type'] == 0 || $_POST['type'] == 3) && $_POST['fac_rec'] > 0)
{ {
$datefacture = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']); $datefacture = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
if (empty($datefacture)) { if (empty($datefacture)) {
@ -742,7 +743,7 @@ else if ($action == 'add' && $user->rights->facture->creer)
setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), 'errors'); setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), 'errors');
} }
if (! $error) if (! $error)
{ {
$object->socid = GETPOST('socid', 'int'); $object->socid = GETPOST('socid', 'int');
$object->type = $_POST['type']; $object->type = $_POST['type'];
@ -762,9 +763,9 @@ else if ($action == 'add' && $user->rights->facture->creer)
} }
// Standard or deposit or proforma invoice // Standard or deposit or proforma invoice
if (($_POST['type'] == 0 || $_POST['type'] == 3 || $_POST['type'] == 4) && $_POST['fac_rec'] <= 0) if (($_POST['type'] == 0 || $_POST['type'] == 3 || $_POST['type'] == 4) && $_POST['fac_rec'] <= 0)
{ {
if (GETPOST('socid', 'int') < 1) if (GETPOST('socid', 'int') < 1)
{ {
$error ++; $error ++;
setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Customer")), 'errors'); setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Customer")), 'errors');
@ -776,7 +777,7 @@ else if ($action == 'add' && $user->rights->facture->creer)
setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), 'errors'); setEventMessage($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), 'errors');
} }
if (! $error) if (! $error)
{ {
// Si facture standard // Si facture standard
$object->socid = GETPOST('socid', 'int'); $object->socid = GETPOST('socid', 'int');
@ -1042,7 +1043,9 @@ else if (($action == 'addline' || $action == 'addline_predef') && $user->rights-
$error = 0; $error = 0;
// Set if we used free entry or predefined product // Set if we used free entry or predefined product
if (GETPOST('addline_libre')) if (GETPOST('addline_libre')
|| (GETPOST('dp_desc') && ! GETPOST('addline_libre') && ! GETPOST('idprod', 'int')>0) // we push enter onto qty field
)
{ {
$predef = ''; $predef = '';
$idprod = 0; $idprod = 0;
@ -1050,7 +1053,9 @@ else if (($action == 'addline' || $action == 'addline_predef') && $user->rights-
$price_ht = GETPOST('price_ht'); $price_ht = GETPOST('price_ht');
$tva_tx = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); $tva_tx = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0);
} }
if (GETPOST('addline_predefined')) if (GETPOST('addline_predefined')
|| (! GETPOST('dp_desc') && ! GETPOST('addline_predefined') && GETPOST('idprod', 'int')>0) // we push enter onto qty field
)
{ {
$predef = (($conf->global->MAIN_FEATURES_LEVEL < 2) ? '_predef' : ''); $predef = (($conf->global->MAIN_FEATURES_LEVEL < 2) ? '_predef' : '');
$idprod = GETPOST('idprod', 'int'); $idprod = GETPOST('idprod', 'int');
@ -1873,22 +1878,24 @@ if ($action == 'create')
$mode_reglement_id = (! empty($objectsrc->mode_reglement_id) ? $objectsrc->mode_reglement_id : (! empty($soc->mode_reglement_id) ? $soc->mode_reglement_id : 0)); $mode_reglement_id = (! empty($objectsrc->mode_reglement_id) ? $objectsrc->mode_reglement_id : (! empty($soc->mode_reglement_id) ? $soc->mode_reglement_id : 0));
$remise_percent = (! empty($objectsrc->remise_percent) ? $objectsrc->remise_percent : (! empty($soc->remise_percent) ? $soc->remise_percent : 0)); $remise_percent = (! empty($objectsrc->remise_percent) ? $objectsrc->remise_percent : (! empty($soc->remise_percent) ? $soc->remise_percent : 0));
$remise_absolue = (! empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (! empty($soc->remise_absolue) ? $soc->remise_absolue : 0)); $remise_absolue = (! empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (! empty($soc->remise_absolue) ? $soc->remise_absolue : 0));
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ? - 1 : 0;
// Replicate extrafields // Replicate extrafields
$objectsrc->fetch_optionals($originid); $objectsrc->fetch_optionals($originid);
$object->array_options = $objectsrc->array_options; $object->array_options = $objectsrc->array_options;
} }
} else { $dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ? -1 : ''; // Dot not set 0 here (0 for a date is 1970)
}
else
{
$cond_reglement_id = $soc->cond_reglement_id; $cond_reglement_id = $soc->cond_reglement_id;
$mode_reglement_id = $soc->mode_reglement_id; $mode_reglement_id = $soc->mode_reglement_id;
$remise_percent = $soc->remise_percent; $remise_percent = $soc->remise_percent;
$remise_absolue = 0; $remise_absolue = 0;
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ? - 1 : 0; $dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ? -1 : ''; // Do not set 0 here (0 for a date is 1970)
} }
$absolute_discount = $soc->getAvailableDiscounts(); $absolute_discount = $soc->getAvailableDiscounts();
if (! empty($conf->use_javascript_ajax)) if (! empty($conf->use_javascript_ajax))
{ {
require_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
print ajax_combobox('fac_replacement'); print ajax_combobox('fac_replacement');
@ -2142,7 +2149,7 @@ if ($action == 'create')
print '&nbsp;&nbsp;&nbsp; <input type="checkbox" name="invoiceAvoirWithLines" id="invoiceAvoirWithLines" value="1" onclick="if($(this).is(\':checked\') ) { $(\'#radio_creditnote\').attr(\'checked\',\'checked\'); $(\'#invoiceAvoirWithPaymentRestAmount\').removeAttr(\'checked\'); }" '.(GETPOST('invoiceAvoirWithLines','int')>0 ? 'checked="checked"':'').' /> <label for="invoiceAvoirWithLines">'.$langs->trans('invoiceAvoirWithLines')."</label>"; print '&nbsp;&nbsp;&nbsp; <input type="checkbox" name="invoiceAvoirWithLines" id="invoiceAvoirWithLines" value="1" onclick="if($(this).is(\':checked\') ) { $(\'#radio_creditnote\').attr(\'checked\',\'checked\'); $(\'#invoiceAvoirWithPaymentRestAmount\').removeAttr(\'checked\'); }" '.(GETPOST('invoiceAvoirWithLines','int')>0 ? 'checked="checked"':'').' /> <label for="invoiceAvoirWithLines">'.$langs->trans('invoiceAvoirWithLines')."</label>";
print '<br>&nbsp;&nbsp;&nbsp; <input type="checkbox" name="invoiceAvoirWithPaymentRestAmount" id="invoiceAvoirWithPaymentRestAmount" value="1" onclick="if($(this).is(\':checked\') ) { $(\'#radio_creditnote\').attr(\'checked\',\'checked\'); $(\'#invoiceAvoirWithLines\').removeAttr(\'checked\'); }" '.(GETPOST('invoiceAvoirWithPaymentRestAmount','int')>0 ? 'checked="checked"':'').' /> <label for="invoiceAvoirWithPaymentRestAmount">'.$langs->trans('invoiceAvoirWithPaymentRestAmount')."</label>"; print '<br>&nbsp;&nbsp;&nbsp; <input type="checkbox" name="invoiceAvoirWithPaymentRestAmount" id="invoiceAvoirWithPaymentRestAmount" value="1" onclick="if($(this).is(\':checked\') ) { $(\'#radio_creditnote\').attr(\'checked\',\'checked\'); $(\'#invoiceAvoirWithLines\').removeAttr(\'checked\'); }" '.(GETPOST('invoiceAvoirWithPaymentRestAmount','int')>0 ? 'checked="checked"':'').' /> <label for="invoiceAvoirWithPaymentRestAmount">'.$langs->trans('invoiceAvoirWithPaymentRestAmount')."</label>";
print '</div>'; print '</div>';
print '</td></tr>' . "\n"; print '</td></tr>' . "\n";
} }
else else
@ -2458,7 +2465,7 @@ if ($action == 'create')
// 1), // 1),
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value'
// => 1), // => 1),
array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse'), 'idwarehouse', '', 1, 0, 0, $langs->trans("NoStockAction")))); array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1, 0, 0, $langs->trans("NoStockAction"))));
$formconfirm = $form->formconfirm($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', $formquestion, "yes", 1); $formconfirm = $form->formconfirm($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', $formquestion, "yes", 1);
} else { } else {
$formconfirm = $form->formconfirm($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', '', '', 1); $formconfirm = $form->formconfirm($_SERVER ['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', '', '', 1);
@ -2509,7 +2516,7 @@ if ($action == 'create')
$value = '<input type="hidden" id="idwarehouse" name="idwarehouse" value="' . key($warehouse_array) . '">'; $value = '<input type="hidden" id="idwarehouse" name="idwarehouse" value="' . key($warehouse_array) . '">';
} else { } else {
$label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockIncrease") : $langs->trans("SelectWarehouseForStockDecrease"); $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockIncrease") : $langs->trans("SelectWarehouseForStockDecrease");
$value = $formproduct->selectWarehouses(GETPOST('idwarehouse'), 'idwarehouse', '', 1); $value = $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1);
} }
$formquestion = array( $formquestion = array(
// 'text' => $langs->trans("ConfirmClone"), // 'text' => $langs->trans("ConfirmClone"),
@ -2549,7 +2556,7 @@ if ($action == 'create')
$value = '<input type="hidden" id="idwarehouse" name="idwarehouse" value="' . key($warehouse_array) . '">'; $value = '<input type="hidden" id="idwarehouse" name="idwarehouse" value="' . key($warehouse_array) . '">';
} else { } else {
$label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockDecrease") : $langs->trans("SelectWarehouseForStockIncrease"); $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockDecrease") : $langs->trans("SelectWarehouseForStockIncrease");
$value = $formproduct->selectWarehouses(GETPOST('idwarehouse'), 'idwarehouse', '', 1); $value = $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1);
} }
$formquestion = array( $formquestion = array(
// 'text' => $langs->trans("ConfirmClone"), // 'text' => $langs->trans("ConfirmClone"),

View File

@ -1270,6 +1270,16 @@ class Facture extends CommonInvoice
} }
// Fin appel triggers // Fin appel triggers
} }
// Removed extrafields
if (! $error) {
$result=$this->deleteExtraFields();
if ($result < 0)
{
$error++;
dol_syslog(get_class($this)."::delete error deleteExtraFields ".$this->error, LOG_ERR);
}
}
if (! $error) if (! $error)
{ {

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro> * Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
@ -385,13 +385,13 @@ else
print "<tr><td>".$langs->trans("Author").'</td><td colspan="3">'.$author->getFullName($langs)."</td></tr>"; print "<tr><td>".$langs->trans("Author").'</td><td colspan="3">'.$author->getFullName($langs)."</td></tr>";
print '<tr><td>'.$langs->trans("AmountHT").'</td>'; print '<tr><td>'.$langs->trans("AmountHT").'</td>';
print '<td align="right" colspan="2"><b>'.price($object->total_ht).'</b></td>'; print '<td colspan="3"><b>'.price($object->total_ht,'',$langs,1,-1,-1,$conf->currency).'</b></td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>'; print '</tr>';
print '<tr><td>'.$langs->trans("AmountVAT").'</td><td align="right" colspan="2">'.price($object->total_tva).'</td>'; print '<tr><td>'.$langs->trans("AmountVAT").'</td><td colspan="3">'.price($object->total_tva,'',$langs,1,-1,-1,$conf->currency).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>'; print '</tr>';
print '<tr><td>'.$langs->trans("AmountTTC").'</td><td align="right" colspan="2">'.price($object->total_ttc).'</td>'; print '<tr><td>'.$langs->trans("AmountTTC").'</td><td colspan="3">'.price($object->total_ttc,'',$langs,1,-1,-1,$conf->currency).'</td>';
print '<td>'.$langs->trans("Currency".$conf->currency).'</td></tr>'; print '</tr>';
// Payment term // Payment term
print '<tr><td>'.$langs->trans("PaymentConditions").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("PaymentConditions").'</td><td colspan="3">';

View File

@ -164,7 +164,7 @@ if ($result)
} }
else else
{ {
print '<tr '.$bc[$var].'><td colspan="2">'.$langs->trans("None").'</td></tr>'; print '<tr '.$bc[$var].'><td colspan="5">'.$langs->trans("None").'</td></tr>';
} }
print '</table><br>'; print '</table><br>';
} }

View File

@ -406,7 +406,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
// Date payment // Date payment
print '<tr><td><span class="fieldrequired">'.$langs->trans('Date').'</span></td><td>'; print '<tr><td><span class="fieldrequired">'.$langs->trans('Date').'</span></td><td>';
$datepayment = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']); $datepayment = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
$datepayment= ($datepayment == '' ? (empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0) : $datepayment); $datepayment= ($datepayment == '' ? (empty($conf->global->MAIN_AUTOFILL_DATE)?-1:'') : $datepayment);
$form->select_date($datepayment,'','','',0,"add_paiement",1,1); $form->select_date($datepayment,'','','',0,"add_paiement",1,1);
print '</td>'; print '</td>';
print '<td>'.$langs->trans('Comments').'</td></tr>'; print '<td>'.$langs->trans('Comments').'</td></tr>';

View File

@ -1,8 +1,8 @@
<?php <?php
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* 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-2014 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2010-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* 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
@ -30,6 +30,7 @@ require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
/** /**
* Class to manage withdrawal receipts * Class to manage withdrawal receipts
*/ */
@ -44,6 +45,11 @@ class BonPrelevement extends CommonObject
var $emetteur_numero_compte; var $emetteur_numero_compte;
var $emetteur_code_banque; var $emetteur_code_banque;
var $emetteur_number_key; var $emetteur_number_key;
var $emetteur_iban;
var $emetteur_bic;
var $emetteur_ics;
var $total; var $total;
var $_fetched; var $_fetched;
var $statut; // 0-Wait, 1-Trans, 2-Done var $statut; // 0-Wait, 1-Trans, 2-Done
@ -74,6 +80,10 @@ class BonPrelevement extends CommonObject
$this->emetteur_code_banque = ""; $this->emetteur_code_banque = "";
$this->emetteur_number_key = ""; $this->emetteur_number_key = "";
$this->emetteur_iban = "";
$this->emetteur_bic = "";
$this->emetteur_ics = "";
$this->factures = array(); $this->factures = array();
$this->numero_national_emetteur = ""; $this->numero_national_emetteur = "";
@ -655,9 +665,9 @@ class BonPrelevement extends CommonObject
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ( $resql ) if ( $resql )
{ {
$row = $this->db->fetch_row($resql); $obj = $this->db->fetch_object($resql);
return $row[0]; return $obj->nb;
$this->db->free($resql); $this->db->free($resql);
} }
@ -671,38 +681,39 @@ class BonPrelevement extends CommonObject
/** /**
* Get number of invoices to withdrawal * Get number of invoices to withdrawal
* TODO delete params banque and agence when not necesary
* *
* @param int $banque bank * @param int $banque dolibarr mysoc bank
* @param int $agence agence * @param int $agence dolibarr mysoc agence
* @return int <O if KO, number of invoices if OK * @return int <O if KO, number of invoices if OK
*/ */
function NbFactureAPrelever($banque=0,$agence=0) function NbFactureAPrelever($banque=0,$agence=0)
{ {
global $conf; global $conf;
$sql = "SELECT count(f.rowid)"; $sql = "SELECT count(f.rowid) as nb";
$sql.= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
$sql.= ", ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; $sql.= ", ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
if ($banque || $agence) $sql.=", ".MAIN_DB_PREFIX."societe_rib as sr"; //if ($banque || $agence) $sql.=", ".MAIN_DB_PREFIX."societe_rib as sr";
$sql.= " WHERE f.fk_statut = 1"; $sql.= " WHERE f.fk_statut = 1";
$sql.= " AND f.entity = ".$conf->entity; $sql.= " AND f.entity = ".$conf->entity;
$sql.= " AND f.rowid = pfd.fk_facture"; $sql.= " AND f.rowid = pfd.fk_facture";
$sql.= " AND f.paye = 0"; $sql.= " AND f.paye = 0";
$sql.= " AND pfd.traite = 0"; $sql.= " AND pfd.traite = 0";
$sql.= " AND f.total_ttc > 0"; $sql.= " AND f.total_ttc > 0";
if ($banque || $agence) $sql.= " AND f.fk_soc = sr.rowid"; //if ($banque || $agence) $sql.= " AND f.fk_soc = sr.rowid";
if ($banque) $sql.= " AND sr.code_banque = '".$conf->global->PRELEVEMENT_CODE_BANQUE."'"; //if ($banque) $sql.= " AND sr.code_banque = '".$conf->global->PRELEVEMENT_CODE_BANQUE."'";
if ($agence) $sql.= " AND sr.code_guichet = '".$conf->global->PRELEVEMENT_CODE_GUICHET."'"; //if ($agence) $sql.= " AND sr.code_guichet = '".$conf->global->PRELEVEMENT_CODE_GUICHET."'";
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ( $resql ) if ( $resql )
{ {
$row = $this->db->fetch_row($resql); $obj = $this->db->fetch_object($resql);
$this->db->free($resql); $this->db->free($resql);
return $row[0]; return $obj->nb;
} }
else else
{ {
@ -715,9 +726,10 @@ class BonPrelevement extends CommonObject
/** /**
* Create a withdraw * Create a withdraw
* TODO delete params banque and agence when not necesary
* *
* @param int $banque code of bank (to withdraw a specific bankof a specific customer. By default '') * @param int $banque dolibarr mysoc bank
* @param int $agence code of bank office (guichet) (to withdraw a specific bankof a specific customer. By default '') * @param int $agence dolibarr mysoc bank office (guichet)
* @param string $mode real=do action, simu=test only * @param string $mode real=do action, simu=test only
* @return int <0 if KO, nbre of invoice withdrawed if OK * @return int <0 if KO, nbre of invoice withdrawed if OK
*/ */
@ -755,17 +767,17 @@ class BonPrelevement extends CommonObject
$sql.= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
$sql.= ", ".MAIN_DB_PREFIX."societe as s"; $sql.= ", ".MAIN_DB_PREFIX."societe as s";
$sql.= ", ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; $sql.= ", ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
if ($banque || $agence) $sql.= ", ".MAIN_DB_PREFIX."societe_rib as sr"; //if ($banque || $agence) $sql.= ", ".MAIN_DB_PREFIX."societe_rib as sr";
$sql.= " WHERE f.rowid = pfd.fk_facture"; $sql.= " WHERE f.rowid = pfd.fk_facture";
$sql.= " AND f.entity = ".$conf->entity; $sql.= " AND f.entity = ".$conf->entity;
$sql.= " AND s.rowid = f.fk_soc"; $sql.= " AND s.rowid = f.fk_soc";
if ($banque || $agence) $sql.= " AND s.rowid = sr.fk_soc"; //if ($banque || $agence) $sql.= " AND s.rowid = sr.fk_soc";
$sql.= " AND f.fk_statut = 1"; $sql.= " AND f.fk_statut = 1";
$sql.= " AND f.paye = 0"; $sql.= " AND f.paye = 0";
$sql.= " AND pfd.traite = 0"; $sql.= " AND pfd.traite = 0";
$sql.= " AND f.total_ttc > 0"; $sql.= " AND f.total_ttc > 0";
if ($banque) $sql.= " AND sr.code_banque = '".$conf->global->PRELEVEMENT_CODE_BANQUE."'"; //if ($banque) $sql.= " AND sr.code_banque = '".$conf->global->PRELEVEMENT_CODE_BANQUE."'";
if ($agence) $sql.= " AND sr.code_guichet = '".$conf->global->PRELEVEMENT_CODE_GUICHET."'"; //if ($agence) $sql.= " AND sr.code_guichet = '".$conf->global->PRELEVEMENT_CODE_GUICHET."'";
dol_syslog(get_class($this)."::Create sql=".$sql, LOG_DEBUG); dol_syslog(get_class($this)."::Create sql=".$sql, LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
@ -1006,6 +1018,9 @@ class BonPrelevement extends CommonObject
$bonprev->emetteur_code_guichet = $conf->global->PRELEVEMENT_CODE_GUICHET; $bonprev->emetteur_code_guichet = $conf->global->PRELEVEMENT_CODE_GUICHET;
$bonprev->emetteur_numero_compte = $conf->global->PRELEVEMENT_NUMERO_COMPTE; $bonprev->emetteur_numero_compte = $conf->global->PRELEVEMENT_NUMERO_COMPTE;
$bonprev->emetteur_number_key = $conf->global->PRELEVEMENT_NUMBER_KEY; $bonprev->emetteur_number_key = $conf->global->PRELEVEMENT_NUMBER_KEY;
$bonprev->emetteur_iban = $conf->global->PRELEVEMENT_IBAN;
$bonprev->emetteur_bic = $conf->global->PRELEVEMENT_BIC;
$bonprev->emetteur_ics = $conf->global->PRELEVEMENT_ICS; // TODO Add this into setup of admin/prelevement.php. Ex: PRELEVEMENT_ICS = "FR78ZZZ123456";
$bonprev->factures = $factures_prev_id; $bonprev->factures = $factures_prev_id;
@ -1225,11 +1240,15 @@ class BonPrelevement extends CommonObject
// TODO Move code for es and fr into an external module file with selection into setup of prelevement module // TODO Move code for es and fr into an external module file with selection into setup of prelevement module
$found=0;
// Build file for Spain // Build file for Spain
if ($mysoc->country_code=='ES') if ($mysoc->country_code=='ES')
{ {
if (! empty($conf->esaeb->enabled)) if (! empty($conf->esaeb->enabled))
{ {
$found++;
dol_include_once('/esaeb/class/esaeb19.class.php'); dol_include_once('/esaeb/class/esaeb19.class.php');
//Head //Head
@ -1278,102 +1297,124 @@ class BonPrelevement extends CommonObject
$i++; $i++;
} }
} }
else else
{ {
$result = -2; $result = -2;
} }
fputs($this->file, $esaeb19->generaRemesa()); fputs($this->file, $esaeb19->generaRemesa());
} }
else
{
$this->total = 0;
$sql = "SELECT pl.amount";
$sql.= " FROM";
$sql.= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,";
$sql.= " ".MAIN_DB_PREFIX."facture as f,";
$sql.= " ".MAIN_DB_PREFIX."prelevement_facture as pf";
$sql.= " WHERE pl.fk_prelevement_bons = ".$this->id;
$sql.= " AND pl.rowid = pf.fk_prelevement_lignes";
$sql.= " AND pf.fk_facture = f.rowid";
//Lines
$i = 0;
$resql=$this->db->query($sql);
if ($resql)
{
$num = $this->db->num_rows($resql);
while ($i < $num)
{
$obj = $this->db->fetch_object($resql);
$this->total = $this->total + $obj->amount;
$i++;
}
}
else
{
$result = -2;
}
$langs->load('withdrawals');
fputs($this->file, $langs->trans('WithdrawalFileNotCapable'));
}
} }
// Build file for France
elseif ($mysoc->country_code=='FR') // Build file for European countries
if (! $found && $mysoc->isInEEC())
{ {
/* $found++;
* En-tete Emetteur
*/
$this->EnregEmetteur();
/* /**
* Lines * SECTION CREATION FICHIER SEPA
*/ * SECTION CREATION FICHIER SEPA
$this->total = 0; * SECTION CREATION FICHIER SEPA
*/
// SEPA Initialisation
$CrLf = "\n";
$date_actu = dol_now();
$dateTime_YMD = dol_print_date($date_actu, '%Y%m%d');
$dateTime_YMDHMS = dol_print_date($date_actu, '%Y%m%d%H%M%S');
$dateTime_ECMA = dol_print_date($date_actu, '%Y-%m-%dT%H:%M:%S');
$fileDebiteurSection = '';
$fileEmetteurSection = '';
$i = 0;
$this->total = 0;
$sql = "SELECT pl.rowid, pl.client_nom, pl.code_banque, pl.code_guichet, pl.number, pl.amount,"; /*
$sql.= " f.facnumber, pf.fk_facture"; * section Debiteur (sepa Debiteurs bloc lines)
$sql.= " FROM"; */
$sql.= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,"; $sql = "SELECT soc.code_client as code, soc.address, soc.zip, soc.town, soc.datec, p.code as country_code,";
$sql.= " ".MAIN_DB_PREFIX."facture as f,"; $sql.= " pl.client_nom as nom, pl.code_banque as cb, pl.code_guichet as cg, pl.number as cc, pl.amount as somme,";
$sql.= " ".MAIN_DB_PREFIX."prelevement_facture as pf"; $sql.= " f.facnumber as fac, pf.fk_facture as idfac, rib.iban_prefix as iban, rib.bic as bic, rib.rowid as drum";
$sql.= " WHERE pl.fk_prelevement_bons = ".$this->id; $sql.= " FROM";
$sql.= " AND pl.rowid = pf.fk_prelevement_lignes"; $sql.= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,";
$sql.= " AND pf.fk_facture = f.rowid"; $sql.= " ".MAIN_DB_PREFIX."facture as f,";
$sql.= " ".MAIN_DB_PREFIX."prelevement_facture as pf,";
$sql.= " ".MAIN_DB_PREFIX."societe as soc,";
$sql.= " ".MAIN_DB_PREFIX."c_pays as p,";
$sql.= " ".MAIN_DB_PREFIX."societe_rib as rib";
$sql.= " WHERE pl.fk_prelevement_bons = ".$this->id;
$sql.= " AND pl.rowid = pf.fk_prelevement_lignes";
$sql.= " AND pf.fk_facture = f.rowid";
$sql.= " AND soc.fk_pays = p.rowid";
$sql.= " AND soc.rowid = f.fk_soc";
$sql.= " AND rib.fk_soc = f.fk_soc";
$sql.= " AND rib.default_rib = 1";
$i = 0; //echo $sql;
$resql=$this->db->query($sql);
if ($resql)
{ $num = $this->db->num_rows($resql);
while ($i < $num)
{
$obj = $this->db->fetch_object($resql);
$fileDebiteurSection .= $this->EnregDestinataireSEPA($obj->code, $obj->nom, $obj->address, $obj->zip, $obj->town, $obj->country_code, $obj->cb, $obj->cg, $obj->cc, $obj->somme, $obj->facnumber, $obj->idfac, $obj->iban, $obj->bic, $obj->datec, $obj->drum);
$this->total = $this->total + $obj->somme;
$i++;
}
}
else
{ fputs($this->file, 'ERREUR DEBITEUR '.$sql.$CrLf);
$result = -2;
}
$resql=$this->db->query($sql); /*
if ($resql) * section Emetteur(sepa Emetteur bloc lines)
{ */
$num = $this->db->num_rows($resql); if ($result != -2)
{ $fileEmetteurSection .= $this->EnregEmetteurSEPA($conf, $date_actu, $i, $this->total, $CrLf);
}
else
{ fputs($this->file, 'ERREUR EMETTEUR'.$CrLf);
}
while ($i < $num) /**
{ * SECTION CREATION FICHIER SEPA
$row = $this->db->fetch_row($resql); * SECTION CREATION FICHIER SEPA
* SECTION CREATION FICHIER SEPA
*/
// SEPA File Header
fputs($this->file, '<'.'?xml version="1.0" encoding="UTF-8" standalone="yes"?'.'>'.$CrLf);
fputs($this->file, '<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'.$CrLf);
fputs($this->file, ' <CstmrDrctDbtInitn>'.$CrLf);
// SEPA Group header
fputs($this->file, ' <GrpHdr>'.$CrLf);
fputs($this->file, ' <MsgId>'.('PREL'.$dateTime_YMD.'/REF'.$this->id).'</MsgId>'.$CrLf);
fputs($this->file, ' <CreDtTm>'.$dateTime_ECMA.'</CreDtTm>'.$CrLf);
fputs($this->file, ' <NbOfTxs>'.$i.'</NbOfTxs>'.$CrLf);
fputs($this->file, ' <CtrlSum>'.$this->total.'</CtrlSum>'.$CrLf);
fputs($this->file, ' <InitgPty>'.$CrLf);
fputs($this->file, ' <Nm>'.$this->raison_sociale.'</Nm>'.$CrLf);
/* fputs($this->file, ' <Id>'.$CrLf);
fputs($this->file, ' <Othr>'.$CrLf);
fputs($this->file, ' <Id>0533883248</Id>'.$CrLf);
fputs($this->file, ' <Issr>KBO-BCE</Issr>'.$CrLf);
fputs($this->file, ' <Othr>'.$CrLf);
fputs($this->file, ' </Id>'.$CrLf);
*/ fputs($this->file, ' </InitgPty>'.$CrLf);
fputs($this->file, ' </GrpHdr>'.$CrLf);
// SEPA File Emetteur
if ($result != -2)
{ fputs($this-> file, $fileEmetteurSection);}
// SEPA File Debiteurs
if ($result != -2)
{ fputs($this-> file, $fileDebiteurSection);}
// SEPA FILE FOOTER
fputs($this->file, ' </PmtInf>'.$CrLf);
fputs($this->file, ' </CstmrDrctDbtInitn>'.$CrLf);
fputs($this->file, '</Document>'.$CrLf);
$this->EnregDestinataire($row[0],$row[1],$row[2],$row[3],$row[4],$row[5],$row[6],$row[7]);
$this->total = $this->total + $row[5];
$i++;
}
}
else
{
$result = -2;
}
/*
* Pied de page total
*/
$this->EnregTotal($this->total);
} }
// Build file for Other Countries with unknow format // Build file for Other Countries with unknow format
else if (! $found)
{ {
$this->total = 0; $this->total = 0;
$sql = "SELECT pl.amount"; $sql = "SELECT pl.amount";
@ -1426,9 +1467,10 @@ class BonPrelevement extends CommonObject
* @param float $amount amount * @param float $amount amount
* @param string $facnumber ref of invoice * @param string $facnumber ref of invoice
* @param int $facid id of invoice * @param int $facid id of invoice
* @param string $rib_dom rib domiciliation
* @return void * @return void
*/ */
function EnregDestinataire($rowid, $client_nom, $rib_banque, $rib_guichet, $rib_number, $amount, $facnumber, $facid) function EnregDestinataire($rowid, $client_nom, $rib_banque, $rib_guichet, $rib_number, $amount, $facnumber, $facid, $rib_dom='')
{ {
fputs($this->file, "06"); fputs($this->file, "06");
fputs($this->file, "08"); // Prelevement ordinaire fputs($this->file, "08"); // Prelevement ordinaire
@ -1445,11 +1487,11 @@ class BonPrelevement extends CommonObject
// Raison Sociale Destinataire C2 // Raison Sociale Destinataire C2
fputs($this->file, substr($client->nom. " ",0,24)); fputs($this->file, substr(strtoupper($client_nom)." ",0,24));
// Domiciliation facultative D1 // Domiciliation facultative D1
$domiciliation = strtr($rib_dom, array(" " => "-", CHR(13) => " ", CHR(10) => ""));
fputs($this->file, substr(" ",0,24)); fputs($this->file, substr($domiciliation." ",0,24));
// Zone Reservee D2 // Zone Reservee D2
@ -1471,8 +1513,7 @@ class BonPrelevement extends CommonObject
// Libelle F // Libelle F
fputs($this->file, substr("*".$this->ref.$rowid." ",0,13)); fputs($this->file, substr("*_".$facnumber."_RDVnet".$rowid." ", 0, 31));
fputs($this->file, substr(" ",0,18));
// Code etablissement G1 // Code etablissement G1
@ -1480,12 +1521,79 @@ class BonPrelevement extends CommonObject
// Zone Reservee G2 // Zone Reservee G2
fputs($this->file, substr(" ",0,5)); fputs($this->file, substr(" ", 0, 5));
fputs($this->file, "\n"); fputs($this->file, "\n");
} }
/**
* Write recipient of request (customer)
*
* @param string $row_code_client soc.code_client as code,
* @param string $row_nom pl.client_nom AS nom,
* @param string $row_address soc.address AS adr,
* @param string $row_zip soc.zip
* @param string $row_town soc.town
* @param string $row_country_code p.code AS pays,
* @param string $row_cb pl.code_banque AS cb,
* @param string $row_cg pl.code_guichet AS cg,
* @param string $row_cc pl.number AS cc,
* @param string $row_somme pl.amount AS somme,
* @param string $row_facnumber f.facnumber
* @param string $row_idfac pf.fk_facture AS idfac,
* @param string $row_iban rib.iban_prefix AS iban,
* @param string $row_bic rib.bic AS bic,
* @param string $row_datec soc.datec,
* @param string $row_drum soc.rowid AS drum
* @return void
*/
function EnregDestinataireSEPA($row_code_client, $row_nom, $row_address, $row_zip, $row_town, $row_country_code, $row_cb, $row_cg, $row_cc, $row_somme, $row_facnumber, $row_idfac, $row_iban, $row_bic, $row_datec, $row_drum)
{
$CrLf = "\n";
$Rowing = sprintf("%06d", $row_idfac);
$Date_Rum = strtotime($row_datec);
$pre = ($date_Rum > 1359673200) ? 'Rum' : '++R';
$Rum = $pre.$row_code_client.$row_drum.'-0'.date('U', $Date_Rum);
$XML_DEBITOR ='';
$XML_DEBITOR .=' <DrctDbtTxInf>'.$CrLf;
$XML_DEBITOR .=' <PmtId>'.$CrLf;
$XML_DEBITOR .=' <EndToEndId>'.('AS-'.$row_facnumber.'-'.$Rowing).'</EndToEndId>'.$CrLf;
$XML_DEBITOR .=' </PmtId>'.$CrLf;
$XML_DEBITOR .=' <InstdAmt Ccy.="EUR">'.round($row_somme, 2).'</InstdAmt>'.$CrLf;
$XML_DEBITOR .=' <DrctDbtTx>'.$CrLf;
$XML_DEBITOR .=' <MndtRltdInf>'.$CrLf;
$XML_DEBITOR .=' <MndtId>'.$Rum.'</MndtId>'.$CrLf;
$XML_DEBITOR .=' <DtOfSgntr>'.$row_datec.'</DtOfSgntr>'.$CrLf;
$XML_DEBITOR .=' <AmdmntInd>false</AmdmntInd>'.$CrLf;
$XML_DEBITOR .=' </MndtRltdInf>'.$CrLf;
$XML_DEBITOR .=' </DrctDbtTx>'.$CrLf;
$XML_DEBITOR .=' <DbtrAgt>'.$CrLf;
$XML_DEBITOR .=' <FinInstnId>'.$CrLf;
$XML_DEBITOR .=' <BIC>'.$row_iban.'</BIC>'.$CrLf;
$XML_DEBITOR .=' </FinInstnId>'.$CrLf;
$XML_DEBITOR .=' </DbtrAgt>'.$CrLf;
$XML_DEBITOR .=' <Dbtr>'.$CrLf;
$XML_DEBITOR .=' <Nm>'.strtoupper($row_nom).'</Nm>'.$CrLf;
$XML_DEBITOR .=' <PstlAdr>'.$CrLf;
$XML_DEBITOR .=' <Ctry>'.$row_country_code.'</Ctry>'.$CrLf;
$XML_DEBITOR .=' <AdrLine>'.strtr($row_adr, array(CHR(13) => ", ", CHR(10) => "")).'</AdrLine>'.$CrLf;
$XML_DEBITOR .=' <AdrLine>'.$row_zip.' '.$row_town.'</AdrLine>'.$CrLf;
$XML_DEBITOR .=' </PstlAdr>'.$CrLf;
$XML_DEBITOR .=' </Dbtr>'.$CrLf;
$XML_DEBITOR .=' <DbtrAcct>'.$CrLf;
$XML_DEBITOR .=' <Id>'.$CrLf;
$XML_DEBITOR .=' <IBAN>'.$row_iban.'</IBAN>'.$CrLf;
$XML_DEBITOR .=' </Id>'.$CrLf;
$XML_DEBITOR .=' </DbtrAcct>'.$CrLf;
$XML_DEBITOR .=' <RmtInf>'.$CrLf;
$XML_DEBITOR .=' <Ustrd>'.($row_facnumber.'/'.$Rowing.'/'.$Rum).'</Ustrd>'.$CrLf;
$XML_DEBITOR .=' </RmtInf>'.$CrLf;
$XML_DEBITOR .=' </DrctDbtTxInf>'.$CrLf;
return $XML_DEBITOR;
}
/** /**
* Write sender of request (me) * Write sender of request (me)
* *
@ -1552,6 +1660,106 @@ class BonPrelevement extends CommonObject
} }
/**
* Write sender of request (me)
*
* @param string $configuration conf
* @param date $ladate Date
* @param int $nombre 0 or 1
* @param float $total Total
* @param string $CrLf End of line character
* @return SEPA
*/
function EnregEmetteurSEPA($configuration, $ladate, $nombre, $total, $CrLf='\n')
{ // SEPA INITIALISATION
global $confs;
$dateTime_YMD = dol_print_date($ladate, '%Y%m%d');
$dateTime_ETAD = dol_print_date($ladate, '%Y-%m-%d');
$dateTime_YMDHMS = dol_print_date($ladate, '%Y-%m-%dT%H:%M:%S');
// Récupération info demandeur
$sql = "SELECT rowid, ref";
$sql.= " FROM";
$sql.= " ".MAIN_DB_PREFIX."prelevement_bons as pb";
$sql.= " WHERE pb.rowid = ".$this->id;
$resql=$this->db->query($sql);
if ($resql)
{
$obj = $this->db->fetch_object($resql);
// DONNEES BRUTES : par la suite Rows['XXX'] de la requete au dessus
$pays = explode(':', $configuration->global->MAIN_INFO_SOCIETE_COUNTRY);
$IdBon = sprintf("%05d", $obj->rowid);
$RefBon = $obj->ref;
$type = ($nombre == 1) ? 'FRST' : 'RCUR' ;
// SEPA Paiement Information
$XML_SEPA_INFO = '';
$XML_SEPA_INFO .= ' <PmtInf>'.$CrLf;
$XML_SEPA_INFO .= ' <PmtInfId>'.('PREL'.$dateTime_YMD.'/ID'.$IdBon.'-'.$RefBon).'</PmtInfId>'.$CrLf;
$XML_SEPA_INFO .= ' <PmtMtd>DD</PmtMtd>'.$CrLf;
$XML_SEPA_INFO .= ' <NbOfTxs>'.$nombre.'</NbOfTxs>'.$CrLf;
$XML_SEPA_INFO .= ' <CtrlSum>'.$total.'</CtrlSum>'.$CrLf;
$XML_SEPA_INFO .= ' <PmtTpInf>'.$CrLf;
$XML_SEPA_INFO .= ' <InstrPrty>NORM</InstrPrty>'.$CrLf;
$XML_SEPA_INFO .= ' <SvcLvl>'.$CrLf;
$XML_SEPA_INFO .= ' <Cd>SEPA</Cd>'.$CrLf;
$XML_SEPA_INFO .= ' </SvcLvl>'.$CrLf;
$XML_SEPA_INFO .= ' <LclInstrm>'.$CrLf;
$XML_SEPA_INFO .= ' <Cd>CORE</Cd>'.$CrLf;
$XML_SEPA_INFO .= ' </LclInstrm>'.$CrLf;
$XML_SEPA_INFO .= ' <SeqTp>'.$type.'</SeqTp>'.$CrLf;
$XML_SEPA_INFO .= ' </PmtTpInf>'.$CrLf;
$XML_SEPA_INFO .= ' <ReqdColltnDt>'.$dateTime_ETAD.'</ReqdColltnDt>'.$CrLf;
$XML_SEPA_INFO .= ' <Cdtr>'.$CrLf;
$XML_SEPA_INFO .= ' <Nm>'.$configuration->global->PRELEVEMENT_RAISON_SOCIALE.'</Nm>'.$CrLf;
$XML_SEPA_INFO .= ' <PstlAdr>'.$CrLf;
$XML_SEPA_INFO .= ' <Ctry>'.$pays[1].'</Ctry>'.$CrLf;
$XML_SEPA_INFO .= ' <AdrLine>'.$configuration->global->MAIN_INFO_SOCIETE_ADDRESS.'</AdrLine>'.$CrLf;
$XML_SEPA_INFO .= ' <AdrLine>'.$configuration->global->MAIN_INFO_SOCIETE_ZIP.' '.$configuration->global->MAIN_INFO_SOCIETE_TOWN.'</AdrLine>'.$CrLf;
$XML_SEPA_INFO .= ' </PstlAdr>'.$CrLf;
$XML_SEPA_INFO .= ' </Cdtr>'.$CrLf;
$XML_SEPA_INFO .= ' <CdtrAcct>'.$CrLf;
$XML_SEPA_INFO .= ' <Id>'.$CrLf;
$XML_SEPA_INFO .= ' <IBAN>'.preg_replace('/\s/', '', $configuration->global->PRELEVEMENT_IBAN).'</IBAN>'.$CrLf;
$XML_SEPA_INFO .= ' </Id>'.$CrLf;
$XML_SEPA_INFO .= ' </CdtrAcct>'.$CrLf;
$XML_SEPA_INFO .= ' <CdtrAgt>'.$CrLf;
$XML_SEPA_INFO .= ' <FinInstnId>'.$CrLf;
$XML_SEPA_INFO .= ' <BIC>'.$configuration->global->PRELEVEMENT_BIC.'</BIC>'.$CrLf;
$XML_SEPA_INFO .= ' </FinInstnId>'.$CrLf;
$XML_SEPA_INFO .= ' </CdtrAgt>'.$CrLf;
/* $XML_SEPA_INFO .= ' <UltmtCdtr>'.$CrLf;
$XML_SEPA_INFO .= ' <Nm>'.$configuration->global->PRELEVEMENT_RAISON_SOCIALE.'</Nm>'.$CrLf;
$XML_SEPA_INFO .= ' <PstlAdr>'.$CrLf;
$XML_SEPA_INFO .= ' <Ctry>'.$pays[1].'</Ctry>'.$CrLf;
$XML_SEPA_INFO .= ' <AdrLine>'.$conf->global->MAIN_INFO_SOCIETE_ADDRESS.'</AdrLine>'.$CrLf;
$XML_SEPA_INFO .= ' <AdrLine>'.$conf->global->MAIN_INFO_SOCIETE_ZIP.' '.$conf->global->MAIN_INFO_SOCIETE_TOWN.'</AdrLine>'.$CrLf;
$XML_SEPA_INFO .= ' </PstlAdr>'.$CrLf;
$XML_SEPA_INFO .= ' </UltmtCdtr>'.$CrLf;
*/ $XML_SEPA_INFO .= ' <ChrgBr>SLEV</ChrgBr>'.$CrLf;
$XML_SEPA_INFO .= ' <CdtrSchmeId>'.$CrLf;
$XML_SEPA_INFO .= ' <Id>'.$CrLf;
$XML_SEPA_INFO .= ' <PrvtId>'.$CrLf;
$XML_SEPA_INFO .= ' <Othr>'.$CrLf;
$XML_SEPA_INFO .= ' <Id>'.$configuration->global->PRELEVEMENT_ICS.'</Id>'.$CrLf;
$XML_SEPA_INFO .= ' <SchmeNm>'.$CrLf;
$XML_SEPA_INFO .= ' <Prtry>SEPA</Prtry>'.$CrLf;
$XML_SEPA_INFO .= ' </SchmeNm>'.$CrLf;
$XML_SEPA_INFO .= ' </Othr>'.$CrLf;
$XML_SEPA_INFO .= ' </PrvtId>'.$CrLf;
$XML_SEPA_INFO .= ' </Id>'.$CrLf;
$XML_SEPA_INFO .= ' </CdtrSchmeId>'.$CrLf;
}
else
{
fputs($this->file, 'INCORRECT EMETTEUR '.$XML_SEPA_INFO.$CrLf);
$result = -2;
}
return $XML_SEPA_INFO;
}
/** /**
* Write end * Write end
* *

View File

@ -323,9 +323,9 @@ class ChargeSociales extends CommonObject
* @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise) * @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise)
* @return string Label * @return string Label
*/ */
function getLibStatut($mode=0,$alreadypayed=-1) function getLibStatut($mode=0,$alreadypaid=-1)
{ {
return $this->LibStatut($this->paye,$mode,$alreadypayed); return $this->LibStatut($this->paye,$mode,$alreadypaid);
} }
/** /**
@ -336,7 +336,7 @@ class ChargeSociales extends CommonObject
* @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise) * @param double $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise)
* @return string Label * @return string Label
*/ */
function LibStatut($statut,$mode=0,$alreadypayed=-1) function LibStatut($statut,$mode=0,$alreadypaid=-1)
{ {
global $langs; global $langs;
$langs->load('customers'); $langs->load('customers');
@ -354,24 +354,26 @@ class ChargeSociales extends CommonObject
} }
if ($mode == 2) if ($mode == 2)
{ {
if ($statut == 0) return img_picto($langs->trans("Unpaid"), 'statut1').' '.$langs->trans("Unpaid"); if ($statut == 0 && $alreadypaid <= 0) return img_picto($langs->trans("Unpaid"), 'statut1').' '.$langs->trans("Unpaid");
if ($statut == 0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3').' '.$langs->trans("BillStatusStarted");
if ($statut == 1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid"); if ($statut == 1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid");
} }
if ($mode == 3) if ($mode == 3)
{ {
if ($statut == 0) return img_picto($langs->trans("Unpaid"), 'statut1'); if ($statut == 0 && $alreadypaid <= 0) return img_picto($langs->trans("Unpaid"), 'statut1');
if ($statut == 0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3');
if ($statut == 1) return img_picto($langs->trans("Paid"), 'statut6'); if ($statut == 1) return img_picto($langs->trans("Paid"), 'statut6');
} }
if ($mode == 4) if ($mode == 4)
{ {
if ($statut == 0 && $alreadypayed <= 0) return img_picto($langs->trans("Unpaid"), 'statut1').' '.$langs->trans("Unpaid"); if ($statut == 0 && $alreadypaid <= 0) return img_picto($langs->trans("Unpaid"), 'statut1').' '.$langs->trans("Unpaid");
if ($statut == 0 && $alreadypayed > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3').' '.$langs->trans("BillStatusStarted"); if ($statut == 0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3').' '.$langs->trans("BillStatusStarted");
if ($statut == 1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid"); if ($statut == 1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid");
} }
if ($mode == 5) if ($mode == 5)
{ {
if ($statut == 0 && $alreadypayed <= 0) return $langs->trans("Unpaid").' '.img_picto($langs->trans("Unpaid"), 'statut1'); if ($statut == 0 && $alreadypaid <= 0) return $langs->trans("Unpaid").' '.img_picto($langs->trans("Unpaid"), 'statut1');
if ($statut == 0 && $alreadypayed > 0) return $langs->trans("BillStatusStarted").' '.img_picto($langs->trans("BillStatusStarted"), 'statut3'); if ($statut == 0 && $alreadypaid > 0) return $langs->trans("BillStatusStarted").' '.img_picto($langs->trans("BillStatusStarted"), 'statut3');
if ($statut == 1) return $langs->trans("Paid").' '.img_picto($langs->trans("Paid"), 'statut6'); if ($statut == 1) return $langs->trans("Paid").' '.img_picto($langs->trans("Paid"), 'statut6');
} }

View File

@ -425,14 +425,14 @@ else
print '<td class="nowrap" align="right">'; print '<td class="nowrap" align="right">';
$temp_ht=$fields['totalht']; $temp_ht=$fields['totalht'];
if ($type == 1) $temp_ht=$fields['totalht']*$ratiopaymentinvoice; if ($type == 1) $temp_ht=$fields['totalht']*$ratiopaymentinvoice;
print price(price2num($temp_ht,'MT')); print price(price2num($temp_ht,'MT'),1);
print '</td>'; print '</td>';
// VAT // VAT
print '<td class="nowrap" align="right">'; print '<td class="nowrap" align="right">';
$temp_vat=$fields['vat']; $temp_vat=$fields['vat'];
if ($type == 1) $temp_vat=$fields['vat']*$ratiopaymentinvoice; if ($type == 1) $temp_vat=$fields['vat']*$ratiopaymentinvoice;
print price(price2num($temp_vat,'MT')); print price(price2num($temp_vat,'MT'),1);
//print price($fields['vat']); //print price($fields['vat']);
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
@ -576,14 +576,14 @@ else
print '<td class="nowrap" align="right">'; print '<td class="nowrap" align="right">';
$temp_ht=$fields['totalht']; $temp_ht=$fields['totalht'];
if ($type == 1) $temp_ht=$fields['totalht']*$ratiopaymentinvoice; if ($type == 1) $temp_ht=$fields['totalht']*$ratiopaymentinvoice;
print price(price2num($temp_ht,'MT')); print price(price2num($temp_ht,'MT'),1);
print '</td>'; print '</td>';
// VAT // VAT
print '<td class="nowrap" align="right">'; print '<td class="nowrap" align="right">';
$temp_vat=$fields['vat']; $temp_vat=$fields['vat'];
if ($type == 1) $temp_vat=$fields['vat']*$ratiopaymentinvoice; if ($type == 1) $temp_vat=$fields['vat']*$ratiopaymentinvoice;
print price(price2num($temp_vat,'MT')); print price(price2num($temp_vat,'MT'),1);
//print price($fields['vat']); //print price($fields['vat']);
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';

View File

@ -170,6 +170,8 @@ $dolibarr_main_db_collation='utf8_general_ci';
// $dolibarr_main_authentication='dolibarr'; // $dolibarr_main_authentication='dolibarr';
// $dolibarr_main_authentication='ldap'; // $dolibarr_main_authentication='ldap';
// $dolibarr_main_authentication='openid,dolibarr'; // $dolibarr_main_authentication='openid,dolibarr';
// $dolibarr_main_authentication='forceuser'; // Add also $dolibarr_auto_user='loginforuser';
// //
$dolibarr_main_authentication='dolibarr'; $dolibarr_main_authentication='dolibarr';

View File

@ -816,9 +816,10 @@ abstract class CommonObject
* *
* @param string $filter Optional filter * @param string $filter Optional filter
* @param int $fieldid Name of field to use for the select MAX and MIN * @param int $fieldid Name of field to use for the select MAX and MIN
* @param int $nodbprefix Do not include DB prefix to forge table name
* @return int <0 if KO, >0 if OK * @return int <0 if KO, >0 if OK
*/ */
function load_previous_next_ref($filter,$fieldid) function load_previous_next_ref($filter,$fieldid,$nodbprefix=0)
{ {
global $conf, $user; global $conf, $user;
@ -834,7 +835,7 @@ abstract class CommonObject
if ($this->element == 'societe') $alias = 'te'; if ($this->element == 'societe') $alias = 'te';
$sql = "SELECT MAX(te.".$fieldid.")"; $sql = "SELECT MAX(te.".$fieldid.")";
$sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element." as te"; $sql.= " FROM ".(empty($nodbprefix)?MAIN_DB_PREFIX:'').$this->table_element." as te";
if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 2 || ($this->element != 'societe' && empty($this->isnolinkedbythird) && empty($user->rights->societe->client->voir))) $sql.= ", ".MAIN_DB_PREFIX."societe as s"; // If we need to link to societe to limit select to entity if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 2 || ($this->element != 'societe' && empty($this->isnolinkedbythird) && empty($user->rights->societe->client->voir))) $sql.= ", ".MAIN_DB_PREFIX."societe as s"; // If we need to link to societe to limit select to entity
if (empty($this->isnolinkedbythird) && !$user->rights->societe->client->voir) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON ".$alias.".rowid = sc.fk_soc"; if (empty($this->isnolinkedbythird) && !$user->rights->societe->client->voir) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON ".$alias.".rowid = sc.fk_soc";
$sql.= " WHERE te.".$fieldid." < '".$this->db->escape($this->ref)."'"; $sql.= " WHERE te.".$fieldid." < '".$this->db->escape($this->ref)."'";
@ -847,7 +848,7 @@ abstract class CommonObject
$result = $this->db->query($sql); $result = $this->db->query($sql);
if (! $result) if (! $result)
{ {
$this->error=$this->db->error(); $this->error=$this->db->lasterror();
return -1; return -1;
} }
$row = $this->db->fetch_row($result); $row = $this->db->fetch_row($result);
@ -855,7 +856,7 @@ abstract class CommonObject
$sql = "SELECT MIN(te.".$fieldid.")"; $sql = "SELECT MIN(te.".$fieldid.")";
$sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element." as te"; $sql.= " FROM ".(empty($nodbprefix)?MAIN_DB_PREFIX:'').$this->table_element." as te";
if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 2 || ($this->element != 'societe' && empty($this->isnolinkedbythird) && !$user->rights->societe->client->voir)) $sql.= ", ".MAIN_DB_PREFIX."societe as s"; // If we need to link to societe to limit select to entity if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 2 || ($this->element != 'societe' && empty($this->isnolinkedbythird) && !$user->rights->societe->client->voir)) $sql.= ", ".MAIN_DB_PREFIX."societe as s"; // If we need to link to societe to limit select to entity
if (empty($this->isnolinkedbythird) && !$user->rights->societe->client->voir) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON ".$alias.".rowid = sc.fk_soc"; if (empty($this->isnolinkedbythird) && !$user->rights->societe->client->voir) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON ".$alias.".rowid = sc.fk_soc";
$sql.= " WHERE te.".$fieldid." > '".$this->db->escape($this->ref)."'"; $sql.= " WHERE te.".$fieldid." > '".$this->db->escape($this->ref)."'";
@ -869,7 +870,7 @@ abstract class CommonObject
$result = $this->db->query($sql); $result = $this->db->query($sql);
if (! $result) if (! $result)
{ {
$this->error=$this->db->error(); $this->error=$this->db->lasterror();
return -2; return -2;
} }
$row = $this->db->fetch_row($result); $row = $this->db->fetch_row($result);

View File

@ -200,12 +200,21 @@ class Conf
} }
//var_dump($this->modules); //var_dump($this->modules);
//var_dump($this->modules_parts['theme']); //var_dump($this->modules_parts['theme']);
// If you can't set timezone of your PHP, set this constant. Better is to set it to UTC. // If you can't set timezone of your PHP, set this constant. Better is to set it to UTC.
// In future, this constant will be forced to 'UTC' so PHP server timezone will not have effect anymore. // In future, this constant will be forced to 'UTC' so PHP server timezone will not have effect anymore.
//$this->global->MAIN_SERVER_TZ='Europe/Paris'; //$this->global->MAIN_SERVER_TZ='Europe/Paris';
if (! empty($this->global->MAIN_SERVER_TZ) && $this->global->MAIN_SERVER_TZ != 'auto') date_default_timezone_set($this->global->MAIN_SERVER_TZ); if (! empty($this->global->MAIN_SERVER_TZ) && $this->global->MAIN_SERVER_TZ != 'auto')
{
try {
date_default_timezone_set($this->global->MAIN_SERVER_TZ);
}
catch(Exception $e)
{
dol_syslog("Error: Bad value for parameter MAIN_SERVER_TZ=".$this->global->MAIN_SERVER_TZ, LOG_ERR);
}
}
// Object $mc // Object $mc
if (! defined('NOREQUIREMC') && ! empty($this->multicompany->enabled)) if (! defined('NOREQUIREMC') && ! empty($this->multicompany->enabled))
{ {
@ -235,6 +244,14 @@ class Conf
if (empty($this->global->MAIN_MENUFRONT_STANDARD)) $this->global->MAIN_MENUFRONT_STANDARD="eldy_menu.php"; if (empty($this->global->MAIN_MENUFRONT_STANDARD)) $this->global->MAIN_MENUFRONT_STANDARD="eldy_menu.php";
if (empty($this->global->MAIN_MENU_SMARTPHONE)) $this->global->MAIN_MENU_SMARTPHONE="eldy_menu.php"; // Use eldy by default because smartphone does not work on all phones if (empty($this->global->MAIN_MENU_SMARTPHONE)) $this->global->MAIN_MENU_SMARTPHONE="eldy_menu.php"; // Use eldy by default because smartphone does not work on all phones
if (empty($this->global->MAIN_MENUFRONT_SMARTPHONE)) $this->global->MAIN_MENUFRONT_SMARTPHONE="eldy_menu.php"; // Use eldy by default because smartphone does not work on all phones if (empty($this->global->MAIN_MENUFRONT_SMARTPHONE)) $this->global->MAIN_MENUFRONT_SMARTPHONE="eldy_menu.php"; // Use eldy by default because smartphone does not work on all phones
// Clean var use vat for company
if (! isset($this->global->FACTURE_TVAOPTION)) $this->global->FACTURE_TVAOPTION=1;
else if (! empty($this->global->FACTURE_TVAOPTION) && ! is_numeric($this->global->FACTURE_TVAOPTION))
{
// Old value of option, we clean to use new value (0 or 1)
if ($this->global->FACTURE_TVAOPTION != "franchise") $this->global->FACTURE_TVAOPTION=1;
else $this->global->FACTURE_TVAOPTION=0;
}
// Variable globales LDAP // Variable globales LDAP
if (empty($this->global->LDAP_FIELD_FULLNAME)) $this->global->LDAP_FIELD_FULLNAME=''; if (empty($this->global->LDAP_FIELD_FULLNAME)) $this->global->LDAP_FIELD_FULLNAME='';

View File

@ -81,7 +81,7 @@ class DolEditor
// Check if extended editor is ok. If not we force textarea // Check if extended editor is ok. If not we force textarea
if (empty($conf->fckeditor->enabled) || ! $okforextendededitor) $this->tool = 'textarea'; if (empty($conf->fckeditor->enabled) || ! $okforextendededitor) $this->tool = 'textarea';
if ($conf->browser->phone) $this->tool = 'textarea'; //if ($conf->browser->phone) $this->tool = 'textarea';
// Define content and some properties // Define content and some properties
if ($this->tool == 'ckeditor') if ($this->tool == 'ckeditor')

View File

@ -791,6 +791,7 @@ class ExtraFields
$labeltoshow=dol_trunc($obj->$field_toshow,18).' '; $labeltoshow=dol_trunc($obj->$field_toshow,18).' ';
} }
} }
$out.='<option value="'.$obj->rowid.'" selected="selected">'.$labeltoshow.'</option>';
} }
else else
{ {

View File

@ -202,7 +202,7 @@ class Form
else else
{ {
if ($typeofdata == 'email') $ret.=dol_print_email($value,0,0,0,0,1); if ($typeofdata == 'email') $ret.=dol_print_email($value,0,0,0,0,1);
elseif ($typeofdata == 'amount') $ret.=($value != '' ? price($value,'',$langs) : ''); elseif ($typeofdata == 'amount') $ret.=($value != '' ? price($value,'',$langs,0,0,-1,$conf->currency) : '');
elseif (preg_match('/^text/',$typeofdata) || preg_match('/^note/',$typeofdata)) $ret.=dol_htmlentitiesbr($value); elseif (preg_match('/^text/',$typeofdata) || preg_match('/^note/',$typeofdata)) $ret.=dol_htmlentitiesbr($value);
elseif ($typeofdata == 'day' || $typeofdata == 'datepicker') $ret.=dol_print_date($value,'day'); elseif ($typeofdata == 'day' || $typeofdata == 'datepicker') $ret.=dol_print_date($value,'day');
elseif ($typeofdata == 'datehourpicker') $ret.=dol_print_date($value,'dayhour'); elseif ($typeofdata == 'datehourpicker') $ret.=dol_print_date($value,'dayhour');
@ -729,6 +729,7 @@ class Form
* @param int $showtype Show third party type in combolist (customer, prospect or supplier) * @param int $showtype Show third party type in combolist (customer, prospect or supplier)
* @param int $forcecombo Force to use combo box * @param int $forcecombo Force to use combo box
* @param array $events Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled'))) * @param array $events Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
* @param int $limit Maximum number of elements
* @return string HTML string with * @return string HTML string with
* @deprecated Use select_thirdparty instead * @deprecated Use select_thirdparty instead
*/ */
@ -792,7 +793,7 @@ class Form
} }
$sql.=$this->db->order("nom","ASC"); $sql.=$this->db->order("nom","ASC");
if ($limit > 0) $sql.=$this->db->plimit($limit); if ($limit > 0) $sql.=$this->db->plimit($limit);
dol_syslog(get_class($this)."::select_thirdparty_list sql=".$sql); dol_syslog(get_class($this)."::select_thirdparty_list sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
@ -1340,7 +1341,7 @@ class Form
$sql.=' ,pcp.rowid as idprodcustprice, pcp.price as custprice, pcp.price_ttc as custprice_ttc,'; $sql.=' ,pcp.rowid as idprodcustprice, pcp.price as custprice, pcp.price_ttc as custprice_ttc,';
$sql.=' pcp.price_base_type as custprice_base_type, pcp.tva_tx as custtva_tx'; $sql.=' pcp.price_base_type as custprice_base_type, pcp.tva_tx as custtva_tx';
} }
// Multilang : we add translation // Multilang : we add translation
if (! empty($conf->global->MAIN_MULTILANGS)) if (! empty($conf->global->MAIN_MULTILANGS))
{ {
@ -1616,23 +1617,23 @@ class Form
$opt.=" - ".$langs->trans("Discount")." : ".vatrate($objp->remise_percent).' %'; $opt.=" - ".$langs->trans("Discount")." : ".vatrate($objp->remise_percent).' %';
$outval.=" - ".$langs->transnoentities("Discount")." : ".vatrate($objp->remise_percent).' %'; $outval.=" - ".$langs->transnoentities("Discount")." : ".vatrate($objp->remise_percent).' %';
} }
//Price by customer //Price by customer
if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
if (!empty($objp->idprodcustprice)) { if (!empty($objp->idprodcustprice)) {
$found = 1; $found = 1;
if ($objp->custprice_base_type == 'HT') if ($objp->custprice_base_type == 'HT')
{ {
$opt.= price($objp->custprice,1).' '.$currencytext.' '.$langs->trans("HT"); $opt.= price($objp->custprice,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("HT");
$outval.= price($objp->custprice,1).' '.$currencytextnoent.' '.$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).' '.$currencytext.' '.$langs->trans("TTC"); $opt.= price($objp->custprice_ttc,1,$langs,0,0,-1,$conf->currency).' '.$langs->trans("TTC");
$outval.= price($objp->custprice_ttc,1).' '.$currencytextnoent.' '.$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);
$outprice_ttc=price($objp->custprice_ttc); $outprice_ttc=price($objp->custprice_ttc);
$outpricebasetype=$objp->custprice_base_type; $outpricebasetype=$objp->custprice_base_type;
@ -2123,7 +2124,7 @@ class Form
* @param int $addempty Add empty entry * @param int $addempty Add empty entry
* @return void * @return void
*/ */
function select_availability($selected='',$htmlname='availid',$filtertype='',$addempty=0) function selectAvailabilityDelay($selected='',$htmlname='availid',$filtertype='',$addempty=0)
{ {
global $langs,$user; global $langs,$user;
@ -2153,7 +2154,7 @@ class Form
* *
* @return int Nb of lines loaded, 0 if already loaded, <0 if ko * @return int Nb of lines loaded, 0 if already loaded, <0 if ko
*/ */
function load_cache_demand_reason() function loadCacheInputReason()
{ {
global $langs; global $langs;
@ -2163,7 +2164,7 @@ class Form
$sql.= " FROM ".MAIN_DB_PREFIX.'c_input_reason'; $sql.= " FROM ".MAIN_DB_PREFIX.'c_input_reason';
$sql.= " WHERE active=1"; $sql.= " WHERE active=1";
$sql.= " ORDER BY rowid"; $sql.= " ORDER BY rowid";
dol_syslog(get_class($this)."::load_cache_demand_reason sql=".$sql,LOG_DEBUG); dol_syslog(get_class($this)."::loadCacheInputReason sql=".$sql,LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -2193,19 +2194,20 @@ class Form
} }
/** /**
* Return list of events that triggered an object creation * Return list of input reason (events that triggered an object creation, like after sending an emailing, making an advert, ...)
* List found into table c_input_reason loaded by loadCacheInputReason
* *
* @param int $selected Id or code of type origin to select by default * @param int $selected Id or code of type origin to select by default
* @param string $htmlname Nom de la zone select * @param string $htmlname Nom de la zone select
* @param string $exclude To exclude a code value (Example: SRC_PROP) * @param string $exclude To exclude a code value (Example: SRC_PROP)
* @param int $addempty Add an empty entry * @param int $addempty Add an empty entry
* @return void * @return void
*/ */
function select_demand_reason($selected='',$htmlname='demandreasonid',$exclude='',$addempty=0) function selectInputReason($selected='',$htmlname='demandreasonid',$exclude='',$addempty=0)
{ {
global $langs,$user; global $langs,$user;
$this->load_cache_demand_reason(); $this->loadCacheInputReason();
print '<select class="flat" name="'.$htmlname.'">'; print '<select class="flat" name="'.$htmlname.'">';
if ($addempty) print '<option value="0"'.(empty($selected)?' selected="selected"':'').'>&nbsp;</option>'; if ($addempty) print '<option value="0"'.(empty($selected)?' selected="selected"':'').'>&nbsp;</option>';
@ -2903,7 +2905,7 @@ class Form
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">'; print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
print '<tr><td>'; print '<tr><td>';
$this->select_availability($selected,$htmlname,-1,$addempty); $this->selectAvailabilityDelay($selected,$htmlname,-1,$addempty);
print '</td>'; print '</td>';
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>'; print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
print '</tr></table></form>'; print '</tr></table></form>';
@ -2921,7 +2923,8 @@ class Form
} }
/** /**
* Show a select form to select origin * Output HTML form to select list of input reason (events that triggered an object creation, like after sending an emailing, making an advert, ...)
* List found into table c_input_reason loaded by loadCacheInputReason
* *
* @param string $page Page * @param string $page Page
* @param string $selected Id condition pre-selectionne * @param string $selected Id condition pre-selectionne
@ -2929,7 +2932,7 @@ class Form
* @param int $addempty Add empty entry * @param int $addempty Add empty entry
* @return void * @return void
*/ */
function form_demand_reason($page, $selected='', $htmlname='demandreason', $addempty=0) function formInputReason($page, $selected='', $htmlname='demandreason', $addempty=0)
{ {
global $langs; global $langs;
if ($htmlname != "none") if ($htmlname != "none")
@ -2939,7 +2942,7 @@ class Form
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">'; print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
print '<tr><td>'; print '<tr><td>';
$this->select_demand_reason($selected,$htmlname,-1,$addempty); $this->selectInputReason($selected,$htmlname,-1,$addempty);
print '</td>'; print '</td>';
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>'; print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
print '</tr></table></form>'; print '</tr></table></form>';
@ -2948,7 +2951,7 @@ class Form
{ {
if ($selected) if ($selected)
{ {
$this->load_cache_demand_reason(); $this->loadCacheInputReason();
foreach ($this->cache_demand_reason as $key => $val) foreach ($this->cache_demand_reason as $key => $val)
{ {
if ($val['id'] == $selected) if ($val['id'] == $selected)
@ -2964,16 +2967,17 @@ class Form
} }
/** /**
* Show a form to select a date * Show a form + html select a date
* *
* @param string $page Page * @param string $page Page
* @param string $selected Date preselected * @param string $selected Date preselected
* @param string $htmlname Name of input html field * @param string $htmlname Html name of date input fields or 'none'
* @param int $displayhour Display hour selector * @param int $displayhour Display hour selector
* @param int $displaymin Display minutes selector * @param int $displaymin Display minutes selector
* @return void * @return void
* @see select_date
*/ */
function form_date($page, $selected, $htmlname,$displayhour=0,$displaymin=0) function form_date($page, $selected, $htmlname, $displayhour=0, $displaymin=0)
{ {
global $langs; global $langs;
@ -3106,13 +3110,13 @@ class Form
print '<tr><td class="nowrap">'; print '<tr><td class="nowrap">';
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS))
{ {
if (! $filter || $filter=="fk_facture_source IS NULL") print $langs->trans("CompanyHasAbsoluteDiscount",price($amount,1,$langs,0,0,-1,$conf->currency)).': '; // If we want deposit to be substracted to payments only and not to total of final invoice if (! $filter || $filter=="fk_facture_source IS NULL") print $langs->trans("CompanyHasAbsoluteDiscount",price($amount,0,$langs,0,0,-1,$conf->currency)).': '; // If we want deposit to be substracted to payments only and not to total of final invoice
else print $langs->trans("CompanyHasCreditNote",price($amount,1,$langs,0,0,-1,$conf->currency)).': '; else print $langs->trans("CompanyHasCreditNote",price($amount,0,$langs,0,0,-1,$conf->currency)).': ';
} }
else else
{ {
if (! $filter || $filter=="fk_facture_source IS NULL OR (fk_facture_source IS NOT NULL AND description='(DEPOSIT)')") print $langs->trans("CompanyHasAbsoluteDiscount",price($amount,1,$langs,0,0,-1,$conf->currency)).': '; if (! $filter || $filter=="fk_facture_source IS NULL OR (fk_facture_source IS NOT NULL AND description='(DEPOSIT)')") print $langs->trans("CompanyHasAbsoluteDiscount",price($amount,0,$langs,0,0,-1,$conf->currency)).': ';
else print $langs->trans("CompanyHasCreditNote",price($amount,1,$langs,0,0,-1,$conf->currency)).': '; else print $langs->trans("CompanyHasCreditNote",price($amount,0,$langs,0,0,-1,$conf->currency)).': ';
} }
$newfilter='fk_facture IS NULL AND fk_facture_line IS NULL'; // Remises disponibles $newfilter='fk_facture IS NULL AND fk_facture_line IS NULL'; // Remises disponibles
if ($filter) $newfilter.=' AND ('.$filter.')'; if ($filter) $newfilter.=' AND ('.$filter.')';
@ -3254,7 +3258,7 @@ class Form
* @param string $htmlname name of HTML select list * @param string $htmlname name of HTML select list
* @return void * @return void
*/ */
function selectcurrency($selected='',$htmlname='currency_id') function selectCurrency($selected='',$htmlname='currency_id')
{ {
global $conf,$langs,$user; global $conf,$langs,$user;
@ -3486,13 +3490,13 @@ class Form
/** /**
* Show a HTML widget to input a date or combo list for day, month, years and optionaly hours and minutes * Show a HTML widget to input a date or combo list for day, month, years and optionaly hours and minutes.
* Fields are preselected with : * Fields are preselected with :
* - set_time date (Local PHP server timestamps or date format YYYY-MM-DD or YYYY-MM-DD HH:MM) * - set_time date (must be a local PHP server timestamp or string date with format 'YYYY-MM-DD' or 'YYYY-MM-DD HH:MM')
* - local date of PHP server if set_time is '' * - local date in user area, if set_time is '' (so if set_time is '', output may differs when done from two different location)
* - Empty (fields empty) if set_time is -1 (in this case, parameter empty must also have value 1) * - Empty (fields empty), if set_time is -1 (in this case, parameter empty must also have value 1)
* *
* @param timestamp $set_time Pre-selected date (must be a local PHP server timestamp) * @param timestamp $set_time Pre-selected date (must be a local PHP server timestamp), -1 to keep date not preselected, '' to use current date.
* @param string $prefix Prefix for fields name * @param string $prefix Prefix for fields name
* @param int $h 1=Show also hours * @param int $h 1=Show also hours
* @param int $m 1=Show also minutes * @param int $m 1=Show also minutes
@ -3504,6 +3508,7 @@ class Form
* @param int $disabled Disable input fields * @param int $disabled Disable input fields
* @param int $fullday When a checkbox with this html name is on, hour and day are set with 00:00 or 23:59 * @param int $fullday When a checkbox with this html name is on, hour and day are set with 00:00 or 23:59
* @return mixed Nothing or string if nooutput is 1 * @return mixed Nothing or string if nooutput is 1
* @see form_date
*/ */
function select_date($set_time='', $prefix='re', $h=0, $m=0, $empty=0, $form_name="", $d=1, $addnowbutton=0, $nooutput=0, $disabled=0, $fullday='') function select_date($set_time='', $prefix='re', $h=0, $m=0, $empty=0, $form_name="", $d=1, $addnowbutton=0, $nooutput=0, $disabled=0, $fullday='')
{ {
@ -3516,7 +3521,11 @@ class Form
if($m == '') $m=0; if($m == '') $m=0;
if($empty == '') $empty=0; if($empty == '') $empty=0;
if (! $set_time && $empty == 0) $set_time = dol_now('tzuser'); if ($set_time === '' && $empty == 0)
{
include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
$set_time = dol_now('tzuser')-(getServerTimeZoneInt('now')*3600); // set_time must be relative to PHP server timezone
}
// Analysis of the pre-selection date // Analysis of the pre-selection date
if (preg_match('/^([0-9]+)\-([0-9]+)\-([0-9]+)\s?([0-9]+)?:?([0-9]+)?/',$set_time,$reg)) if (preg_match('/^([0-9]+)\-([0-9]+)\-([0-9]+)\s?([0-9]+)?:?([0-9]+)?/',$set_time,$reg))
@ -4014,9 +4023,10 @@ class Form
* @param string $fieldref Nom du champ objet ref (object->ref) a utiliser pour select next et previous * @param string $fieldref Nom du champ objet ref (object->ref) a utiliser pour select next et previous
* @param string $morehtmlref Code html supplementaire a afficher apres ref * @param string $morehtmlref Code html supplementaire a afficher apres ref
* @param string $moreparam More param to add in nav link url. * @param string $moreparam More param to add in nav link url.
* @param int $nodbprefix Do not include DB prefix to forge table name
* @return tring Portion HTML avec ref + boutons nav * @return tring Portion HTML avec ref + boutons nav
*/ */
function showrefnav($object,$paramid,$morehtml='',$shownav=1,$fieldid='rowid',$fieldref='ref',$morehtmlref='',$moreparam='') function showrefnav($object,$paramid,$morehtml='',$shownav=1,$fieldid='rowid',$fieldref='ref',$morehtmlref='',$moreparam='',$nodbprefix=0)
{ {
global $langs,$conf; global $langs,$conf;
@ -4025,7 +4035,8 @@ class Form
if (empty($fieldref)) $fieldref='ref'; if (empty($fieldref)) $fieldref='ref';
//print "paramid=$paramid,morehtml=$morehtml,shownav=$shownav,$fieldid,$fieldref,$morehtmlref,$moreparam"; //print "paramid=$paramid,morehtml=$morehtml,shownav=$shownav,$fieldid,$fieldref,$morehtmlref,$moreparam";
$object->load_previous_next_ref((isset($object->next_prev_filter)?$object->next_prev_filter:''),$fieldid); $object->load_previous_next_ref((isset($object->next_prev_filter)?$object->next_prev_filter:''),$fieldid,$nodbprefix);
$previous_ref = $object->ref_previous?'<a data-role="button" data-icon="arrow-l" data-iconpos="left" href="'.$_SERVER["PHP_SELF"].'?'.$paramid.'='.urlencode($object->ref_previous).$moreparam.'">'.(empty($conf->dol_use_jmobile)?img_picto($langs->trans("Previous"),'previous.png'):'&nbsp;').'</a>':''; $previous_ref = $object->ref_previous?'<a data-role="button" data-icon="arrow-l" data-iconpos="left" href="'.$_SERVER["PHP_SELF"].'?'.$paramid.'='.urlencode($object->ref_previous).$moreparam.'">'.(empty($conf->dol_use_jmobile)?img_picto($langs->trans("Previous"),'previous.png'):'&nbsp;').'</a>':'';
$next_ref = $object->ref_next?'<a data-role="button" data-icon="arrow-r" data-iconpos="right" href="'.$_SERVER["PHP_SELF"].'?'.$paramid.'='.urlencode($object->ref_next).$moreparam.'">'.(empty($conf->dol_use_jmobile)?img_picto($langs->trans("Next"),'next.png'):'&nbsp;').'</a>':''; $next_ref = $object->ref_next?'<a data-role="button" data-icon="arrow-r" data-iconpos="right" href="'.$_SERVER["PHP_SELF"].'?'.$paramid.'='.urlencode($object->ref_next).$moreparam.'">'.(empty($conf->dol_use_jmobile)?img_picto($langs->trans("Next"),'next.png'):'&nbsp;').'</a>':'';
@ -4042,7 +4053,7 @@ class Form
if ($morehtml) if ($morehtml)
{ {
$ret.='</td><td class="nobordernopadding" align="right">'.$morehtml; $ret.='</td><td class="paddingrightonly" align="right">'.$morehtml;
} }
if ($shownav && ($previous_ref || $next_ref)) if ($shownav && ($previous_ref || $next_ref))
{ {

View File

@ -23,8 +23,8 @@
/** /**
* Classe permettant la generation de composants html * Class to manage HTML output components for orders
* Only common components are here. * Before adding component here, check they are not into common part Form.class.php
*/ */
class FormOrder class FormOrder
{ {
@ -45,9 +45,32 @@ class FormOrder
} }
/**
* Return combo list of differents status of a orders
*
* @param string $selected Preselected value
* @param int $short Use short labels
* @param string $hmlname Name of HTML select element
* @return void
*/
function selectSupplierOrderStatus($selected='', $short=0, $hmlname='order_status')
{
print '<select class="flat" name="'.$hmlname.'">';
print '<option value="-1">&nbsp;</option>';
$statustohow=array(0,1,2,3,4,5,6,9); // 7 is same label than 6. 8 does not exist.
foreach($statustohow as $key)
{
print '<option value="'.$key.'"'.($selected == $key?' selected="selected"':'').'>';
print CommandeFournisseur::LibStatut($key,$short);
print '</option>';
}
print '</select>';
}
/** /**
* Return list of way to order * Return list of way to order
* *
* @param string $selected Id of preselected order origin * @param string $selected Id of preselected order origin
* @param string $htmlname Name of HTML select list * @param string $htmlname Name of HTML select list
* @param int $addempty 0=liste sans valeur nulle, 1=ajoute valeur inconnue * @param int $addempty 0=liste sans valeur nulle, 1=ajoute valeur inconnue
@ -73,17 +96,18 @@ class FormOrder
/** /**
* Return list of way to order * Return list of input method (mode used to receive order, like order received by email, fax, online)
* List found into table c_input_method
* *
* @param string $selected Id of preselected input method * @param string $selected Id of preselected input method
* @param string $htmlname Name of HTML select list * @param string $htmlname Name of HTML select list
* @param int $addempty 0=liste sans valeur nulle, 1=ajoute valeur inconnue * @param int $addempty 0=list with no empty value, 1=list with empty value
* @return array Tableau des sources de commandes * @return array Tableau des sources de commandes
*/ */
function select_methodes_commande($selected='',$htmlname='source_id',$addempty=0) function selectInputMethod($selected='',$htmlname='source_id',$addempty=0)
{ {
global $conf,$langs; global $conf,$langs;
$listemethodes=array(); $listofmethods=array();
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
$form=new Form($this->db); $form=new Form($this->db);
@ -92,7 +116,7 @@ class FormOrder
$sql.= " FROM ".MAIN_DB_PREFIX."c_input_method"; $sql.= " FROM ".MAIN_DB_PREFIX."c_input_method";
$sql.= " WHERE active = 1"; $sql.= " WHERE active = 1";
dol_syslog(get_class($this)."::select_methodes_commande sql=".$sql); dol_syslog(get_class($this)."::selectInputMethod sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -101,7 +125,7 @@ class FormOrder
while ($i < $num) while ($i < $num)
{ {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$listemethodes[$obj->rowid] = $langs->trans($obj->code)!=$obj->code?$langs->trans($obj->code):$obj->label; $listofmethods[$obj->rowid] = $langs->trans($obj->code)!=$obj->code?$langs->trans($obj->code):$obj->label;
$i++; $i++;
} }
} }
@ -111,10 +135,10 @@ class FormOrder
return -1; return -1;
} }
print $form->selectarray($htmlname,$listemethodes,$selected,$addempty); print $form->selectarray($htmlname,$listofmethods,$selected,$addempty);
return 1; return 1;
} }
} }
?> ?>

View File

@ -49,14 +49,14 @@ class FormPropal
* @param int $short Use short labels * @param int $short Use short labels
* @return void * @return void
*/ */
function select_propal_statut($selected='',$short=0) function selectProposalStatus($selected='',$short=0)
{ {
global $langs; global $langs;
$sql = "SELECT id, code, label, active FROM ".MAIN_DB_PREFIX."c_propalst"; $sql = "SELECT id, code, label, active FROM ".MAIN_DB_PREFIX."c_propalst";
$sql .= " WHERE active = 1"; $sql .= " WHERE active = 1";
dol_syslog(get_class($this)."::select_propal_statut sql=".$sql); dol_syslog(get_class($this)."::selectProposalStatus sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {

View File

@ -721,7 +721,15 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
if (!empty($obj->town)) $coords .= $obj->town; if (!empty($obj->town)) $coords .= $obj->town;
if (!empty($obj->country_id)) $coords .= "<br>".$country_code['label']; if (!empty($obj->country_id)) $coords .= "<br>".$country_code['label'];
} }
print '<a href="#" onclick="return copyToClipboard(\''.dol_escape_js($coords).'\',\''.dol_escape_js($langs->trans("HelpCopyToClipboard")).'\');">'; else if (!empty($object->address))
{
$coords .= dol_nl2br($object->address,1,true)."<br>";
if (!empty($object->zip)) $coords .= $object->zip.' ';
if (!empty($object->town)) $coords .= $object->town;
if (!empty($object->country_id)) $coords .= "<br>".$country_code['label'];
}
// hideonsmatphone because copyToClipboard call jquery dialog that does not work with jmobile
print '<a href="#" class="hideonsmartphone" onclick="return copyToClipboard(\''.dol_escape_js($coords).'\',\''.dol_escape_js($langs->trans("HelpCopyToClipboard")).'\');">';
print img_picto($langs->trans("Address"), 'object_address.png'); print img_picto($langs->trans("Address"), 'object_address.png');
print '</a>'; print '</a>';
} }
@ -733,7 +741,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
print '<td align="center">'; print '<td align="center">';
if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
{ {
print '<a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&actioncode=AC_RDV&contactid='.$obj->rowid.'&socid='.$object->id.'&backtopage='.urlencode($backtopage).'">'; print '<a class="hideonsmartphone" href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&actioncode=AC_RDV&contactid='.$obj->rowid.'&socid='.$object->id.'&backtopage='.urlencode($backtopage).'">';
print img_object($langs->trans("Rendez-Vous"),"action_rdv"); print img_object($langs->trans("Rendez-Vous"),"action_rdv");
print '</a> '; print '</a> ';
} }
@ -768,8 +776,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
print "<br>\n"; print "<br>\n";
?> ?>
<div id="dialog" title="<?php echo dol_escape_htmltag($langs->trans('Address')); ?>" style="display: none;"> <div id="dialog" title="<?php echo dol_escape_htmltag($langs->trans('Address')); ?>" style="display: none;"></div>
</div>
<?php <?php
return $i; return $i;

View File

@ -510,6 +510,12 @@ function dol_copy($srcfile, $destfile, $newmask=0, $overwriteifexists=1)
return -3; return -3;
} }
if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK; if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK;
if (empty($newmask)) // This should no happen
{
dol_syslog("Warning: dol_copy called with empty value for newmask and no default value defined", LOG_WARNING);
$newmask='0664';
}
@chmod($newpathofdestfile, octdec($newmask)); @chmod($newpathofdestfile, octdec($newmask));
return 1; return 1;

View File

@ -1063,7 +1063,7 @@ function dol_mktime($hour,$minute,$second,$month,$day,$year,$gm=false,$check=1)
/** /**
* Return date for now. We should always use this function without parameters (that means GMT time) * Return date for now. In mot cases, we use this function without parameters (that means GMT time).
* *
* @param string $mode 'gmt' => we return GMT timestamp, * @param string $mode 'gmt' => we return GMT timestamp,
* 'tzserver' => we add the PHP server timezone * 'tzserver' => we add the PHP server timezone
@ -1073,7 +1073,7 @@ function dol_mktime($hour,$minute,$second,$month,$day,$year,$gm=false,$check=1)
*/ */
function dol_now($mode='gmt') function dol_now($mode='gmt')
{ {
// Note that gmmktime and mktime return same value (GMT) whithout parameters // Note that gmmktime and mktime return same value (GMT) when used without parameters
//if ($mode == 'gmt') $ret=gmmktime(); // Strict Standards: gmmktime(): You should be using the time() function instead //if ($mode == 'gmt') $ret=gmmktime(); // Strict Standards: gmmktime(): You should be using the time() function instead
if ($mode == 'gmt') $ret=time(); // Time for now at greenwich. if ($mode == 'gmt') $ret=time(); // Time for now at greenwich.
else if ($mode == 'tzserver') // Time for now with PHP server timezone added else if ($mode == 'tzserver') // Time for now with PHP server timezone added
@ -1088,7 +1088,7 @@ function dol_now($mode='gmt')
$tzsecond=getParentCompanyTimeZoneInt(); // Contains tz+dayling saving time $tzsecond=getParentCompanyTimeZoneInt(); // Contains tz+dayling saving time
$ret=dol_now('gmt')+($tzsecond*3600); $ret=dol_now('gmt')+($tzsecond*3600);
}*/ }*/
else if ($mode == 'tzuser') // Time for now with user timezone is added else if ($mode == 'tzuser') // Time for now with user timezone added
{ {
//print 'eeee'.time().'-'.mktime().'-'.gmmktime(); //print 'eeee'.time().'-'.mktime().'-'.gmmktime();
$offsettz=(empty($_SESSION['dol_tz'])?0:$_SESSION['dol_tz'])*60*60; $offsettz=(empty($_SESSION['dol_tz'])?0:$_SESSION['dol_tz'])*60*60;
@ -2724,6 +2724,7 @@ function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerou
if ($outlangs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$outlangs->transnoentitiesnoconv("SeparatorDecimal"); if ($outlangs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$outlangs->transnoentitiesnoconv("SeparatorDecimal");
if ($outlangs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$outlangs->transnoentitiesnoconv("SeparatorThousand"); if ($outlangs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$outlangs->transnoentitiesnoconv("SeparatorThousand");
if ($thousand == 'None') $thousand=''; if ($thousand == 'None') $thousand='';
else if ($thousand == 'Space') $thousand=' ';
//print "outlangs=".$outlangs->defaultlang." amount=".$amount." html=".$form." trunc=".$trunc." nbdecimal=".$nbdecimal." dec='".$dec."' thousand='".$thousand."'<br>"; //print "outlangs=".$outlangs->defaultlang." amount=".$amount." html=".$form." trunc=".$trunc." nbdecimal=".$nbdecimal." dec='".$dec."' thousand='".$thousand."'<br>";
//print "amount=".$amount."-"; //print "amount=".$amount."-";
@ -2799,6 +2800,7 @@ function price2num($amount,$rounding='',$alreadysqlnb=0)
if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$langs->transnoentitiesnoconv("SeparatorDecimal"); if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") $dec=$langs->transnoentitiesnoconv("SeparatorDecimal");
if ($langs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->transnoentitiesnoconv("SeparatorThousand"); if ($langs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->transnoentitiesnoconv("SeparatorThousand");
if ($thousand == 'None') $thousand=''; if ($thousand == 'None') $thousand='';
elseif ($thousand == 'Space') $thousand=' ';
//print "amount=".$amount." html=".$form." trunc=".$trunc." nbdecimal=".$nbdecimal." dec='".$dec."' thousand='".$thousand."'<br>"; //print "amount=".$amount." html=".$form." trunc=".$trunc." nbdecimal=".$nbdecimal." dec='".$dec."' thousand='".$thousand."'<br>";
// Convert value to universal number format (no thousand separator, '.' as decimal separator) // Convert value to universal number format (no thousand separator, '.' as decimal separator)
@ -4490,6 +4492,34 @@ function printCommonFooter($zone='private')
} }
/**
* Split a string with 2 keys into key array.
* For example: "A=1;B=2;C=2" is exploded into array('A'=>1,'B'=>2,'C'=>3)
*
* @param string $string String to explode
* @param string $delimiter Delimiter between each couple of data
* @param string $kv Delimiter between key and value
* @return array Array of data exploded
*/
function dolExplodeIntoArray($string, $delimiter = ';', $kv = '=')
{
if ($a = explode($delimiter, $string))
{
foreach ($a as $s) { // each part
if ($s) {
if ($pos = strpos($s, $kv)) { // key/value delimiter
$ka[trim(substr($s, 0, $pos))] = trim(substr($s, $pos + strlen($kv)));
} else { // key delimiter not found
$ka[] = trim($s);
}
}
}
return $ka;
}
return array();
}
/** /**
* Convert an array with RGB value into hex RGB value * Convert an array with RGB value into hex RGB value
* *

View File

@ -129,9 +129,9 @@ function pdf_getInstance($format='',$metric='mm',$pagetype='P')
// Protection and encryption of pdf // Protection and encryption of pdf
if (empty($conf->global->MAIN_USE_FPDF) && ! empty($conf->global->PDF_SECURITY_ENCRYPTION)) if (empty($conf->global->MAIN_USE_FPDF) && ! empty($conf->global->PDF_SECURITY_ENCRYPTION))
{ {
/* Permission supported by TCPDF /* Permission supported by TCPDF
- print : Print the document; - print : Print the document;
- modify : Modify the contents of the document by operations other than those controlled by 'fill-forms', 'extract' and 'assemble'; - modify : Modify the contents of the document by operations other than those controlled by 'fill-forms', 'extract' and 'assemble';
- copy : Copy or otherwise extract text and graphics from the document; - copy : Copy or otherwise extract text and graphics from the document;
- annot-forms : Add or modify text annotations, fill in interactive form fields, and, if 'modify' is also set, create or modify interactive form fields (including signature fields); - annot-forms : Add or modify text annotations, fill in interactive form fields, and, if 'modify' is also set, create or modify interactive form fields (including signature fields);
@ -146,8 +146,8 @@ function pdf_getInstance($format='',$metric='mm',$pagetype='P')
// For TCPDF, we specify permission we want to block // For TCPDF, we specify permission we want to block
$pdfrights = array('modify','copy'); $pdfrights = array('modify','copy');
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final $pdfuserpass = ''; // Password for the end user
$pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini $pdfownerpass = NULL; // Password of the owner, created randomly if not defined
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
} }
else else
@ -161,8 +161,8 @@ function pdf_getInstance($format='',$metric='mm',$pagetype='P')
{ {
// Declare here a class to overwrite FPDI to add method writeHTMLCell // Declare here a class to overwrite FPDI to add method writeHTMLCell
/** /**
* This class if a enhanced FPDI class that support method writeHTMLCell * This class if a enhanced FPDI class that support method writeHTMLCell
*/ */
class FPDI_DolExtended extends FPDI class FPDI_DolExtended extends FPDI
{ {
/** /**
@ -259,7 +259,7 @@ function pdf_getPDFFontSize($outputlangs)
/** /**
* Return height to use for Logo onot PDF * Return height to use for Logo onto PDF
* *
* @param string $logo Full path to logo file to use * @param string $logo Full path to logo file to use
* @param bool $url Image with url (true or false) * @param bool $url Image with url (true or false)
@ -312,7 +312,7 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target
if (empty($conf->global->MAIN_PDF_DISABLESOURCEDETAILS)) if (empty($conf->global->MAIN_PDF_DISABLESOURCEDETAILS))
{ {
// Tel // Phone
if ($sourcecompany->phone) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Phone").": ".$outputlangs->convToOutputCharset($sourcecompany->phone); if ($sourcecompany->phone) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Phone").": ".$outputlangs->convToOutputCharset($sourcecompany->phone);
// Fax // Fax
if ($sourcecompany->fax) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($sourcecompany->fax); if ($sourcecompany->fax) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($sourcecompany->fax);
@ -345,7 +345,7 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target
if (! empty($conf->global->MAIN_PDF_ADDALSOTARGETDETAILS)) if (! empty($conf->global->MAIN_PDF_ADDALSOTARGETDETAILS))
{ {
// Tel // Phone
if ($targetcontact->phone_pro) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Phone").": ".$outputlangs->convToOutputCharset($targetcontact->phone_pro); if ($targetcontact->phone_pro) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Phone").": ".$outputlangs->convToOutputCharset($targetcontact->phone_pro);
// Fax // Fax
if ($targetcontact->fax) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($targetcontact->fax); if ($targetcontact->fax) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($targetcontact->fax);
@ -363,7 +363,7 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target
if (! empty($conf->global->MAIN_PDF_ADDALSOTARGETDETAILS)) if (! empty($conf->global->MAIN_PDF_ADDALSOTARGETDETAILS))
{ {
// Tel // Phone
if ($targetcompany->phone) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Phone").": ".$outputlangs->convToOutputCharset($targetcompany->phone); if ($targetcompany->phone) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Phone").": ".$outputlangs->convToOutputCharset($targetcompany->phone);
// Fax // Fax
if ($targetcompany->fax) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($targetcompany->fax); if ($targetcompany->fax) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($targetcompany->fax);
@ -411,7 +411,7 @@ function pdf_build_address($outputlangs,$sourcecompany,$targetcompany='',$target
{ {
$stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset(dol_format_address($deliverycompany))."\n"; $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->convToOutputCharset(dol_format_address($deliverycompany))."\n";
// Tel // Phone
if ($deliverycompany->phone) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Phone").": ".$outputlangs->convToOutputCharset($deliverycompany->phone); if ($deliverycompany->phone) $stringaddress .= ($stringaddress ? "\n" : '' ).$outputlangs->transnoentities("Phone").": ".$outputlangs->convToOutputCharset($deliverycompany->phone);
// Fax // Fax
if ($deliverycompany->fax) $stringaddress .= ($stringaddress ? ($deliverycompany->phone ? " - " : "\n") : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($deliverycompany->fax); if ($deliverycompany->fax) $stringaddress .= ($stringaddress ? ($deliverycompany->phone ? " - " : "\n") : '' ).$outputlangs->transnoentities("Fax").": ".$outputlangs->convToOutputCharset($deliverycompany->fax);
@ -447,7 +447,7 @@ function pdf_pagehead(&$pdf,$outputlangs,$page_height)
* @param Translate $outputlangs Object lang * @param Translate $outputlangs Object lang
* @param int $h Height of PDF * @param int $h Height of PDF
* @param int $w Width of PDF * @param int $w Width of PDF
* @param string $unit Unit of height (mmn, pt, ...) * @param string $unit Unit of height (mm, pt, ...)
* @param string $text Text to show * @param string $text Text to show
* @return void * @return void
*/ */
@ -783,7 +783,7 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass
$pdf->SetFont('','',7); $pdf->SetFont('','',7);
$pdf->SetDrawColor(224,224,224); $pdf->SetDrawColor(224,224,224);
// On positionne le debut du bas de page selon nbre de lignes de ce bas de page // The start of the bottom of this page footer is positioned according to # of lines
$freetextheight=0; $freetextheight=0;
if ($line) // Free text if ($line) // Free text
{ {
@ -901,7 +901,7 @@ function pdf_writeLinkedObjects(&$pdf,$object,$outputlangs,$posx,$posy,$w,$h,$al
* @param int $posx Pos x * @param int $posx Pos x
* @param int $posy Pos y * @param int $posy Pos y
* @param int $hideref Hide reference * @param int $hideref Hide reference
* @param int $hidedesc Hide description * @param int $hidedesc Hide description
* @param int $issupplierline Is it a line for a supplier object ? * @param int $issupplierline Is it a line for a supplier object ?
* @return void * @return void
*/ */
@ -1015,7 +1015,7 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
// If line linked to a product // If line linked to a product
if ($idprod) if ($idprod)
{ {
// On ajoute la ref // We add ref
if ($prodser->ref) if ($prodser->ref)
{ {
$prefix_prodserv = ""; $prefix_prodserv = "";

View File

@ -133,7 +133,7 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature
// More parameters // More parameters
$params = explode('&', $dbtablename); $params = explode('&', $dbtablename);
$dbtablename=(! empty($params[0]) ? $params[0] : ''); $dbtablename=(! empty($params[0]) ? $params[0] : '');
$sharedelement=(! empty($params[1]) ? $params[1] : ''); $sharedelement=(! empty($params[1]) ? $params[1] : $dbtablename);
$listofmodules=explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL); $listofmodules=explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL);

View File

@ -102,6 +102,7 @@ function tree_showpad(&$fulltree,$key,$silent=0)
* $arrayofjs=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js', * $arrayofjs=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js',
* '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js'); * '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js');
* $arrayofcss=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.css'); * $arrayofcss=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.css');
* TODO Replace with jstree plugin instead of treeview plugin.
* *
* @param array $tab Array of all elements * @param array $tab Array of all elements
* @param int $pere Array with parent ids ('rowid'=>,'mainmenu'=>,'leftmenu'=>,'fk_mainmenu=>,'fk_leftmenu=>) * @param int $pere Array with parent ids ('rowid'=>,'mainmenu'=>,'leftmenu'=>,'fk_mainmenu=>,'fk_leftmenu=>)

View File

@ -1283,7 +1283,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
{ {
for ($j=0; $j < $tabul; $j++) for ($j=0; $j < $tabul; $j++)
{ {
$tabstring.='&nbsp; &nbsp;'; $tabstring.='&nbsp; &nbsp; &nbsp;';
} }
} }

View File

@ -222,7 +222,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0); if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0);
else else
{ {
$tmpfiles=dol_dir_list($tmpdir,'files',0,'\.odt'); $tmpfiles=dol_dir_list($tmpdir,'files',0,'\.(ods|odt)');
if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles); if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles);
} }
} }
@ -232,34 +232,24 @@ class doc_generic_order_odt extends ModelePDFCommandes
$texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it $texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it
$texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1); $texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1);
$texte.= '<table><tr><td>'; $texte.= '<div><div style="display: inline-block; min-width: 100px; vertical-align: middle;">';
$texte.= '<textarea class="flat" cols="60" name="value1">'; $texte.= '<textarea class="flat" cols="60" name="value1">';
$texte.=$conf->global->COMMANDE_ADDON_PDF_ODT_PATH; $texte.=$conf->global->COMMANDE_ADDON_PDF_ODT_PATH;
$texte.= '</textarea>'; $texte.= '</textarea>';
$texte.= '</td>'; $texte.= '</div><div style="display: inline-block; vertical-align: middle;">';
$texte.= '<td align="center">&nbsp; ';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">'; $texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>'; $texte.= '<br></div></div>';
$texte.= '</tr>';
$texte.= '</table>';
// Scan directories // Scan directories
if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>'; if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>';
$texte.= '</td>'; $texte.= '</td>';
$texte.= '<td valign="top" rowspan="2" class="hideonsmartphone">';
$texte.= '<td valign="top" rowspan="2">';
$texte.= $langs->trans("ExampleOfDirectoriesForModelGen"); $texte.= $langs->trans("ExampleOfDirectoriesForModelGen");
$texte.= '</td>'; $texte.= '</td>';
$texte.= '</tr>'; $texte.= '</tr>';
/*$texte.= '<tr>';
$texte.= '<td align="center">';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>';
$texte.= '</tr>';*/
$texte.= '</table>'; $texte.= '</table>';
$texte.= '</form>'; $texte.= '</form>';

View File

@ -605,20 +605,6 @@ class pdf_einstein extends ModelePDFCommandes
$posy=$pdf->GetY()+1; $posy=$pdf->GetY()+1;
} }
*/ */
/*if (! empty($object->date_livraison))
{
$pdf->SetXY($this->marge_gauche, $posy);
$pdf->SetFont('','B', $default_font_size - 2);
$text=$outputlangs->transnoentities("DeliveryDate").':';
$pdf->MultiCell(80, 3, $text, 0, 'L', 0);
$pdf->SetFont('','', $default_font_size - 2);
$pdf->SetXY($posxval, $posy);
$text=dol_print_date($object->date_livraison,'day','',$outputlangs);
$pdf->MultiCell(80, 3, $text, 0, 'L', 0);
$posy=$pdf->GetY()+1;
}*/
/* TODO /* TODO
else if (! empty($object->availability_code)) else if (! empty($object->availability_code))
{ {
@ -631,8 +617,8 @@ class pdf_einstein extends ModelePDFCommandes
$posy=$pdf->GetY()+1; $posy=$pdf->GetY()+1;
}*/ }*/
// Show shipping date // Show planed date of delivery
if ($object->date_livraison) if (! empty($object->date_livraison))
{ {
$outputlangs->load("sendings"); $outputlangs->load("sendings");
$pdf->SetFont('','B', $default_font_size - 2); $pdf->SetFont('','B', $default_font_size - 2);

View File

@ -212,7 +212,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0); if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0);
else else
{ {
$tmpfiles=dol_dir_list($tmpdir,'files',0,'\.odt'); $tmpfiles=dol_dir_list($tmpdir,'files',0,'\.(ods|odt)');
if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles); if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles);
} }
} }
@ -222,34 +222,24 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
$texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it $texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it
$texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1); $texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1);
$texte.= '<table><tr><td>'; $texte.= '<div><div style="display: inline-block; min-width: 100px; vertical-align: middle;">';
$texte.= '<textarea class="flat" cols="60" name="value1">'; $texte.= '<textarea class="flat" cols="60" name="value1">';
$texte.=$conf->global->EXPEDITION_ADDON_PDF_ODT_PATH; $texte.=$conf->global->EXPEDITION_ADDON_PDF_ODT_PATH;
$texte.= '</textarea>'; $texte.= '</textarea>';
$texte.= '</td>'; $texte.= '</div><div style="display: inline-block; vertical-align: middle;">';
$texte.= '<td align="center">&nbsp; ';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">'; $texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>'; $texte.= '<br></div></div>';
$texte.= '</tr>';
$texte.= '</table>';
// Scan directories // Scan directories
if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>'; if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>';
$texte.= '</td>'; $texte.= '</td>';
$texte.= '<td valign="top" rowspan="2" class="hideonsmartphone">';
$texte.= '<td valign="top" rowspan="2">';
$texte.= $langs->trans("ExampleOfDirectoriesForModelGen"); $texte.= $langs->trans("ExampleOfDirectoriesForModelGen");
$texte.= '</td>'; $texte.= '</td>';
$texte.= '</tr>'; $texte.= '</tr>';
/*$texte.= '<tr>';
$texte.= '<td align="center">';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>';
$texte.= '</tr>';*/
$texte.= '</table>'; $texte.= '</table>';
$texte.= '</form>'; $texte.= '</form>';

View File

@ -223,7 +223,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
$texte.= '<table class="nobordernopadding" width="100%">'; $texte.= '<table class="nobordernopadding" width="100%">';
// List of directories area // List of directories area
$texte.= '<tr><td>'; $texte.= '<tr><td valign="middle">';
$texttitle=$langs->trans("ListOfDirectories"); $texttitle=$langs->trans("ListOfDirectories");
$listofdir=explode(',',preg_replace('/[\r\n]+/',',',trim($conf->global->FACTURE_ADDON_PDF_ODT_PATH))); $listofdir=explode(',',preg_replace('/[\r\n]+/',',',trim($conf->global->FACTURE_ADDON_PDF_ODT_PATH)));
$listoffiles=array(); $listoffiles=array();
@ -247,34 +247,24 @@ class doc_generic_invoice_odt extends ModelePDFFactures
$texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it $texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it
$texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1); $texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1);
$texte.= '<table><tr><td>'; $texte.= '<div><div style="display: inline-block; min-width: 100px; vertical-align: middle;">';
$texte.= '<textarea class="flat" cols="60" name="value1">'; $texte.= '<textarea class="flat" cols="60" name="value1">';
$texte.=$conf->global->FACTURE_ADDON_PDF_ODT_PATH; $texte.=$conf->global->FACTURE_ADDON_PDF_ODT_PATH;
$texte.= '</textarea>'; $texte.= '</textarea>';
$texte.= '</td>'; $texte.= '</div><div style="display: inline-block; vertical-align: middle;">';
$texte.= '<td align="center">&nbsp; ';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">'; $texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>'; $texte.= '<br></div></div>';
$texte.= '</tr>';
$texte.= '</table>';
// Scan directories // Scan directories
if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>'; if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>';
$texte.= '</td>'; $texte.= '</td>';
$texte.= '<td valign="top" rowspan="2" class="hideonsmartphone">';
$texte.= '<td valign="top" rowspan="2">';
$texte.= $langs->trans("ExampleOfDirectoriesForModelGen"); $texte.= $langs->trans("ExampleOfDirectoriesForModelGen");
$texte.= '</td>'; $texte.= '</td>';
$texte.= '</tr>'; $texte.= '</tr>';
/*$texte.= '<tr>';
$texte.= '<td align="center">';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>';
$texte.= '</tr>';*/
$texte.= '</table>'; $texte.= '</table>';
$texte.= '</form>'; $texte.= '</form>';

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org> * Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
@ -184,12 +184,6 @@ class modProjet extends DolibarrModules
$this->export_permission[$r]=array(array("projet","export")); $this->export_permission[$r]=array(array("projet","export"));
$this->export_dependencies_array[$r]=array('task_time'=>'ppt.rowid'); $this->export_dependencies_array[$r]=array('task_time'=>'ppt.rowid');
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country',
's.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode',
'p.rowid'=>"ProjectId",'p.ref'=>"RefProject",'p.datec'=>"DateCreation",'p.dateo'=>"DateStart",'p.datee'=>"DateEnd",'p.fk_statut'=>'Status','p.description'=>"Description",
'pt.rowid'=>'RefTask','pt.dateo'=>"TaskDateStart",'pt.datee'=>"TaskDateEnd",'pt.duration_effective'=>"DurationEffective",'pt.planned_workload'=>"PlannedWorkload",'pt.progress'=>"Progress",'pt.description'=>"TaskDescription",
'ptt.task_date'=>'TaskTimeDate','ptt.task_duration'=>"TimesSpent",'ptt.fk_user'=>"TaskTimeUser",'ptt.note'=>"TaskTimeNote");
$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','s.fk_pays'=>'List:c_pays:libelle', $this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','s.fk_pays'=>'List:c_pays:libelle',
's.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text', 's.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text',
'p.rowid'=>"List:projet:ref",'p.ref'=>"Text",'p.datec'=>"Date",'p.dateo'=>"Date",'p.datee'=>"Date",'p.fk_statut'=>'Status','p.description'=>"Text", 'p.rowid'=>"List:projet:ref",'p.ref'=>"Text",'p.datec'=>"Date",'p.dateo'=>"Date",'p.datee'=>"Date",'p.fk_statut'=>'Status','p.description'=>"Text",
@ -198,15 +192,96 @@ class modProjet extends DolibarrModules
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company', $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company',
's.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company', 's.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company',
'p.rowid'=>"project",'p.ref'=>"project",'p.datec'=>"project",'p.dateo'=>"project",'p.datee'=>"project",'p.duree'=>"project",'p.fk_statut'=>"project",'p.description'=>"project", 'p.rowid'=>"project",'p.ref'=>"project",'p.datec'=>"project",'p.dateo'=>"project",'p.datee'=>"project",'p.duree'=>"project",'p.fk_statut'=>"project",'p.description'=>"project");
'pt.rowid'=>'projecttask','pt.dateo'=>"projecttask",'pt.datee'=>"projecttask",'pt.duration_effective'=>"projecttask",'pt.planned_workload'=>"projecttask",'pt.progress'=>"projecttask",'pt.description'=>"projecttask",
'ptt.task_date'=>'task_time','ptt.task_duration'=>"task_time",'ptt.fk_user'=>"task_time",'ptt.note'=>"task_time");
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country',
$this->export_sql_start[$r]='SELECT DISTINCT '; 's.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode',
$this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'projet as p, '.MAIN_DB_PREFIX.'societe as s)'; 'p.rowid'=>"ProjectId",'p.ref'=>"RefProject",'p.datec'=>"DateCreation",'p.dateo'=>"DateStart",'p.datee'=>"DateEnd",'p.fk_statut'=>'Status','p.description'=>"Description");
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX."projet_task as pt ON (p.rowid = pt.fk_projet)";
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX."projet_task_time as ptt ON (pt.rowid = ptt.fk_task)"; // Add fields for project
$this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array());
// Add extra fields
$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'projet'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{
while ($obj=$this->db->fetch_object($resql))
{
$fieldname='extra.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='project';
}
}
// End add extra fields
// Add fields for tasks
$this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pt.rowid'=>'RefTask','pt.dateo'=>"TaskDateStart",'pt.datee'=>"TaskDateEnd",'pt.duration_effective'=>"DurationEffective",'pt.planned_workload'=>"PlannedWorkload",'pt.progress'=>"Progress",'pt.description'=>"TaskDescription"));
$this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('pt.rowid'=>'projecttask','pt.dateo'=>"projecttask",'pt.datee'=>"projecttask",'pt.duration_effective'=>"projecttask",'pt.planned_workload'=>"projecttask",'pt.progress'=>"projecttask",'pt.description'=>"projecttask"));
// Add extra fields
$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'projet_task'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{
while ($obj=$this->db->fetch_object($resql))
{
$fieldname='extra2.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='projecttask';
}
}
// End add extra fields
$this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('ptt.task_date'=>'TaskTimeDate','ptt.task_duration'=>"TimesSpent",'ptt.fk_user'=>"TaskTimeUser",'ptt.note'=>"TaskTimeNote"));
$this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('ptt.task_date'=>'task_time','ptt.task_duration'=>"task_time",'ptt.fk_user'=>"task_time",'ptt.note'=>"task_time"));
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'projet as p';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'projet_extrafields as extra ON p.rowid = extra.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX."projet_task as pt ON p.rowid = pt.fk_projet";
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'projet_task_extrafields as extra2 ON pt.rowid = extra2.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX."projet_task_time as ptt ON pt.rowid = ptt.fk_task,";
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'societe as s';
$this->export_sql_end[$r] .=' WHERE p.fk_soc = s.rowid'; $this->export_sql_end[$r] .=' WHERE p.fk_soc = s.rowid';
$this->export_sql_end[$r] .=' AND p.entity = '.$conf->entity; $this->export_sql_end[$r] .=' AND p.entity = '.$conf->entity;
@ -228,6 +303,47 @@ class modProjet extends DolibarrModules
// Permissions // Permissions
$this->remove($options); $this->remove($options);
//ODT template for project
$src=DOL_DOCUMENT_ROOT.'/install/doctemplates/projects/template_project.odt';
$dirodt=DOL_DATA_ROOT.'/doctemplates/projects';
$dest=$dirodt.'/template_project.odt';
if (file_exists($src) && ! file_exists($dest))
{
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
dol_mkdir($dirodt);
$result=dol_copy($src,$dest,0,0);
if ($result < 0)
{
$langs->load("errors");
$this->error=$langs->trans('ErrorFailToCopyFile',$src,$dest);
return 0;
}
}
//ODT template for tasks
$src=DOL_DOCUMENT_ROOT.'/install/doctemplates/tasks/template_task_summary.odt';
$dirodt=DOL_DATA_ROOT.'/doctemplates/tasks';
$dest=$dirodt.'/template_task_summary.odt';
if (file_exists($src) && ! file_exists($dest))
{
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
dol_mkdir($dirodt);
$result=dol_copy($src,$dest,0,0);
if ($result < 0)
{
$langs->load("errors");
$this->error=$langs->trans('ErrorFailToCopyFile',$src,$dest);
return 0;
}
}
$sql = array(
"DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->const[0][2]."' AND entity = ".$conf->entity,
"INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->const[0][2]."','invoice',".$conf->entity.")"
);
$sql = array( $sql = array(
"DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->const[0][2]."' AND entity = ".$conf->entity, "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->const[0][2]."' AND entity = ".$conf->entity,
"INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->const[0][2]."','project',".$conf->entity.")", "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->const[0][2]."','project',".$conf->entity.")",

View File

@ -322,7 +322,7 @@ class doc_generic_project_odt extends ModelePDFProjects
if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0); if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0);
else else
{ {
$tmpfiles=dol_dir_list($tmpdir,'files',0,'\.odt'); $tmpfiles=dol_dir_list($tmpdir,'files',0,'\.(ods|odt)');
if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles); if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles);
} }
} }
@ -332,34 +332,24 @@ class doc_generic_project_odt extends ModelePDFProjects
$texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it $texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it
$texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1); $texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1);
$texte.= '<table><tr><td>'; $texte.= '<div><div style="display: inline-block; min-width: 100px; vertical-align: middle;">';
$texte.= '<textarea class="flat" cols="60" name="value1">'; $texte.= '<textarea class="flat" cols="60" name="value1">';
$texte.=$conf->global->PROJECT_ADDON_PDF_ODT_PATH; $texte.=$conf->global->PROJECT_ADDON_PDF_ODT_PATH;
$texte.= '</textarea>'; $texte.= '</textarea>';
$texte.= '</td>'; $texte.= '</div><div style="display: inline-block; vertical-align: middle;">';
$texte.= '<td align="center">&nbsp; ';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">'; $texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>'; $texte.= '<br></div></div>';
$texte.= '</tr>';
$texte.= '</table>';
// Scan directories // Scan directories
if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>'; if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>';
$texte.= '</td>'; $texte.= '</td>';
$texte.= '<td valign="top" rowspan="2" class="hideonsmartphone">';
$texte.= '<td valign="top" rowspan="2">';
$texte.= $langs->trans("ExampleOfDirectoriesForModelGen"); $texte.= $langs->trans("ExampleOfDirectoriesForModelGen");
$texte.= '</td>'; $texte.= '</td>';
$texte.= '</tr>'; $texte.= '</tr>';
/*$texte.= '<tr>';
$texte.= '<td align="center">';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>';
$texte.= '</tr>';*/
$texte.= '</table>'; $texte.= '</table>';
$texte.= '</form>'; $texte.= '</form>';

View File

@ -111,7 +111,7 @@ abstract class ModeleNumRefTask
/** /**
* Renvoi prochaine valeur attribuee * Renvoi prochaine valeur attribuee
* *
* @param Societe $objsoc Object third party * @param Societe $objsoc Object third party
* @param Project $project Object project * @param Project $project Object project
* @return string Valeur * @return string Valeur
@ -171,7 +171,7 @@ function task_pdf_create($db, $object, $modele, $outputlangs, $hidedetails=0, $h
} }
else else
{ {
$modele='baleine'; $modele='nodefault';
} }
} }
@ -194,7 +194,7 @@ function task_pdf_create($db, $object, $modele, $outputlangs, $hidedetails=0, $h
$file = $prefix."_".$modele.".modules.php"; $file = $prefix."_".$modele.".modules.php";
// On verifie l'emplacement du modele // On verifie l'emplacement du modele
$file=dol_buildpath($reldir."core/modules/project/pdf/".$file,0); $file=dol_buildpath($reldir."core/modules/project/task/pdf/".$file,0);
if (file_exists($file)) if (file_exists($file))
{ {
$filefound=1; $filefound=1;

View File

@ -323,7 +323,7 @@ class doc_generic_task_odt extends ModelePDFTask
if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0); if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0);
else else
{ {
$tmpfiles=dol_dir_list($tmpdir,'files',0,'\.odt'); $tmpfiles=dol_dir_list($tmpdir,'files',0,'\.(ods|odt)');
if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles); if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles);
} }
} }
@ -333,34 +333,24 @@ class doc_generic_task_odt extends ModelePDFTask
$texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it $texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it
$texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1); $texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1);
$texte.= '<table><tr><td>'; $texte.= '<div><div style="display: inline-block; min-width: 100px; vertical-align: middle;">';
$texte.= '<textarea class="flat" cols="60" name="value1">'; $texte.= '<textarea class="flat" cols="60" name="value1">';
$texte.=$conf->global->PROJECT_TASK_ADDON_PDF_ODT_PATH; $texte.=$conf->global->PROJECT_TASK_ADDON_PDF_ODT_PATH;
$texte.= '</textarea>'; $texte.= '</textarea>';
$texte.= '</td>'; $texte.= '</div><div style="display: inline-block; vertical-align: middle;">';
$texte.= '<td align="center">&nbsp; ';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">'; $texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>'; $texte.= '<br></div></div>';
$texte.= '</tr>';
$texte.= '</table>';
// Scan directories // Scan directories
if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>'; if (count($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>';
$texte.= '</td>'; $texte.= '</td>';
$texte.= '<td valign="top" rowspan="2" class="hideonsmartphone">';
$texte.= '<td valign="top" rowspan="2">';
$texte.= $langs->trans("ExampleOfDirectoriesForModelGen"); $texte.= $langs->trans("ExampleOfDirectoriesForModelGen");
$texte.= '</td>'; $texte.= '</td>';
$texte.= '</tr>'; $texte.= '</tr>';
/*$texte.= '<tr>';
$texte.= '<td align="center">';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>';
$texte.= '</tr>';*/
$texte.= '</table>'; $texte.= '</table>';
$texte.= '</form>'; $texte.= '</form>';
@ -431,7 +421,7 @@ class doc_generic_task_odt extends ModelePDFTask
{ {
//print "srctemplatepath=".$srctemplatepath; // Src filename //print "srctemplatepath=".$srctemplatepath; // Src filename
$newfile=basename($srctemplatepath); $newfile=basename($srctemplatepath);
$newfiletmp=preg_replace('/\.odt/i','',$newfile); $newfiletmp=preg_replace('/\.(ods|odt)/i','',$newfile);
$newfiletmp=preg_replace('/template_/i','',$newfiletmp); $newfiletmp=preg_replace('/template_/i','',$newfiletmp);
$newfiletmp=preg_replace('/modele_/i','',$newfiletmp); $newfiletmp=preg_replace('/modele_/i','',$newfiletmp);
$newfiletmp=$objectref.'_'.$newfiletmp; $newfiletmp=$objectref.'_'.$newfiletmp;
@ -536,7 +526,6 @@ class doc_generic_task_odt extends ModelePDFTask
else // Text else // Text
{ {
$odfHandler->setVars($key, $value, true, 'UTF-8'); $odfHandler->setVars($key, $value, true, 'UTF-8');
$odfHandler->setVarsHeadFooter($key, $value, true, 'UTF-8');
} }
} }
catch(OdfException $e) catch(OdfException $e)

View File

@ -129,7 +129,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0); if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0);
else else
{ {
$tmpfiles=dol_dir_list($tmpdir,'files',0,'\.odt'); $tmpfiles=dol_dir_list($tmpdir,'files',0,'\.(ods|odt)');
if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles); if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles);
} }
} }
@ -139,17 +139,14 @@ class doc_generic_proposal_odt extends ModelePDFPropales
$texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it $texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it
$texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1); $texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1);
$texte.= '<table><tr><td>'; $texte.= '<div><div style="display: inline-block; min-width: 100px; vertical-align: middle;">';
$texte.= '<textarea class="flat" cols="60" name="value1">'; $texte.= '<textarea class="flat" cols="60" name="value1">';
$texte.=$conf->global->PROPALE_ADDON_PDF_ODT_PATH; $texte.=$conf->global->PROPALE_ADDON_PDF_ODT_PATH;
$texte.= '</textarea>'; $texte.= '</textarea>';
$texte.= '</td>'; $texte.= '</div><div style="display: inline-block; vertical-align: middle;">';
$texte.= '<td align="center">&nbsp; ';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">'; $texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>'; $texte.= '<br></div></div>';
$texte.= '</tr>';
$texte.= '</table>';
// Scan directories // Scan directories
if (count($listofdir)) if (count($listofdir))
{ {
@ -181,22 +178,13 @@ class doc_generic_proposal_odt extends ModelePDFPropales
} }
} }
$texte.= '</td>'; $texte.= '</td>';
$texte.= '<td valign="top" rowspan="2" class="hideonsmartphone">';
$texte.= '<td valign="top" rowspan="2">';
$texte.= $langs->trans("ExampleOfDirectoriesForModelGen"); $texte.= $langs->trans("ExampleOfDirectoriesForModelGen");
$texte.= '</td>'; $texte.= '</td>';
$texte.= '</tr>'; $texte.= '</tr>';
/*$texte.= '<tr>';
$texte.= '<td align="center">';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>';
$texte.= '</tr>';*/
$texte.= '</table>'; $texte.= '</table>';
$texte.= '</form>'; $texte.= '</form>';

View File

@ -135,17 +135,11 @@ class doc_generic_odt extends ModeleThirdPartyDoc
$texte.= '</td>'; $texte.= '</td>';
$texte.= '<td valign="top" rowspan="2" class="hideonsmartphone">';
$texte.= '<td valign="top" rowspan="2">';
$texte.= $langs->trans("ExampleOfDirectoriesForModelGen"); $texte.= $langs->trans("ExampleOfDirectoriesForModelGen");
$texte.= '</td>'; $texte.= '</td>';
$texte.= '</tr>'; $texte.= '</tr>';
/*$texte.= '<tr><td align="center">';
$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
$texte.= '</td>';
$texte.= '</tr>';*/
$texte.= '</table>'; $texte.= '</table>';
$texte.= '</form>'; $texte.= '</form>';

View File

@ -990,7 +990,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
else else
{ {
$pdf->SetTextColor(255,0,0); $pdf->SetTextColor(255,0,0);
$pdf->MultiCell(100, 3, strtolower($outputlangs->transnoentities("OrderToProcess")), '', 'R'); $pdf->MultiCell(100, 3, $outputlangs->transnoentities("OrderToProcess"), '', 'R');
} }
$posy+=2; $posy+=2;

View File

@ -633,14 +633,12 @@ class InterfaceActionsAuto
$ok=1; $ok=1;
} }
// If not found // The trigger was enabled but we are missing the implementation, let the log know
/* else
else {
{ dol_syslog("Trigger '".$this->name."' for action '$action' was ran by ".__FILE__." but no handler found for this action.", LOG_WARNING);
dol_syslog("Trigger '".$this->name."' for action '$action' was ran by ".__FILE__." but no handler found for this action.");
return 0; return 0;
} }
*/
// Add entry in event table // Add entry in event table
if ($ok) if ($ok)

View File

@ -142,7 +142,7 @@ class InterfaceMailmanSpipsynchro
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
// We add subscription if we change category (new category may means more mailing-list to subscribe) // We add subscription if we change category (new category may means more mailing-list to subscribe)
if ($object->linkto->add_to_abo() < 0) if (is_object($object->linkto) && method_exists($object->linkto, 'add_to_abo') && $object->linkto->add_to_abo() < 0)
{ {
$this->error=$object->linkto->error; $this->error=$object->linkto->error;
$this->errors=$object->linkto->errors; $this->errors=$object->linkto->errors;
@ -160,7 +160,7 @@ class InterfaceMailmanSpipsynchro
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id); dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
// We remove subscription if we change category (lessw category may means less mailing-list to subscribe) // We remove subscription if we change category (lessw category may means less mailing-list to subscribe)
if ($object->unlinkoff->del_to_abo() < 0) if (is_object($object->unlinkoff) && method_exists($object->unlinkoff, 'del_to_abo') && $object->unlinkoff->del_to_abo() < 0)
{ {
$this->error=$object->unlinkoff->error; $this->error=$object->unlinkoff->error;
$this->errors=$object->unlinkoff->errors; $this->errors=$object->unlinkoff->errors;

View File

@ -303,11 +303,13 @@ if (($action=="create") || ($action=="edit"))
print "<tr><td>"; print "<tr><td>";
print $langs->trans('CronHourStart')."</td><td>"; print $langs->trans('CronHourStart')."</td><td>";
if(!empty($object->datestart)){ if(!empty($object->datestart))
{
$form->select_date($object->datestart,'datestart',1,1,'',"cronform"); $form->select_date($object->datestart,'datestart',1,1,'',"cronform");
} }
else{ else
$form->select_date(dol_now(),'datestart',1,1,'',"cronform"); {
$form->select_date('','datestart',1,1,'',"cronform");
} }
print "</td>"; print "</td>";
print "<td>"; print "<td>";

View File

@ -856,47 +856,48 @@ if ($action == 'create')
if (($line->product_type == 1 && empty($conf->global->STOCK_SUPPORTS_SERVICES)) || $defaultqty < 0) $defaultqty=0; if (($line->product_type == 1 && empty($conf->global->STOCK_SUPPORTS_SERVICES)) || $defaultqty < 0) $defaultqty=0;
} }
if (empty($conf->productbatch->enabled) || ! ($product->hasbatch() and is_array($product->stock_warehouse[GETPOST('entrepot_id','int')] ))) { if (empty($conf->productbatch->enabled) || ! ($product->hasbatch() and is_array($product->stock_warehouse[GETPOST('entrepot_id','int')])))
// Quantity to send {
print '<td align="center">'; // Quantity to send
if ($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)) print '<td align="center">';
{ if ($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
print '<input name="idl'.$indiceAsked.'" type="hidden" value="'.$line->id.'">'; {
print '<input name="qtyl'.$indiceAsked.'" id="qtyl'.$indiceAsked.'" type="text" size="4" value="'.$defaultqty.'">'; print '<input name="idl'.$indiceAsked.'" type="hidden" value="'.$line->id.'">';
} print '<input name="qtyl'.$indiceAsked.'" id="qtyl'.$indiceAsked.'" type="text" size="4" value="'.$defaultqty.'">';
else print $langs->trans("NA"); }
print '</td>'; else print $langs->trans("NA");
print '</td>';
// Stock
if (! empty($conf->stock->enabled)) // Stock
{ if (! empty($conf->stock->enabled))
print '<td align="left">'; {
if ($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)) print '<td align="left">';
{ if ($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
// Show warehouse combo list {
$ent = "entl".$indiceAsked; // Show warehouse combo list
$idl = "idl".$indiceAsked; $ent = "entl".$indiceAsked;
$tmpentrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):GETPOST('entrepot_id','int'); $idl = "idl".$indiceAsked;
print $formproduct->selectWarehouses($tmpentrepot_id,'entl'.$indiceAsked,'',1,0,$line->fk_product); $tmpentrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):GETPOST('entrepot_id','int');
if ($tmpentrepot_id > 0 && $tmpentrepot_id == GETPOST('entrepot_id','int')) print $formproduct->selectWarehouses($tmpentrepot_id,'entl'.$indiceAsked,'',1,0,$line->fk_product);
{ if ($tmpentrepot_id > 0 && $tmpentrepot_id == GETPOST('entrepot_id','int'))
//print $stock.' '.$quantityToBeDelivered; {
if ($stock < $quantityToBeDelivered) //print $stock.' '.$quantityToBeDelivered;
{ if ($stock < $quantityToBeDelivered)
print ' '.img_warning($langs->trans("StockTooLow")); // Stock too low for entrepot_id but we may have change warehouse {
} print ' '.img_warning($langs->trans("StockTooLow")); // Stock too low for entrepot_id but we may have change warehouse
} }
} }
else }
{ else
print $langs->trans("Service"); {
} print $langs->trans("Service");
print '</td>'; }
} print '</td>';
}
print "</tr>\n";
print "</tr>\n";
// Show subproducts of product
// Show subproducts of product
if (! empty($conf->global->PRODUIT_SOUSPRODUITS) && $line->fk_product > 0) if (! empty($conf->global->PRODUIT_SOUSPRODUITS) && $line->fk_product > 0)
{ {
$product->get_sousproduits_arbo(); $product->get_sousproduits_arbo();

View File

@ -45,6 +45,8 @@ class CommandeFournisseur extends CommonOrder
public $fk_element = 'fk_commande'; public $fk_element = 'fk_commande';
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
var $id;
var $ref; // TODO deprecated var $ref; // TODO deprecated
var $product_ref; var $product_ref;
var $ref_supplier; var $ref_supplier;
@ -99,8 +101,8 @@ class CommandeFournisseur extends CommonOrder
$this->statuts[3] = 'StatusOrderOnProcess'; $this->statuts[3] = 'StatusOrderOnProcess';
$this->statuts[4] = 'StatusOrderReceivedPartially'; $this->statuts[4] = 'StatusOrderReceivedPartially';
$this->statuts[5] = 'StatusOrderReceivedAll'; $this->statuts[5] = 'StatusOrderReceivedAll';
$this->statuts[6] = 'StatusOrderCanceled'; $this->statuts[6] = 'StatusOrderCanceled'; // Approved->Canceled
$this->statuts[7] = 'StatusOrderCanceled'; $this->statuts[7] = 'StatusOrderCanceled'; // Process running->canceled
$this->statuts[9] = 'StatusOrderRefused'; $this->statuts[9] = 'StatusOrderRefused';
} }

View File

@ -199,16 +199,16 @@ class ProductFournisseur extends Product
dol_syslog(get_class($this).'::update_buyprice sql='.$sql); dol_syslog(get_class($this).'::update_buyprice sql='.$sql);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
{ {
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
$interface=new Interfaces($this->db); $interface=new Interfaces($this->db);
$result=$interface->run_triggers('UPDATE_BUYPRICE',$this,$user,$langs,$conf); $result=$interface->run_triggers('SUPPLIER_PRODUCT_BUYPRICE_UPDATE',$this,$user,$langs,$conf);
if ($result < 0) if ($result < 0)
{ {
$error++; $this->errors=$interface->errors; $error++; $this->error=$interface->errors;
} }
if (empty($error)) if (empty($error))
{ {
$this->db->commit(); $this->db->commit();
@ -286,8 +286,25 @@ class ProductFournisseur extends Product
if (! $error) if (! $error)
{ {
$this->db->commit(); // Appel des triggers
return 0; include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('SUPPLIER_PRODUCT_BUYPRICE_CREATE',$this,$user,$langs,$conf);
if ($result < 0)
{
$error++; $this->error=$interface->errors;
}
if (empty($error))
{
$this->db->commit();
return 0;
}
else
{
$this->db->rollback();
return 1;
}
} }
else else
{ {

View File

@ -146,7 +146,7 @@ class PaiementFourn extends Paiement
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'paiementfourn ('; $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'paiementfourn (';
$sql.= 'datec, datep, amount, fk_paiement, num_paiement, note, fk_user_author, fk_bank)'; $sql.= 'datec, datep, amount, fk_paiement, num_paiement, note, fk_user_author, fk_bank)';
$sql.= " VALUES ('".$this->db->idate($now).','; $sql.= " VALUES ('".$this->db->idate($now)."',";
$sql.= " '".$this->db->idate($this->datepaye)."', '".$this->total."', ".$this->paiementid.", '".$this->num_paiement."', '".$this->db->escape($this->note)."', ".$user->id.", 0)"; $sql.= " '".$this->db->idate($this->datepaye)."', '".$this->total."', ".$this->paiementid.", '".$this->num_paiement."', '".$this->db->escape($this->note)."', ".$user->id.", 0)";
dol_syslog("PaiementFourn::create sql=".$sql); dol_syslog("PaiementFourn::create sql=".$sql);

View File

@ -192,7 +192,7 @@ else if ($action == 'addline' && $user->rights->fournisseur->commande->creer)
} }
if (GETPOST('addline_predefined') if (GETPOST('addline_predefined')
|| (! GETPOST('dp_desc') && ! GETPOST('addline_predefined') && GETPOST('idprod', 'int')>0) // we push enter onto qty field || (! GETPOST('dp_desc') && ! GETPOST('addline_predefined') && GETPOST('idprod', 'int')>0) // we push enter onto qty field
) )
{ {
$predef= '_predef'; $predef= '_predef';
$idprod=GETPOST('idprod', 'int'); $idprod=GETPOST('idprod', 'int');
@ -214,7 +214,7 @@ else if ($action == 'addline' && $user->rights->fournisseur->commande->creer)
} }
if (! GETPOST('addline_predefined') && ( GETPOST('pu')==='')) // Unit price can be 0 but not '' if (! GETPOST('addline_predefined') && ( GETPOST('pu')==='')) // Unit price can be 0 but not ''
{ {
setEventMessage($langs->trans($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('UnitPrice'))), 'errors'); setEventMessage($langs->trans($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('UnitPrice'))), 'errors');
$error++; $error++;
} }
@ -233,7 +233,7 @@ else if ($action == 'addline' && $user->rights->fournisseur->commande->creer)
// Ecrase $pu par celui du produit // Ecrase $pu par celui du produit
// Ecrase $desc par celui du produit // Ecrase $desc par celui du produit
// Ecrase $txtva par celui du produit // Ecrase $txtva par celui du produit
if ((GETPOST('addline_predefined') || GETPOST('idprodfournprice')) && ( GETPOST('pu')!=='')) // With combolist idprodfournprice is > 0 or -1. With autocomplete, idprodfournprice is > 0 or '' if (GETPOST('addline_predefined') || GETPOST('idprodfournprice')) // With combolist idprodfournprice is > 0 or -1. With autocomplete, idprodfournprice is > 0 or ''
{ {
$idprod=0; $idprod=0;
$productsupplier = new ProductFournisseur($db); $productsupplier = new ProductFournisseur($db);
@ -508,6 +508,9 @@ else if ($action == 'confirm_approve' && $confirm == 'yes' && $user->rights->fou
$result = $object->approve($user, $idwarehouse); $result = $object->approve($user, $idwarehouse);
if ($result > 0) if ($result > 0)
{ {
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) {
supplier_order_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
}
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$object->id); header("Location: ".$_SERVER["PHP_SELF"]."?id=".$object->id);
exit; exit;
} }
@ -537,6 +540,9 @@ else if ($action == 'confirm_commande' && $confirm == 'yes' && $user->rights->fo
$result = $object->commande($user, $_REQUEST["datecommande"], $_REQUEST["methode"], $_REQUEST['comment']); $result = $object->commande($user, $_REQUEST["datecommande"], $_REQUEST["methode"], $_REQUEST['comment']);
if ($result > 0) if ($result > 0)
{ {
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) {
supplier_order_pdf_create($db, $object, $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
}
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$object->id); header("Location: ".$_SERVER["PHP_SELF"]."?id=".$object->id);
exit; exit;
} }
@ -1987,7 +1993,7 @@ elseif (! empty($object->id))
print '</td></tr>'; print '</td></tr>';
print '<tr><td>'.$langs->trans("OrderMode").'</td><td>'; print '<tr><td>'.$langs->trans("OrderMode").'</td><td>';
$formorder->select_methodes_commande(GETPOST('methodecommande'), "methodecommande", 1); $formorder->selectInputMethod(GETPOST('methodecommande'), "methodecommande", 1);
print '</td></tr>'; print '</td></tr>';
print '<tr><td>'.$langs->trans("Comment").'</td><td><input size="40" type="text" name="comment" value="'.GETPOST('comment').'"></td></tr>'; print '<tr><td>'.$langs->trans("Comment").'</td><td><input size="40" type="text" name="comment" value="'.GETPOST('comment').'"></td></tr>';

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr> * Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
* *
@ -29,6 +29,7 @@ require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php';
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formorder.class.php';
$langs->load("orders"); $langs->load("orders");
@ -39,6 +40,8 @@ $search_nom=GETPOST('search_nom');
$search_user=GETPOST('search_user'); $search_user=GETPOST('search_user');
$search_ttc=GETPOST('search_ttc'); $search_ttc=GETPOST('search_ttc');
$sall=GETPOST('search_all'); $sall=GETPOST('search_all');
$search_status=GETPOST('search_status','int');
if ($search_status == '') $search_status=-1;
$page = GETPOST('page','int'); $page = GETPOST('page','int');
$socid = GETPOST('socid','int'); $socid = GETPOST('socid','int');
@ -67,6 +70,7 @@ llxHeader('',$title);
$commandestatic=new CommandeFournisseur($db); $commandestatic=new CommandeFournisseur($db);
$formfile = new FormFile($db); $formfile = new FormFile($db);
$formorder = new FormOrder($db);
if ($sortorder == "") $sortorder="DESC"; if ($sortorder == "") $sortorder="DESC";
@ -119,8 +123,13 @@ if ($search_refsupp)
{ {
$sql.= " AND (cf.ref_supplier LIKE '%".$db->escape($search_refsupp)."%')"; $sql.= " AND (cf.ref_supplier LIKE '%".$db->escape($search_refsupp)."%')";
} }
if ($search_status >= 0)
{
if ($search_status == 6 || $search_status == 7) $sql.=" AND fk_statut IN (6,7)";
else $sql.=" AND fk_statut = ".$search_status;
}
$sql.= " ORDER BY $sortfield $sortorder "; $sql.= $db->order($sortfield,$sortorder);
$sql.= $db->plimit($conf->liste_limit+1, $offset); $sql.= $db->plimit($conf->liste_limit+1, $offset);
$resql = $db->query($sql); $resql = $db->query($sql);
@ -136,6 +145,7 @@ if ($resql)
if ($search_user) $param.="&search_user=".$search_user; if ($search_user) $param.="&search_user=".$search_user;
if ($search_ttc) $param.="&search_ttc=".$search_ttc; if ($search_ttc) $param.="&search_ttc=".$search_ttc;
if ($search_refsupp) $param.="&search_refsupp=".$search_refsupp; if ($search_refsupp) $param.="&search_refsupp=".$search_refsupp;
if ($search_status >= 0) $param.="&search_status=".$search_status;
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num); print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num);
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'; print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
@ -147,6 +157,7 @@ if ($resql)
print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"total_ttc","",$param,$sortfield,$sortorder); print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"total_ttc","",$param,$sortfield,$sortorder);
print_liste_field_titre($langs->trans("OrderDate"),$_SERVER["PHP_SELF"],"dc","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("OrderDate"),$_SERVER["PHP_SELF"],"dc","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cf.fk_statut","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cf.fk_statut","",$param,'align="right"',$sortfield,$sortorder);
print_liste_field_titre('');
print "</tr>\n"; print "</tr>\n";
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
@ -156,7 +167,11 @@ if ($resql)
print '<td class="liste_titre"><input type="text" class="flat" name="search_nom" value="'.$search_nom.'"></td>'; print '<td class="liste_titre"><input type="text" class="flat" name="search_nom" value="'.$search_nom.'"></td>';
print '<td class="liste_titre"><input type="text" class="flat" name="search_user" value="'.$search_user.'"></td>'; print '<td class="liste_titre"><input type="text" class="flat" name="search_user" value="'.$search_user.'"></td>';
print '<td class="liste_titre"><input type="text" class="flat" name="search_ttc" value="'.$search_ttc.'"></td>'; print '<td class="liste_titre"><input type="text" class="flat" name="search_ttc" value="'.$search_ttc.'"></td>';
print '<td colspan="2" class="liste_titre" align="right">'; print '<td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre" align="right">';
$formorder->selectSupplierOrderStatus($search_status,1,'search_status');
print '</td>';
print '<td class="liste_titre" align="right">';
print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">'; print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
@ -212,7 +227,7 @@ if ($resql)
print '</td>'; print '</td>';
// Statut // Statut
print '<td align="right">'.$commandestatic->LibStatut($obj->fk_statut, 5).'</td>'; print '<td align="right" colspan="2">'.$commandestatic->LibStatut($obj->fk_statut, 5).'</td>';
print "</tr>\n"; print "</tr>\n";
$i++; $i++;

View File

@ -1,12 +1,13 @@
-- Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
-- Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org> -- Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
-- Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net> -- Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
-- Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> -- Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
-- Copyright (C) 2004 Guillaume Delecourt <guillaume.delecourt@opensides.be> -- Copyright (C) 2004 Guillaume Delecourt <guillaume.delecourt@opensides.be>
-- Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com> -- Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
-- Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com> -- Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
-- Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es> -- Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
-- Copyright (C) 2013 Cedric Gross <c.gross@kreiz-it.fr> -- Copyright (C) 2013 Cedric Gross <c.gross@kreiz-it.fr>
-- Copyright (C) 2014 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
-- --
-- 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
@ -59,3 +60,7 @@ insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang)
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (28,'BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',10); insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (28,'BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',10);
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (29,'FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',29); insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (29,'FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',29);
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (30,'PROJECT_CREATE','Project creation','Executed when a project is created','project',30); insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (30,'PROJECT_CREATE','Project creation','Executed when a project is created','project',30);
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (31,'PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',31);
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (32,'PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',32);
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (33,'BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',33);
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (34,'MEMBER_MODIFY','Member modified','Executed when a member is modified','member',34);

View File

@ -1029,7 +1029,7 @@ create table llx_product_customer_price_log
import_key varchar(14) -- Import key import_key varchar(14) -- Import key
)ENGINE=innodb; )ENGINE=innodb;
--Batch number managment -- Batch number management
ALTER TABLE llx_product ADD COLUMN tobatch tinyint DEFAULT 0 NOT NULL; ALTER TABLE llx_product ADD COLUMN tobatch tinyint DEFAULT 0 NOT NULL;
CREATE TABLE llx_product_batch ( CREATE TABLE llx_product_batch (
@ -1055,7 +1055,7 @@ CREATE TABLE llx_expeditiondet_batch (
KEY ix_fk_expeditiondet (fk_expeditiondet) KEY ix_fk_expeditiondet (fk_expeditiondet)
) ENGINE=InnoDB; ) ENGINE=InnoDB;
--Salary payment in tax module -- Salary payment in tax module
--DROP TABLE llx_payment_salary --DROP TABLE llx_payment_salary
CREATE TABLE llx_payment_salary ( CREATE TABLE llx_payment_salary (
rowid integer AUTO_INCREMENT PRIMARY KEY, rowid integer AUTO_INCREMENT PRIMARY KEY,
@ -1076,11 +1076,11 @@ CREATE TABLE llx_payment_salary (
fk_user_modif integer fk_user_modif integer
)ENGINE=innodb; )ENGINE=innodb;
--New 1074 : Stock mouvement link to origin -- New 1074 : Stock mouvement link to origin
ALTER TABLE llx_stock_mouvement ADD fk_origin integer; ALTER TABLE llx_stock_mouvement ADD fk_origin integer;
ALTER TABLE llx_stock_mouvement ADD origintype VARCHAR(32); ALTER TABLE llx_stock_mouvement ADD origintype VARCHAR(32);
--New 1300 : Add THM on user -- New 1300 : Add THM on user
ALTER TABLE llx_user ADD thm double(24,8); ALTER TABLE llx_user ADD thm double(24,8);
ALTER TABLE llx_projet_task_time ADD thm double(24,8); ALTER TABLE llx_projet_task_time ADD thm double(24,8);
@ -1108,3 +1108,9 @@ ALTER TABLE llx_societe ADD UNIQUE INDEX uk_societe_barcode (barcode, fk_barcode
ALTER TABLE llx_tva ADD COLUMN fk_typepayment integer NULL; -- table may already contains data ALTER TABLE llx_tva ADD COLUMN fk_typepayment integer NULL; -- table may already contains data
ALTER TABLE llx_tva ADD COLUMN num_payment varchar(50); ALTER TABLE llx_tva ADD COLUMN num_payment varchar(50);
-- Add missing action triggers
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (31,'PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',31);
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (32,'PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',32);
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (33,'BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',33);
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (34,'MEMBER_MODIFY','Member modified','Executed when a member is modified','member',34);

View File

@ -75,8 +75,6 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_contratdet_log FOR E
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_cotisation FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_cotisation FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_deplacement FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_deplacement FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_don FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_don FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE OR REPLACE FUNCTION update_modified_column_date_m() RETURNS TRIGGER AS $$ BEGIN NEW.date_m = now(); RETURN NEW; END; $$ LANGUAGE plpgsql;
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_ecm_directories FOR EACH ROW EXECUTE PROCEDURE update_modified_column_date_m();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_entrepot FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_entrepot FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_events FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_events FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_expedition FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_expedition FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
@ -89,15 +87,17 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_localtax FOR EACH RO
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_menu FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_menu FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_notify FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_notify FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_notify_def FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_notify_def FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_opensurvey_comments FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_opensurvey_sondage FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_opensurvey_user_studs FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_paiement FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_paiement FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_paiementcharge FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_paiementcharge FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_paiementfourn FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_paiementfourn FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_payment_salary FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_fournisseur_price FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_fournisseur_price FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_price FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_price FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE OR REPLACE FUNCTION update_modified_column_date_price() RETURNS TRIGGER AS $$ BEGIN NEW.date_price = now(); RETURN NEW; END; $$ LANGUAGE plpgsql;
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_price_by_qty FOR EACH ROW EXECUTE PROCEDURE update_modified_column_date_price();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_stock FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_stock FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_projet FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_projet FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_projet_task FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_projet_task FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
@ -118,3 +118,9 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_user_extrafields FOR
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_usergroup FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_usergroup FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_cronjob FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_cronjob FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_printer_ipp FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_printer_ipp FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE OR REPLACE FUNCTION update_modified_column_date_m() RETURNS TRIGGER AS $$ BEGIN NEW.date_m = now(); RETURN NEW; END; $$ LANGUAGE plpgsql;
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_ecm_directories FOR EACH ROW EXECUTE PROCEDURE update_modified_column_date_m();
CREATE OR REPLACE FUNCTION update_modified_column_date_price() RETURNS TRIGGER AS $$ BEGIN NEW.date_price = now(); RETURN NEW; END; $$ LANGUAGE plpgsql;
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_price_by_qty FOR EACH ROW EXECUTE PROCEDURE update_modified_column_date_price();

View File

@ -12,7 +12,7 @@ SessionId=رمز المرحلة
SessionSaveHandler=معالج لحفظ المراحل SessionSaveHandler=معالج لحفظ المراحل
SessionSavePath=مرحلة التخزين المحلية SessionSavePath=مرحلة التخزين المحلية
PurgeSessions=إزالة المراحل PurgeSessions=إزالة المراحل
# ConfirmPurgeSessions=Do you really want to purge all sessions ? This will disconnect every user (except yourself). ConfirmPurgeSessions=Do you really want to purge all sessions ? This will disconnect every user (except yourself).
NoSessionListWithThisHandler=معالج حفظ المرحلة المهيأ في لغة البي إتش بي لا يسمح بسرد كل المراحل التي تعمل NoSessionListWithThisHandler=معالج حفظ المرحلة المهيأ في لغة البي إتش بي لا يسمح بسرد كل المراحل التي تعمل
LockNewSessions=قم بإقفال الإتصالات الجديدة LockNewSessions=قم بإقفال الإتصالات الجديدة
ConfirmLockNewSessions=هل أنت متأكد من أنك تريد تقييد أي اتصال جديدة من دوليبار لنفسك. <b>%s</b> المستخدم الوحيد الذي سيتمكن من الإتصال بعد هذه العملية. ConfirmLockNewSessions=هل أنت متأكد من أنك تريد تقييد أي اتصال جديدة من دوليبار لنفسك. <b>%s</b> المستخدم الوحيد الذي سيتمكن من الإتصال بعد هذه العملية.
@ -43,13 +43,13 @@ SecuritySetup=الإعداد الأمني
ErrorModuleRequirePHPVersion=خطأ ، هذا النموذج يتطلب نسخة بي إتش بي %s أو أعلى ErrorModuleRequirePHPVersion=خطأ ، هذا النموذج يتطلب نسخة بي إتش بي %s أو أعلى
ErrorModuleRequireDolibarrVersion=خطأ ، هذا النموذج يتطلب نسخة دوليبار %s أو أعلى ErrorModuleRequireDolibarrVersion=خطأ ، هذا النموذج يتطلب نسخة دوليبار %s أو أعلى
ErrorDecimalLargerThanAreForbidden=خطأ, برنامج دوليبار <b>%s</b> الحالي لا يدعم دقة أعلى من الحالية ErrorDecimalLargerThanAreForbidden=خطأ, برنامج دوليبار <b>%s</b> الحالي لا يدعم دقة أعلى من الحالية
# DictionarySetup=Dictionary setup DictionarySetup=Dictionary setup
# Dictionary=Dictionaries Dictionary=Dictionaries
ErrorReservedTypeSystemSystemAuto=القيمة 'system' و 'systemauto' لهذا النوع محفوظ. يمكنك إستخدام 'user' كقيمة لإضافة السجل الخاص بك ErrorReservedTypeSystemSystemAuto=القيمة 'system' و 'systemauto' لهذا النوع محفوظ. يمكنك إستخدام 'user' كقيمة لإضافة السجل الخاص بك
ErrorCodeCantContainZero=لا يمكن إستخدام القيمة 0 لهذا الكود ErrorCodeCantContainZero=لا يمكن إستخدام القيمة 0 لهذا الكود
DisableJavascript=تعطيل عمليات الجافا و الأجاكس DisableJavascript=تعطيل عمليات الجافا و الأجاكس
ConfirmAjax=إستخدم تأكيد أجاكس المنبثق ConfirmAjax=إستخدم تأكيد أجاكس المنبثق
# UseSearchToSelectCompany=Use autocompletion fields to choose third parties (instead of using a list box).<br><br>Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. UseSearchToSelectCompany=Use autocompletion fields to choose third parties (instead of using a list box).<br><br>Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
ActivityStateToSelectCompany= أضف فلتر كخيار لعرض/إخفاء الجهات الأخرى التي تقوم بنشاط حالياً أو توقفت عنه ActivityStateToSelectCompany= أضف فلتر كخيار لعرض/إخفاء الجهات الأخرى التي تقوم بنشاط حالياً أو توقفت عنه
UseSearchToSelectContact=إستخدم حقل التكملة التلقائية لإختيار عنوان الإتصال (بدلاً من إستخدام القائمة المنسدلة). <br><br> أيضاً إذا كان لديك عدد كبير من العملاء الخارجيين )أكثر من 100000(, يمكنك زيادة السرعة بإختيار ثابت UseSearchToSelectContact=إستخدم حقل التكملة التلقائية لإختيار عنوان الإتصال (بدلاً من إستخدام القائمة المنسدلة). <br><br> أيضاً إذا كان لديك عدد كبير من العملاء الخارجيين )أكثر من 100000(, يمكنك زيادة السرعة بإختيار ثابت
SearchFilter=فلاتر خيارات البحث SearchFilter=فلاتر خيارات البحث
@ -71,8 +71,8 @@ Mask=القناع
NextValue=قيمة التالية NextValue=قيمة التالية
NextValueForInvoices=القيمة التالية (الفواتير) NextValueForInvoices=القيمة التالية (الفواتير)
NextValueForCreditNotes=القيمة التالية (ملاحظات دائن) NextValueForCreditNotes=القيمة التالية (ملاحظات دائن)
# NextValueForDeposit=Next value (deposit) NextValueForDeposit=Next value (deposit)
# NextValueForReplacements=Next value (replacements) NextValueForReplacements=Next value (replacements)
MustBeLowerThanPHPLimit=ملاحظة : البي إتش بي الخاص بك يحد من حجم الملفات المرفوعة <b>%s</b> %s, مهما كان الحجم المدخل MustBeLowerThanPHPLimit=ملاحظة : البي إتش بي الخاص بك يحد من حجم الملفات المرفوعة <b>%s</b> %s, مهما كان الحجم المدخل
NoMaxSizeByPHPLimit=ملاحظة : لم يتم وضح حد في إعدادات الـ PHP الخاص بك NoMaxSizeByPHPLimit=ملاحظة : لم يتم وضح حد في إعدادات الـ PHP الخاص بك
MaxSizeForUploadedFiles=الحجم الأقصى لتحميل الملفات (0 لمنع أي تحميل) MaxSizeForUploadedFiles=الحجم الأقصى لتحميل الملفات (0 لمنع أي تحميل)
@ -109,8 +109,8 @@ ParameterInDolibarr=الوحدة %s
LanguageParameter=وحدة اللغة %s LanguageParameter=وحدة اللغة %s
LanguageBrowserParameter=الوحدة %s LanguageBrowserParameter=الوحدة %s
LocalisationDolibarrParameters=الوحدات المحلية LocalisationDolibarrParameters=الوحدات المحلية
# ClientTZ=Client Time Zone (user) ClientTZ=Client Time Zone (user)
# ClientHour=Client time (user) ClientHour=Client time (user)
OSTZ=المنطقة الزمنية لنظام تشغيل الخادم OSTZ=المنطقة الزمنية لنظام تشغيل الخادم
PHPTZ=المنطقة الزمنية خادم PHP PHPTZ=المنطقة الزمنية خادم PHP
PHPServerOffsetWithGreenwich=عرض وزنية جرينتش لخادم لغة الـ PHP (ثانية) PHPServerOffsetWithGreenwich=عرض وزنية جرينتش لخادم لغة الـ PHP (ثانية)
@ -120,7 +120,7 @@ CurrentHour=PHP خادم ساعة
CompanyTZ=المنطقة الزمنية لشركة من الشركات الرئيسية) CompanyTZ=المنطقة الزمنية لشركة من الشركات الرئيسية)
CompanyHour=ساعة وشركة من الشركات الرئيسية) CompanyHour=ساعة وشركة من الشركات الرئيسية)
CurrentSessionTimeOut=إنتها مدة التصفح الحالية CurrentSessionTimeOut=إنتها مدة التصفح الحالية
# YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris"
OSEnv=بيئة نظام التشغيل OSEnv=بيئة نظام التشغيل
Box=مربع Box=مربع
Boxes=مربعات Boxes=مربعات
@ -228,7 +228,7 @@ OfficialWebSiteFr=الفرنسية الموقع الرسمي
OfficialWiki=Dolibarr يكي OfficialWiki=Dolibarr يكي
OfficialDemo=Dolibarr الانترنت التجريبي OfficialDemo=Dolibarr الانترنت التجريبي
OfficialMarketPlace=المسؤول عن وحدات السوق الخارجية / أدونس OfficialMarketPlace=المسؤول عن وحدات السوق الخارجية / أدونس
# OfficialWebHostingService=Official web hosting services (Cloud hosting) OfficialWebHostingService=Official web hosting services (Cloud hosting)
ForDocumentationSeeWiki=For user's or developer's documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target=للمستخدم أو للتطوير وثائق (مستدات ،...)، أسئلة وأجوبة <br> إلقاء نظرة على ويكي Dolibarr : <br> <a href="%s" target="_blank"><b>ق ٪</b></a> ForDocumentationSeeWiki=For user's or developer's documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target=للمستخدم أو للتطوير وثائق (مستدات ،...)، أسئلة وأجوبة <br> إلقاء نظرة على ويكي Dolibarr : <br> <a href="%s" target="_blank"><b>ق ٪</b></a>
ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target=عن أي أسئلة أخرى / مساعدة ، يمكنك استخدام Dolibarr المنتدى : <br> <a href="%s" target="_blank"><b>ق ٪</b></a> ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target=عن أي أسئلة أخرى / مساعدة ، يمكنك استخدام Dolibarr المنتدى : <br> <a href="%s" target="_blank"><b>ق ٪</b></a>
HelpCenterDesc1=هذا المجال يمكن أن تساعدك في الحصول على مساعدة لتقديم خدمات الدعم على Dolibarr. HelpCenterDesc1=هذا المجال يمكن أن تساعدك في الحصول على مساعدة لتقديم خدمات الدعم على Dolibarr.
@ -272,34 +272,34 @@ ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخز
ModuleFamilyECM=إدارة المحتوى في المؤسسة ModuleFamilyECM=إدارة المحتوى في المؤسسة
MenuHandlers=قائمة مناولي MenuHandlers=قائمة مناولي
MenuAdmin=قائمة تحرير MenuAdmin=قائمة تحرير
# DoNotUseInProduction=Do not use in production DoNotUseInProduction=Do not use in production
ThisIsProcessToFollow=هذا هو الإعداد لهذه العملية : ThisIsProcessToFollow=هذا هو الإعداد لهذه العملية :
StepNb=الخطوة ق ٪ StepNb=الخطوة ق ٪
FindPackageFromWebSite=العثور على الحزمة التي توفر ميزة تريد (على سبيل المثال على موقع الويب ق ٪). FindPackageFromWebSite=العثور على الحزمة التي توفر ميزة تريد (على سبيل المثال على موقع الويب ق ٪).
DownloadPackageFromWebSite=التحميل من الموقع حزمة ٪ s. DownloadPackageFromWebSite=التحميل من الموقع حزمة ٪ s.
UnpackPackageInDolibarrRoot=تفريغ الملف إلى مجموعة Dolibarr 'sجذور دليل <b>٪ ق</b> UnpackPackageInDolibarrRoot=تفريغ الملف إلى مجموعة Dolibarr 'sجذور دليل <b>٪ ق</b>
SetupIsReadyForUse=الانتهاء من تركيب وDolibarr على استعداد لاستخدام هذا العنصر الجديد. SetupIsReadyForUse=الانتهاء من تركيب وDolibarr على استعداد لاستخدام هذا العنصر الجديد.
# NotExistsDirect=The alternative root directory is not defined.<br> NotExistsDirect=The alternative root directory is not defined.<br>
# InfDirAlt=Since version 3 it is possible to define an alternative root directory.This allows you to store, same place, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br> InfDirAlt=Since version 3 it is possible to define an alternative root directory.This allows you to store, same place, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
# InfDirExample=<br>Then declare it in the file conf.php<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>*These lines are commented with "#", to uncomment only remove the character. InfDirExample=<br>Then declare it in the file conf.php<br> $dolibarr_main_url_root_alt='http://myserver/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>*These lines are commented with "#", to uncomment only remove the character.
# YouCanSubmitFile=Select module: YouCanSubmitFile=Select module:
CurrentVersion=Dolibarr النسخة الحالية CurrentVersion=Dolibarr النسخة الحالية
CallUpdatePage=الذهاب إلى صفحة التحديثات وdatas هيكل قاعدة البيانات : ٪ s. CallUpdatePage=الذهاب إلى صفحة التحديثات وdatas هيكل قاعدة البيانات : ٪ s.
LastStableVersion=آخر نسخة مستقرة LastStableVersion=آخر نسخة مستقرة
GenericMaskCodes=يمكنك إدخال أي قناع الترقيم. في هذا القناع ، وبعد ويمكن استخدام العلامات : <br> <b>(000000)</b> يطابق عدد الذي سيكون على كل يزداد ٪ s. كما تدخل العديد من أصفار على النحو المنشود طول المضادة. المضاد وسيتم الانتهاء من اصفار من اليسار من أجل الحصول على أكبر عدد اصفار كما القناع. <br> <b>000000 +000) (نفس</b> السابقة ولكن يقابل المقابلة لعدد للحق من علامة + يطبق اعتبارا من أول ٪ s. <br> <b>000000 @ (س)</b> نفس السابقة ولكن المضاد هو إعادة الصفر عندما يتم التوصل إلى الشهر خ خ ما بين 1 و 12). إذا كان هذا الخيار هو المستخدمة وس 2 أو أعلى ، ثم تسلسل (ذ ذ م م)) ((سنة أو ملم)) (مطلوب أيضا. <br> <b>(ب)</b> اليوم (01 الى 31). <br> <b>() ملم</b> في الشهر (01 الى 12). <br> <b>(كذا)</b> ، <b>(سنة))</b> أو <b>(ذ</b> السنة أكثر من 2 أو 4 أو 1 الأرقام. <br> GenericMaskCodes=يمكنك إدخال أي قناع الترقيم. في هذا القناع ، وبعد ويمكن استخدام العلامات : <br> <b>(000000)</b> يطابق عدد الذي سيكون على كل يزداد ٪ s. كما تدخل العديد من أصفار على النحو المنشود طول المضادة. المضاد وسيتم الانتهاء من اصفار من اليسار من أجل الحصول على أكبر عدد اصفار كما القناع. <br> <b>000000 +000) (نفس</b> السابقة ولكن يقابل المقابلة لعدد للحق من علامة + يطبق اعتبارا من أول ٪ s. <br> <b>000000 @ (س)</b> نفس السابقة ولكن المضاد هو إعادة الصفر عندما يتم التوصل إلى الشهر خ خ ما بين 1 و 12). إذا كان هذا الخيار هو المستخدمة وس 2 أو أعلى ، ثم تسلسل (ذ ذ م م)) ((سنة أو ملم)) (مطلوب أيضا. <br> <b>(ب)</b> اليوم (01 الى 31). <br> <b>() ملم</b> في الشهر (01 الى 12). <br> <b>(كذا)</b> ، <b>(سنة))</b> أو <b>(ذ</b> السنة أكثر من 2 أو 4 أو 1 الأرقام. <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 company type on n characters (see dictionary-company types).<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 company type on n characters (see dictionary-company types).<br>
GenericMaskCodes3=جميع الشخصيات الاخرى في قناع سوف تظل سليمة. <br> المساحات غير مسموح بها. <br> GenericMaskCodes3=جميع الشخصيات الاخرى في قناع سوف تظل سليمة. <br> المساحات غير مسموح بها. <br>
GenericMaskCodes4a=<u>ومثال على 99th ق ٪ من طرف ثالث TheCompany عمله 2007-01-31 :</u> <br> GenericMaskCodes4a=<u>ومثال على 99th ق ٪ من طرف ثالث TheCompany عمله 2007-01-31 :</u> <br>
GenericMaskCodes4b=<u>ومثال على طرف ثالث على خلق 2007-03-01 :</u> <br> GenericMaskCodes4b=<u>ومثال على طرف ثالث على خلق 2007-03-01 :</u> <br>
# GenericMaskCodes4c=<u>Example on product created on 2007-03-01:</u><br> GenericMaskCodes4c=<u>Example on product created on 2007-03-01:</u><br>
# GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b> GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b>
GenericNumRefModelDesc=العودة للتخصيص وفقا لعدد محدد القناع. GenericNumRefModelDesc=العودة للتخصيص وفقا لعدد محدد القناع.
ServerAvailableOnIPOrPort=الخدمة متاحة في معالجة <b>٪ ق ق ٪</b> على الميناء ServerAvailableOnIPOrPort=الخدمة متاحة في معالجة <b>٪ ق ق ٪</b> على الميناء
ServerNotAvailableOnIPOrPort=الخدمة غير متاحة في التصدي <b>٪ ق ق ٪</b> على الميناء ServerNotAvailableOnIPOrPort=الخدمة غير متاحة في التصدي <b>٪ ق ق ٪</b> على الميناء
DoTestServerAvailability=اختبار خدمة التوصيل DoTestServerAvailability=اختبار خدمة التوصيل
DoTestSend=ارسال الاختبار DoTestSend=ارسال الاختبار
DoTestSendHTML=اختبار ارسال هتمل DoTestSendHTML=اختبار ارسال هتمل
# ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask.
ErrorCantUseRazInStartedYearIfNoYearMonthInMask=خطأ ، لا يمكن للمستخدم الخيار في حال تسلسل @ (ذ ذ م م)) ((سنة أو ملم)) (لا تخفي. ErrorCantUseRazInStartedYearIfNoYearMonthInMask=خطأ ، لا يمكن للمستخدم الخيار في حال تسلسل @ (ذ ذ م م)) ((سنة أو ملم)) (لا تخفي.
UMask=معلمة جديدة UMask صورة يونيكس / لينكس / بي إس دي نظام الملفات. UMask=معلمة جديدة UMask صورة يونيكس / لينكس / بي إس دي نظام الملفات.
UMaskExplanation=تسمح لك هذه المعلمة لتحديد الاذونات التي حددها تقصير من الملفات التي أنشأتها Dolibarr على الخادم (خلال تحميلها على سبيل المثال). <br> يجب أن يكون ثمانية القيمة (على سبيل المثال ، 0666 وسائل القراءة والكتابة للجميع). <br> م شمال شرق paramètre سرت sous الامم المتحدة لتقييم الأداء ويندوز serveur. UMaskExplanation=تسمح لك هذه المعلمة لتحديد الاذونات التي حددها تقصير من الملفات التي أنشأتها Dolibarr على الخادم (خلال تحميلها على سبيل المثال). <br> يجب أن يكون ثمانية القيمة (على سبيل المثال ، 0666 وسائل القراءة والكتابة للجميع). <br> م شمال شرق paramètre سرت sous الامم المتحدة لتقييم الأداء ويندوز serveur.
@ -316,7 +316,7 @@ LanguageFilesCachedIntoShmopSharedMemory=لانغ لتحميل الملفات.
ExamplesWithCurrentSetup=أمثلة مع تشغيل الإعداد الحالي ExamplesWithCurrentSetup=أمثلة مع تشغيل الإعداد الحالي
ListOfDirectories=قائمة الدلائل المفتوحة قوالب ListOfDirectories=قائمة الدلائل المفتوحة قوالب
ListOfDirectoriesForModelGenODT=قائمة الدلائل التي تحتوي على ملفات ذات شكل قوالب المفتوحة. <br><br> هنا وضع المسار الكامل من الدلائل. <br> إضافة حرف إرجاع بين الدليل ايه. <br> لإضافة دليل وحدة [جد] ، أضيف هنا <b>DOL_DATA_ROOT / إدارة المحتوى في المؤسسة / yourdirectoryname.</b> <br><br> في هذه الدلائل يجب أن تنتهي مع <b>ملفات. odt.</b> ListOfDirectoriesForModelGenODT=قائمة الدلائل التي تحتوي على ملفات ذات شكل قوالب المفتوحة. <br><br> هنا وضع المسار الكامل من الدلائل. <br> إضافة حرف إرجاع بين الدليل ايه. <br> لإضافة دليل وحدة [جد] ، أضيف هنا <b>DOL_DATA_ROOT / إدارة المحتوى في المؤسسة / yourdirectoryname.</b> <br><br> في هذه الدلائل يجب أن تنتهي مع <b>ملفات. odt.</b>
# NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
ExampleOfDirectoriesForModelGen=أمثلة على بناء الجملة : <br> ج : mydir \\ <br> / الوطن / mydir <br> DOL_DATA_ROOT / إدارة المحتوى في المؤسسة / ecmdir ExampleOfDirectoriesForModelGen=أمثلة على بناء الجملة : <br> ج : mydir \\ <br> / الوطن / mydir <br> DOL_DATA_ROOT / إدارة المحتوى في المؤسسة / ecmdir
FollowingSubstitutionKeysCanBeUsed=<br> لمعرفة كيفية إنشاء قوالب المستند ODT، قبل تخزينها في تلك الدلائل، وقراءة وثائق ويكي: FollowingSubstitutionKeysCanBeUsed=<br> لمعرفة كيفية إنشاء قوالب المستند ODT، قبل تخزينها في تلك الدلائل، وقراءة وثائق ويكي:
FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
@ -336,59 +336,58 @@ PDF=PDF
PDFDesc=يمكنك تعيين كل الخيارات العالمية المتصلة جيل PDF PDFDesc=يمكنك تعيين كل الخيارات العالمية المتصلة جيل PDF
PDFAddressForging=قواعد لتشكيل مربعات العناوين PDFAddressForging=قواعد لتشكيل مربعات العناوين
HideAnyVATInformationOnPDF=إخفاء كل المعلومات المتعلقة ضريبة القيمة المضافة على إنشاء قوات الدفاع الشعبي HideAnyVATInformationOnPDF=إخفاء كل المعلومات المتعلقة ضريبة القيمة المضافة على إنشاء قوات الدفاع الشعبي
# HideDescOnPDF=Hide products description on generated PDF HideDescOnPDF=Hide products description on generated PDF
# HideRefOnPDF=Hide products ref. on generated PDF HideRefOnPDF=Hide products ref. on generated PDF
# HideDetailsOnPDF=Hide products lines details on generated PDF HideDetailsOnPDF=Hide products lines details on generated PDF
Library=المكتبة Library=المكتبة
UrlGenerationParameters=المعلمات لتأمين عناوين المواقع UrlGenerationParameters=المعلمات لتأمين عناوين المواقع
SecurityTokenIsUnique=استخدام معلمة securekey فريدة لكل URL SecurityTokenIsUnique=استخدام معلمة securekey فريدة لكل URL
EnterRefToBuildUrl=أدخل مرجع لكائن %s EnterRefToBuildUrl=أدخل مرجع لكائن %s
GetSecuredUrl=الحصول على عنوان محسوب GetSecuredUrl=الحصول على عنوان محسوب
# ButtonHideUnauthorized=Hide buttons for unauthorized actions instead of showing disabled buttons ButtonHideUnauthorized=Hide buttons for unauthorized actions instead of showing disabled buttons
# OldVATRates=Old VAT rate OldVATRates=Old VAT rate
# NewVATRates=New VAT rate NewVATRates=New VAT rate
# PriceBaseTypeToChange=Modify on prices with base reference value defined on PriceBaseTypeToChange=Modify on prices with base reference value defined on
# MassConvert=Launch mass convert MassConvert=Launch mass convert
String=سلسلة String=سلسلة
# TextLong=Long text TextLong=Long text
# Int=Integer Int=Integer
# Float=Float Float=Float
# DateAndTime=Date and hour DateAndTime=Date and hour
# Unique=Unique Unique=Unique
# Boolean=Boolean (Checkbox) Boolean=Boolean (Checkbox)
ExtrafieldPhone = هاتف ExtrafieldPhone = هاتف
ExtrafieldPrice = الأسعار ExtrafieldPrice = الأسعار
# ExtrafieldMail = Email ExtrafieldMail = Email
# ExtrafieldSelect = Select list ExtrafieldSelect = Select list
# ExtrafieldSelectList = Select from table ExtrafieldSelectList = Select from table
# ExtrafieldSeparator=Separator ExtrafieldSeparator=Separator
# ExtrafieldCheckBox=Checkbox ExtrafieldCheckBox=Checkbox
# ExtrafieldRadio=Radio button ExtrafieldRadio=Radio button
# ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
# ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>... ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
# ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>... ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
# ExtrafieldParamHelpsellist=Parameters list have come from table<br><br> for exemple : <br>c_typent:libelle:id::filter<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter <br> filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield) ExtrafieldParamHelpsellist=Parameters list have come from table<br><br> for exemple : <br>c_typent:libelle:id::filter<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter <br> filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)
# LibraryToBuildPDF=Library used to build PDF LibraryToBuildPDF=Library used to build PDF
# WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b> WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
# LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax) LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
# SMS=SMS SMS=SMS
# LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user <strong>%s</strong> LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user <strong>%s</strong>
# RefreshPhoneLink=Refresh link RefreshPhoneLink=Refresh link
# LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test) LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
# KeepEmptyToUseDefault=Keep empty to use default value KeepEmptyToUseDefault=Keep empty to use default value
# DefaultLink=Default link DefaultLink=Default link
# ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
# ExternalModule=External module - Installed into directory %s ExternalModule=External module - Installed into directory %s
# BarcodeInitForThirdparties=Mass barcode init for thirdparties BarcodeInitForThirdparties=Mass barcode init for thirdparties
# BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
# CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> records on <strong>%s</strong> %s without barcode defined. CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> records on <strong>%s</strong> %s without barcode defined.
# InitEmptyBarCode=Init value for next %s empty records InitEmptyBarCode=Init value for next %s empty records
# EraseAllCurrentBarCode=Erase all current barcode values EraseAllCurrentBarCode=Erase all current barcode values
# ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values ? ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values ?
# AllBarcodeReset=All barcode values have been removed AllBarcodeReset=All barcode values have been removed
# NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
# NoRecordWithoutBarcodeDefined=No record with no barcode value defined. NoRecordWithoutBarcodeDefined=No record with no barcode value defined.
# Modules # Modules
Module0Name=& مجموعات المستخدمين Module0Name=& مجموعات المستخدمين
@ -465,8 +464,10 @@ Module400Name=المشاريع
Module400Desc=إدارة المشاريع داخل وحدات أخرى Module400Desc=إدارة المشاريع داخل وحدات أخرى
Module410Name=Webcalendar Module410Name=Webcalendar
Module410Desc=Webcalendar التكامل Module410Desc=Webcalendar التكامل
Module500Name=الضرائب والمساهمات الاجتماعية والأرباح Module500Name=Special expenses (tax, social contributions, dividends)
Module500Desc=المساهمات الاجتماعية والضرائب وإدارة Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
Module510Name=Salaries
Module510Desc=Management of empoyees salaries and payments
Module600Name=الإخطارات Module600Name=الإخطارات
Module600Desc=إرسال الإشعارات عن طريق البريد الإلكتروني على بعض الفعاليات التجارية Dolibarr لطرف ثالث اتصالات Module600Desc=إرسال الإشعارات عن طريق البريد الإلكتروني على بعض الفعاليات التجارية Dolibarr لطرف ثالث اتصالات
Module700Name=التبرعات Module700Name=التبرعات
@ -483,8 +484,8 @@ Module1780Name=الفئات
Module1780Desc=الفئات إدارة المنتجات والموردين والزبائن) Module1780Desc=الفئات إدارة المنتجات والموردين والزبائن)
Module2000Name=Fckeditor Module2000Name=Fckeditor
Module2000Desc=سوغ محرر Module2000Desc=سوغ محرر
# Module2300Name=Cron Module2300Name=Cron
# Module2300Desc=Scheduled task management Module2300Desc=Scheduled task management
Module2400Name=جدول الأعمال Module2400Name=جدول الأعمال
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
Module2500Name=إدارة المحتوى الإلكتروني Module2500Name=إدارة المحتوى الإلكتروني
@ -493,33 +494,33 @@ Module2600Name= WebServices
Module2600Desc= تمكين خدمات الويب Dolibarr الملقم Module2600Desc= تمكين خدمات الويب Dolibarr الملقم
Module2700Name= غرفتر Module2700Name= غرفتر
Module2700Desc= استخدام خدمة غرفتر على الانترنت (www.gravatar.com) لإظهار الصورة من المستخدمين / أعضاء (وجدت مع رسائل البريد الإلكتروني الخاصة بهم). في حاجة الى الوصول الى شبكة الانترنت Module2700Desc= استخدام خدمة غرفتر على الانترنت (www.gravatar.com) لإظهار الصورة من المستخدمين / أعضاء (وجدت مع رسائل البريد الإلكتروني الخاصة بهم). في حاجة الى الوصول الى شبكة الانترنت
# Module2800Desc=FTP Client Module2800Desc=FTP Client
Module2900Name= GeoIPMaxmind Module2900Name= GeoIPMaxmind
Module2900Desc= GeoIP التحويلات Maxmind القدرات Module2900Desc= GeoIP التحويلات Maxmind القدرات
# Module3100Name= Skype Module3100Name= Skype
# Module3100Desc= Add a Skype button into card of adherents / third parties / contacts Module3100Desc= Add a Skype button into card of adherents / third parties / contacts
Module5000Name=شركة متعددة Module5000Name=شركة متعددة
Module5000Desc=يسمح لك لإدارة الشركات المتعددة Module5000Desc=يسمح لك لإدارة الشركات المتعددة
# Module6000Name=Workflow Module6000Name=Workflow
# Module6000Desc=Workflow management Module6000Desc=Workflow management
# Module20000Name=Holidays Module20000Name=Holidays
# Module20000Desc=Declare and follow employees holidays Module20000Desc=Declare and follow employees holidays
Module50000Name=PayBox Module50000Name=PayBox
Module50000Desc=وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع PayBox Module50000Desc=وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع PayBox
Module50100Name=نقطة البيع Module50100Name=نقطة البيع
Module50100Desc=نقطة بيع وحدة Module50100Desc=نقطة بيع وحدة
Module50200Name= باي بال Module50200Name= باي بال
Module50200Desc= وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع بايبال Module50200Desc= وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع بايبال
# Module54000Name=PrintIPP Module54000Name=PrintIPP
# Module54000Desc=Print via Cups IPP Printer. Module54000Desc=Print via Cups IPP Printer.
# Module55000Name=Open Poll Module55000Name=Open Poll
# Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...) Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...)
# Module59000Name=Margins Module59000Name=Margins
# Module59000Desc=Module to manage margins Module59000Desc=Module to manage margins
# Module60000Name=Commissions Module60000Name=Commissions
# Module60000Desc=Module to manage commissions Module60000Desc=Module to manage commissions
# Module150010Name=Batch number, eat-by date and sell-by date Module150010Name=Batch number, eat-by date and sell-by date
# Module150010Desc=batch number, eat-by date and sell-by date management for product Module150010Desc=batch number, eat-by date and sell-by date management for product
Permission11=قراءة الفواتير Permission11=قراءة الفواتير
Permission12=خلق الفواتير Permission12=خلق الفواتير
Permission13=تعديل الفواتير Permission13=تعديل الفواتير
@ -571,7 +572,7 @@ Permission98=ارسال الفاتورة 'sخطوط المحاسبة
Permission101=قراءة الإرسال Permission101=قراءة الإرسال
Permission102=إنشاء / تعديل الإرسال Permission102=إنشاء / تعديل الإرسال
Permission104=صحة الإرسال Permission104=صحة الإرسال
# Permission106=Export sendings Permission106=Export sendings
Permission109=حذف الإرسال Permission109=حذف الإرسال
Permission111=قراءة الحسابات المالية Permission111=قراءة الحسابات المالية
Permission112=إنشاء / تعديل أو حذف ، وقارن المعاملات Permission112=إنشاء / تعديل أو حذف ، وقارن المعاملات
@ -628,9 +629,9 @@ Permission221=قراءة emailings
Permission222=إنشاء / تعديل emailings (الموضوع والمستفيدين...) Permission222=إنشاء / تعديل emailings (الموضوع والمستفيدين...)
Permission223=صحة emailings (يسمح بارسال) Permission223=صحة emailings (يسمح بارسال)
Permission229=حذف emailings Permission229=حذف emailings
# Permission237=View recipients and info Permission237=View recipients and info
# Permission238=Manually send mailings Permission238=Manually send mailings
# Permission239=Delete mailings after validation or sent Permission239=Delete mailings after validation or sent
Permission241=قراءة الفئات Permission241=قراءة الفئات
Permission242=إنشاء / تعديل الفئات Permission242=إنشاء / تعديل الفئات
Permission243=حذف فئات Permission243=حذف فئات
@ -708,14 +709,14 @@ Permission1233=التحقق من فواتير الموردين
Permission1234=حذف فواتير الموردين Permission1234=حذف فواتير الموردين
Permission1235=إرسال فواتير المورد عن طريق البريد الإلكتروني Permission1235=إرسال فواتير المورد عن طريق البريد الإلكتروني
Permission1236=تصدير فواتير الموردين والصفات والمدفوعات Permission1236=تصدير فواتير الموردين والصفات والمدفوعات
# Permission1237=Export supplier orders and their details Permission1237=Export supplier orders and their details
Permission1251=ادارة الدمار الواردات الخارجية البيانات في قاعدة البيانات (بيانات تحميل) Permission1251=ادارة الدمار الواردات الخارجية البيانات في قاعدة البيانات (بيانات تحميل)
Permission1321=تصدير العملاء والفواتير والمدفوعات والصفات Permission1321=تصدير العملاء والفواتير والمدفوعات والصفات
Permission1421=التصدير طلبات الزبائن وصفاته Permission1421=التصدير طلبات الزبائن وصفاته
# Permission23001 = Read Scheduled task Permission23001 = Read Scheduled task
# Permission23002 = Create/update Scheduled task Permission23002 = Create/update Scheduled task
# Permission23003 = Delete Scheduled task Permission23003 = Delete Scheduled task
# Permission23004 = Execute Scheduled task Permission23004 = Execute Scheduled task
Permission2401=قراءة الأعمال (أو أحداث المهام) مرتبطة حسابه Permission2401=قراءة الأعمال (أو أحداث المهام) مرتبطة حسابه
Permission2402=إنشاء / تعديل أو حذف الإجراءات (الأحداث أو المهام) مرتبطة حسابه Permission2402=إنشاء / تعديل أو حذف الإجراءات (الأحداث أو المهام) مرتبطة حسابه
Permission2403=قراءة الأعمال (أو أحداث المهام) آخرين Permission2403=قراءة الأعمال (أو أحداث المهام) آخرين
@ -726,44 +727,44 @@ Permission2501=قراءة وثائق
Permission2502=تقديم وثائق أو حذف Permission2502=تقديم وثائق أو حذف
Permission2503=تقديم وثائق أو حذف Permission2503=تقديم وثائق أو حذف
Permission2515=إعداد وثائق وأدلة Permission2515=إعداد وثائق وأدلة
# Permission2801=Use FTP client in read mode (browse and download only) Permission2801=Use FTP client in read mode (browse and download only)
# Permission2802=Use FTP client in write mode (delete or upload files) Permission2802=Use FTP client in write mode (delete or upload files)
# Permission50101=Use Point of sales Permission50101=Use Point of sales
Permission50201=قراءة المعاملات Permission50201=قراءة المعاملات
Permission50202=استيراد المعاملات Permission50202=استيراد المعاملات
# Permission54001=Print Permission54001=Print
# Permission55001=Read polls Permission55001=Read polls
# Permission55002=Create/modify polls Permission55002=Create/modify polls
# Permission59001=Read commercial margins Permission59001=Read commercial margins
# Permission59002=Define commercial margins Permission59002=Define commercial margins
# DictionaryCompanyType=Thirdparties type DictionaryCompanyType=Thirdparties type
# DictionaryCompanyJuridicalType=Juridical kinds of thirdparties DictionaryCompanyJuridicalType=Juridical kinds of thirdparties
# DictionaryProspectLevel=Prospect potential level DictionaryProspectLevel=Prospect potential level
# DictionaryCanton=State/Cantons DictionaryCanton=State/Cantons
# DictionaryRegion=Regions DictionaryRegion=Regions
# DictionaryCountry=Countries DictionaryCountry=Countries
# DictionaryCurrency=Currencies DictionaryCurrency=Currencies
# DictionaryCivility=Civility title DictionaryCivility=Civility title
# DictionaryActions=Type of agenda events DictionaryActions=Type of agenda events
# DictionarySocialContributions=Social contributions types DictionarySocialContributions=Social contributions types
# DictionaryVAT=VAT Rates or Sales Tax Rates DictionaryVAT=VAT Rates or Sales Tax Rates
# DictionaryRevenueStamp=Amount of revenue stamps DictionaryRevenueStamp=Amount of revenue stamps
# DictionaryPaymentConditions=Payment terms DictionaryPaymentConditions=Payment terms
# DictionaryPaymentModes=Payment modes DictionaryPaymentModes=Payment modes
# DictionaryTypeContact=Contact/Address types DictionaryTypeContact=Contact/Address types
# DictionaryEcotaxe=Ecotax (WEEE) DictionaryEcotaxe=Ecotax (WEEE)
# DictionaryPaperFormat=Paper formats DictionaryPaperFormat=Paper formats
# DictionaryFees=Type of fees DictionaryFees=Type of fees
# DictionarySendingMethods=Shipping methods DictionarySendingMethods=Shipping methods
# DictionaryStaff=Staff DictionaryStaff=Staff
# DictionaryAvailability=Delivery delay DictionaryAvailability=Delivery delay
# DictionaryOrderMethods=Ordering methods DictionaryOrderMethods=Ordering methods
# DictionarySource=Origin of proposals/orders DictionarySource=Origin of proposals/orders
# DictionaryAccountancyplan=Chart of accounts DictionaryAccountancyplan=Chart of accounts
# DictionaryAccountancysystem=Models for chart of accounts DictionaryAccountancysystem=Models for chart of accounts
SetupSaved=الإعداد المحفوظة SetupSaved=الإعداد المحفوظة
BackToModuleList=العودة إلى قائمة الوحدات BackToModuleList=العودة إلى قائمة الوحدات
# BackToDictionaryList=Back to dictionaries list BackToDictionaryList=Back to dictionaries list
VATReceivedOnly=سعر خاص لا تحمل VATReceivedOnly=سعر خاص لا تحمل
VATManagement=إدارة الضريبة على القيمة المضافة VATManagement=إدارة الضريبة على القيمة المضافة
VATIsUsedDesc=معدل ضريبة القيمة المضافة بشكل افتراضي عند إنشاء الآفاق ، والفواتير ، وما يتبع أوامر النشطة القياسية للمادة : <br> إذا كان البائع هو تعرض لضريبة القيمة المضافة ، وضريبة القيمة المضافة بعد ذلك تلقائيا= 0. نهاية المادة. <br> إذا كان (بيع وشراء= بلد في البلد) ، فإن ضريبة القيمة المضافة بشكل افتراضي= ضريبة القيمة المضافة من بيع المنتج في البلد. نهاية المادة. <br> إذا كان البائع والمشتري في الجماعة الأوروبية ، وبيعت البضاعة الجديدة بعد أن وسائل النقل (السيارات ، والسفن ، والطائرات) ، الافتراضي= 0 ضريبة القيمة المضافة (ضريبة القيمة المضافة وينبغي أن تدفع من قبل المشتري في customoffice بلاده وليس على البائع . نهاية المادة. <br> إذا كان البائع والمشتري في الجماعة الأوروبية والسلع التي تباع عن طريق وسائل أخرى جديدة بدلا من وسائل النقل ، فإن ضريبة القيمة المضافة بشكل افتراضي= ضريبة القيمة المضافة للمنتجات المباعة. نهاية المادة. <br> وإلا فإن ضريبة القيمة المضافة المقترحة الافتراضي= 1. نهاية المادة. VATIsUsedDesc=معدل ضريبة القيمة المضافة بشكل افتراضي عند إنشاء الآفاق ، والفواتير ، وما يتبع أوامر النشطة القياسية للمادة : <br> إذا كان البائع هو تعرض لضريبة القيمة المضافة ، وضريبة القيمة المضافة بعد ذلك تلقائيا= 0. نهاية المادة. <br> إذا كان (بيع وشراء= بلد في البلد) ، فإن ضريبة القيمة المضافة بشكل افتراضي= ضريبة القيمة المضافة من بيع المنتج في البلد. نهاية المادة. <br> إذا كان البائع والمشتري في الجماعة الأوروبية ، وبيعت البضاعة الجديدة بعد أن وسائل النقل (السيارات ، والسفن ، والطائرات) ، الافتراضي= 0 ضريبة القيمة المضافة (ضريبة القيمة المضافة وينبغي أن تدفع من قبل المشتري في customoffice بلاده وليس على البائع . نهاية المادة. <br> إذا كان البائع والمشتري في الجماعة الأوروبية والسلع التي تباع عن طريق وسائل أخرى جديدة بدلا من وسائل النقل ، فإن ضريبة القيمة المضافة بشكل افتراضي= ضريبة القيمة المضافة للمنتجات المباعة. نهاية المادة. <br> وإلا فإن ضريبة القيمة المضافة المقترحة الافتراضي= 1. نهاية المادة.
@ -771,18 +772,18 @@ VATIsNotUsedDesc=افتراضي المقترحة 0 ضريبة القيمة ال
VATIsUsedExampleFR=في فرنسا ، فإن ذلك يعني وجود منظمات أو شركات حقيقية في النظام المالي (المبسطة حقيقية أو طبيعية حقيقية). نظام ضريبة القيمة المضافة هي التي أعلنت. VATIsUsedExampleFR=في فرنسا ، فإن ذلك يعني وجود منظمات أو شركات حقيقية في النظام المالي (المبسطة حقيقية أو طبيعية حقيقية). نظام ضريبة القيمة المضافة هي التي أعلنت.
VATIsNotUsedExampleFR=في فرنسا ، فإن ذلك يعني أن الجمعيات غير المعلنة ضريبة القيمة المضافة أو شركات أو مؤسسات المهن الحرة التي اختارت المشاريع الصغيرة النظام الضريبي (ضريبة القيمة المضافة في الانتخاب) ، ودفع ضريبة القيمة المضافة في الانتخاب دون أي إعلان من ضريبة القيمة المضافة. هذا الخيار سيتم عرض المرجعي "غير الضريبة على القيمة المضافة المطبقة -- الفن - 293B من المجموعة الاستشارية لاندونيسيا" على الفواتير. VATIsNotUsedExampleFR=في فرنسا ، فإن ذلك يعني أن الجمعيات غير المعلنة ضريبة القيمة المضافة أو شركات أو مؤسسات المهن الحرة التي اختارت المشاريع الصغيرة النظام الضريبي (ضريبة القيمة المضافة في الانتخاب) ، ودفع ضريبة القيمة المضافة في الانتخاب دون أي إعلان من ضريبة القيمة المضافة. هذا الخيار سيتم عرض المرجعي "غير الضريبة على القيمة المضافة المطبقة -- الفن - 293B من المجموعة الاستشارية لاندونيسيا" على الفواتير.
##### Local Taxes ##### ##### Local Taxes #####
# LocalTax1IsUsed=Use second tax LocalTax1IsUsed=Use second tax
# LocalTax1IsNotUsed=Do not use second tax LocalTax1IsNotUsed=Do not use second tax
# LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
# LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
# LocalTax1Management=Second type of tax LocalTax1Management=Second type of tax
LocalTax1IsUsedExample= LocalTax1IsUsedExample=
LocalTax1IsNotUsedExample= LocalTax1IsNotUsedExample=
# LocalTax2IsUsed=Use third tax LocalTax2IsUsed=Use third tax
# LocalTax2IsNotUsed=Do not use third tax LocalTax2IsNotUsed=Do not use third tax
# LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
# LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
# LocalTax2Management=Third type of tax LocalTax2Management=Third type of tax
LocalTax2IsUsedExample= LocalTax2IsUsedExample=
LocalTax2IsNotUsedExample= LocalTax2IsNotUsedExample=
LocalTax1ManagementES= إدارة الطاقة المتجددة LocalTax1ManagementES= إدارة الطاقة المتجددة
@ -819,7 +820,7 @@ PhpConf=Conf
PhpWebLink=Php ربط الشبكة PhpWebLink=Php ربط الشبكة
Pear=الكمثرى Pear=الكمثرى
PearPackages=الكمثرى الحزم PearPackages=الكمثرى الحزم
# Browser=Browser Browser=Browser
Server=الخادم Server=الخادم
Database=قاعدة بيانات Database=قاعدة بيانات
DatabaseServer=قاعدة بيانات المضيف DatabaseServer=قاعدة بيانات المضيف
@ -846,7 +847,7 @@ MenuCompanySetup=الشركة / المؤسسة
MenuNewUser=مستخدم جديد MenuNewUser=مستخدم جديد
MenuTopManager=المدير الأعلى MenuTopManager=المدير الأعلى
MenuLeftManager=مدير القائمة اليمنى MenuLeftManager=مدير القائمة اليمنى
# MenuManager=Menu manager MenuManager=Menu manager
MenuSmartphoneManager=الهاتف الذكي القائمة مدير MenuSmartphoneManager=الهاتف الذكي القائمة مدير
DefaultMenuTopManager=المدير الأعلى DefaultMenuTopManager=المدير الأعلى
DefaultMenuLeftManager=مدير القائمة اليمنى DefaultMenuLeftManager=مدير القائمة اليمنى
@ -871,7 +872,7 @@ CompanyZip=الرمز البريدي
CompanyTown=مدينة CompanyTown=مدينة
CompanyCountry=قطر CompanyCountry=قطر
CompanyCurrency=العملة الرئيسية CompanyCurrency=العملة الرئيسية
# Logo=Logo Logo=Logo
DoNotShow=لا تظهر DoNotShow=لا تظهر
DoNotSuggestPaymentMode=لا توحي DoNotSuggestPaymentMode=لا توحي
NoActiveBankAccountDefined=لا يعرف في حساب مصرفي نشط NoActiveBankAccountDefined=لا يعرف في حساب مصرفي نشط
@ -905,12 +906,12 @@ SetupDescription5=القيود الأخرى القائمة في إدارة اخ
EventsSetup=الإعداد للمناسبات الجذوع EventsSetup=الإعداد للمناسبات الجذوع
LogEvents=مراجعة الحسابات الأحداث الأمنية LogEvents=مراجعة الحسابات الأحداث الأمنية
Audit=المراجعة Audit=المراجعة
# InfoDolibarr=Infos Dolibarr InfoDolibarr=Infos Dolibarr
# InfoOS=Infos OS InfoOS=Infos OS
# InfoWebServer=Infos web server InfoWebServer=Infos web server
# InfoDatabase=Infos database InfoDatabase=Infos database
# InfoPHP=Infos PHP InfoPHP=Infos PHP
# InfoPerf=Infos performances InfoPerf=Infos performances
ListEvents=مراجعة الأحداث ListEvents=مراجعة الأحداث
ListOfSecurityEvents=قائمة الأحداث الأمنية Dolibarr ListOfSecurityEvents=قائمة الأحداث الأمنية Dolibarr
SecurityEventsPurged=تطهير الاحداث الامنية SecurityEventsPurged=تطهير الاحداث الامنية
@ -931,7 +932,7 @@ TriggerDisabledAsModuleDisabled=يتسبب في تعطيل هذه الصورة
TriggerAlwaysActive=يطلق في هذا الملف هي حركة دائمة ، وتفعيل ما هي وحدات Dolibarr. TriggerAlwaysActive=يطلق في هذا الملف هي حركة دائمة ، وتفعيل ما هي وحدات Dolibarr.
TriggerActiveAsModuleActive=يطلق في هذا الملف كما ينشط حدة تمكين <b>٪ ق.</b> TriggerActiveAsModuleActive=يطلق في هذا الملف كما ينشط حدة تمكين <b>٪ ق.</b>
GeneratedPasswordDesc=هنا تعريف القاعدة التي تريد استخدامه لكلمة السر اذا كنت أسأل لصناعة السيارات ولدت كلمة السر GeneratedPasswordDesc=هنا تعريف القاعدة التي تريد استخدامه لكلمة السر اذا كنت أسأل لصناعة السيارات ولدت كلمة السر
# DictionaryDesc=Define here all reference datas. You can complete predefined value with yours. DictionaryDesc=Define here all reference datas. You can complete predefined value with yours.
ConstDesc=تسمح لك هذه الصفحة لتحرير جميع البارامترات الأخرى غير المتوفرة في الصفحات السابقة. فهي محفوظة لمعايير متقدمة للمطورين أو troubleshouting. ConstDesc=تسمح لك هذه الصفحة لتحرير جميع البارامترات الأخرى غير المتوفرة في الصفحات السابقة. فهي محفوظة لمعايير متقدمة للمطورين أو troubleshouting.
OnceSetupFinishedCreateUsers=تحذير فأنت Dolibarr مدير المستخدم. مدير المستخدمين تستخدم لإعداد Dolibarr. لالمعتاد استخدام Dolibarr ، يوصى باستخدام غير مستخدم مدير خلق مجموعات من المستخدمين & القائمة. OnceSetupFinishedCreateUsers=تحذير فأنت Dolibarr مدير المستخدم. مدير المستخدمين تستخدم لإعداد Dolibarr. لالمعتاد استخدام Dolibarr ، يوصى باستخدام غير مستخدم مدير خلق مجموعات من المستخدمين & القائمة.
MiscellaneousDesc=هنا تعريف جميع البارامترات الأخرى ذات الصلة بالأمن. MiscellaneousDesc=هنا تعريف جميع البارامترات الأخرى ذات الصلة بالأمن.
@ -953,11 +954,11 @@ BackupDesc2=* حفظ الوثائق محتوى الدليل <b>(٪)</b> والذ
BackupDesc3=* حفظ محتوى قاعدة البيانات مع نفايات. لهذا ، يمكنك استخدام التالية مساعد. BackupDesc3=* حفظ محتوى قاعدة البيانات مع نفايات. لهذا ، يمكنك استخدام التالية مساعد.
BackupDescX=الأرشيف دليل ينبغي أن تحفظ في مكان آمن. BackupDescX=الأرشيف دليل ينبغي أن تحفظ في مكان آمن.
BackupDescY=وقد ولدت وينبغي التخلص من الملفات المخزنة في مكان آمن. BackupDescY=وقد ولدت وينبغي التخلص من الملفات المخزنة في مكان آمن.
# BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
RestoreDesc=Dolibarr لاستعادة النسخ الاحتياطي ، يجب عليك : RestoreDesc=Dolibarr لاستعادة النسخ الاحتياطي ، يجب عليك :
RestoreDesc2=* استعادة ارشيف ملف (ملف مضغوط على سبيل المثال) للوثائق ودليل لانتزاع شجرة الملفات في دليل وثائق جديدة أو Dolibarr تركيب هذه الوثائق الحالية directoy <b>(٪).</b> RestoreDesc2=* استعادة ارشيف ملف (ملف مضغوط على سبيل المثال) للوثائق ودليل لانتزاع شجرة الملفات في دليل وثائق جديدة أو Dolibarr تركيب هذه الوثائق الحالية directoy <b>(٪).</b>
RestoreDesc3=* استعادة البيانات ، احتياطية من إلقاء الملف في قاعدة البيانات من جديد Dolibarr تركيب أو في قاعدة البيانات الحالية لهذا التثبيت. تحذير ، بعد الانتهاء من اعادة ، يجب استخدام ادخل كلمة السر ، التي كانت موجودة عندما تم احتياطية ، لربط جديد. النسخ الاحتياطي لاستعادة قاعدة بيانات في هذا التركيب الحالي ، يمكنك اتباع هذه مساعدا. RestoreDesc3=* استعادة البيانات ، احتياطية من إلقاء الملف في قاعدة البيانات من جديد Dolibarr تركيب أو في قاعدة البيانات الحالية لهذا التثبيت. تحذير ، بعد الانتهاء من اعادة ، يجب استخدام ادخل كلمة السر ، التي كانت موجودة عندما تم احتياطية ، لربط جديد. النسخ الاحتياطي لاستعادة قاعدة بيانات في هذا التركيب الحالي ، يمكنك اتباع هذه مساعدا.
# RestoreMySQL=MySQL import RestoreMySQL=MySQL import
ForcedToByAModule= هذه القاعدة <b>ق ٪</b> الى جانب تفعيل وحدة ForcedToByAModule= هذه القاعدة <b>ق ٪</b> الى جانب تفعيل وحدة
PreviousDumpFiles=متاح تفريغ النسخ الاحتياطي ملفات قاعدة البيانات PreviousDumpFiles=متاح تفريغ النسخ الاحتياطي ملفات قاعدة البيانات
WeekStartOnDay=أول يوم من الأسبوع WeekStartOnDay=أول يوم من الأسبوع
@ -967,9 +968,9 @@ YourPHPDoesNotHaveSSLSupport=وظائف خدمة تصميم المواقع لا
DownloadMoreSkins=مزيد من جلود بتحميل DownloadMoreSkins=مزيد من جلود بتحميل
SimpleNumRefModelDesc=عودة الرقم المرجعي للتنسيق مع nnnn - ٪ syymm ث ث حيث هي السنة ، هو شهر ملم وnnnn هو تسلسل بدون ثقب ودون إعادة تعيين SimpleNumRefModelDesc=عودة الرقم المرجعي للتنسيق مع nnnn - ٪ syymm ث ث حيث هي السنة ، هو شهر ملم وnnnn هو تسلسل بدون ثقب ودون إعادة تعيين
ShowProfIdInAddress=إظهار رقم حرفي مع عناوين على وثائق ShowProfIdInAddress=إظهار رقم حرفي مع عناوين على وثائق
# ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
TranslationUncomplete=ترجمة جزئية TranslationUncomplete=ترجمة جزئية
# 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="http://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
MenuUseLayout=جعل القائمة العمودية hidable (يجب أن لا يتم تعطيل خيار جافا سكريبت) MenuUseLayout=جعل القائمة العمودية hidable (يجب أن لا يتم تعطيل خيار جافا سكريبت)
MAIN_DISABLE_METEO=تعطيل ميتيو رأي MAIN_DISABLE_METEO=تعطيل ميتيو رأي
TestLoginToAPI=اختبار الدخول إلى API TestLoginToAPI=اختبار الدخول إلى API
@ -982,50 +983,50 @@ MAIN_PROXY_USER=الدخول لاستخدام الملقم الوكيل
MAIN_PROXY_PASS=كلمة مرور لاستخدام الملقم الوكيل MAIN_PROXY_PASS=كلمة مرور لاستخدام الملقم الوكيل
DefineHereComplementaryAttributes=هنا تعريف جميع atributes، لا تتوفر بالفعل افتراضيا، والتي تريد أن تدعم ل%s. DefineHereComplementaryAttributes=هنا تعريف جميع atributes، لا تتوفر بالفعل افتراضيا، والتي تريد أن تدعم ل%s.
ExtraFields=تكميلية سمات ExtraFields=تكميلية سمات
# ExtraFieldsLines=Complementary attributes (lines) ExtraFieldsLines=Complementary attributes (lines)
# ExtraFieldsThirdParties=Complementary attributes (thirdparty) ExtraFieldsThirdParties=Complementary attributes (thirdparty)
# ExtraFieldsContacts=Complementary attributes (contact/address) ExtraFieldsContacts=Complementary attributes (contact/address)
# ExtraFieldsMember=Complementary attributes (member) ExtraFieldsMember=Complementary attributes (member)
# ExtraFieldsMemberType=Complementary attributes (member type) ExtraFieldsMemberType=Complementary attributes (member type)
# ExtraFieldsCustomerOrders=Complementary attributes (orders) ExtraFieldsCustomerOrders=Complementary attributes (orders)
# ExtraFieldsCustomerInvoices=Complementary attributes (invoices) ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
# ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierOrders=Complementary attributes (orders)
# ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsSupplierInvoices=Complementary attributes (invoices)
# ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProject=Complementary attributes (projects)
# ExtraFieldsProjectTask=Complementary attributes (tasks) ExtraFieldsProjectTask=Complementary attributes (tasks)
ExtraFieldHasWrongValue=قيمة الخاصية %s له قيمة خاطئة. ExtraFieldHasWrongValue=قيمة الخاصية %s له قيمة خاطئة.
# AlphaNumOnlyCharsAndNoSpace=only alphanumericals characters without space AlphaNumOnlyCharsAndNoSpace=only alphanumericals characters without space
# AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
SendingMailSetup=الإعداد من sendings عن طريق البريد الإلكتروني SendingMailSetup=الإعداد من sendings عن طريق البريد الإلكتروني
SendmailOptionNotComplete=تحذير، في بعض أنظمة لينكس، لإرسال البريد الإلكتروني من البريد الإلكتروني الخاص بك، يجب أن تنسخ الإعداد تنفيذ conatins الخيار، على درجة البكالوريوس (mail.force_extra_parameters المعلمة في ملف php.ini الخاص بك). إذا كان بعض المستفيدين لم تلقي رسائل البريد الإلكتروني، في محاولة لتعديل هذه المعلمة PHP مع mail.force_extra_parameters =-BA). SendmailOptionNotComplete=تحذير، في بعض أنظمة لينكس، لإرسال البريد الإلكتروني من البريد الإلكتروني الخاص بك، يجب أن تنسخ الإعداد تنفيذ conatins الخيار، على درجة البكالوريوس (mail.force_extra_parameters المعلمة في ملف php.ini الخاص بك). إذا كان بعض المستفيدين لم تلقي رسائل البريد الإلكتروني، في محاولة لتعديل هذه المعلمة PHP مع mail.force_extra_parameters =-BA).
PathToDocuments=الطريق إلى وثائق PathToDocuments=الطريق إلى وثائق
PathDirectory=دليل PathDirectory=دليل
SendmailOptionMayHurtBuggedMTA=وميزة لإرسال رسائل باستخدام طريقة &quot;البريد PHP المباشرة&quot; إنشاء رسالة البريد الإلكتروني التي قد لا تحليل بشكل صحيح من قبل بعض ملقمات البريد المتلقي. النتيجة هي أنه لا يمكن أن بعض الرسائل يمكن قراءتها من قبل الناس التي تستضيفها منصات thoose تنصتت. انها الحال بالنسبة لبعض مقدمي خدمات الإنترنت (مثال: البرتقال في فرنسا). هذه ليست مشكلة في Dolibarr ولا في PHP ولكن على استقبال خادم البريد. يمكنك إضافة MAIN_FIX_FOR_BUGGED_MTA لكن الخيار إلى 1 في الإعداد - أخرى لتعديل Dolibarr لتجنب هذا. ومع ذلك، قد تواجه مشكلة مع ملقمات أخرى أن الاحترام الصارم لمعيار SMTP. الحل الآخر (ريكومانديد) هو لاستخدام أسلوب &quot;SMTP مأخذ مكتبة&quot; التي لا يوجد لديه عيوب. SendmailOptionMayHurtBuggedMTA=وميزة لإرسال رسائل باستخدام طريقة &quot;البريد PHP المباشرة&quot; إنشاء رسالة البريد الإلكتروني التي قد لا تحليل بشكل صحيح من قبل بعض ملقمات البريد المتلقي. النتيجة هي أنه لا يمكن أن بعض الرسائل يمكن قراءتها من قبل الناس التي تستضيفها منصات thoose تنصتت. انها الحال بالنسبة لبعض مقدمي خدمات الإنترنت (مثال: البرتقال في فرنسا). هذه ليست مشكلة في Dolibarr ولا في PHP ولكن على استقبال خادم البريد. يمكنك إضافة MAIN_FIX_FOR_BUGGED_MTA لكن الخيار إلى 1 في الإعداد - أخرى لتعديل Dolibarr لتجنب هذا. ومع ذلك، قد تواجه مشكلة مع ملقمات أخرى أن الاحترام الصارم لمعيار SMTP. الحل الآخر (ريكومانديد) هو لاستخدام أسلوب &quot;SMTP مأخذ مكتبة&quot; التي لا يوجد لديه عيوب.
# TranslationSetup=Configuration de la traduction TranslationSetup=Configuration de la traduction
# TranslationDesc=Choice of language visible on screen can be modified:<br>* Globally from menu <strong>Home - Setup - Display</strong><br>* For user only from tab <strong>User display</strong> of user card (click on login on top of screen). TranslationDesc=Choice of language visible on screen can be modified:<br>* Globally from menu <strong>Home - Setup - Display</strong><br>* For user only from tab <strong>User display</strong> of user card (click on login on top of screen).
# TotalNumberOfActivatedModules=Total number of activated feature modules: <b>%s</b> TotalNumberOfActivatedModules=Total number of activated feature modules: <b>%s</b>
# YouMustEnableOneModule=You must at least enable 1 module YouMustEnableOneModule=You must at least enable 1 module
# ClassNotFoundIntoPathWarning=Class %s not found into PHP path ClassNotFoundIntoPathWarning=Class %s not found into PHP path
# YesInSummer=Yes in summer YesInSummer=Yes in summer
# OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users): OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users):
# SuhosinSessionEncrypt=Session storage encrypted by Suhosin SuhosinSessionEncrypt=Session storage encrypted by Suhosin
# ConditionIsCurrently=Condition is currently %s ConditionIsCurrently=Condition is currently %s
# TestNotPossibleWithCurrentBrowsers=Automatic detection not possible TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
# YouUseBestDriver=You use driver %s that is best driver available currently. YouUseBestDriver=You use driver %s that is best driver available currently.
# YouDoNotUseBestDriver=You use drive %s but driver %s is recommanded. YouDoNotUseBestDriver=You use drive %s but driver %s is recommanded.
# NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
# SearchOptim=Search optimization SearchOptim=Search optimization
# YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
# BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
# BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
# XDebugInstalled=XDebug est chargé. XDebugInstalled=XDebug est chargé.
# XCacheInstalled=XCache is loaded. XCacheInstalled=XCache is loaded.
# AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
# FieldEdition=Edition of field %s FieldEdition=Edition of field %s
# FixTZ=TimeZone fix FixTZ=TimeZone fix
# FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
# GetBarCode=Get barcode GetBarCode=Get barcode
# EmptyNumRefModelDesc=The code is free. This code can be modified at any time. EmptyNumRefModelDesc=The code is free. This code can be modified at any time.
##### Module password generation ##### Module password generation
PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير. PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير.
PasswordGenerationNone=لا توحي بأي كلمة المرور المتولدة. يجب أن تكون كلمة السر في نوع يدويا. PasswordGenerationNone=لا توحي بأي كلمة المرور المتولدة. يجب أن تكون كلمة السر في نوع يدويا.
@ -1048,12 +1049,12 @@ ModuleCompanyCodeDigitaria=قانون المحاسبة طرف ثالث يعتم
UseNotifications=استخدام الإخطارات UseNotifications=استخدام الإخطارات
NotificationsDesc=إشعارات البريد الإلكتروني ميزة تسمح لك صمت إرسال البريد الآلي ، وبالنسبة لبعض الأحداث Dolibarr ، لأطراف ثالثة (العملاء أو الموردين) التي هي لتهيئتها. اختيار نشط الاشعار الاتصالات واعتماد أهداف واحدة لطرف ثالث في الوقت المناسب. NotificationsDesc=إشعارات البريد الإلكتروني ميزة تسمح لك صمت إرسال البريد الآلي ، وبالنسبة لبعض الأحداث Dolibarr ، لأطراف ثالثة (العملاء أو الموردين) التي هي لتهيئتها. اختيار نشط الاشعار الاتصالات واعتماد أهداف واحدة لطرف ثالث في الوقت المناسب.
ModelModules=وثائق قوالب ModelModules=وثائق قوالب
# DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
WatermarkOnDraft=علامة مائية على مشروع الوثيقة WatermarkOnDraft=علامة مائية على مشروع الوثيقة
CompanyIdProfChecker=المهنية معرف فريد CompanyIdProfChecker=المهنية معرف فريد
MustBeUnique=يجب أن تكون فريدة من نوعها؟ MustBeUnique=يجب أن تكون فريدة من نوعها؟
# MustBeMandatory=Mandatory to create third parties ? MustBeMandatory=Mandatory to create third parties ?
# MustBeInvoiceMandatory=Mandatory to validate invoices ? MustBeInvoiceMandatory=Mandatory to validate invoices ?
Miscellaneous=متفرقات Miscellaneous=متفرقات
##### Webcal setup ##### ##### Webcal setup #####
WebCalSetup=Webcalendar ربط الإعداد WebCalSetup=Webcalendar ربط الإعداد
@ -1095,7 +1096,7 @@ EnableEditDeleteValidInvoice=تتيح إمكانية تعديل أو حذف صح
SuggestPaymentByRIBOnAccount=وتشير دفع سحب على حساب SuggestPaymentByRIBOnAccount=وتشير دفع سحب على حساب
SuggestPaymentByChequeToAddress=وتشير إلى دفع الشيكات SuggestPaymentByChequeToAddress=وتشير إلى دفع الشيكات
FreeLegalTextOnInvoices=نص حر على الفواتير FreeLegalTextOnInvoices=نص حر على الفواتير
# WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty)
##### Proposals ##### ##### Proposals #####
PropalSetup=وحدة إعداد مقترحات تجارية PropalSetup=وحدة إعداد مقترحات تجارية
CreateForm=خلق أشكال CreateForm=خلق أشكال
@ -1108,7 +1109,7 @@ AddShippingDateAbility=إضافة قدرة الشحن والتاريخ
AddDeliveryAddressAbility=إضافة قدرة تاريخ التسليم AddDeliveryAddressAbility=إضافة قدرة تاريخ التسليم
UseOptionLineIfNoQuantity=خط من المنتجات / الخدمات ذات الصفر المبلغ يعتبر خيارا UseOptionLineIfNoQuantity=خط من المنتجات / الخدمات ذات الصفر المبلغ يعتبر خيارا
FreeLegalTextOnProposal=نص تجارية حرة على مقترحات FreeLegalTextOnProposal=نص تجارية حرة على مقترحات
# WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty)
##### Orders ##### ##### Orders #####
OrdersSetup=أوامر إدارة الإعداد OrdersSetup=أوامر إدارة الإعداد
OrdersNumberingModules=أوامر الترقيم نمائط OrdersNumberingModules=أوامر الترقيم نمائط
@ -1116,7 +1117,7 @@ OrdersModelModule=وثائق من أجل النماذج
HideTreadedOrders=إخفاء أو معاملة الغاء الاوامر في قائمة HideTreadedOrders=إخفاء أو معاملة الغاء الاوامر في قائمة
ValidOrderAfterPropalClosed=للمصادقة على النظام بعد اقتراح أوثق ، لا يجعل من الممكن للخطوة من جانب النظام المؤقت ValidOrderAfterPropalClosed=للمصادقة على النظام بعد اقتراح أوثق ، لا يجعل من الممكن للخطوة من جانب النظام المؤقت
FreeLegalTextOnOrders=بناء على أوامر النص الحر FreeLegalTextOnOrders=بناء على أوامر النص الحر
# WatermarkOnDraftOrders=Watermark on draft orders (none if empty) WatermarkOnDraftOrders=Watermark on draft orders (none if empty)
##### Clicktodial ##### ##### Clicktodial #####
ClickToDialSetup=انقر لإعداد وحدة الاتصال الهاتفي ClickToDialSetup=انقر لإعداد وحدة الاتصال الهاتفي
ClickToDialUrlDesc=ودعا الموقع عندما تنقر على الهاتف picto ذلك. Dans l' رابط ، vous pouvez utiliser ليه balises <br> <b>٪ ٪ 1 $ ق</b> qui الأمصال remplacé قدم المساواة جنيه téléphone دي l' appelé <br> <b>٪ ٪</b> 2 $ <b>ق</b> qui الأمصال remplacé لو قدم المساواة téléphone دي l' appelant جنيه مصري vôtre) <br> <b>٪ ٪ ل 3</b> دولار qui الأمصال remplacé vôtre ادخل clicktodial الفقرة (défini سور vôtre فيشه utilisateur) <br> <b>٪ ٪</b> 4 <b>$</b> ق qui الأمصال remplacé الفقرة vôtre يذكره دي clicktodial عتيق (défini سور vôtre فيشه utilisateur). ClickToDialUrlDesc=ودعا الموقع عندما تنقر على الهاتف picto ذلك. Dans l' رابط ، vous pouvez utiliser ليه balises <br> <b>٪ ٪ 1 $ ق</b> qui الأمصال remplacé قدم المساواة جنيه téléphone دي l' appelé <br> <b>٪ ٪</b> 2 $ <b>ق</b> qui الأمصال remplacé لو قدم المساواة téléphone دي l' appelant جنيه مصري vôtre) <br> <b>٪ ٪ ل 3</b> دولار qui الأمصال remplacé vôtre ادخل clicktodial الفقرة (défini سور vôtre فيشه utilisateur) <br> <b>٪ ٪</b> 4 <b>$</b> ق qui الأمصال remplacé الفقرة vôtre يذكره دي clicktodial عتيق (défini سور vôtre فيشه utilisateur).
@ -1127,13 +1128,13 @@ InterventionsSetup=وحدة التدخل الإعداد
FreeLegalTextOnInterventions=حرر النص على وثائق التدخل FreeLegalTextOnInterventions=حرر النص على وثائق التدخل
FicheinterNumberingModules=الترقيم وحدات التدخل FicheinterNumberingModules=الترقيم وحدات التدخل
TemplatePDFInterventions=تدخل بطاقة نماذج الوثائق TemplatePDFInterventions=تدخل بطاقة نماذج الوثائق
# WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty)
##### Contracts ##### ##### Contracts #####
ContractsSetup=عقود وحدة الإعداد ContractsSetup=عقود وحدة الإعداد
ContractsNumberingModules=عقود ترقيم الوحدات ContractsNumberingModules=عقود ترقيم الوحدات
# TemplatePDFContracts=Contracts documents models TemplatePDFContracts=Contracts documents models
# FreeLegalTextOnContracts=Free text on contracts FreeLegalTextOnContracts=Free text on contracts
# WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty)
##### Members ##### ##### Members #####
MembersSetup=أعضاء وحدة الإعداد MembersSetup=أعضاء وحدة الإعداد
MemberMainOptions=الخيارات الرئيسية MemberMainOptions=الخيارات الرئيسية
@ -1202,7 +1203,7 @@ LDAPTestSynchroContact=اختبار الاتصال 'sالتزامن
LDAPTestSynchroUser=تجربة المستخدم التزامن LDAPTestSynchroUser=تجربة المستخدم التزامن
LDAPTestSynchroGroup=اختبار المجموعة التزامن LDAPTestSynchroGroup=اختبار المجموعة التزامن
LDAPTestSynchroMember=اختبار العضو التزامن LDAPTestSynchroMember=اختبار العضو التزامن
# LDAPTestSearch= Test a LDAP search LDAPTestSearch= Test a LDAP search
LDAPSynchroOK=تزامن اختبار ناجح LDAPSynchroOK=تزامن اختبار ناجح
LDAPSynchroKO=فشل تزامن الاختبار LDAPSynchroKO=فشل تزامن الاختبار
LDAPSynchroKOMayBePermissions=تزامن فشل الاختبار. تأكد من أن ارتباط لخادم تهيئتها بشكل صحيح ، ويسمح LDAP udpates LDAPSynchroKOMayBePermissions=تزامن فشل الاختبار. تأكد من أن ارتباط لخادم تهيئتها بشكل صحيح ، ويسمح LDAP udpates
@ -1266,7 +1267,7 @@ LDAPFieldSid=سيد
LDAPFieldSidExample=مثال ذلك : objectsid LDAPFieldSidExample=مثال ذلك : objectsid
LDAPFieldEndLastSubscription=تاريخ انتهاء الاكتتاب LDAPFieldEndLastSubscription=تاريخ انتهاء الاكتتاب
LDAPFieldTitle=وظيفة / وظيفة LDAPFieldTitle=وظيفة / وظيفة
# LDAPFieldTitleExample=Example: title LDAPFieldTitleExample=Example: title
LDAPParametersAreStillHardCoded=LDAP المعايير ما زالت hardcoded (الطبقة اتصال) LDAPParametersAreStillHardCoded=LDAP المعايير ما زالت hardcoded (الطبقة اتصال)
LDAPSetupNotComplete=LDAP الإعداد غير كاملة (على آخرين علامات التبويب) LDAPSetupNotComplete=LDAP الإعداد غير كاملة (على آخرين علامات التبويب)
LDAPNoUserOrPasswordProvidedAccessIsReadOnly=أي مدير أو كلمة السر. LDAP الوصول مجهولة وسيكون في قراءة فقط. LDAPNoUserOrPasswordProvidedAccessIsReadOnly=أي مدير أو كلمة السر. LDAP الوصول مجهولة وسيكون في قراءة فقط.
@ -1276,22 +1277,22 @@ LDAPDescGroups=تسمح لك هذه الصفحة لتحديد اسم LDAP الص
LDAPDescMembers=تسمح لك هذه الصفحة لتحديد اسم LDAP الصفات LDAP شجرة في كل البيانات التي وجدت على Dolibarr أعضاء الوحدة. LDAPDescMembers=تسمح لك هذه الصفحة لتحديد اسم LDAP الصفات LDAP شجرة في كل البيانات التي وجدت على Dolibarr أعضاء الوحدة.
LDAPDescValues=مثال قيم تهدف <b>لOpenLDAP</b> مع مخططات بعد تحميلها : <b>core.schema ، cosine.schema ، inetorgperson.schema).</b> إذا كنت تستخدم thoose القيم وOpenLDAP تعديل LDAP الخاص بك ملف <b>slapd.conf</b> لجميع مخططات thoose تحميله. LDAPDescValues=مثال قيم تهدف <b>لOpenLDAP</b> مع مخططات بعد تحميلها : <b>core.schema ، cosine.schema ، inetorgperson.schema).</b> إذا كنت تستخدم thoose القيم وOpenLDAP تعديل LDAP الخاص بك ملف <b>slapd.conf</b> لجميع مخططات thoose تحميله.
ForANonAnonymousAccess=لصحتها accès (لكتابة الحصول على سبيل المثال) ForANonAnonymousAccess=لصحتها accès (لكتابة الحصول على سبيل المثال)
# PerfDolibarr=Performance setup/optimizing report PerfDolibarr=Performance setup/optimizing report
# YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
# NotInstalled=Not installed, so your server is not slow down by this. NotInstalled=Not installed, so your server is not slow down by this.
# ApplicativeCache=Applicative cache ApplicativeCache=Applicative cache
# MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server. MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
# OPCodeCache=OPCode cache OPCodeCache=OPCode cache
# NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
# HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
# FilesOfTypeCached=Files of type %s are cached by HTTP server FilesOfTypeCached=Files of type %s are cached by HTTP server
# FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
# FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
# FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
# CacheByServer=Cache by server CacheByServer=Cache by server
# CacheByClient=Cache by browser CacheByClient=Cache by browser
# CompressionOfResources=Compression of HTTP responses CompressionOfResources=Compression of HTTP responses
# TestNotPossibleWithCurrentBrowsers=Automatic detection not possible TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
##### Products ##### ##### Products #####
ProductSetup=المنتجات وحدة الإعداد ProductSetup=المنتجات وحدة الإعداد
ServiceSetup=خدمات وحدة الإعداد ServiceSetup=خدمات وحدة الإعداد
@ -1305,8 +1306,8 @@ UseSearchToSelectProduct=استخدام نموذج البحث لاختيار ا
UseEcoTaxeAbility=الدعم الاقتصادي Taxe (WEEE) UseEcoTaxeAbility=الدعم الاقتصادي Taxe (WEEE)
SetDefaultBarcodeTypeProducts=النوع الافتراضي لاستخدام الباركود للمنتجات SetDefaultBarcodeTypeProducts=النوع الافتراضي لاستخدام الباركود للمنتجات
SetDefaultBarcodeTypeThirdParties=النوع الافتراضي لاستخدام الباركود لأطراف ثالثة SetDefaultBarcodeTypeThirdParties=النوع الافتراضي لاستخدام الباركود لأطراف ثالثة
# ProductCodeChecker= Module for product code generation and checking (product or service) ProductCodeChecker= Module for product code generation and checking (product or service)
# ProductOtherConf= Product / Service configuration ProductOtherConf= Product / Service configuration
##### Syslog ##### ##### Syslog #####
SyslogSetup=Syslog حدة الإعداد SyslogSetup=Syslog حدة الإعداد
SyslogOutput=سجل الناتج SyslogOutput=سجل الناتج
@ -1317,7 +1318,7 @@ SyslogSimpleFile=ملف
SyslogFilename=اسم الملف ومسار SyslogFilename=اسم الملف ومسار
YouCanUseDOL_DATA_ROOT=يمكنك استخدام DOL_DATA_ROOT / dolibarr.log لملف الدخول في Dolibarr "وثائق" دليل. يمكنك أن تحدد مسارا مختلفا لتخزين هذا الملف. YouCanUseDOL_DATA_ROOT=يمكنك استخدام DOL_DATA_ROOT / dolibarr.log لملف الدخول في Dolibarr "وثائق" دليل. يمكنك أن تحدد مسارا مختلفا لتخزين هذا الملف.
ErrorUnknownSyslogConstant=ق المستمر ٪ ليست معروفة syslog مستمر ErrorUnknownSyslogConstant=ق المستمر ٪ ليست معروفة syslog مستمر
# OnlyWindowsLOG_USER=Windows only supports LOG_USER OnlyWindowsLOG_USER=Windows only supports LOG_USER
##### Donations ##### ##### Donations #####
DonationsSetup=وحدة الإعداد للتبرع DonationsSetup=وحدة الإعداد للتبرع
DonationsReceiptModel=قالب من استلام التبرع DonationsReceiptModel=قالب من استلام التبرع
@ -1336,15 +1337,15 @@ BarcodeDescISBN=الباركود من نوع ردمك
BarcodeDescC39=الباركود من نوع C39 BarcodeDescC39=الباركود من نوع C39
BarcodeDescC128=الباركود من نوع C128 BarcodeDescC128=الباركود من نوع C128
GenbarcodeLocation=باركود الجيل سطر أداة تستخدمها phpbarcode المحرك لبعض أنواع باركود) GenbarcodeLocation=باركود الجيل سطر أداة تستخدمها phpbarcode المحرك لبعض أنواع باركود)
# BarcodeInternalEngine=Internal engine BarcodeInternalEngine=Internal engine
# BarCodeNumberManager=Manager to auto define barcode numbers BarCodeNumberManager=Manager to auto define barcode numbers
##### Prelevements ##### ##### Prelevements #####
WithdrawalsSetup=انسحاب وحدة الإعداد WithdrawalsSetup=انسحاب وحدة الإعداد
##### ExternalRSS ##### ##### ExternalRSS #####
ExternalRSSSetup=RSS الواردات الخارجية الإعداد <textarea></textarea> ExternalRSSSetup=RSS الواردات الخارجية الإعداد <textarea></textarea>
NewRSS=الجديد تغذية RSS NewRSS=الجديد تغذية RSS
# RSSUrl=RSS URL RSSUrl=RSS URL
# RSSUrlExample=An interesting RSS feed RSSUrlExample=An interesting RSS feed
##### Mailing ##### ##### Mailing #####
MailingSetup=إعداد وحدة الارسال بالبريد الالكتروني MailingSetup=إعداد وحدة الارسال بالبريد الالكتروني
MailingEMailFrom=مرسل البريد الالكتروني (من) لرسائل البريد الإلكتروني التي بعث بها وحدة الإنترنت MailingEMailFrom=مرسل البريد الالكتروني (من) لرسائل البريد الإلكتروني التي بعث بها وحدة الإنترنت
@ -1372,8 +1373,8 @@ FCKeditorForCompany=WYSIWIG إنشاء / الطبعة شركات ووصف الم
FCKeditorForProduct=WYSIWIG إنشاء / الطبعة المنتجات / الخدمات ووصف المذكرة FCKeditorForProduct=WYSIWIG إنشاء / الطبعة المنتجات / الخدمات ووصف المذكرة
FCKeditorForProductDetails=WYSIWIG إنشاء / الطبعة تفاصيل خطوط المنتجات لجميع الكيانات (المقترحات والأوامر والفواتير ، الخ...) <br> تحذير : استخدام هذا الخيار بجدية recommanded لأنه لا يمكن أن تخلق مشاكل مع الأحرف الخاصة وبناء صفحة صيغة عندما الشعبي الملفات. FCKeditorForProductDetails=WYSIWIG إنشاء / الطبعة تفاصيل خطوط المنتجات لجميع الكيانات (المقترحات والأوامر والفواتير ، الخ...) <br> تحذير : استخدام هذا الخيار بجدية recommanded لأنه لا يمكن أن تخلق مشاكل مع الأحرف الخاصة وبناء صفحة صيغة عندما الشعبي الملفات.
FCKeditorForMailing= WYSIWIG إنشاء / الطبعة بالبريد FCKeditorForMailing= WYSIWIG إنشاء / الطبعة بالبريد
# FCKeditorForUserSignature=WYSIWIG creation/edition of user signature FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
# FCKeditorForMail=WYSIWIG creation/edition for all mail (except Outils->eMailing) FCKeditorForMail=WYSIWIG creation/edition for all mail (except Outils->eMailing)
##### OSCommerce 1 ##### ##### OSCommerce 1 #####
OSCommerceErrorConnectOkButWrongDatabase=نجح الصدد ولكن قاعدة البيانات لا يبدو أن قاعدة بيانات OSCommerce (ق ٪ الرئيسية غير موجودة في الجدول ٪). OSCommerceErrorConnectOkButWrongDatabase=نجح الصدد ولكن قاعدة البيانات لا يبدو أن قاعدة بيانات OSCommerce (ق ٪ الرئيسية غير موجودة في الجدول ٪).
OSCommerceTestOk=علاقة الخادم '٪ ق' على قاعدة البيانات '٪ ق' مستخدم '٪ ق' ناجحة. OSCommerceTestOk=علاقة الخادم '٪ ق' على قاعدة البيانات '٪ ق' مستخدم '٪ ق' ناجحة.
@ -1431,13 +1432,13 @@ Sell=يبيع
InvoiceDateUsed=فاتورة تاريخ المستخدمة InvoiceDateUsed=فاتورة تاريخ المستخدمة
YourCompanyDoesNotUseVAT=وقد تم تسجيل شركة محددة لعدم استخدام ضريبة القيمة المضافة (الصفحة الرئيسية -- إعداد -- شركة / مؤسسة) ، لذلك لا يوجد خيارات لضريبة القيمة المضافة الإعداد. YourCompanyDoesNotUseVAT=وقد تم تسجيل شركة محددة لعدم استخدام ضريبة القيمة المضافة (الصفحة الرئيسية -- إعداد -- شركة / مؤسسة) ، لذلك لا يوجد خيارات لضريبة القيمة المضافة الإعداد.
AccountancyCode=قانون المحاسبة AccountancyCode=قانون المحاسبة
# AccountancyCodeSell=Sale account. code AccountancyCodeSell=Sale account. code
# AccountancyCodeBuy=Purchase account. code AccountancyCodeBuy=Purchase account. code
##### Agenda ##### ##### Agenda #####
AgendaSetup=جدول الأعمال وحدة الإعداد AgendaSetup=جدول الأعمال وحدة الإعداد
PasswordTogetVCalExport=مفتاح ربط تصدير تأذن PasswordTogetVCalExport=مفتاح ربط تصدير تأذن
PastDelayVCalExport=لا تصدر الحدث الأكبر من PastDelayVCalExport=لا تصدر الحدث الأكبر من
# AGENDA_USE_EVENT_TYPE=Use events types (managed into Configuration->Dictionary->llx_c_actioncomm) AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionnary -> Type of agenda events)
##### ClickToDial ##### ##### ClickToDial #####
ClickToDialDesc=هذا النموذج يسمح لإضافة رمز بعد رقم هاتف Dolibarr الاتصالات. وهناك اضغط على هذه الأيقونة ، سوف يطلب من أحد serveur معينة مع تحديد عنوان لكم أدناه. ويمكن استخدام هذه الكلمة لدعوة من مركز نظام Dolibarr التي يمكن الاتصال على رقم الهاتف هذا المسبار النظام على سبيل المثال. ClickToDialDesc=هذا النموذج يسمح لإضافة رمز بعد رقم هاتف Dolibarr الاتصالات. وهناك اضغط على هذه الأيقونة ، سوف يطلب من أحد serveur معينة مع تحديد عنوان لكم أدناه. ويمكن استخدام هذه الكلمة لدعوة من مركز نظام Dolibarr التي يمكن الاتصال على رقم الهاتف هذا المسبار النظام على سبيل المثال.
##### Point Of Sales (CashDesk) ##### ##### Point Of Sales (CashDesk) #####
@ -1471,10 +1472,10 @@ MultiCompanySetup=نموذج متعدد شركة الإعداد
SuppliersSetup=المورد الإعداد وحدة SuppliersSetup=المورد الإعداد وحدة
SuppliersCommandModel=قالب كاملة من أجل المورد (logo...) SuppliersCommandModel=قالب كاملة من أجل المورد (logo...)
SuppliersInvoiceModel=كاملة قالب من فاتورة المورد (logo. ..) SuppliersInvoiceModel=كاملة قالب من فاتورة المورد (logo. ..)
# SuppliersInvoiceNumberingModel=Supplier invoices numbering models SuppliersInvoiceNumberingModel=Supplier invoices numbering models
##### GeoIPMaxmind ##### ##### GeoIPMaxmind #####
GeoIPMaxmindSetup=GeoIP Maxmind الإعداد وحدة GeoIPMaxmindSetup=GeoIP Maxmind الإعداد وحدة
# PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat
NoteOnPathLocation=لاحظ أن الملكية الفكرية الخاصة بك على البيانات القطرية الملف يجب أن تكون داخل الدليل الخاص بي يمكن قراءة (راجع الإعداد open_basedir بى وأذونات نظام الملفات). NoteOnPathLocation=لاحظ أن الملكية الفكرية الخاصة بك على البيانات القطرية الملف يجب أن تكون داخل الدليل الخاص بي يمكن قراءة (راجع الإعداد open_basedir بى وأذونات نظام الملفات).
YouCanDownloadFreeDatFileTo=يمكنك تحميل <b>نسخة تجريبية مجانية</b> من GeoIP ملف Maxmind البلاد في ٪ s. YouCanDownloadFreeDatFileTo=يمكنك تحميل <b>نسخة تجريبية مجانية</b> من GeoIP ملف Maxmind البلاد في ٪ s.
YouCanDownloadAdvancedDatFileTo=كما يمكنك تحميل <b>نسخة كاملة</b> أكثر من ذلك <b>، مع التحديثات ،</b> من GeoIP ملف Maxmind البلاد في ٪ s. YouCanDownloadAdvancedDatFileTo=كما يمكنك تحميل <b>نسخة كاملة</b> أكثر من ذلك <b>، مع التحديثات ،</b> من GeoIP ملف Maxmind البلاد في ٪ s.
@ -1483,8 +1484,8 @@ TestGeoIPResult=اختبار لتحويل الملكية الفكرية --> ال
ProjectsNumberingModules=مشاريع وحدة الترقيم ProjectsNumberingModules=مشاريع وحدة الترقيم
ProjectsSetup=مشروع إعداد وحدة ProjectsSetup=مشروع إعداد وحدة
ProjectsModelModule=المشروع نموذج التقرير وثيقة ProjectsModelModule=المشروع نموذج التقرير وثيقة
# TasksNumberingModules=Tasks numbering module TasksNumberingModules=Tasks numbering module
# TaskModelModule=Tasks reports document model TaskModelModule=Tasks reports document model
##### ECM (GED) ##### ##### ECM (GED) #####
# ECMSetup = GED Setup ECMSetup = GED Setup
# ECMAutoTree = Automatic tree folder and document ECMAutoTree = Automatic tree folder and document

View File

@ -43,6 +43,7 @@ InvoiceBackToDraftInDolibarr=الفاتورة %s للذهاب بها إلى حا
InvoiceDeleteDolibarr=تم حذف %s من الفاتورة InvoiceDeleteDolibarr=تم حذف %s من الفاتورة
OrderValidatedInDolibarr= تم توثيق %s من الطلب OrderValidatedInDolibarr= تم توثيق %s من الطلب
OrderApprovedInDolibarr=تم الموافقة على %s من الطلب OrderApprovedInDolibarr=تم الموافقة على %s من الطلب
OrderRefusedInDolibarr=Order %s refused
OrderBackToDraftInDolibarr=الطلب %s للذهاب بها إلى حالة المسودة OrderBackToDraftInDolibarr=الطلب %s للذهاب بها إلى حالة المسودة
OrderCanceledInDolibarr=تم إلغاء %s من الطلب OrderCanceledInDolibarr=تم إلغاء %s من الطلب
InterventionValidatedInDolibarr=تم توثيق %s من التدخل InterventionValidatedInDolibarr=تم توثيق %s من التدخل
@ -52,7 +53,7 @@ InvoiceSentByEMail=تم إرسال فاتروة العميل %s بواسطة ا
SupplierOrderSentByEMail=تم إرسال طلبية المزود %s بواسطة البريد الإلكتروني SupplierOrderSentByEMail=تم إرسال طلبية المزود %s بواسطة البريد الإلكتروني
SupplierInvoiceSentByEMail=تم إرسال فاتروة المزود%s بواسطة البريد الإلكتروني SupplierInvoiceSentByEMail=تم إرسال فاتروة المزود%s بواسطة البريد الإلكتروني
ShippingSentByEMail=تم إرسال الشحنة %s بواسطة البريد الإلكتروني ShippingSentByEMail=تم إرسال الشحنة %s بواسطة البريد الإلكتروني
# ShippingValidated= Shipping %s validated ShippingValidated= Shipping %s validated
InterventionSentByEMail=تم إرسال التدخل %s بواسطة البريد الإلكتروني InterventionSentByEMail=تم إرسال التدخل %s بواسطة البريد الإلكتروني
NewCompanyToDolibarr= تم إنشاء طرف ثالث أو خارجي NewCompanyToDolibarr= تم إنشاء طرف ثالث أو خارجي
DateActionPlannedStart= التاريخ المخطط للبدء DateActionPlannedStart= التاريخ المخطط للبدء

View File

@ -8,7 +8,6 @@ BillsCustomersUnpaid=غير المدفوعة للعملاء الفواتير
BillsCustomersUnpaidForCompany=غير المدفوعة للعملاء فواتير ق ٪ BillsCustomersUnpaidForCompany=غير المدفوعة للعملاء فواتير ق ٪
BillsSuppliersUnpaid=غير المدفوعة الموردين BillsSuppliersUnpaid=غير المدفوعة الموردين
BillsSuppliersUnpaidForCompany=مورد غير المسددة لفواتير %s BillsSuppliersUnpaidForCompany=مورد غير المسددة لفواتير %s
BillsUnpaid=غير المدفوعة
BillsLate=في وقت متأخر المدفوعات BillsLate=في وقت متأخر المدفوعات
BillsStatistics=العملاء والفواتير والإحصاءات BillsStatistics=العملاء والفواتير والإحصاءات
BillsStatisticsSuppliers=الموردين إحصاءات BillsStatisticsSuppliers=الموردين إحصاءات
@ -24,13 +23,13 @@ InvoiceProFormaAsk=Proforma الفاتورة
InvoiceProFormaDesc=<b>Proforma الفاتورة</b> هو صورة حقيقية فاتورة المحاسبة ولكن ليس له قيمة. InvoiceProFormaDesc=<b>Proforma الفاتورة</b> هو صورة حقيقية فاتورة المحاسبة ولكن ليس له قيمة.
InvoiceReplacement=استبدال الفاتورة InvoiceReplacement=استبدال الفاتورة
InvoiceReplacementAsk=استبدال فاتورة الفاتورة InvoiceReplacementAsk=استبدال فاتورة الفاتورة
InvoiceReplacementDesc=<b>استبدال الفاتورة</b> يستخدم لالغاء واستبدال تماما مع فاتورة الدفع لا تلقى بالفعل. <br><br> ملاحظة : ليس فقط من فاتورة الدفع على أنه يمكن الاستعاضة عنها. إن لم تكن مغلقة ، سيكون تلقائيا مغلقة 'المهجورة. InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
InvoiceAvoir=علما الائتمان InvoiceAvoir=علما الائتمان
InvoiceAvoirAsk=علما الائتمان لتصحيح الفاتورة InvoiceAvoirAsk=علما الائتمان لتصحيح الفاتورة
InvoiceAvoirDesc=<b>الفضل</b> في <b>المذكرة</b> سلبية الفاتورة تستخدم لحل كون فاتورة بمبلغ قد يختلف عن المبلغ المدفوع فعلا (لأنه دفع الكثير من العملاء عن طريق الخطأ ، أو لن تدفع بالكامل منذ عودته لبعض المنتجات على سبيل المثال). InvoiceAvoirDesc=<b>الفضل</b> في <b>المذكرة</b> سلبية الفاتورة تستخدم لحل كون فاتورة بمبلغ قد يختلف عن المبلغ المدفوع فعلا (لأنه دفع الكثير من العملاء عن طريق الخطأ ، أو لن تدفع بالكامل منذ عودته لبعض المنتجات على سبيل المثال).
# invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
# invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake
# invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake
ReplaceInvoice=يستعاض عن فاتورة ٪ ق ReplaceInvoice=يستعاض عن فاتورة ٪ ق
ReplacementInvoice=استبدال الفاتورة ReplacementInvoice=استبدال الفاتورة
ReplacedByInvoice=بعبارة فاتورة ق ٪ ReplacedByInvoice=بعبارة فاتورة ق ٪
@ -59,7 +58,7 @@ Payment=الدفع
PaymentBack=دفع العودة PaymentBack=دفع العودة
Payments=المدفوعات Payments=المدفوعات
PaymentsBack=عودة المدفوعات PaymentsBack=عودة المدفوعات
# PaidBack=Paid back PaidBack=Paid back
DatePayment=تاريخ الدفع DatePayment=تاريخ الدفع
DeletePayment=حذف الدفع DeletePayment=حذف الدفع
ConfirmDeletePayment=هل أنت متأكد من أنك تريد حذف هذا المبلغ؟ ConfirmDeletePayment=هل أنت متأكد من أنك تريد حذف هذا المبلغ؟
@ -67,28 +66,28 @@ ConfirmConvertToReduc=هل تريد تحويل هذه القروض إلى الو
SupplierPayments=الموردين والمدفوعات SupplierPayments=الموردين والمدفوعات
ReceivedPayments=تلقت مدفوعات ReceivedPayments=تلقت مدفوعات
ReceivedCustomersPayments=المدفوعات المقبوضة من الزبائن ReceivedCustomersPayments=المدفوعات المقبوضة من الزبائن
# PayedSuppliersPayments=Payments payed to suppliers PayedSuppliersPayments=Payments payed to suppliers
ReceivedCustomersPaymentsToValid=تلقى مدفوعات عملاء للمصادقة ReceivedCustomersPaymentsToValid=تلقى مدفوعات عملاء للمصادقة
PaymentsReportsForYear=تقارير المدفوعات للق ٪ PaymentsReportsForYear=تقارير المدفوعات للق ٪
PaymentsReports=تقارير المدفوعات PaymentsReports=تقارير المدفوعات
PaymentsAlreadyDone=المدفوعات قد فعلت PaymentsAlreadyDone=المدفوعات قد فعلت
# PaymentsBackAlreadyDone=Payments back already done PaymentsBackAlreadyDone=Payments back already done
PaymentRule=دفع الحكم PaymentRule=دفع الحكم
PaymentMode=نوع الدفع PaymentMode=نوع الدفع
PaymentConditions=مدة السداد PaymentConditions=مدة السداد
PaymentConditionsShort=مدة السداد PaymentConditionsShort=مدة السداد
PaymentAmount=دفع مبلغ PaymentAmount=دفع مبلغ
# ValidatePayment=Validate payment ValidatePayment=Validate payment
PaymentHigherThanReminderToPay=دفع أعلى من دفع تذكرة PaymentHigherThanReminderToPay=دفع أعلى من دفع تذكرة
HelpPaymentHigherThanReminderToPay=الاهتمام ، على دفع مبلغ واحد أو أكثر من فواتير أعلى من الراحة على الدفع. <br> تعديل الدخول ، تؤكد خلاف ذلك والتفكير في خلق الائتمان علما الزائدة وتلقى كل الفواتير الزائدة. HelpPaymentHigherThanReminderToPay=الاهتمام ، على دفع مبلغ واحد أو أكثر من فواتير أعلى من الراحة على الدفع. <br> تعديل الدخول ، تؤكد خلاف ذلك والتفكير في خلق الائتمان علما الزائدة وتلقى كل الفواتير الزائدة.
# HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm.
ClassifyPaid=تصنيف 'مدفوع' ClassifyPaid=تصنيف 'مدفوع'
ClassifyPaidPartially=تصنيف 'مدفوع جزئيا' ClassifyPaidPartially=تصنيف 'مدفوع جزئيا'
ClassifyCanceled=تصنيف 'المهجورة' ClassifyCanceled=تصنيف 'المهجورة'
ClassifyClosed=تصنيف 'مغلقة' ClassifyClosed=تصنيف 'مغلقة'
CreateBill=إنشاء الفاتورة CreateBill=إنشاء الفاتورة
AddBill=تضيف المذكرة الائتمان أو فاتورة AddBill=تضيف المذكرة الائتمان أو فاتورة
# AddToDraftInvoices=Add to draft invoice AddToDraftInvoices=Add to draft invoice
DeleteBill=شطب فاتورة DeleteBill=شطب فاتورة
SearchACustomerInvoice=البحث عن زبون فاتورة SearchACustomerInvoice=البحث عن زبون فاتورة
SearchASupplierInvoice=البحث عن مورد فاتورة SearchASupplierInvoice=البحث عن مورد فاتورة
@ -171,7 +170,7 @@ ConfirmClassifyPaidPartiallyReasonOtherDesc=استخدام هذا الخيار
ConfirmClassifyAbandonReasonOther=أخرى ConfirmClassifyAbandonReasonOther=أخرى
ConfirmClassifyAbandonReasonOtherDesc=هذا الخيار وسوف يستخدم في جميع الحالات الأخرى. على سبيل المثال لأنك من خطة لإقامة استبدال الفاتورة. ConfirmClassifyAbandonReasonOtherDesc=هذا الخيار وسوف يستخدم في جميع الحالات الأخرى. على سبيل المثال لأنك من خطة لإقامة استبدال الفاتورة.
ConfirmCustomerPayment=هل تؤكد ذلك دفع مساهمات <b>٪</b> ٪ <b>ق</b> ق؟ ConfirmCustomerPayment=هل تؤكد ذلك دفع مساهمات <b>٪</b> ٪ <b>ق</b> ق؟
# ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s ? ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s ?
ConfirmValidatePayment=هل أنت متأكد أنك تريد التحقق من صحة هذا الدفع؟ لم يطرأ أي تغيير يمكن الدفع مرة واحدة على صحتها. ConfirmValidatePayment=هل أنت متأكد أنك تريد التحقق من صحة هذا الدفع؟ لم يطرأ أي تغيير يمكن الدفع مرة واحدة على صحتها.
ValidateBill=التحقق من صحة الفواتير ValidateBill=التحقق من صحة الفواتير
UnvalidateBill=Unvalidate فاتورة UnvalidateBill=Unvalidate فاتورة
@ -188,13 +187,13 @@ ShowInvoiceDeposit=وتبين أن تودع الفاتورة
ShowPayment=وتظهر الدفع ShowPayment=وتظهر الدفع
File=ملف File=ملف
AlreadyPaid=دفعت بالفعل AlreadyPaid=دفعت بالفعل
# AlreadyPaidBack=Already paid back AlreadyPaidBack=Already paid back
AlreadyPaidNoCreditNotesNoDeposits=دفعت بالفعل (بدون تلاحظ الائتمان والودائع) AlreadyPaidNoCreditNotesNoDeposits=دفعت بالفعل (بدون تلاحظ الائتمان والودائع)
Abandoned=المهجورة Abandoned=المهجورة
RemainderToPay=تبقى على الدفع RemainderToPay=تبقى على الدفع
RemainderToTake=ما تبقى لاتخاذ RemainderToTake=ما تبقى لاتخاذ
# RemainderToPayBack=Remainder to pay back RemainderToPayBack=Remainder to pay back
# Rest=Pending Rest=Pending
AmountExpected=المبلغ المطالب به AmountExpected=المبلغ المطالب به
ExcessReceived=تلقى الزائدة ExcessReceived=تلقى الزائدة
EscompteOffered=عرض الخصم (الدفع قبل الأجل) EscompteOffered=عرض الخصم (الدفع قبل الأجل)
@ -204,7 +203,7 @@ StandingOrders=أوامر دائمة
StandingOrder=من أجل الوقوف StandingOrder=من أجل الوقوف
NoDraftBills=أي مشروع الفواتير NoDraftBills=أي مشروع الفواتير
NoOtherDraftBills=أي مشروع الفواتير NoOtherDraftBills=أي مشروع الفواتير
# NoDraftInvoices=No draft invoices NoDraftInvoices=No draft invoices
RefBill=فاتورة المرجع RefBill=فاتورة المرجع
ToBill=على مشروع قانون ToBill=على مشروع قانون
RemainderToBill=تبقى لمشروع قانون RemainderToBill=تبقى لمشروع قانون
@ -217,7 +216,6 @@ DateEcheance=الحد من الموعد المقرر
DateInvoice=تاريخ الفاتورة DateInvoice=تاريخ الفاتورة
NoInvoice=لا الفاتورة NoInvoice=لا الفاتورة
ClassifyBill=تصنيف الفاتورة ClassifyBill=تصنيف الفاتورة
NoSupplierBillsUnpaid=لا الفواتير غير المدفوعة للموردين
SupplierBillsToPay=دفع فواتير الموردين SupplierBillsToPay=دفع فواتير الموردين
CustomerBillsUnpaid=فواتير غير مدفوعة للعملاء CustomerBillsUnpaid=فواتير غير مدفوعة للعملاء
DispenseMontantLettres=ليه factures rédigées قدم المساواة طرائق mécanographiques sont l' arrêté dispensées دي én lettres DispenseMontantLettres=ليه factures rédigées قدم المساواة طرائق mécanographiques sont l' arrêté dispensées دي én lettres
@ -246,12 +244,12 @@ Discount=الخصم
Discounts=خصومات Discounts=خصومات
AddDiscount=إضافة الخصم AddDiscount=إضافة الخصم
AddRelativeDiscount=خلق خصم قريب AddRelativeDiscount=خلق خصم قريب
# EditRelativeDiscount=Edit relative discount EditRelativeDiscount=Edit relative discount
AddGlobalDiscount=إضافة الخصم AddGlobalDiscount=إضافة الخصم
EditGlobalDiscounts=تعديل الخصومات مطلق EditGlobalDiscounts=تعديل الخصومات مطلق
AddCreditNote=علما خلق الائتمان AddCreditNote=علما خلق الائتمان
ShowDiscount=وتظهر الخصم ShowDiscount=وتظهر الخصم
# ShowReduc=Show the deduction ShowReduc=Show the deduction
RelativeDiscount=الخصم النسبي RelativeDiscount=الخصم النسبي
GlobalDiscount=خصم العالمية GlobalDiscount=خصم العالمية
CreditNote=علما الائتمان CreditNote=علما الائتمان
@ -288,7 +286,7 @@ InvoiceNotChecked=لا فاتورة مختارة
CloneInvoice=استنساخ الفاتورة CloneInvoice=استنساخ الفاتورة
ConfirmCloneInvoice=هل أنت متأكد من استنساخ هذه الفاتورة <b>٪ ق؟</b> ConfirmCloneInvoice=هل أنت متأكد من استنساخ هذه الفاتورة <b>٪ ق؟</b>
DisabledBecauseReplacedInvoice=العمل والمعوقين بسبب الفاتورة قد استبدل DisabledBecauseReplacedInvoice=العمل والمعوقين بسبب الفاتورة قد استبدل
DescTaxAndDividendsArea=هذا المجال يقدم موجزا لجميع المبالغ المدفوعة للضريبة أو المساهمات الاجتماعية. إلا سجلات الدفع خلال السنة ثابتة مدرجة هنا. DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
NbOfPayments=ملاحظة : للمدفوعات NbOfPayments=ملاحظة : للمدفوعات
SplitDiscount=انقسام في الخصم SplitDiscount=انقسام في الخصم
ConfirmSplitDiscount=هل أنت متأكد من أن هذا الانقسام خصم <b>٪ ق</b> ق ٪ الى 2 خصومات أقل؟ ConfirmSplitDiscount=هل أنت متأكد من أن هذا الانقسام خصم <b>٪ ق</b> ق ٪ الى 2 خصومات أقل؟
@ -311,12 +309,12 @@ PaymentConditionShort60DENDMONTH=60 يوما من نهاية الشهر
PaymentCondition60DENDMONTH=60 يوما من نهاية الشهر PaymentCondition60DENDMONTH=60 يوما من نهاية الشهر
PaymentConditionShortPT_DELIVERY=تسليم PaymentConditionShortPT_DELIVERY=تسليم
PaymentConditionPT_DELIVERY=التسليم PaymentConditionPT_DELIVERY=التسليم
# PaymentConditionShortPT_ORDER=On order PaymentConditionShortPT_ORDER=On order
# PaymentConditionPT_ORDER=On order PaymentConditionPT_ORDER=On order
# PaymentConditionShortPT_5050=50-50 PaymentConditionShortPT_5050=50-50
# PaymentConditionPT_5050=50%% in advance, 50%% on delivery PaymentConditionPT_5050=50%% in advance, 50%% on delivery
# FixAmount=Fix amount FixAmount=Fix amount
# VarAmount=Variable amount (%% tot.) VarAmount=Variable amount (%% tot.)
# PaymentType # PaymentType
PaymentTypeVIR=الودائع المصرفية PaymentTypeVIR=الودائع المصرفية
@ -367,7 +365,7 @@ LawApplicationPart2=البضاعة تظل ملكا لل
LawApplicationPart3=البائع إلى حين استكمال صرف LawApplicationPart3=البائع إلى حين استكمال صرف
LawApplicationPart4=ثمنها. LawApplicationPart4=ثمنها.
LimitedLiabilityCompanyCapital=SARL برأس مال LimitedLiabilityCompanyCapital=SARL برأس مال
# UseLine=Apply UseLine=Apply
UseDiscount=استخدام الخصم UseDiscount=استخدام الخصم
UseCredit=استخدام القروض UseCredit=استخدام القروض
UseCreditNoteInInvoicePayment=تخفيض المبلغ لدفع هذه القروض UseCreditNoteInInvoicePayment=تخفيض المبلغ لدفع هذه القروض
@ -392,13 +390,18 @@ CantRemovePaymentWithOneInvoicePaid=تصنيف لا يمكن إزالة الدف
ExpectedToPay=من المتوقع الدفع ExpectedToPay=من المتوقع الدفع
PayedByThisPayment=سيولي هذا الدفع PayedByThisPayment=سيولي هذا الدفع
ClosePaidInvoicesAutomatically=تصنيف &quot;سيولي&quot; كل معيار أو الفواتير استبدال سيولي entirely. ClosePaidInvoicesAutomatically=تصنيف &quot;سيولي&quot; كل معيار أو الفواتير استبدال سيولي entirely.
# ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
AllCompletelyPayedInvoiceWillBeClosed=كل فاتورة مع عدم وجود لا تزال لدفع ستغلق تلقائيا إلى &quot;فياض&quot; الوضع. AllCompletelyPayedInvoiceWillBeClosed=كل فاتورة مع عدم وجود لا تزال لدفع ستغلق تلقائيا إلى &quot;فياض&quot; الوضع.
# ToMakePayment=Pay ToMakePayment=Pay
# ToMakePaymentBack=Pay back ToMakePaymentBack=Pay back
# ListOfYourUnpaidInvoices=List of unpaid invoices ListOfYourUnpaidInvoices=List of unpaid invoices
# NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative. NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
# RevenueStamp=Revenue stamp RevenueStamp=Revenue stamp
YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of thirdparty
PDFCrabeDescription=نموذج فاتورة Crabe. نموذج الفاتورة كاملة (دعم الخيار الضريبة على القيمة المضافة ، والخصومات ، وشروط الدفع ، والشعار ، الخ..)
TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for credit notes and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
TerreNumRefModelError=وهناك مشروع قانون بدءا من دولار ويوجد بالفعل syymm لا تتفق مع هذا النموذج من التسلسل. إزالة أو تغيير تسميتها لتصبح لتفعيل هذه الوحدة.
##### Types de contacts ##### ##### Types de contacts #####
TypeContact_facture_internal_SALESREPFOLL=ممثل العميل متابعة فاتورة TypeContact_facture_internal_SALESREPFOLL=ممثل العميل متابعة فاتورة
TypeContact_facture_external_BILLING=الزبون فاتورة الاتصال TypeContact_facture_external_BILLING=الزبون فاتورة الاتصال
@ -408,11 +411,3 @@ TypeContact_invoice_supplier_internal_SALESREPFOLL=ممثل المورد متا
TypeContact_invoice_supplier_external_BILLING=المورد فاتورة الاتصال TypeContact_invoice_supplier_external_BILLING=المورد فاتورة الاتصال
TypeContact_invoice_supplier_external_SHIPPING=المورد الشحن الاتصال TypeContact_invoice_supplier_external_SHIPPING=المورد الشحن الاتصال
TypeContact_invoice_supplier_external_SERVICE=المورد خدمة الاتصال TypeContact_invoice_supplier_external_SERVICE=المورد خدمة الاتصال
# crabe PDF Model
PDFCrabeDescription=نموذج فاتورة Crabe. نموذج الفاتورة كاملة (دعم الخيار الضريبة على القيمة المضافة ، والخصومات ، وشروط الدفع ، والشعار ، الخ..)
# oursin PDF Model
PDFOursinDescription=نموذج فاتورة oursin
# NumRef Modules
# TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
# MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for credit notes and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
TerreNumRefModelError=وهناك مشروع قانون بدءا من دولار ويوجد بالفعل syymm لا تتفق مع هذا النموذج من التسلسل. إزالة أو تغيير تسميتها لتصبح لتفعيل هذه الوحدة.

View File

@ -1,12 +1,11 @@
# Dolibarr language file - Source file is en_US - errors # Dolibarr language file - Source file is en_US - errors
# No errors # No errors
# NoErrorCommitIsDone=No error, we commit NoErrorCommitIsDone=No error, we commit
# Errors # Errors
Error=خطأ Error=خطأ
Errors=أخطاء Errors=أخطاء
# ErrorButCommitIsDone=Errors found but we validate despite this ErrorButCommitIsDone=Errors found but we validate despite this
ErrorBadEMail=بريد إلكتروني خاطئ %s ErrorBadEMail=بريد إلكتروني خاطئ %s
ErrorBadUrl=عنوان الموقع هو الخطأ %s ErrorBadUrl=عنوان الموقع هو الخطأ %s
ErrorLoginAlreadyExists=ادخل ٪ ق موجود بالفعل. ErrorLoginAlreadyExists=ادخل ٪ ق موجود بالفعل.
@ -24,13 +23,13 @@ ErrorThisContactIsAlreadyDefinedAsThisType=هذا الاتصال هو اتصال
ErrorCashAccountAcceptsOnlyCashMoney=هذا الحساب المصرفي هو الحساب النقدي ، وذلك ما وافق على نوع من المدفوعات النقدية فقط. ErrorCashAccountAcceptsOnlyCashMoney=هذا الحساب المصرفي هو الحساب النقدي ، وذلك ما وافق على نوع من المدفوعات النقدية فقط.
ErrorFromToAccountsMustDiffers=المصدر والأهداف يجب أن تكون الحسابات المصرفية المختلفة. ErrorFromToAccountsMustDiffers=المصدر والأهداف يجب أن تكون الحسابات المصرفية المختلفة.
ErrorBadThirdPartyName=سوء قيمة اسم طرف ثالث ErrorBadThirdPartyName=سوء قيمة اسم طرف ثالث
# ErrorProdIdIsMandatory=The %s is mandatory ErrorProdIdIsMandatory=The %s is mandatory
ErrorBadCustomerCodeSyntax=سوء تركيب الزبون مدونة ErrorBadCustomerCodeSyntax=سوء تركيب الزبون مدونة
# ErrorBadBarCodeSyntax=Bad syntax for bar code ErrorBadBarCodeSyntax=Bad syntax for bar code
ErrorCustomerCodeRequired=رمز العميل المطلوبة ErrorCustomerCodeRequired=رمز العميل المطلوبة
# ErrorBarCodeRequired=Bar code required ErrorBarCodeRequired=Bar code required
ErrorCustomerCodeAlreadyUsed=الشفرة المستخدمة بالفعل العملاء ErrorCustomerCodeAlreadyUsed=الشفرة المستخدمة بالفعل العملاء
# ErrorBarCodeAlreadyUsed=Bar code already used ErrorBarCodeAlreadyUsed=Bar code already used
ErrorPrefixRequired=المطلوب ببادئة ErrorPrefixRequired=المطلوب ببادئة
ErrorUrlNotValid=موقع معالجة صحيحة ErrorUrlNotValid=موقع معالجة صحيحة
ErrorBadSupplierCodeSyntax=مورد سوء تركيب لمدونة ErrorBadSupplierCodeSyntax=مورد سوء تركيب لمدونة
@ -40,7 +39,7 @@ ErrorBadParameters=بارامترات سيئة
ErrorBadValueForParameter=قيمة خاطئة &quot;%s 'ل' %s&quot; المعلمة غير صحيحة ErrorBadValueForParameter=قيمة خاطئة &quot;%s 'ل' %s&quot; المعلمة غير صحيحة
ErrorBadImageFormat=ملف الصورة لم تنسيق معتمد ErrorBadImageFormat=ملف الصورة لم تنسيق معتمد
ErrorBadDateFormat='%s' قيمة له خاطئ تنسيق التاريخ ErrorBadDateFormat='%s' قيمة له خاطئ تنسيق التاريخ
# ErrorWrongDate=Date is not correct! ErrorWrongDate=Date is not correct!
ErrorFailedToWriteInDir=لم يكتب في دليل ٪ ق ErrorFailedToWriteInDir=لم يكتب في دليل ٪ ق
ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=العثور على بريد إلكتروني صحيح لتركيب خطوط ق ٪ في ملف (على سبيل المثال خط ٪ ق= ٪ مع البريد الإلكتروني) ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=العثور على بريد إلكتروني صحيح لتركيب خطوط ق ٪ في ملف (على سبيل المثال خط ٪ ق= ٪ مع البريد الإلكتروني)
ErrorUserCannotBeDelete=المستخدم لا يمكن حذفها. قد يكون ذلك مرتبطا Dolibarr على الكيانات. ErrorUserCannotBeDelete=المستخدم لا يمكن حذفها. قد يكون ذلك مرتبطا Dolibarr على الكيانات.
@ -61,21 +60,21 @@ ErrorUploadBlockedByAddon=حظر حمل من قبل البرنامج المسا
ErrorFileSizeTooLarge=حجم الملف كبير جدا. ErrorFileSizeTooLarge=حجم الملف كبير جدا.
ErrorSizeTooLongForIntType=طويل جدا بالنسبة نوع INT (%s أرقام كحد أقصى) حجم ErrorSizeTooLongForIntType=طويل جدا بالنسبة نوع INT (%s أرقام كحد أقصى) حجم
ErrorSizeTooLongForVarcharType=وقتا طويلا لنوع السلسلة (%s حرف كحد أقصى) حجم ErrorSizeTooLongForVarcharType=وقتا طويلا لنوع السلسلة (%s حرف كحد أقصى) حجم
# ErrorNoValueForSelectType=Please fill value for select list ErrorNoValueForSelectType=Please fill value for select list
# ErrorNoValueForCheckBoxType=Please fill value for checkbox list ErrorNoValueForCheckBoxType=Please fill value for checkbox list
# ErrorNoValueForRadioType=Please fill value for radio list ErrorNoValueForRadioType=Please fill value for radio list
# ErrorBadFormatValueList=The list value cannot have more than one come : <u>%s</u>, but need at least one: llave,valores ErrorBadFormatValueList=The list value cannot have more than one come : <u>%s</u>, but need at least one: llave,valores
ErrorFieldCanNotContainSpecialCharacters=ميدان <b>٪ ق</b> يجب ألا يحتوي على أحرف خاصة. ErrorFieldCanNotContainSpecialCharacters=ميدان <b>٪ ق</b> يجب ألا يحتوي على أحرف خاصة.
# ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contains special characters, nor upper case characters. ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contains special characters, nor upper case characters.
ErrorNoAccountancyModuleLoaded=أي وحدة المحاسبة وتفعيل ErrorNoAccountancyModuleLoaded=أي وحدة المحاسبة وتفعيل
# ErrorExportDuplicateProfil=This profile name already exists for this export set. ErrorExportDuplicateProfil=This profile name already exists for this export set.
ErrorLDAPSetupNotComplete=Dolibarr - LDAP المطابقة وليس كاملا. ErrorLDAPSetupNotComplete=Dolibarr - LDAP المطابقة وليس كاملا.
ErrorLDAPMakeManualTest=ألف. ldif الملف قد ولدت في الدليل ٪ s. انها محاولة لتحميل يدويا من سطر في الحصول على مزيد من المعلومات عن الأخطاء. ErrorLDAPMakeManualTest=ألف. ldif الملف قد ولدت في الدليل ٪ s. انها محاولة لتحميل يدويا من سطر في الحصول على مزيد من المعلومات عن الأخطاء.
ErrorCantSaveADoneUserWithZeroPercentage=لا يمكن انقاذ عمل مع "المركز الخاص لم تبدأ" اذا الميدان "الذي قام به" كما شغلها. ErrorCantSaveADoneUserWithZeroPercentage=لا يمكن انقاذ عمل مع "المركز الخاص لم تبدأ" اذا الميدان "الذي قام به" كما شغلها.
ErrorRefAlreadyExists=المرجع المستخدمة لإنشاء موجود بالفعل. ErrorRefAlreadyExists=المرجع المستخدمة لإنشاء موجود بالفعل.
ErrorPleaseTypeBankTransactionReportName=الرجاء كتابة اسم البنك استلام المعاملات ويقال فيها (شكل YYYYMM أو YYYYMMDD) ErrorPleaseTypeBankTransactionReportName=الرجاء كتابة اسم البنك استلام المعاملات ويقال فيها (شكل YYYYMM أو YYYYMMDD)
ErrorRecordHasChildren=فشل حذف السجلات منذ نحو الطفل. ErrorRecordHasChildren=فشل حذف السجلات منذ نحو الطفل.
# ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object. ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
ErrorModuleRequireJavascript=يجب عدم تعطيل جافا سكريبت لجعل هذا العمل الميزة. لتمكين / تعطيل جافا سكريبت ، انتقل إلى القائمة الرئيسية -> الإعداد -> العرض. ErrorModuleRequireJavascript=يجب عدم تعطيل جافا سكريبت لجعل هذا العمل الميزة. لتمكين / تعطيل جافا سكريبت ، انتقل إلى القائمة الرئيسية -> الإعداد -> العرض.
ErrorPasswordsMustMatch=ويجب على كلا كلمات المرور المكتوبة تطابق بعضها البعض ErrorPasswordsMustMatch=ويجب على كلا كلمات المرور المكتوبة تطابق بعضها البعض
ErrorContactEMail=وقع خطأ فني. من فضلك، اتصل بمسؤول إلى البريد الإلكتروني بعد <b>%s</b> EN توفير <b>%s</b> رمز الخطأ في رسالتك، أو حتى أفضل من خلال إضافة نسخة شاشة من هذه الصفحة. ErrorContactEMail=وقع خطأ فني. من فضلك، اتصل بمسؤول إلى البريد الإلكتروني بعد <b>%s</b> EN توفير <b>%s</b> رمز الخطأ في رسالتك، أو حتى أفضل من خلال إضافة نسخة شاشة من هذه الصفحة.
@ -117,27 +116,27 @@ ErrorBadValueForCode=سيئة قيمة لرمز الحماية. حاول مرة
ErrorBothFieldCantBeNegative=ويمكن لحقول %s و%s لا تكون سلبية ErrorBothFieldCantBeNegative=ويمكن لحقول %s و%s لا تكون سلبية
ErrorWebServerUserHasNotPermission=<b>%s</b> تستخدم حساب مستخدم لتنفيذ خادم الويب لا يوجد لديه إذن لذلك ErrorWebServerUserHasNotPermission=<b>%s</b> تستخدم حساب مستخدم لتنفيذ خادم الويب لا يوجد لديه إذن لذلك
ErrorNoActivatedBarcode=لا يوجد نوع الباركود تفعيلها ErrorNoActivatedBarcode=لا يوجد نوع الباركود تفعيلها
# ErrUnzipFails=Failed to unzip %s with ZipArchive ErrUnzipFails=Failed to unzip %s with ZipArchive
# ErrNoZipEngine=No engine to unzip %s file in this PHP ErrNoZipEngine=No engine to unzip %s file in this PHP
# ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package
# ErrorFileRequired=It takes a package Dolibarr file ErrorFileRequired=It takes a package Dolibarr file
# ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal
# ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base
# ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base
# ErrorNewValueCantMatchOldValue=New value can't be equal to old one ErrorNewValueCantMatchOldValue=New value can't be equal to old one
# ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process. ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process.
# ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check Mysql server is running (in most cases, you can launch it from command line with 'sudo /etc/init.d/mysql start'). ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check Mysql server is running (in most cases, you can launch it from command line with 'sudo /etc/init.d/mysql start').
# ErrorFailedToAddContact=Failed to add contact ErrorFailedToAddContact=Failed to add contact
# ErrorDateMustBeBeforeToday=The date can not be greater than today ErrorDateMustBeBeforeToday=The date can not be greater than today
# ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode. ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode.
# ErrorPHPNeedModule=Error, your PHP must have module <b>%s</b> installed to use this feature. ErrorPHPNeedModule=Error, your PHP must have module <b>%s</b> installed to use this feature.
# ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s
# ErrorWarehouseMustDiffers=Source and target warehouses must differs ErrorWarehouseMustDiffers=Source and target warehouses must differs
# ErrorBadFormat=Bad format! ErrorBadFormat=Bad format!
# ErrorPaymentDateLowerThanInvoiceDate=Payment date (%s) cant' be before invoice date (%s) for invoice %s. ErrorPaymentDateLowerThanInvoiceDate=Payment date (%s) cant' be before invoice date (%s) for invoice %s.
ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any thirdparty. Link member to an existing third party or create a new thirdparty before creating subscription with invoice.
# Warnings # Warnings
# WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
WarningSafeModeOnCheckExecDir=انذار ، فب <b>safe_mode</b> الخيار في ذلك تخزين الأمر يجب أن يكون داخل الدليل الذي أعلنته <b>safe_mode_exec_dir</b> المعلمة بي. WarningSafeModeOnCheckExecDir=انذار ، فب <b>safe_mode</b> الخيار في ذلك تخزين الأمر يجب أن يكون داخل الدليل الذي أعلنته <b>safe_mode_exec_dir</b> المعلمة بي.
WarningAllowUrlFopenMustBeOn=<b>allow_url_fopen</b> المعلم يجب أن يوضع <b>على</b> المدون في <b>php.ini</b> لتعمل هذه الوحدة بشكل كامل. يجب عليك أن تعدل عن هذا الملف يدويا. WarningAllowUrlFopenMustBeOn=<b>allow_url_fopen</b> المعلم يجب أن يوضع <b>على</b> المدون في <b>php.ini</b> لتعمل هذه الوحدة بشكل كامل. يجب عليك أن تعدل عن هذا الملف يدويا.
WarningBuildScriptNotRunned=السيناريو <b>٪ ق</b> لم يكن يتعارض مع بناء الرسومات ، أو عدم وجود بيانات تظهر. WarningBuildScriptNotRunned=السيناريو <b>٪ ق</b> لم يكن يتعارض مع بناء الرسومات ، أو عدم وجود بيانات تظهر.
@ -146,9 +145,9 @@ WarningPassIsEmpty=تحذير كلمة سر قاعدة بيانات فارغة.
WarningConfFileMustBeReadOnly=انذار ، ملف (التكوين <b>htdocs / أسيوط / conf.php)</b> الخاص يمكن أن تكون الكتابة بواسطة خادم الويب. هذه هي ثغرة أمنية خطيرة. أذونات تعديل على ملف ليكون في وضع القراءة فقط لمستخدم نظام التشغيل المستخدمة من قبل ملقم ويب. إذا كنت تستخدم ويندوز وشكل نسبة الدهون لمدة القرص الخاص بك ، فإنك يجب أن نعرف أن هذا النظام لا يسمح ملف لإضافة الأذونات على الملف ، بحيث لا تكون آمنة تماما. WarningConfFileMustBeReadOnly=انذار ، ملف (التكوين <b>htdocs / أسيوط / conf.php)</b> الخاص يمكن أن تكون الكتابة بواسطة خادم الويب. هذه هي ثغرة أمنية خطيرة. أذونات تعديل على ملف ليكون في وضع القراءة فقط لمستخدم نظام التشغيل المستخدمة من قبل ملقم ويب. إذا كنت تستخدم ويندوز وشكل نسبة الدهون لمدة القرص الخاص بك ، فإنك يجب أن نعرف أن هذا النظام لا يسمح ملف لإضافة الأذونات على الملف ، بحيث لا تكون آمنة تماما.
WarningsOnXLines=تحذيرات عن مصدر خطوط <b>%s</b> WarningsOnXLines=تحذيرات عن مصدر خطوط <b>%s</b>
WarningNoDocumentModelActivated=لا يوجد نموذج لجيل وثيقة ، قد تم تنشيط. سيكون نموذج المختار افتراضيا حتى يمكنك التحقق من إعداد وحدة الخاص. WarningNoDocumentModelActivated=لا يوجد نموذج لجيل وثيقة ، قد تم تنشيط. سيكون نموذج المختار افتراضيا حتى يمكنك التحقق من إعداد وحدة الخاص.
# WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole. WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
WarningUntilDirRemoved=كل التحذيرات الأمنية (مرئية من قبل المستخدمين مشرف فقط) وسوف تبقى نشطة طالما أن الضعف الحالي (أو لم يضف هذا MAIN_REMOVE_INSTALL_WARNING مستمر في الإعداد&gt; الإعداد الأخرى). WarningUntilDirRemoved=كل التحذيرات الأمنية (مرئية من قبل المستخدمين مشرف فقط) وسوف تبقى نشطة طالما أن الضعف الحالي (أو لم يضف هذا MAIN_REMOVE_INSTALL_WARNING مستمر في الإعداد&gt; الإعداد الأخرى).
# WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
# WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
# WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card). WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
# WarningNotRelevant=Irrelevant operation for this dataset WarningNotRelevant=Irrelevant operation for this dataset

View File

@ -2,10 +2,10 @@
Language_ar_AR=العربية Language_ar_AR=العربية
Language_ar_SA=العربية Language_ar_SA=العربية
# Language_bg_BG=Bulgarian Language_bg_BG=Bulgarian
# Language_bs_BA=Bosnian Language_bs_BA=Bosnian
Language_ca_ES=كاتالاني Language_ca_ES=كاتالاني
# Language_cs_CZ=Czech Language_cs_CZ=Czech
Language_da_DA=الدانمركية Language_da_DA=الدانمركية
Language_da_DK=دانماركي Language_da_DK=دانماركي
Language_de_DE=اللغة الألمانية Language_de_DE=اللغة الألمانية
@ -15,35 +15,36 @@ Language_en_AU=الإنكليزية (أستراليا)
Language_en_GB=الانجليزية (المملكة المتحدة) Language_en_GB=الانجليزية (المملكة المتحدة)
Language_en_IN=الإنكليزية (الهند) Language_en_IN=الإنكليزية (الهند)
Language_en_NZ=الإنجليزية (نيوزيلندا) Language_en_NZ=الإنجليزية (نيوزيلندا)
# Language_en_SA=English (Saudi Arabia) Language_en_SA=English (Saudi Arabia)
Language_en_US=الإنكليزية (الولايات المتحدة) Language_en_US=الإنكليزية (الولايات المتحدة)
# Language_en_ZA=English (South Africa) Language_en_ZA=English (South Africa)
Language_es_ES=الأسبانية Language_es_ES=الأسبانية
Language_es_AR=الأسبانية (الأرجنتين) Language_es_AR=الأسبانية (الأرجنتين)
Language_es_CL=Spanish (Chile)
Language_es_HN=الأسبانية (هندوراس) Language_es_HN=الأسبانية (هندوراس)
Language_es_MX=الإسبانية (المكسيك) Language_es_MX=الإسبانية (المكسيك)
# Language_es_PY=Spanish (Paraguay) Language_es_PY=Spanish (Paraguay)
# Language_es_PE=Spanish (Peru) Language_es_PE=Spanish (Peru)
Language_es_PR=الأسبانية (بورتو ريكو) Language_es_PR=الأسبانية (بورتو ريكو)
# Language_et_EE=Estonian Language_et_EE=Estonian
# Language_eu_ES=Basque Language_eu_ES=Basque
Language_fa_IR=اللغة الفارسية Language_fa_IR=اللغة الفارسية
Language_fi_FI=زعانف Language_fi_FI=زعانف
Language_fr_BE=الفرنسية (بلجيكا) Language_fr_BE=الفرنسية (بلجيكا)
Language_fr_CA=الفرنسية (كندا) Language_fr_CA=الفرنسية (كندا)
Language_fr_CH=الفرنسية (سويسرا) Language_fr_CH=الفرنسية (سويسرا)
Language_fr_FR=الفرنسية Language_fr_FR=الفرنسية
# Language_fr_NC=French (New Caledonia) Language_fr_NC=French (New Caledonia)
# Language_he_IL=Hebrew Language_he_IL=Hebrew
# Language_hr_HR=Croatian Language_hr_HR=Croatian
Language_hu_HU=المجري Language_hu_HU=المجري
Language_is_IS=الآيسلندي Language_is_IS=الآيسلندي
Language_it_IT=الإيطالي Language_it_IT=الإيطالي
Language_ja_JP=اليابانية Language_ja_JP=اليابانية
# Language_ko_KR=Korean Language_ko_KR=Korean
# Language_lt_LT=Lithuanian Language_lt_LT=Lithuanian
# Language_lv_LV=Latvian Language_lv_LV=Latvian
# Language_mk_MK=Macedonian Language_mk_MK=Macedonian
Language_nb_NO=النرويجية (بوكمال) Language_nb_NO=النرويجية (بوكمال)
Language_nl_BE=الهولندية (بلجيكا) Language_nl_BE=الهولندية (بلجيكا)
Language_nl_NL=الهولندية (هولندا) Language_nl_NL=الهولندية (هولندا)
@ -57,10 +58,11 @@ Language_tr_TR=التركية
Language_sl_SI=السلوفينية Language_sl_SI=السلوفينية
Language_sv_SV=السويدية Language_sv_SV=السويدية
Language_sv_SE=السويدية Language_sv_SE=السويدية
# Language_sk_SK=Slovakian Language_sq_AL=Albanian
# Language_th_TH=Thai Language_sk_SK=Slovakian
# Language_uk_UA=Ukrainian Language_th_TH=Thai
# Language_uz_UZ=Uzbek Language_uk_UA=Ukrainian
# Language_vi_VN=Vietnamese Language_uz_UZ=Uzbek
Language_vi_VN=Vietnamese
Language_zh_CN=الصينية Language_zh_CN=الصينية
# Language_zh_TW=Chinese (Traditional) Language_zh_TW=Chinese (Traditional)

View File

@ -9,7 +9,7 @@ FONTSIZEFORPDF=9
SeparatorDecimal=. SeparatorDecimal=.
SeparatorThousand=None SeparatorThousand=None
FormatDateShort=%d/%m/%Y FormatDateShort=%d/%m/%Y
# FormatDateShortInput=%m/%d/%Y FormatDateShortInput=%m/%d/%Y
FormatDateShortJava=dd/MM/yyyy FormatDateShortJava=dd/MM/yyyy
FormatDateShortJavaInput=dd/MM/yyyy FormatDateShortJavaInput=dd/MM/yyyy
FormatDateShortJQuery=dd/mm/yy FormatDateShortJQuery=dd/mm/yy
@ -19,12 +19,12 @@ FormatHourShortDuration=%H:%M
FormatDateTextShort=%d %b %Y FormatDateTextShort=%d %b %Y
FormatDateText=%d %B %Y FormatDateText=%d %B %Y
FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourShort=%d/%m/%Y %H:%M
# FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p
FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourTextShort=%d %b %Y %H:%M
FormatDateHourText=%d %B %Y %H:%M FormatDateHourText=%d %B %Y %H:%M
DatabaseConnection=قاعدة بيانات الصدد DatabaseConnection=قاعدة بيانات الصدد
# NoTranslation=No translation NoTranslation=No translation
# NoRecordFound=No record found NoRecordFound=No record found
NoError=أي خطأ NoError=أي خطأ
Error=خطأ Error=خطأ
ErrorFieldRequired=الميدان '٪ ق' مطلوب ErrorFieldRequired=الميدان '٪ ق' مطلوب
@ -34,7 +34,7 @@ ErrorFailedToOpenFile=فشل في فتح الملف ٪ ق
ErrorCanNotCreateDir=لا يمكن إنشاء دير ق ErrorCanNotCreateDir=لا يمكن إنشاء دير ق
ErrorCanNotReadDir=لا يمكن قراءة دير ق ErrorCanNotReadDir=لا يمكن قراءة دير ق
ErrorConstantNotDefined=معلمة ٪s ق لم تحدد ErrorConstantNotDefined=معلمة ٪s ق لم تحدد
# ErrorUnknown=Unknown error ErrorUnknown=Unknown error
ErrorSQL=خطأ SQL ErrorSQL=خطأ SQL
ErrorLogoFileNotFound=شعار ملف '٪ ق' لم يتم العثور على ErrorLogoFileNotFound=شعار ملف '٪ ق' لم يتم العثور على
ErrorGoToGlobalSetup=اذهب إلى 'شركة / مؤسسة' الإعداد لتثبيت هذا ErrorGoToGlobalSetup=اذهب إلى 'شركة / مؤسسة' الإعداد لتثبيت هذا
@ -60,16 +60,16 @@ ErrorNoSocialContributionForSellerCountry=خطأ ، لا يوجد نوع الم
ErrorFailedToSaveFile=خطأ ، وفشلت في انقاذ الملف. ErrorFailedToSaveFile=خطأ ، وفشلت في انقاذ الملف.
ErrorOnlyPngJpgSupported=خطأ فقط. بابوا نيو غينيا ، وجيه. شكل صورة ملف الدعم. ErrorOnlyPngJpgSupported=خطأ فقط. بابوا نيو غينيا ، وجيه. شكل صورة ملف الدعم.
ErrorImageFormatNotSupported=PHP الخاص بك لا يدعم وظائف لتحويل الصور من هذا الشكل. ErrorImageFormatNotSupported=PHP الخاص بك لا يدعم وظائف لتحويل الصور من هذا الشكل.
# SetDate=Set date SetDate=Set date
# SelectDate=Select a date SelectDate=Select a date
# SeeAlso=See also %s SeeAlso=See also %s
BackgroundColorByDefault=لون الخلفية الافتراضي BackgroundColorByDefault=لون الخلفية الافتراضي
FileWasNotUploaded=يتم تحديد ملف مرفق لكنه لم يكن بعد تحميلها. انقر على "ملف إرفاق" لهذا الغرض. FileWasNotUploaded=يتم تحديد ملف مرفق لكنه لم يكن بعد تحميلها. انقر على "ملف إرفاق" لهذا الغرض.
NbOfEntries=ملاحظة : إدخالات NbOfEntries=ملاحظة : إدخالات
GoToWikiHelpPage=الانترنت تساعد على قراءة (على ضرورة الوصول إلى الإنترنت) GoToWikiHelpPage=الانترنت تساعد على قراءة (على ضرورة الوصول إلى الإنترنت)
GoToHelpPage=قراءة مساعدة GoToHelpPage=قراءة مساعدة
RecordSaved=سجل المحفوظة RecordSaved=سجل المحفوظة
# RecordDeleted=Record deleted RecordDeleted=Record deleted
LevelOfFeature=مستوى الملامح LevelOfFeature=مستوى الملامح
NotDefined=غير معرف NotDefined=غير معرف
DefinedAndHasThisValue=وحددت قيمة DefinedAndHasThisValue=وحددت قيمة
@ -94,6 +94,7 @@ InformationLastAccessInError=آخر المعلومات عن الوصول إلى
DolibarrHasDetectedError=Dolibarr اكتشفت خطأ فني DolibarrHasDetectedError=Dolibarr اكتشفت خطأ فني
InformationToHelpDiagnose=هذه هي المعلومات التي يمكن أن تساعد على تشخيص InformationToHelpDiagnose=هذه هي المعلومات التي يمكن أن تساعد على تشخيص
MoreInformation=مزيد من المعلومات MoreInformation=مزيد من المعلومات
TechnicalInformation=Technical information
NotePublic=علما (العامة) NotePublic=علما (العامة)
NotePrivate=المذكرة (الخاصة) NotePrivate=المذكرة (الخاصة)
PrecisionUnitIsLimitedToXDecimals=Dolibarr كان الإعداد بدقة للحد من أسعار الوحدات إلى <b>٪ ق</b> عشرية. PrecisionUnitIsLimitedToXDecimals=Dolibarr كان الإعداد بدقة للحد من أسعار الوحدات إلى <b>٪ ق</b> عشرية.
@ -119,7 +120,7 @@ Activated=تفعيل
Closed=مغلقة Closed=مغلقة
Closed2=مغلقة Closed2=مغلقة
Enabled=مكن Enabled=مكن
# Deprecated=Deprecated Deprecated=Deprecated
Disable=يعطل Disable=يعطل
Disabled=المعاقين Disabled=المعاقين
Add=إضافة Add=إضافة
@ -146,8 +147,8 @@ ToClone=استنساخ
ConfirmClone=اختر البيانات التي تريد استنساخ : ConfirmClone=اختر البيانات التي تريد استنساخ :
NoCloneOptionsSpecified=لا توجد بيانات محددة للاستنساخ. NoCloneOptionsSpecified=لا توجد بيانات محددة للاستنساخ.
Of=من Of=من
# Go=Go Go=Go
# Run=Run Run=Run
CopyOf=نسخة من CopyOf=نسخة من
Show=يظهر Show=يظهر
ShowCardHere=وتظهر البطاقة ShowCardHere=وتظهر البطاقة
@ -157,7 +158,7 @@ Valid=صحيح
Approve=الموافقة Approve=الموافقة
ReOpen=إعادة فتح ReOpen=إعادة فتح
Upload=ارسال الملف Upload=ارسال الملف
# ToLink=Link ToLink=Link
Select=رتخا Select=رتخا
Choose=يختار Choose=يختار
ChooseLangage=من فضلك اختر اللغة ChooseLangage=من فضلك اختر اللغة
@ -259,13 +260,13 @@ Seconds=ثانية
Today=اليوم Today=اليوم
Yesterday=أمس Yesterday=أمس
Tomorrow=غدا Tomorrow=غدا
# Morning=Morning Morning=Morning
# Afternoon=Afternoon Afternoon=Afternoon
Quadri=قادري Quadri=قادري
MonthOfDay=خلال شهر من اليوم MonthOfDay=خلال شهر من اليوم
HourShort=حاء HourShort=حاء
Rate=سعر Rate=سعر
# UseLocalTax=Include tax UseLocalTax=Include tax
Bytes=بايت Bytes=بايت
KiloBytes=كيلو بايت KiloBytes=كيلو بايت
MegaBytes=ميغا بايت MegaBytes=ميغا بايت
@ -297,8 +298,8 @@ AmountTTCShort=المبلغ (شركة الضريبية)
AmountHT=المبلغ (صافي الضرائب) AmountHT=المبلغ (صافي الضرائب)
AmountTTC=المبلغ (شركة الضريبية) AmountTTC=المبلغ (شركة الضريبية)
AmountVAT=مبلغ الضريبة على القيمة المضافة AmountVAT=مبلغ الضريبة على القيمة المضافة
# AmountLT1=Amount tax 2 AmountLT1=Amount tax 2
# AmountLT2=Amount tax 3 AmountLT2=Amount tax 3
AmountLT1ES=كمية الطاقة المتجددة AmountLT1ES=كمية الطاقة المتجددة
AmountLT2ES=مبلغ IRPF AmountLT2ES=مبلغ IRPF
AmountTotal=المبلغ الإجمالي AmountTotal=المبلغ الإجمالي
@ -313,12 +314,12 @@ SubTotal=المجموع الفرعي
TotalHTShort=المجموع (الصافي) TotalHTShort=المجموع (الصافي)
TotalTTCShort=المجموع (شركة الضريبية) TotalTTCShort=المجموع (شركة الضريبية)
TotalHT=المجموع (الصافي للضريبة) TotalHT=المجموع (الصافي للضريبة)
# TotalHTforthispage=Total (net of tax) for this page TotalHTforthispage=Total (net of tax) for this page
TotalTTC=المجموع (شركة الضريبية) TotalTTC=المجموع (شركة الضريبية)
TotalTTCToYourCredit=المجموع (شركة الضريبية) الائتمان الخاصة بك TotalTTCToYourCredit=المجموع (شركة الضريبية) الائتمان الخاصة بك
TotalVAT=مجموع الضريبة على القيمة المضافة TotalVAT=مجموع الضريبة على القيمة المضافة
# TotalLT1=Total tax 2 TotalLT1=Total tax 2
# TotalLT2=Total tax 3 TotalLT2=Total tax 3
TotalLT1ES=مجموع الطاقة المتجددة TotalLT1ES=مجموع الطاقة المتجددة
TotalLT2ES=مجموع IRPF TotalLT2ES=مجموع IRPF
IncludedVAT=وتشمل الضريبة على القيمة المضافة IncludedVAT=وتشمل الضريبة على القيمة المضافة
@ -338,7 +339,7 @@ FullList=القائمة الكاملة
Statistics=احصاءات Statistics=احصاءات
OtherStatistics=آخر الإحصاءات OtherStatistics=آخر الإحصاءات
Status=حالة Status=حالة
# ShortInfo=Info. ShortInfo=Info.
Ref=المرجع. Ref=المرجع.
RefSupplier=المرجع. المورد RefSupplier=المرجع. المورد
RefPayment=المرجع. الدفع RefPayment=المرجع. الدفع
@ -356,8 +357,8 @@ ActionRunningShort=بدأت
ActionDoneShort=انتهى ActionDoneShort=انتهى
CompanyFoundation=الشركة / المؤسسة CompanyFoundation=الشركة / المؤسسة
ContactsForCompany=اتصالات لهذا الطرف الثالث ContactsForCompany=اتصالات لهذا الطرف الثالث
# ContactsAddressesForCompany=Contacts/addresses for this third party ContactsAddressesForCompany=Contacts/addresses for this third party
# AddressesForCompany=Addresses for this third party AddressesForCompany=Addresses for this third party
ActionsOnCompany=الأعمال حول هذا الطرف الثالث ActionsOnCompany=الأعمال حول هذا الطرف الثالث
ActionsOnMember=أحداث حول هذا العضو ActionsOnMember=أحداث حول هذا العضو
NActions=ق ٪ الإجراءات NActions=ق ٪ الإجراءات
@ -393,7 +394,7 @@ OtherInformations=معلومات أخرى
Quantity=الكمية Quantity=الكمية
Qty=الكمية Qty=الكمية
ChangedBy=تغيير ChangedBy=تغيير
# ReCalculate=Recalculate ReCalculate=Recalculate
ResultOk=النجاح ResultOk=النجاح
ResultKo=فشل ResultKo=فشل
Reporting=الإبلاغ Reporting=الإبلاغ
@ -488,8 +489,8 @@ Report=تقرير
Keyword=الفحص السنوي clé Keyword=الفحص السنوي clé
Legend=أسطورة Legend=أسطورة
FillTownFromZip=شغل البلدة من الرمز البريدي FillTownFromZip=شغل البلدة من الرمز البريدي
# Fill=Fill Fill=Fill
# Reset=Reset Reset=Reset
ShowLog=وتظهر الدخول ShowLog=وتظهر الدخول
File=ملف File=ملف
Files=ملفات Files=ملفات
@ -504,8 +505,8 @@ NbOfThirdParties=عدد من الأطراف الثالثة
NbOfCustomers=عدد من العملاء NbOfCustomers=عدد من العملاء
NbOfLines=عدد الخطوط NbOfLines=عدد الخطوط
NbOfObjects=عدد الأجسام NbOfObjects=عدد الأجسام
# NbOfReferers=Number of referrers NbOfReferers=Number of referrers
# Referers=Consumption Referers=Consumption
TotalQuantity=الكمية الإجمالية TotalQuantity=الكمية الإجمالية
DateFromTo=ل٪ من ق ق ٪ DateFromTo=ل٪ من ق ق ٪
DateFrom=من ق ٪ DateFrom=من ق ٪
@ -558,7 +559,7 @@ GoBack=العودة
CanBeModifiedIfOk=يمكن تعديلها إذا كان صحيحا CanBeModifiedIfOk=يمكن تعديلها إذا كان صحيحا
CanBeModifiedIfKo=يمكن تعديلها إذا لم يكن صحيحا CanBeModifiedIfKo=يمكن تعديلها إذا لم يكن صحيحا
RecordModifiedSuccessfully=سجل تعديل بنجاح RecordModifiedSuccessfully=سجل تعديل بنجاح
# RecordsModified=%s records modified RecordsModified=%s records modified
AutomaticCode=مدونة الآلي AutomaticCode=مدونة الآلي
NotManaged=لم يفلح NotManaged=لم يفلح
FeatureDisabled=سمة المعوقين FeatureDisabled=سمة المعوقين
@ -574,7 +575,7 @@ TotalWoman=المجموع
TotalMan=المجموع TotalMan=المجموع
NeverReceived=لم يتلق NeverReceived=لم يتلق
Canceled=ألغى Canceled=ألغى
# YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary
Color=لون Color=لون
Documents=ربط الملفات Documents=ربط الملفات
DocumentsNb=ملفات مرتبطة (%s) DocumentsNb=ملفات مرتبطة (%s)
@ -589,7 +590,7 @@ ThisLimitIsDefinedInSetup=Dolibarr الحد (القائمة المنزل الإ
NoFileFound=لا الوثائق المحفوظة في هذا المجلد NoFileFound=لا الوثائق المحفوظة في هذا المجلد
CurrentUserLanguage=الصيغة الحالية CurrentUserLanguage=الصيغة الحالية
CurrentTheme=الموضوع الحالي CurrentTheme=الموضوع الحالي
# CurrentMenuManager=Current menu manager CurrentMenuManager=Current menu manager
DisabledModules=والمعوقين وحدات DisabledModules=والمعوقين وحدات
For=لأجل For=لأجل
ForCustomer=الزبون ForCustomer=الزبون
@ -608,7 +609,7 @@ CloneMainAttributes=استنساخ وجوه مع السمات الرئيسية
PDFMerge=دمج الشعبي PDFMerge=دمج الشعبي
Merge=دمج Merge=دمج
PrintContentArea=وتظهر الصفحة الرئيسية لطباعة ناحية المحتوى PrintContentArea=وتظهر الصفحة الرئيسية لطباعة ناحية المحتوى
# MenuManager=Menu manager MenuManager=Menu manager
NoMenu=لا القائمة الفرعية NoMenu=لا القائمة الفرعية
WarningYouAreInMaintenanceMode=انذار ، كنت في وضع الصيانة ، <b>%s</b> الدخول فقط بحيث يتم السماح لاستخدام التطبيق في الوقت الراهن. WarningYouAreInMaintenanceMode=انذار ، كنت في وضع الصيانة ، <b>%s</b> الدخول فقط بحيث يتم السماح لاستخدام التطبيق في الوقت الراهن.
CoreErrorTitle=نظام خطأ CoreErrorTitle=نظام خطأ
@ -650,26 +651,26 @@ ByYear=بحلول العام
ByMonth=من قبل شهر ByMonth=من قبل شهر
ByDay=بعد يوم ByDay=بعد يوم
BySalesRepresentative=بواسطة مندوب مبيعات BySalesRepresentative=بواسطة مندوب مبيعات
# LinkedToSpecificUsers=Linked to a particular user contact LinkedToSpecificUsers=Linked to a particular user contact
# DeleteAFile=Delete a file DeleteAFile=Delete a file
# ConfirmDeleteAFile=Are you sure you want to delete file ConfirmDeleteAFile=Are you sure you want to delete file
# NoResults=No results NoResults=No results
# ModulesSystemTools=Modules tools ModulesSystemTools=Modules tools
# Test=Test Test=Test
# Element=Element Element=Element
# NoPhotoYet=No pictures available yet NoPhotoYet=No pictures available yet
# HomeDashboard=Home summary HomeDashboard=Home summary
# Deductible=Deductible Deductible=Deductible
# from=from from=from
# toward=toward toward=toward
# Access=Access Access=Access
# HelpCopyToClipboard=Use Ctrl+C to copy to clipboard HelpCopyToClipboard=Use Ctrl+C to copy to clipboard
# SaveUploadedFileWithMask=Save file on server with name "<strong>%s</strong>" (otherwise "%s") SaveUploadedFileWithMask=Save file on server with name "<strong>%s</strong>" (otherwise "%s")
# OriginFileName=Original filename OriginFileName=Original filename
# SetDemandReason=Set source SetDemandReason=Set source
# ViewPrivateNote=View notes ViewPrivateNote=View notes
# XMoreLines=%s line(s) hidden XMoreLines=%s line(s) hidden
# PublicUrl=Public URL PublicUrl=Public URL
# Week day # Week day
Monday=يوم الاثنين Monday=يوم الاثنين

View File

@ -1,51 +1,50 @@
# Dolibarr language file - Source file is en_US - marges # Dolibarr language file - Source file is en_US - marges
# Margin=Margin Margin=Margin
# Margins=Margins Margins=Margins
# TotalMargin=Total Margin TotalMargin=Total Margin
# MarginOnProducts=Margin / Products MarginOnProducts=Margin / Products
# MarginOnServices=Margin / Services MarginOnServices=Margin / Services
# MarginRate=Margin rate MarginRate=Margin rate
# MarkRate=Mark rate MarkRate=Mark rate
# DisplayMarginRates=Display margin rates DisplayMarginRates=Display margin rates
# DisplayMarkRates=Display mark rates DisplayMarkRates=Display mark rates
# InputPrice=Input price InputPrice=Input price
# margin=Profit margins management margin=Profit margins management
# margesSetup=Profit margins management setup margesSetup=Profit margins management setup
# MarginDetails=Margin details MarginDetails=Margin details
# ProductMargins=Product margins ProductMargins=Product margins
# CustomerMargins=Customer margins CustomerMargins=Customer margins
# AgentMargins=Agent margins SalesRepresentativeMargins=Sales representative margins
ProductService=المنتج أو الخدمة ProductService=المنتج أو الخدمة
# AllProducts=All products and services AllProducts=All products and services
# ChooseProduct/Service=Choose product or service ChooseProduct/Service=Choose product or service
# CommercialAgent=Commercial agent
StartDate=تاريخ البدء StartDate=تاريخ البدء
EndDate=نهاية التاريخ EndDate=نهاية التاريخ
Launch=يبدأ Launch=يبدأ
# ForceBuyingPriceIfNull=Force buying price if null ForceBuyingPriceIfNull=Force buying price if null
# ForceBuyingPriceIfNullDetails=if "ON", margin will be zero on line (buying price = selling price), otherwise ("OFF"), marge will be equal to selling price (buying price = 0) ForceBuyingPriceIfNullDetails=if "ON", margin will be zero on line (buying price = selling price), otherwise ("OFF"), marge will be equal to selling price (buying price = 0)
# MARGIN_METHODE_FOR_DISCOUNT=Margin method for global discounts MARGIN_METHODE_FOR_DISCOUNT=Margin method for global discounts
# UseDiscountAsProduct=As a product UseDiscountAsProduct=As a product
# UseDiscountAsService=As a service UseDiscountAsService=As a service
# UseDiscountOnTotal=On subtotal UseDiscountOnTotal=On subtotal
# MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Defines if a global discount is treated as a product, a service, or only on subtotal for margin calculation. MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Defines if a global discount is treated as a product, a service, or only on subtotal for margin calculation.
# MARGIN_TYPE=Margin type MARGIN_TYPE=Margin type
# MargeBrute=Raw margin MargeBrute=Raw margin
# MargeNette=Net margin MargeNette=Net margin
# MARGIN_TYPE_DETAILS=Raw margin : Selling price - Buying price<br/>Net margin : Selling price - Cost price MARGIN_TYPE_DETAILS=Raw margin : Selling price - Buying price<br/>Net margin : Selling price - Cost price
# CostPrice=Cost price CostPrice=Cost price
# BuyingCost=Cost price BuyingCost=Cost price
# UnitCharges=Unit charges UnitCharges=Unit charges
# Charges=Charges Charges=Charges
# AgentContactType=Commercial agent contact type AgentContactType=Commercial agent contact type
# AgentContactTypeDetails=Défine what contact type (linked on invoices) will be used for margin report by commercial agents AgentContactTypeDetails=Défine what contact type (linked on invoices) will be used for margin report by commercial agents

View File

@ -10,21 +10,22 @@ DateToBirth=تاريخ الميلاد
BirthdayAlertOn= عيد ميلاد النشطة في حالة تأهب BirthdayAlertOn= عيد ميلاد النشطة في حالة تأهب
BirthdayAlertOff= عيد الميلاد فى حالة تأهب الخاملة BirthdayAlertOff= عيد الميلاد فى حالة تأهب الخاملة
Notify_FICHINTER_VALIDATE=تدخل المصادق Notify_FICHINTER_VALIDATE=تدخل المصادق
# Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
Notify_BILL_VALIDATE=فاتورة مصادق Notify_BILL_VALIDATE=فاتورة مصادق
# Notify_BILL_UNVALIDATE=Customer invoice unvalidated Notify_BILL_UNVALIDATE=Customer invoice unvalidated
Notify_ORDER_SUPPLIER_APPROVE=من أجل الموافقة على المورد Notify_ORDER_SUPPLIER_APPROVE=من أجل الموافقة على المورد
Notify_ORDER_SUPPLIER_REFUSE=من أجل رفض الموردين Notify_ORDER_SUPPLIER_REFUSE=من أجل رفض الموردين
Notify_ORDER_VALIDATE=التحقق من صحة النظام العميل Notify_ORDER_VALIDATE=التحقق من صحة النظام العميل
Notify_PROPAL_VALIDATE=التحقق من صحة اقتراح العملاء Notify_PROPAL_VALIDATE=التحقق من صحة اقتراح العملاء
Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
Notify_WITHDRAW_TRANSMIT=انتقال انسحاب Notify_WITHDRAW_TRANSMIT=انتقال انسحاب
Notify_WITHDRAW_CREDIT=انسحاب الائتمان Notify_WITHDRAW_CREDIT=انسحاب الائتمان
Notify_WITHDRAW_EMIT=Isue انسحاب Notify_WITHDRAW_EMIT=Isue انسحاب
Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد
Notify_COMPANY_CREATE=طرف ثالث خلق Notify_COMPANY_CREATE=طرف ثالث خلق
# Notify_COMPANY_COMPANY_SENTBYMAIL=Mails sent from third party card Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
Notify_PROPAL_SENTBYMAIL=اقتراح التجارية المرسلة عن طريق البريد Notify_PROPAL_SENTBYMAIL=اقتراح التجارية المرسلة عن طريق البريد
Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد
Notify_BILL_PAYED=دفعت فاتورة العميل Notify_BILL_PAYED=دفعت فاتورة العميل
Notify_BILL_CANCEL=فاتورة الزبون إلغاء Notify_BILL_CANCEL=فاتورة الزبون إلغاء
Notify_BILL_SENTBYMAIL=فاتورة الزبون إرسالها عن طريق البريد Notify_BILL_SENTBYMAIL=فاتورة الزبون إرسالها عن طريق البريد
@ -33,15 +34,17 @@ Notify_ORDER_SUPPLIER_SENTBYMAIL=النظام مزود ترسل عن طريق ا
Notify_BILL_SUPPLIER_VALIDATE=فاتورة المورد المصادق Notify_BILL_SUPPLIER_VALIDATE=فاتورة المورد المصادق
Notify_BILL_SUPPLIER_PAYED=دفعت فاتورة المورد Notify_BILL_SUPPLIER_PAYED=دفعت فاتورة المورد
Notify_BILL_SUPPLIER_SENTBYMAIL=فاتورة المورد ترسل عن طريق البريد Notify_BILL_SUPPLIER_SENTBYMAIL=فاتورة المورد ترسل عن طريق البريد
Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
Notify_CONTRACT_VALIDATE=التحقق من صحة العقد Notify_CONTRACT_VALIDATE=التحقق من صحة العقد
Notify_FICHEINTER_VALIDATE=التحقق من التدخل Notify_FICHEINTER_VALIDATE=التحقق من التدخل
Notify_SHIPPING_VALIDATE=التحقق من صحة الشحن Notify_SHIPPING_VALIDATE=التحقق من صحة الشحن
Notify_SHIPPING_SENTBYMAIL=الشحن ترسل عن طريق البريد Notify_SHIPPING_SENTBYMAIL=الشحن ترسل عن طريق البريد
Notify_MEMBER_VALIDATE=عضو مصدق Notify_MEMBER_VALIDATE=عضو مصدق
Notify_MEMBER_MODIFY=Member modified
Notify_MEMBER_SUBSCRIPTION=عضو المكتتب Notify_MEMBER_SUBSCRIPTION=عضو المكتتب
Notify_MEMBER_RESILIATE=عضو resiliated Notify_MEMBER_RESILIATE=عضو resiliated
Notify_MEMBER_DELETE=عضو حذف Notify_MEMBER_DELETE=عضو حذف
# Notify_PROJECT_CREATE=Project creation Notify_PROJECT_CREATE=Project creation
NbOfAttachedFiles=عدد الملفات المرفقة / وثائق NbOfAttachedFiles=عدد الملفات المرفقة / وثائق
TotalSizeOfAttachedFiles=اجمالى حجم الملفات المرفقة / وثائق TotalSizeOfAttachedFiles=اجمالى حجم الملفات المرفقة / وثائق
MaxSize=الحجم الأقصى MaxSize=الحجم الأقصى
@ -51,15 +54,15 @@ Miscellaneous=متفرقات
NbOfActiveNotifications=عدد الإخطارات NbOfActiveNotifications=عدد الإخطارات
PredefinedMailTest=هذا هو الاختبار الإلكتروني. تكون مفصولة \\ nThe سطرين من قبل حرف إرجاع. PredefinedMailTest=هذا هو الاختبار الإلكتروني. تكون مفصولة \\ nThe سطرين من قبل حرف إرجاع.
PredefinedMailTestHtml=هذا هو البريد <b>الاختبار</b> (الاختبار يجب أن تكون في كلمة جريئة). <br> وتفصل بين الخطين من قبل حرف إرجاع. PredefinedMailTestHtml=هذا هو البريد <b>الاختبار</b> (الاختبار يجب أن تكون في كلمة جريئة). <br> وتفصل بين الخطين من قبل حرف إرجاع.
# PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
# PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __FACREF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __FACREF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
# PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
# PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
# PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
# PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
# PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
# PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
# PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__
DemoDesc=Dolibarr الاتفاق هو تخطيط موارد المؤسسات وإدارة علاقات العملاء وتتكون من عدة وحدات وظيفية. وقال ان العرض يشمل جميع وحدات لا يعني اي شيء يحدث هذا أبدا. بذلك ، عرض عدة ملامح المتاحة. DemoDesc=Dolibarr الاتفاق هو تخطيط موارد المؤسسات وإدارة علاقات العملاء وتتكون من عدة وحدات وظيفية. وقال ان العرض يشمل جميع وحدات لا يعني اي شيء يحدث هذا أبدا. بذلك ، عرض عدة ملامح المتاحة.
ChooseYourDemoProfil=اختيار عرض ملف المباراة التي أنشطتك... ChooseYourDemoProfil=اختيار عرض ملف المباراة التي أنشطتك...
DemoFundation=أعضاء في إدارة مؤسسة DemoFundation=أعضاء في إدارة مؤسسة
@ -107,16 +110,16 @@ SurfaceUnitm2=m2
SurfaceUnitdm2=dm2 SurfaceUnitdm2=dm2
SurfaceUnitcm2=cm2 SurfaceUnitcm2=cm2
SurfaceUnitmm2=mm2 SurfaceUnitmm2=mm2
# SurfaceUnitfoot2=ft2 SurfaceUnitfoot2=ft2
# SurfaceUnitinch2=in2 SurfaceUnitinch2=in2
Volume=حجم Volume=حجم
TotalVolume=الحجم الإجمالي TotalVolume=الحجم الإجمالي
VolumeUnitm3=m3 VolumeUnitm3=m3
VolumeUnitdm3=dm3 VolumeUnitdm3=dm3
VolumeUnitcm3=cm3 VolumeUnitcm3=cm3
VolumeUnitmm3=mm3 VolumeUnitmm3=mm3
# VolumeUnitfoot3=ft3 VolumeUnitfoot3=ft3
# VolumeUnitinch3=in3 VolumeUnitinch3=in3
VolumeUnitounce=أوقية VolumeUnitounce=أوقية
VolumeUnitlitre=لتر VolumeUnitlitre=لتر
VolumeUnitgallon=غالون VolumeUnitgallon=غالون
@ -127,7 +130,7 @@ SizeUnitcm=سم
SizeUnitmm=مم SizeUnitmm=مم
SizeUnitinch=بوصة SizeUnitinch=بوصة
SizeUnitfoot=قدم SizeUnitfoot=قدم
# SizeUnitpoint=point SizeUnitpoint=point
BugTracker=علة تعقب BugTracker=علة تعقب
SendNewPasswordDesc=هذا الشكل يتيح لك طلب كلمة مرور جديدة. سيكون من إرسالها إلى عنوان البريد الإلكتروني الخاص بك. <br> التغيير لن تكون فعالة إلا بعد النقر على تأكيد الصلة داخل هذه الرسالة. <br> تحقق من بريدك الالكتروني القارئ البرمجيات. SendNewPasswordDesc=هذا الشكل يتيح لك طلب كلمة مرور جديدة. سيكون من إرسالها إلى عنوان البريد الإلكتروني الخاص بك. <br> التغيير لن تكون فعالة إلا بعد النقر على تأكيد الصلة داخل هذه الرسالة. <br> تحقق من بريدك الالكتروني القارئ البرمجيات.
BackToLoginPage=عودة إلى صفحة تسجيل الدخول BackToLoginPage=عودة إلى صفحة تسجيل الدخول
@ -141,12 +144,12 @@ StatsByNumberOfEntities=إحصاءات في عدد من الكيانات في ا
NumberOfProposals=عددا من المقترحات بشأن 12 الشهر الماضي NumberOfProposals=عددا من المقترحات بشأن 12 الشهر الماضي
NumberOfCustomerOrders=عدد طلبات الزبائن على 12 في الشهر الماضي NumberOfCustomerOrders=عدد طلبات الزبائن على 12 في الشهر الماضي
NumberOfCustomerInvoices=عدد من العملاء والفواتير على 12 الشهر الماضي NumberOfCustomerInvoices=عدد من العملاء والفواتير على 12 الشهر الماضي
# NumberOfSupplierOrders=Number of supplier orders on last 12 month NumberOfSupplierOrders=Number of supplier orders on last 12 month
NumberOfSupplierInvoices=عدد من فواتير الموردين على 12 الشهر الماضي NumberOfSupplierInvoices=عدد من فواتير الموردين على 12 الشهر الماضي
NumberOfUnitsProposals=عدد من الوحدات على مقترحات بشأن 12 الشهر الماضي NumberOfUnitsProposals=عدد من الوحدات على مقترحات بشأن 12 الشهر الماضي
NumberOfUnitsCustomerOrders=عدد من الوحدات على طلبات الزبائن على 12 في الشهر الماضي NumberOfUnitsCustomerOrders=عدد من الوحدات على طلبات الزبائن على 12 في الشهر الماضي
NumberOfUnitsCustomerInvoices=عدد من الوحدات على فواتير العملاء على 12 الشهر الماضي NumberOfUnitsCustomerInvoices=عدد من الوحدات على فواتير العملاء على 12 الشهر الماضي
# NumberOfUnitsSupplierOrders=Number of units on supplier orders on last 12 month NumberOfUnitsSupplierOrders=Number of units on supplier orders on last 12 month
NumberOfUnitsSupplierInvoices=عدد من الوحدات على فواتير الموردين على 12 الشهر الماضي NumberOfUnitsSupplierInvoices=عدد من الوحدات على فواتير الموردين على 12 الشهر الماضي
EMailTextInterventionValidated=التدخل ٪ ق المصادق EMailTextInterventionValidated=التدخل ٪ ق المصادق
EMailTextInvoiceValidated=فاتورة ٪ ق المصادق EMailTextInvoiceValidated=فاتورة ٪ ق المصادق
@ -156,7 +159,7 @@ EMailTextOrderApproved=من أجل الموافقة على ق ٪
EMailTextOrderApprovedBy=من أجل ٪ ق ق ٪ وافقت عليها EMailTextOrderApprovedBy=من أجل ٪ ق ق ٪ وافقت عليها
EMailTextOrderRefused=من أجل رفض ق ٪ EMailTextOrderRefused=من أجل رفض ق ٪
EMailTextOrderRefusedBy=من أجل أن ترفض ٪ ق ق ٪ EMailTextOrderRefusedBy=من أجل أن ترفض ٪ ق ق ٪
# EMailTextExpeditionValidated=The shipping %s has been validated. EMailTextExpeditionValidated=The shipping %s has been validated.
ImportedWithSet=استيراد مجموعة البيانات ImportedWithSet=استيراد مجموعة البيانات
DolibarrNotification=إشعار تلقائي DolibarrNotification=إشعار تلقائي
ResizeDesc=أدخل عرض جديدة <b>أو</b> ارتفاع جديد. وستبقى نسبة خلال تغيير حجم... ResizeDesc=أدخل عرض جديدة <b>أو</b> ارتفاع جديد. وستبقى نسبة خلال تغيير حجم...
@ -178,12 +181,12 @@ StartUpload=بدء التحميل
CancelUpload=إلغاء التحميل CancelUpload=إلغاء التحميل
FileIsTooBig=ملفات كبيرة جدا FileIsTooBig=ملفات كبيرة جدا
PleaseBePatient=يرجى التحلي بالصبر... PleaseBePatient=يرجى التحلي بالصبر...
# RequestToResetPasswordReceived=A request to change your Dolibarr password has been received RequestToResetPasswordReceived=A request to change your Dolibarr password has been received
# NewKeyIs=This is your new keys to login NewKeyIs=This is your new keys to login
# NewKeyWillBe=Your new key to login to software will be NewKeyWillBe=Your new key to login to software will be
# ClickHereToGoTo=Click here to go to %s ClickHereToGoTo=Click here to go to %s
# YouMustClickToChange=You must however first click on the following link to validate this password change YouMustClickToChange=You must however first click on the following link to validate this password change
# ForgetIfNothing=If you didn't request this change, just forget this email. Your credentials are kept safe. ForgetIfNothing=If you didn't request this change, just forget this email. Your credentials are kept safe.
##### Calendar common ##### ##### Calendar common #####
AddCalendarEntry=إضافة الدخول في التقويم ق ٪ AddCalendarEntry=إضافة الدخول في التقويم ق ٪
@ -205,7 +208,7 @@ MemberResiliatedInDolibarr=عضو في resiliated ٪ ق Dolibarr
MemberDeletedInDolibarr=عضو ٪ ق حذفها من Dolibarr MemberDeletedInDolibarr=عضو ٪ ق حذفها من Dolibarr
MemberSubscriptionAddedInDolibarr=الاكتتاب عضو ق ٪ وأضاف في Dolibarr MemberSubscriptionAddedInDolibarr=الاكتتاب عضو ق ٪ وأضاف في Dolibarr
ShipmentValidatedInDolibarr=%s شحنة التحقق من صحتها في Dolibarr ShipmentValidatedInDolibarr=%s شحنة التحقق من صحتها في Dolibarr
# ShipmentDeletedInDolibarr=Shipment %s deleted from Dolibarr ShipmentDeletedInDolibarr=Shipment %s deleted from Dolibarr
##### Export ##### ##### Export #####
Export=تصدير Export=تصدير
ExportsArea=صادرات المنطقة ExportsArea=صادرات المنطقة

View File

@ -9,14 +9,17 @@ PAYPAL_API_USER=API المستخدم
PAYPAL_API_PASSWORD=API كلمة السر PAYPAL_API_PASSWORD=API كلمة السر
PAYPAL_API_SIGNATURE=API توقيع PAYPAL_API_SIGNATURE=API توقيع
PAYPAL_API_INTEGRAL_OR_PAYPALONLY=تقدم الدفع &quot;لا يتجزأ&quot; (بطاقة الائتمان + باي بال) أو &quot;باي بال&quot; فقط PAYPAL_API_INTEGRAL_OR_PAYPALONLY=تقدم الدفع &quot;لا يتجزأ&quot; (بطاقة الائتمان + باي بال) أو &quot;باي بال&quot; فقط
# PaypalModeIntegral=Integral PaypalModeIntegral=Integral
# PaypalModeOnlyPaypal=PayPal only PaypalModeOnlyPaypal=PayPal only
PAYPAL_CSS_URL=Optionnal عنوان الموقع من ورقة أنماط CSS في صفحة الدفع PAYPAL_CSS_URL=Optionnal عنوان الموقع من ورقة أنماط CSS في صفحة الدفع
ThisIsTransactionId=هذا هو معرف من الصفقة: <b>%s</b> ThisIsTransactionId=هذا هو معرف من الصفقة: <b>%s</b>
PAYPAL_ADD_PAYMENT_URL=إضافة رابط الدفع باي بال عند إرسال مستند عبر البريد PAYPAL_ADD_PAYMENT_URL=إضافة رابط الدفع باي بال عند إرسال مستند عبر البريد
PAYPAL_IPN_MAIL_ADDRESS=عنوان البريد الإلكتروني للإخطار لحظة الدفع (IPN) PAYPAL_IPN_MAIL_ADDRESS=عنوان البريد الإلكتروني للإخطار لحظة الدفع (IPN)
# PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n
YouAreCurrentlyInSandboxMode=أنت حاليا في وضع &quot;رمل&quot; YouAreCurrentlyInSandboxMode=أنت حاليا في وضع &quot;رمل&quot;
# NewPaypalPaymentReceived=New Paypal payment received NewPaypalPaymentReceived=New Paypal payment received
# NewPaypalPaymentFailed=New Paypal payment tried but failed NewPaypalPaymentFailed=New Paypal payment tried but failed
# PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not)
ReturnURLAfterPayment=Return URL after payment
ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed
PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed

View File

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

View File

@ -18,8 +18,8 @@ RequestStandingOrderToTreat=طلب لأوامر دائمة لمعالجة
RequestStandingOrderTreated=طلب تعامل أوامر دائمة RequestStandingOrderTreated=طلب تعامل أوامر دائمة
CustomersStandingOrders=الزبون أوامر دائمة CustomersStandingOrders=الزبون أوامر دائمة
CustomerStandingOrder=يقف النظام العميل CustomerStandingOrder=يقف النظام العميل
NbOfInvoiceToWithdraw=ملاحظة : للفاتورة مع طلب سحب NbOfInvoiceToWithdraw=Nb. of invoice with withdraw request
NbOfInvoiceToWithdrawWithInfo=ملحوظة من فاتورة مع سحب طلب للعملاء وبعد تحديد معلومات الحساب المصرفي NbOfInvoiceToWithdrawWithInfo=Nb. of invoice with withdraw request for customers having defined bank account information
InvoiceWaitingWithdraw=فاتورة انتظار الانسحاب InvoiceWaitingWithdraw=فاتورة انتظار الانسحاب
AmountToWithdraw=سحب المبلغ AmountToWithdraw=سحب المبلغ
WithdrawsRefused=ورفض سحب WithdrawsRefused=ورفض سحب
@ -80,9 +80,9 @@ WithdrawalFileNotCapable=غير قادر على توليد سحب ملف است
ShowWithdraw=وتظهر سحب ShowWithdraw=وتظهر سحب
IfInvoiceNeedOnWithdrawPaymentWontBeClosed=ومع ذلك، إذا فاتورة واحدة على الأقل دفع انسحاب لا تتم معالجتها حتى الآن، فإنه لن يكون كما سيولي للسماح لإدارة الانسحاب قبل. IfInvoiceNeedOnWithdrawPaymentWontBeClosed=ومع ذلك، إذا فاتورة واحدة على الأقل دفع انسحاب لا تتم معالجتها حتى الآن، فإنه لن يكون كما سيولي للسماح لإدارة الانسحاب قبل.
DoStandingOrdersBeforePayments=هذه علامات تسمح لك لطلب لاستصدار أمر دائم. مرة واحدة وسيتم الانتهاء من ذلك، يمكنك كتابة دفع لإغلاق الفاتورة. DoStandingOrdersBeforePayments=هذه علامات تسمح لك لطلب لاستصدار أمر دائم. مرة واحدة وسيتم الانتهاء من ذلك، يمكنك كتابة دفع لإغلاق الفاتورة.
# WithdrawalFile=Withdrawal file WithdrawalFile=Withdrawal file
# SetToStatusSent=Set to status "File Sent" SetToStatusSent=Set to status "File Sent"
# ThisWillAlsoAddPaymentOnInvoice=This will also apply payments to invoices and will classify them as "Paid" ThisWillAlsoAddPaymentOnInvoice=This will also apply payments to invoices and will classify them as "Paid"
### Notifications ### Notifications
InfoCreditSubject=دفع %s النظام الدائمة من قبل البنك InfoCreditSubject=دفع %s النظام الدائمة من قبل البنك
@ -92,5 +92,5 @@ InfoTransMessage=وقد transmited في %s أجل الوقوف على البنك
InfoTransData=المبلغ: %s <br> Metode: %s <br> تاريخ: %s InfoTransData=المبلغ: %s <br> Metode: %s <br> تاريخ: %s
InfoFoot=هذه رسالة تلقائية ترسل من قبل Dolibarr InfoFoot=هذه رسالة تلقائية ترسل من قبل Dolibarr
InfoRejectSubject=ورفض النظام واقفا InfoRejectSubject=ورفض النظام واقفا
# InfoRejectMessage=Hello,<br><br>the standing order of invoice %s related to the company %s, with an amount of %s has been refused by the bank.<br><br>--<br>%s InfoRejectMessage=Hello,<br><br>the standing order of invoice %s related to the company %s, with an amount of %s has been refused by the bank.<br><br>--<br>%s
ModeWarning=لم يتم تعيين خيار الوضع الحقيقي، ونحن بعد توقف هذه المحاكاة ModeWarning=لم يتم تعيين خيار الوضع الحقيقي، ونحن بعد توقف هذه المحاكاة

View File

@ -12,7 +12,7 @@ SessionId=ID на сесията
SessionSaveHandler=Handler за да запазите сесията SessionSaveHandler=Handler за да запазите сесията
SessionSavePath=Място за съхранение на сесията SessionSavePath=Място за съхранение на сесията
PurgeSessions=Изчистване на сесиите PurgeSessions=Изчистване на сесиите
# ConfirmPurgeSessions=Do you really want to purge all sessions ? This will disconnect every user (except yourself). ConfirmPurgeSessions=Do you really want to purge all sessions ? This will disconnect every user (except yourself).
NoSessionListWithThisHandler=Запиши сесиен манипулатор конфигурирани във вашата PHP, не позволява да се изброят всички текущи сесии. NoSessionListWithThisHandler=Запиши сесиен манипулатор конфигурирани във вашата PHP, не позволява да се изброят всички текущи сесии.
LockNewSessions=Заключване за нови свързвания LockNewSessions=Заключване за нови свързвания
ConfirmLockNewSessions=Сигурен ли сте, че искате да ограничите всяка нова връзка Dolibarr за себе си. Само <b>%s</b> потребителят ще бъде в състояние да се свърже след това. ConfirmLockNewSessions=Сигурен ли сте, че искате да ограничите всяка нова връзка Dolibarr за себе си. Само <b>%s</b> потребителят ще бъде в състояние да се свърже след това.
@ -43,15 +43,15 @@ SecuritySetup=Настройки на сигурността
ErrorModuleRequirePHPVersion=Грешка, този модул изисква PHP версия %s или по-висока ErrorModuleRequirePHPVersion=Грешка, този модул изисква PHP версия %s или по-висока
ErrorModuleRequireDolibarrVersion=Грешка, този модул изисква Dolibarr версия %s или по-висока ErrorModuleRequireDolibarrVersion=Грешка, този модул изисква Dolibarr версия %s или по-висока
ErrorDecimalLargerThanAreForbidden=Грешка, с точност по-висока от <b>%s</b> не се поддържа. ErrorDecimalLargerThanAreForbidden=Грешка, с точност по-висока от <b>%s</b> не се поддържа.
# DictionarySetup=Dictionary setup DictionarySetup=Dictionary setup
# Dictionary=Dictionaries Dictionary=Dictionaries
# ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record
# ErrorCodeCantContainZero=Code can't contain value 0 ErrorCodeCantContainZero=Code can't contain value 0
DisableJavascript=Изключване на Java скрипт и Ajax функции DisableJavascript=Изключване на Java скрипт и Ajax функции
ConfirmAjax=Използвайте Аякс потвърждение изскачащи прозорци ConfirmAjax=Използвайте Аякс потвърждение изскачащи прозорци
# UseSearchToSelectCompany=Use autocompletion fields to choose third parties (instead of using a list box).<br><br>Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. UseSearchToSelectCompany=Use autocompletion fields to choose third parties (instead of using a list box).<br><br>Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
ActivityStateToSelectCompany= Добавяне на филтър опция за показване / скриване на thirdparties, които в момента са в дейност или е престанала ActivityStateToSelectCompany= Добавяне на филтър опция за показване / скриване на thirdparties, които в момента са в дейност или е престанала
# UseSearchToSelectContact=Use autocompletion fields to choose contact (instead of using a list box).<br><br>Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. UseSearchToSelectContact=Use autocompletion fields to choose contact (instead of using a list box).<br><br>Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
SearchFilter=Опции на филтрите за търсене SearchFilter=Опции на филтрите за търсене
NumberOfKeyToSearch=NBR от знаци, за да предизвика търсене: %s NumberOfKeyToSearch=NBR от знаци, за да предизвика търсене: %s
ViewFullDateActions=Показване на пълните събития дати в третия лист ViewFullDateActions=Показване на пълните събития дати в третия лист
@ -64,15 +64,15 @@ PreviewNotAvailable=Preview не е наличен
ThemeCurrentlyActive=Тема активни в момента ThemeCurrentlyActive=Тема активни в момента
CurrentTimeZone=TimeZone PHP (сървър) CurrentTimeZone=TimeZone PHP (сървър)
Space=Пространство Space=Пространство
# Table=Table Table=Table
Fields=Полетата Fields=Полетата
# Index=Index Index=Index
Mask=Маска Mask=Маска
NextValue=Следваща стойност NextValue=Следваща стойност
NextValueForInvoices=Следваща стойност (фактури) NextValueForInvoices=Следваща стойност (фактури)
NextValueForCreditNotes=Следваща стойност (кредитни известия) NextValueForCreditNotes=Следваща стойност (кредитни известия)
# NextValueForDeposit=Next value (deposit) NextValueForDeposit=Next value (deposit)
# NextValueForReplacements=Next value (replacements) NextValueForReplacements=Next value (replacements)
MustBeLowerThanPHPLimit=Забележка: PHP ограничава размера на всяко качване на файлове на %s <b>%s,</b> независимо от стойността на този параметър е MustBeLowerThanPHPLimit=Забележка: PHP ограничава размера на всяко качване на файлове на %s <b>%s,</b> независимо от стойността на този параметър е
NoMaxSizeByPHPLimit=Забележка: Не срокът се определя в конфигурацията на вашия PHP NoMaxSizeByPHPLimit=Забележка: Не срокът се определя в конфигурацията на вашия PHP
MaxSizeForUploadedFiles=Максимален размер за качените файлове (0 за да забраните качване) MaxSizeForUploadedFiles=Максимален размер за качените файлове (0 за да забраните качване)
@ -109,18 +109,18 @@ ParameterInDolibarr=Параметър %s
LanguageParameter=Езиков параметър %s LanguageParameter=Езиков параметър %s
LanguageBrowserParameter=Параметър %s LanguageBrowserParameter=Параметър %s
LocalisationDolibarrParameters=Локализация параметри LocalisationDolibarrParameters=Локализация параметри
# ClientTZ=Client Time Zone (user) ClientTZ=Client Time Zone (user)
# ClientHour=Client time (user) ClientHour=Client time (user)
# OSTZ=Servre OS Time Zone OSTZ=Servre OS Time Zone
# PHPTZ=PHP server Time Zone PHPTZ=PHP server Time Zone
PHPServerOffsetWithGreenwich=PHP сървъра компенсира широчина Гринуич (секунди) PHPServerOffsetWithGreenwich=PHP сървъра компенсира широчина Гринуич (секунди)
ClientOffsetWithGreenwich=Клиент / Browser компенсира широчина Гринуич (секунди) ClientOffsetWithGreenwich=Клиент / Browser компенсира широчина Гринуич (секунди)
DaylingSavingTime=Лятното часово време DaylingSavingTime=Лятното часово време
# CurrentHour=PHP Time (server) CurrentHour=PHP Time (server)
# CompanyTZ=Company Time Zone (main company) CompanyTZ=Company Time Zone (main company)
# CompanyHour=Company Time (main company) CompanyHour=Company Time (main company)
CurrentSessionTimeOut=Продължителност на текущата сесия CurrentSessionTimeOut=Продължителност на текущата сесия
# YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris"
OSEnv=OS околната среда OSEnv=OS околната среда
Box=Кутия Box=Кутия
Boxes=Кутии Boxes=Кутии
@ -130,7 +130,7 @@ Position=Ред
MenusDesc=Менюта мениджърите определят съдържанието на две ленти с менюта (хоризонтална лента и вертикална лента). MenusDesc=Менюта мениджърите определят съдържанието на две ленти с менюта (хоризонтална лента и вертикална лента).
MenusEditorDesc=Менюто редактор ви позволяват да определите персонализирани вписвания в менютата. Използвайте го внимателно, за да се избегне dolibarr нестабилна и записи в менюто постоянно недостижим. <br> Някои модули добавяне на записи в менютата (в менюто <b>Всички</b> в повечето случаи). Ако сте премахнали някои от тези записи по погрешка, можете да ги възстановите, като изключите и отново да активирате модула. MenusEditorDesc=Менюто редактор ви позволяват да определите персонализирани вписвания в менютата. Използвайте го внимателно, за да се избегне dolibarr нестабилна и записи в менюто постоянно недостижим. <br> Някои модули добавяне на записи в менютата (в менюто <b>Всички</b> в повечето случаи). Ако сте премахнали някои от тези записи по погрешка, можете да ги възстановите, като изключите и отново да активирате модула.
MenuForUsers=Меню за потребители MenuForUsers=Меню за потребители
# LangFile=.lang file LangFile=.lang file
System=Система System=Система
SystemInfo=Системна информация SystemInfo=Системна информация
SystemTools=Системни инструменти SystemTools=Системни инструменти
@ -272,7 +272,7 @@ ModuleFamilyFinancial=Финансови Модули (Счетоводство
ModuleFamilyECM=Електронно Управление на Съдържанието (ECM) ModuleFamilyECM=Електронно Управление на Съдържанието (ECM)
MenuHandlers=Меню работещи MenuHandlers=Меню работещи
MenuAdmin=Menu Editor MenuAdmin=Menu Editor
# DoNotUseInProduction=Do not use in production DoNotUseInProduction=Do not use in production
ThisIsProcessToFollow=Това е настройка на процеса: ThisIsProcessToFollow=Това е настройка на процеса:
StepNb=Стъпка %s StepNb=Стъпка %s
FindPackageFromWebSite=Намери пакет, който осигурява функция искате (например относно официалния уеб сайт %s). FindPackageFromWebSite=Намери пакет, който осигурява функция искате (например относно официалния уеб сайт %s).
@ -287,19 +287,19 @@ CurrentVersion=Текуща версия на Dolibarr
CallUpdatePage=Отидете на страницата, която се актуализира структурата на базата данни и презареждане на: %s. CallUpdatePage=Отидете на страницата, която се актуализира структурата на базата данни и презареждане на: %s.
LastStableVersion=Последна стабилна версия LastStableVersion=Последна стабилна версия
GenericMaskCodes=Можете да въведете всяка маска за номериране. В тази маска, могат да се използват следните тагове: <br> <b>{000000}</b> съответства на номер, който се увеличава на всеки %s. Влез като много нули като желаната дължина на брояча. Броячът ще бъде завършен с нули от ляво, за да има колкото се може повече нули като маска. <br> <b>{000000 000}</b> същата като предишната, но компенсира, съответстваща на броя на правото на знака + се прилага започва на първи %s. <br> <b>{000000 @}</b> същата като предишната, но броячът се нулира, когато месеца Х е достигнал (Х между 1 и 12, или 0, за да използвате началото на месеца на фискалната година, определени в вашата конфигурация). Ако тази опция се използва и х е 2 или по-висока, тогава последователност {гг} {mm} или {гггг} {mm} също е задължително. <br> <b>{DD}</b> ден (01 до 31). <br> <b>{Mm}</b> месец (01 до 12). <br> <b>{Гг} {гггг}</b> или <b>{Y}</b> година над 2, 4 или 1 брой. <br> GenericMaskCodes=Можете да въведете всяка маска за номериране. В тази маска, могат да се използват следните тагове: <br> <b>{000000}</b> съответства на номер, който се увеличава на всеки %s. Влез като много нули като желаната дължина на брояча. Броячът ще бъде завършен с нули от ляво, за да има колкото се може повече нули като маска. <br> <b>{000000 000}</b> същата като предишната, но компенсира, съответстваща на броя на правото на знака + се прилага започва на първи %s. <br> <b>{000000 @}</b> същата като предишната, но броячът се нулира, когато месеца Х е достигнал (Х между 1 и 12, или 0, за да използвате началото на месеца на фискалната година, определени в вашата конфигурация). Ако тази опция се използва и х е 2 или по-висока, тогава последователност {гг} {mm} или {гггг} {mm} също е задължително. <br> <b>{DD}</b> ден (01 до 31). <br> <b>{Mm}</b> месец (01 до 12). <br> <b>{Гг} {гггг}</b> или <b>{Y}</b> година над 2, 4 или 1 брой. <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 company type on n characters (see dictionary-company types).<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 company type on n characters (see dictionary-company types).<br>
GenericMaskCodes3=Всички други символи на маската ще останат непокътнати. <br> Интервалите не са разрешени. <br> GenericMaskCodes3=Всички други символи на маската ще останат непокътнати. <br> Интервалите не са разрешени. <br>
GenericMaskCodes4a=<u>Пример за използване на 99 %s на третата страна КОМПАНИЯТА извършва 2007-01-31:</u> <br> GenericMaskCodes4a=<u>Пример за използване на 99 %s на третата страна КОМПАНИЯТА извършва 2007-01-31:</u> <br>
GenericMaskCodes4b=<u>Пример за трета страна е създаден на 2007-03-01:</u> <br> GenericMaskCodes4b=<u>Пример за трета страна е създаден на 2007-03-01:</u> <br>
GenericMaskCodes4c=<u>Пример за продукт, създаден на 2007-03-01:</u> <br> GenericMaskCodes4c=<u>Пример за продукт, създаден на 2007-03-01:</u> <br>
# GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b> GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b>
GenericNumRefModelDesc=Върнете адаптивни номер според определен маска. GenericNumRefModelDesc=Върнете адаптивни номер според определен маска.
ServerAvailableOnIPOrPort=Сървър е достъпна на адрес <b>%s</b> на порт <b>%s</b> ServerAvailableOnIPOrPort=Сървър е достъпна на адрес <b>%s</b> на порт <b>%s</b>
ServerNotAvailableOnIPOrPort=Сървърът не е достъпен на адрес <b>%s</b> на порт <b>%s</b> ServerNotAvailableOnIPOrPort=Сървърът не е достъпен на адрес <b>%s</b> на порт <b>%s</b>
DoTestServerAvailability=Свързаност тестовия сървър DoTestServerAvailability=Свързаност тестовия сървър
DoTestSend=Тестване изпращането DoTestSend=Тестване изпращането
DoTestSendHTML=Тестване изпращането на HTML DoTestSendHTML=Тестване изпращането на HTML
# ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask.
ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Грешка, не могат да използват @ опция, ако последователност {гг} {mm} или {гггг} {mm} не е маска. ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Грешка, не могат да използват @ опция, ако последователност {гг} {mm} или {гггг} {mm} не е маска.
UMask=Umask параметър за нови файлове в Unix / Linux / BSD файловата система. UMask=Umask параметър за нови файлове в Unix / Linux / BSD файловата система.
UMaskExplanation=Този параметър ви позволи да се определят правата, определени по подразбиране на файлове, създадени от Dolibarr на сървъра (по време на качването например). <br> Тя трябва да бъде осмична стойност (например, 0666 средства четат и пишат за всеки). <br> Този параметър е безполезно на предприятието на сървъра на Windows. UMaskExplanation=Този параметър ви позволи да се определят правата, определени по подразбиране на файлове, създадени от Dolibarr на сървъра (по време на качването например). <br> Тя трябва да бъде осмична стойност (например, 0666 средства четат и пишат за всеки). <br> Този параметър е безполезно на предприятието на сървъра на Windows.
@ -316,7 +316,7 @@ LanguageFilesCachedIntoShmopSharedMemory=Файлове. Lang заредени
ExamplesWithCurrentSetup=Примери с текущата настройка ExamplesWithCurrentSetup=Примери с текущата настройка
ListOfDirectories=Списък на OpenDocument директории шаблони ListOfDirectories=Списък на OpenDocument директории шаблони
ListOfDirectoriesForModelGenODT=Списък на директории, съдържащи шаблони файлове с OpenDocument формат. <br><br> Тук можете да въведете пълния път на директории. <br> Добави за връщане между указател ие. <br> За да добавите директория на GED модул, добавете тук на <b>DOL_DATA_ROOT / ECM / yourdirectoryname.</b> <br><br> Файлове в тези директории, трябва да завършва <b>с. ODT.</b> ListOfDirectoriesForModelGenODT=Списък на директории, съдържащи шаблони файлове с OpenDocument формат. <br><br> Тук можете да въведете пълния път на директории. <br> Добави за връщане между указател ие. <br> За да добавите директория на GED модул, добавете тук на <b>DOL_DATA_ROOT / ECM / yourdirectoryname.</b> <br><br> Файлове в тези директории, трябва да завършва <b>с. ODT.</b>
# NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
ExampleOfDirectoriesForModelGen=Примери на синтаксиса: <br> C: \\ mydir <br> / Начало / mydir <br> DOL_DATA_ROOT / ECM / ecmdir ExampleOfDirectoriesForModelGen=Примери на синтаксиса: <br> C: \\ mydir <br> / Начало / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
FollowingSubstitutionKeysCanBeUsed=<br> За да разберете как да създадете свои ODT шаблони на документи, преди да ги съхранявате в тези указатели, прочетете уики документация: FollowingSubstitutionKeysCanBeUsed=<br> За да разберете как да създадете свои ODT шаблони на документи, преди да ги съхранявате в тези указатели, прочетете уики документация:
FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
@ -350,45 +350,44 @@ NewVATRates=Нов ставка на ДДС
PriceBaseTypeToChange=Промяна на цените с база референтна стойност, определена на PriceBaseTypeToChange=Промяна на цените с база референтна стойност, определена на
MassConvert=Стартиране маса конвертирате MassConvert=Стартиране маса конвертирате
String=Низ String=Низ
# TextLong=Long text TextLong=Long text
# Int=Integer Int=Integer
# Float=Float Float=Float
# DateAndTime=Date and hour DateAndTime=Date and hour
# Unique=Unique Unique=Unique
# Boolean=Boolean (Checkbox) Boolean=Boolean (Checkbox)
ExtrafieldPhone = Телефон ExtrafieldPhone = Телефон
ExtrafieldPrice = Цена ExtrafieldPrice = Цена
ExtrafieldMail = Имейл ExtrafieldMail = Имейл
# ExtrafieldSelect = Select list ExtrafieldSelect = Select list
# ExtrafieldSelectList = Select from table ExtrafieldSelectList = Select from table
# ExtrafieldSeparator=Separator ExtrafieldSeparator=Separator
# ExtrafieldCheckBox=Checkbox ExtrafieldCheckBox=Checkbox
ExtrafieldRadio=Радио бутон ExtrafieldRadio=Радио бутон
# ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
# ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>... ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
# ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>... ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
# ExtrafieldParamHelpsellist=Parameters list have come from table<br><br> for exemple : <br>c_typent:libelle:id::filter<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter <br> filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield) ExtrafieldParamHelpsellist=Parameters list have come from table<br><br> for exemple : <br>c_typent:libelle:id::filter<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter <br> filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)
# LibraryToBuildPDF=Library used to build PDF LibraryToBuildPDF=Library used to build PDF
# WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b> WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
# LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax) LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
# SMS=SMS SMS=SMS
# LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user <strong>%s</strong> LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user <strong>%s</strong>
# RefreshPhoneLink=Refresh link RefreshPhoneLink=Refresh link
# LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test) LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
# KeepEmptyToUseDefault=Keep empty to use default value KeepEmptyToUseDefault=Keep empty to use default value
# DefaultLink=Default link DefaultLink=Default link
# ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
ExternalModule=Външен модул - инсталиран в директория %s ExternalModule=Външен модул - инсталиран в директория %s
# BarcodeInitForThirdparties=Mass barcode init for thirdparties BarcodeInitForThirdparties=Mass barcode init for thirdparties
# BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
# CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> records on <strong>%s</strong> %s without barcode defined. CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> records on <strong>%s</strong> %s without barcode defined.
# InitEmptyBarCode=Init value for next %s empty records InitEmptyBarCode=Init value for next %s empty records
# EraseAllCurrentBarCode=Erase all current barcode values EraseAllCurrentBarCode=Erase all current barcode values
# ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values ? ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values ?
# AllBarcodeReset=All barcode values have been removed AllBarcodeReset=All barcode values have been removed
# NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
# NoRecordWithoutBarcodeDefined=No record with no barcode value defined. NoRecordWithoutBarcodeDefined=No record with no barcode value defined.
# Modules # Modules
Module0Name=Потребители и групи Module0Name=Потребители и групи
@ -465,8 +464,10 @@ Module400Name=Проекти
Module400Desc=Управление на проекти вътре в други модули Module400Desc=Управление на проекти вътре в други модули
Module410Name=Webcalendar Module410Name=Webcalendar
Module410Desc=Webcalendar интеграция Module410Desc=Webcalendar интеграция
Module500Name=Данъци, социални осигуровки и дивиденти Module500Name=Special expenses (tax, social contributions, dividends)
Module500Desc=Данъци и управление на осигурителната вноска Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
Module510Name=Salaries
Module510Desc=Management of empoyees salaries and payments
Module600Name=Известия Module600Name=Известия
Module600Desc=Изпращане известия по имейл за някои бизнес събития в Dolibarr към трети лица Module600Desc=Изпращане известия по имейл за някои бизнес събития в Dolibarr към трети лица
Module700Name=Дарения Module700Name=Дарения
@ -483,8 +484,8 @@ Module1780Name=Категории
Module1780Desc=Управление на категории (продукти, доставчици и клиенти) Module1780Desc=Управление на категории (продукти, доставчици и клиенти)
Module2000Name=WYSIWYG редактор Module2000Name=WYSIWYG редактор
Module2000Desc=Оставя се да редактирате някакъв текст, чрез използване на усъвършенствана редактор Module2000Desc=Оставя се да редактирате някакъв текст, чрез използване на усъвършенствана редактор
# Module2300Name=Cron Module2300Name=Cron
# Module2300Desc=Scheduled task management Module2300Desc=Scheduled task management
Module2400Name=Дневен ред Module2400Name=Дневен ред
Module2400Desc=Събития/задачи и управление на дневен ред Module2400Desc=Събития/задачи и управление на дневен ред
Module2500Name=Електронно Управление на Съдържанието Module2500Name=Електронно Управление на Съдържанието
@ -496,12 +497,12 @@ Module2700Desc= Използвайте онлайн Gravatar услуга (www.g
Module2800Desc=FTP Клиент Module2800Desc=FTP Клиент
Module2900Name= GeoIPMaxmind Module2900Name= GeoIPMaxmind
Module2900Desc= GeoIP MaxMind реализации възможности Module2900Desc= GeoIP MaxMind реализации възможности
# Module3100Name= Skype Module3100Name= Skype
# Module3100Desc= Add a Skype button into card of adherents / third parties / contacts Module3100Desc= Add a Skype button into card of adherents / third parties / contacts
Module5000Name=Няколко фирми Module5000Name=Няколко фирми
Module5000Desc=Позволява ви да управлявате няколко фирми Module5000Desc=Позволява ви да управлявате няколко фирми
# Module6000Name=Workflow Module6000Name=Workflow
# Module6000Desc=Workflow management Module6000Desc=Workflow management
Module20000Name=Отпуски Module20000Name=Отпуски
Module20000Desc=Управление на отпуските на служителите Module20000Desc=Управление на отпуските на служителите
Module50000Name=Paybox Module50000Name=Paybox
@ -510,16 +511,16 @@ Module50100Name=Точка на продажбите
Module50100Desc=Точка на продажбите модул Module50100Desc=Точка на продажбите модул
Module50200Name= Paypal Module50200Name= Paypal
Module50200Desc= Модул предлага онлайн страница на плащане с кредитна карта с Paypal Module50200Desc= Модул предлага онлайн страница на плащане с кредитна карта с Paypal
# Module54000Name=PrintIPP Module54000Name=PrintIPP
# Module54000Desc=Print via Cups IPP Printer. Module54000Desc=Print via Cups IPP Printer.
# Module55000Name=Open Poll Module55000Name=Open Poll
# Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...) Module55000Desc=Module to make online polls (like Doodle, Studs, Rdvz, ...)
Module59000Name=Полета Module59000Name=Полета
Module59000Desc=Модул за управление на маржовете Module59000Desc=Модул за управление на маржовете
Module60000Name=Комисии Module60000Name=Комисии
Module60000Desc=Модул за управление на комисии Module60000Desc=Модул за управление на комисии
# Module150010Name=Batch number, eat-by date and sell-by date Module150010Name=Batch number, eat-by date and sell-by date
# Module150010Desc=batch number, eat-by date and sell-by date management for product Module150010Desc=batch number, eat-by date and sell-by date management for product
Permission11=Клиентите фактури Permission11=Клиентите фактури
Permission12=Създаване / промяна на фактури на клиентите Permission12=Създаване / промяна на фактури на клиентите
Permission13=Unvalidate клиентите фактури Permission13=Unvalidate клиентите фактури
@ -571,7 +572,7 @@ Permission98=Изпращането фактура линии счетоводн
Permission101=Прочети sendings Permission101=Прочети sendings
Permission102=Създаване / промяна sendings Permission102=Създаване / промяна sendings
Permission104=Проверка на sendings Permission104=Проверка на sendings
# Permission106=Export sendings Permission106=Export sendings
Permission109=Изтриване sendings Permission109=Изтриване sendings
Permission111=Финансови сметки Permission111=Финансови сметки
Permission112=Създаване / редакция / изтриване и сравни сделки Permission112=Създаване / редакция / изтриване и сравни сделки
@ -712,10 +713,10 @@ Permission1237=EXPORT доставчик поръчки и техните дет
Permission1251=Пусни масов внос на външни данни в базата данни (данни товара) Permission1251=Пусни масов внос на външни данни в базата данни (данни товара)
Permission1321=Износ на клиентите фактури, атрибути и плащания Permission1321=Износ на клиентите фактури, атрибути и плащания
Permission1421=Износ на клиентски поръчки и атрибути Permission1421=Износ на клиентски поръчки и атрибути
# Permission23001 = Read Scheduled task Permission23001 = Read Scheduled task
# Permission23002 = Create/update Scheduled task Permission23002 = Create/update Scheduled task
# Permission23003 = Delete Scheduled task Permission23003 = Delete Scheduled task
# Permission23004 = Execute Scheduled task Permission23004 = Execute Scheduled task
Permission2401=Прочетете действия (събития или задачи), свързани с неговата сметка Permission2401=Прочетете действия (събития или задачи), свързани с неговата сметка
Permission2402=Създаване/промяна действия (събития или задачи), свързани с неговата сметка Permission2402=Създаване/промяна действия (събития или задачи), свързани с неговата сметка
Permission2403=Изтрий действия (събития или задачи), свързани с неговата сметка Permission2403=Изтрий действия (събития или задачи), свързани с неговата сметка
@ -731,39 +732,39 @@ Permission2802=Използвайте FTP клиент в режим на зап
Permission50101=Използвайте точка на продажбите Permission50101=Използвайте точка на продажбите
Permission50201=Прочети сделки Permission50201=Прочети сделки
Permission50202=Сделки на внос Permission50202=Сделки на внос
# Permission54001=Print Permission54001=Print
# Permission55001=Read polls Permission55001=Read polls
# Permission55002=Create/modify polls Permission55002=Create/modify polls
# Permission59001=Read commercial margins Permission59001=Read commercial margins
# Permission59002=Define commercial margins Permission59002=Define commercial margins
# DictionaryCompanyType=Thirdparties type DictionaryCompanyType=Thirdparties type
# DictionaryCompanyJuridicalType=Juridical kinds of thirdparties DictionaryCompanyJuridicalType=Juridical kinds of thirdparties
# DictionaryProspectLevel=Prospect potential level DictionaryProspectLevel=Prospect potential level
# DictionaryCanton=State/Cantons DictionaryCanton=State/Cantons
# DictionaryRegion=Regions DictionaryRegion=Regions
# DictionaryCountry=Countries DictionaryCountry=Countries
# DictionaryCurrency=Currencies DictionaryCurrency=Currencies
# DictionaryCivility=Civility title DictionaryCivility=Civility title
# DictionaryActions=Type of agenda events DictionaryActions=Type of agenda events
# DictionarySocialContributions=Social contributions types DictionarySocialContributions=Social contributions types
# DictionaryVAT=VAT Rates or Sales Tax Rates DictionaryVAT=VAT Rates or Sales Tax Rates
# DictionaryRevenueStamp=Amount of revenue stamps DictionaryRevenueStamp=Amount of revenue stamps
# DictionaryPaymentConditions=Payment terms DictionaryPaymentConditions=Payment terms
# DictionaryPaymentModes=Payment modes DictionaryPaymentModes=Payment modes
# DictionaryTypeContact=Contact/Address types DictionaryTypeContact=Contact/Address types
# DictionaryEcotaxe=Ecotax (WEEE) DictionaryEcotaxe=Ecotax (WEEE)
# DictionaryPaperFormat=Paper formats DictionaryPaperFormat=Paper formats
# DictionaryFees=Type of fees DictionaryFees=Type of fees
# DictionarySendingMethods=Shipping methods DictionarySendingMethods=Shipping methods
# DictionaryStaff=Staff DictionaryStaff=Staff
# DictionaryAvailability=Delivery delay DictionaryAvailability=Delivery delay
# DictionaryOrderMethods=Ordering methods DictionaryOrderMethods=Ordering methods
# DictionarySource=Origin of proposals/orders DictionarySource=Origin of proposals/orders
# DictionaryAccountancyplan=Chart of accounts DictionaryAccountancyplan=Chart of accounts
# DictionaryAccountancysystem=Models for chart of accounts DictionaryAccountancysystem=Models for chart of accounts
SetupSaved=Setup спаси SetupSaved=Setup спаси
BackToModuleList=Обратно към списъка с модули BackToModuleList=Обратно към списъка с модули
# BackToDictionaryList=Back to dictionaries list BackToDictionaryList=Back to dictionaries list
VATReceivedOnly=Специална цена не се начислява VATReceivedOnly=Специална цена не се начислява
VATManagement=Управление на ДДС VATManagement=Управление на ДДС
VATIsUsedDesc=Ставка на ДДС по подразбиране при създаването на перспективите, фактури, поръчки и т.н. следват активна стандартното правило: <br> Ако продавачът не се облагат с ДДС, а след това ДДС по подразбиране = 0. Край на правило. <br> Ако (продажба страната = закупуване на страната), а след това на ДДС по подразбиране = ДДС на продукта в продажба страната. Край на правило. <br> Ако продавача и купувача в Европейската общност и стоки са транспортни продукти (кола, кораб, самолет), по подразбиране ДДС = 0 (ДДС следва да бъде платена от купувача, в customoffice на страната си, а не на продавача). Край на правило. <br> Ако продавача и купувача в Европейската общност и купувача не е компания, тогава ДДС по подразбиране = ДДС на продаваните продукти. Край на правило. <br> Ако продавача и купувача в Европейската общност и купувача е фирма, тогава ДДС по подразбиране = 0. Край на правило. <br> Иначе предложената по подразбиране на ДДС = 0. Край на правило. VATIsUsedDesc=Ставка на ДДС по подразбиране при създаването на перспективите, фактури, поръчки и т.н. следват активна стандартното правило: <br> Ако продавачът не се облагат с ДДС, а след това ДДС по подразбиране = 0. Край на правило. <br> Ако (продажба страната = закупуване на страната), а след това на ДДС по подразбиране = ДДС на продукта в продажба страната. Край на правило. <br> Ако продавача и купувача в Европейската общност и стоки са транспортни продукти (кола, кораб, самолет), по подразбиране ДДС = 0 (ДДС следва да бъде платена от купувача, в customoffice на страната си, а не на продавача). Край на правило. <br> Ако продавача и купувача в Европейската общност и купувача не е компания, тогава ДДС по подразбиране = ДДС на продаваните продукти. Край на правило. <br> Ако продавача и купувача в Европейската общност и купувача е фирма, тогава ДДС по подразбиране = 0. Край на правило. <br> Иначе предложената по подразбиране на ДДС = 0. Край на правило.
@ -771,18 +772,18 @@ VATIsNotUsedDesc=По подразбиране предложената ДДС
VATIsUsedExampleFR=Във Франция, това означава, фирми или организации, с реална фискална система (опростен реални или нормални реално). Система, в която ДДС е обявен. VATIsUsedExampleFR=Във Франция, това означава, фирми или организации, с реална фискална система (опростен реални или нормални реално). Система, в която ДДС е обявен.
VATIsNotUsedExampleFR=Във Франция, това означава, асоциации, които са извън декларирания ДДС или фирми, организации или свободните професии, които са избрали фискалната система на микропредприятие (с ДДС франчайз) и се изплаща франчайз ДДС без ДДС декларация. Този избор ще покаже позоваване на &quot;неприлаганите ДДС - арт-293B CGI&quot; във фактурите. VATIsNotUsedExampleFR=Във Франция, това означава, асоциации, които са извън декларирания ДДС или фирми, организации или свободните професии, които са избрали фискалната система на микропредприятие (с ДДС франчайз) и се изплаща франчайз ДДС без ДДС декларация. Този избор ще покаже позоваване на &quot;неприлаганите ДДС - арт-293B CGI&quot; във фактурите.
##### Local Taxes ##### ##### Local Taxes #####
# LocalTax1IsUsed=Use second tax LocalTax1IsUsed=Use second tax
# LocalTax1IsNotUsed=Do not use second tax LocalTax1IsNotUsed=Do not use second tax
# LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
# LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
# LocalTax1Management=Second type of tax LocalTax1Management=Second type of tax
LocalTax1IsUsedExample= LocalTax1IsUsedExample=
LocalTax1IsNotUsedExample= LocalTax1IsNotUsedExample=
# LocalTax2IsUsed=Use third tax LocalTax2IsUsed=Use third tax
# LocalTax2IsNotUsed=Do not use third tax LocalTax2IsNotUsed=Do not use third tax
# LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
# LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
# LocalTax2Management=Third type of tax LocalTax2Management=Third type of tax
LocalTax2IsUsedExample= LocalTax2IsUsedExample=
LocalTax2IsNotUsedExample= LocalTax2IsNotUsedExample=
LocalTax1ManagementES= RE Управление LocalTax1ManagementES= RE Управление
@ -819,7 +820,7 @@ PhpConf=Conf
PhpWebLink=Web-Php връзка PhpWebLink=Web-Php връзка
Pear=Круша Pear=Круша
PearPackages=Крушови пакети PearPackages=Крушови пакети
# Browser=Browser Browser=Browser
Server=Сървър Server=Сървър
Database=База данни Database=База данни
DatabaseServer=Хост базата данни DatabaseServer=Хост базата данни
@ -846,7 +847,7 @@ MenuCompanySetup=Фирма/Организация
MenuNewUser=Нов потребител MenuNewUser=Нов потребител
MenuTopManager=Горното меню мениджър MenuTopManager=Горното меню мениджър
MenuLeftManager=Ляво меню мениджър MenuLeftManager=Ляво меню мениджър
# MenuManager=Menu manager MenuManager=Menu manager
MenuSmartphoneManager=Smartphone Menu Manager MenuSmartphoneManager=Smartphone Menu Manager
DefaultMenuTopManager=Горното меню мениджър DefaultMenuTopManager=Горното меню мениджър
DefaultMenuLeftManager=Ляво меню мениджър DefaultMenuLeftManager=Ляво меню мениджър
@ -871,7 +872,7 @@ CompanyZip=П. код
CompanyTown=Град CompanyTown=Град
CompanyCountry=Държава CompanyCountry=Държава
CompanyCurrency=Основната валута CompanyCurrency=Основната валута
# Logo=Logo Logo=Logo
DoNotShow=Не показвай DoNotShow=Не показвай
DoNotSuggestPaymentMode=Да не предполагат DoNotSuggestPaymentMode=Да не предполагат
NoActiveBankAccountDefined=Не е активна банкова сметка на определени NoActiveBankAccountDefined=Не е активна банкова сметка на определени
@ -910,7 +911,7 @@ InfoOS=Инфо за OS
InfoWebServer=Инфо за уеб сървъра InfoWebServer=Инфо за уеб сървъра
InfoDatabase=Инфо за базата данни InfoDatabase=Инфо за базата данни
InfoPHP=Инфо за PHP InfoPHP=Инфо за PHP
# InfoPerf=Infos performances InfoPerf=Infos performances
ListEvents=Одит събития ListEvents=Одит събития
ListOfSecurityEvents=Списък на събитията Dolibarr сигурност ListOfSecurityEvents=Списък на събитията Dolibarr сигурност
SecurityEventsPurged=Събития по сигурността прочиства SecurityEventsPurged=Събития по сигурността прочиства
@ -931,7 +932,7 @@ TriggerDisabledAsModuleDisabled=Тригерите в този файл са з
TriggerAlwaysActive=Тригерите в този файл са винаги активни,, каквото са активирани модули Dolibarr. TriggerAlwaysActive=Тригерите в този файл са винаги активни,, каквото са активирани модули Dolibarr.
TriggerActiveAsModuleActive=Тригерите в този файл са активни, като модул <b>%s</b> е активирана. TriggerActiveAsModuleActive=Тригерите в този файл са активни, като модул <b>%s</b> е активирана.
GeneratedPasswordDesc=Определете тук правилото, което искате да използвате, за да генерира нова парола, ако поискате да има автоматично генерирана парола GeneratedPasswordDesc=Определете тук правилото, което искате да използвате, за да генерира нова парола, ако поискате да има автоматично генерирана парола
# DictionaryDesc=Define here all reference datas. You can complete predefined value with yours. DictionaryDesc=Define here all reference datas. You can complete predefined value with yours.
ConstDesc=Тази страница ви позволява да редактирате всички останали параметри не са налични в предишните страници. Те са запазени параметрите за напреднали разработчиците или за troubleshouting. ConstDesc=Тази страница ви позволява да редактирате всички останали параметри не са налични в предишните страници. Те са запазени параметрите за напреднали разработчиците или за troubleshouting.
OnceSetupFinishedCreateUsers=Внимание, вие сте на потребителя администратор Dolibarr. Администратор потребители не се използват да настроите Dolibarr. За обичайна употреба на Dolibarr, се препоръчва да използвате не потребителски администратора, създаден от Потребители и групи менюто. OnceSetupFinishedCreateUsers=Внимание, вие сте на потребителя администратор Dolibarr. Администратор потребители не се използват да настроите Dolibarr. За обичайна употреба на Dolibarr, се препоръчва да използвате не потребителски администратора, създаден от Потребители и групи менюто.
MiscellaneousDesc=Определете тук всички други параметри, свързани със сигурността. MiscellaneousDesc=Определете тук всички други параметри, свързани със сигурността.
@ -967,9 +968,9 @@ YourPHPDoesNotHaveSSLSupport=SSL функции не са налични във
DownloadMoreSkins=Изтегляне на повече теми DownloadMoreSkins=Изтегляне на повече теми
SimpleNumRefModelDesc=Върнете референтен номер с формат %syymm-NNNN, където YY е годината, mm е месец и NNNN е последователност без дупка и не нулиране SimpleNumRefModelDesc=Върнете референтен номер с формат %syymm-NNNN, където YY е годината, mm е месец и NNNN е последователност без дупка и не нулиране
ShowProfIdInAddress=Покажи professionnal номер с адреси на документи ShowProfIdInAddress=Покажи professionnal номер с адреси на документи
# ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
TranslationUncomplete=Частичен превод TranslationUncomplete=Частичен превод
# 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="http://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
MenuUseLayout=Направете вертикално меню hidable (опция JavaScript не трябва да бъде забранена) MenuUseLayout=Направете вертикално меню hidable (опция JavaScript не трябва да бъде забранена)
MAIN_DISABLE_METEO=Изключване метео изглед MAIN_DISABLE_METEO=Изключване метео изглед
TestLoginToAPI=Тествайте влезете в API TestLoginToAPI=Тествайте влезете в API
@ -982,20 +983,20 @@ MAIN_PROXY_USER=Влез за да използвате прокси сървъ
MAIN_PROXY_PASS=Парола, за да използвате прокси сървър MAIN_PROXY_PASS=Парола, за да използвате прокси сървър
DefineHereComplementaryAttributes=Определете тук всички atributes, не е налична по подразбиране, и че искате да се поддържа за %s. DefineHereComplementaryAttributes=Определете тук всички atributes, не е налична по подразбиране, и че искате да се поддържа за %s.
ExtraFields=Допълнителни атрибути ExtraFields=Допълнителни атрибути
# ExtraFieldsLines=Complementary attributes (lines) ExtraFieldsLines=Complementary attributes (lines)
# ExtraFieldsThirdParties=Complementary attributes (thirdparty) ExtraFieldsThirdParties=Complementary attributes (thirdparty)
# ExtraFieldsContacts=Complementary attributes (contact/address) ExtraFieldsContacts=Complementary attributes (contact/address)
# ExtraFieldsMember=Complementary attributes (member) ExtraFieldsMember=Complementary attributes (member)
# ExtraFieldsMemberType=Complementary attributes (member type) ExtraFieldsMemberType=Complementary attributes (member type)
# ExtraFieldsCustomerOrders=Complementary attributes (orders) ExtraFieldsCustomerOrders=Complementary attributes (orders)
# ExtraFieldsCustomerInvoices=Complementary attributes (invoices) ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
# ExtraFieldsSupplierOrders=Complementary attributes (orders) ExtraFieldsSupplierOrders=Complementary attributes (orders)
# ExtraFieldsSupplierInvoices=Complementary attributes (invoices) ExtraFieldsSupplierInvoices=Complementary attributes (invoices)
# ExtraFieldsProject=Complementary attributes (projects) ExtraFieldsProject=Complementary attributes (projects)
# ExtraFieldsProjectTask=Complementary attributes (tasks) ExtraFieldsProjectTask=Complementary attributes (tasks)
ExtraFieldHasWrongValue=Attribut %s има грешна стойност. ExtraFieldHasWrongValue=Attribut %s има грешна стойност.
AlphaNumOnlyCharsAndNoSpace=само героите alphanumericals без пространство AlphaNumOnlyCharsAndNoSpace=само героите alphanumericals без пространство
# AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
SendingMailSetup=Настройка на изпращане по имейл SendingMailSetup=Настройка на изпращане по имейл
SendmailOptionNotComplete=Внимание, на някои системи Linux, за да изпратите имейл от електронната си поща, Sendmail изпълнение настройка трябва conatins опция-ба (параметър mail.force_extra_parameters във вашия php.ini файл). Ако някои получатели никога не получават имейли, опитайте се да редактирате тази PHP параметър с mail.force_extra_parameters = ба). SendmailOptionNotComplete=Внимание, на някои системи Linux, за да изпратите имейл от електронната си поща, Sendmail изпълнение настройка трябва conatins опция-ба (параметър mail.force_extra_parameters във вашия php.ini файл). Ако някои получатели никога не получават имейли, опитайте се да редактирате тази PHP параметър с mail.force_extra_parameters = ба).
PathToDocuments=Път до документи PathToDocuments=Път до документи
@ -1005,27 +1006,27 @@ TranslationSetup=Конфигурация на превода
TranslationDesc=Езика на интерфейса може да бъде променен:<br> * Глобално от менюто <strong>Начало - Настройки - Екран</strong> <br> * Само за потребителя от таба <strong>Изглед</strong> в картата на потребителя (кликнете върху потребителското име в горната част на екрана). TranslationDesc=Езика на интерфейса може да бъде променен:<br> * Глобално от менюто <strong>Начало - Настройки - Екран</strong> <br> * Само за потребителя от таба <strong>Изглед</strong> в картата на потребителя (кликнете върху потребителското име в горната част на екрана).
TotalNumberOfActivatedModules=Общия брой на активираните модули е: <b>%s</b> TotalNumberOfActivatedModules=Общия брой на активираните модули е: <b>%s</b>
YouMustEnableOneModule=Трябва да даде възможност на най-малко 1 модул YouMustEnableOneModule=Трябва да даде възможност на най-малко 1 модул
# ClassNotFoundIntoPathWarning=Class %s not found into PHP path ClassNotFoundIntoPathWarning=Class %s not found into PHP path
# YesInSummer=Yes in summer YesInSummer=Yes in summer
OnlyFollowingModulesAreOpenedToExternalUsers=Имайте впредвид, че само следните модули са отворени за външни потребители (каквито и да са правата на тези потребители): OnlyFollowingModulesAreOpenedToExternalUsers=Имайте впредвид, че само следните модули са отворени за външни потребители (каквито и да са правата на тези потребители):
# SuhosinSessionEncrypt=Session storage encrypted by Suhosin SuhosinSessionEncrypt=Session storage encrypted by Suhosin
# ConditionIsCurrently=Condition is currently %s ConditionIsCurrently=Condition is currently %s
# TestNotPossibleWithCurrentBrowsers=Automatic detection not possible TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
# YouUseBestDriver=You use driver %s that is best driver available currently. YouUseBestDriver=You use driver %s that is best driver available currently.
# YouDoNotUseBestDriver=You use drive %s but driver %s is recommanded. YouDoNotUseBestDriver=You use drive %s but driver %s is recommanded.
# NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
# SearchOptim=Search optimization SearchOptim=Search optimization
# YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
# BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
# BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
# XDebugInstalled=XDebug est chargé. XDebugInstalled=XDebug est chargé.
# XCacheInstalled=XCache is loaded. XCacheInstalled=XCache is loaded.
# AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
# FieldEdition=Edition of field %s FieldEdition=Edition of field %s
# FixTZ=TimeZone fix FixTZ=TimeZone fix
# FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
# GetBarCode=Get barcode GetBarCode=Get barcode
# EmptyNumRefModelDesc=The code is free. This code can be modified at any time. EmptyNumRefModelDesc=The code is free. This code can be modified at any time.
##### Module password generation ##### Module password generation
PasswordGenerationStandard=Върнете парола, генерирана в съответствие с вътрешен алгоритъм Dolibarr: 8 символа, съдържащи общи цифри и символи с малки. PasswordGenerationStandard=Върнете парола, генерирана в съответствие с вътрешен алгоритъм Dolibarr: 8 символа, съдържащи общи цифри и символи с малки.
PasswordGenerationNone=Не предлагаме някакви генерирана парола. Паролата трябва да въведете ръчно. PasswordGenerationNone=Не предлагаме някакви генерирана парола. Паролата трябва да въведете ръчно.
@ -1048,12 +1049,12 @@ ModuleCompanyCodeDigitaria=Счетоводството код зависи от
UseNotifications=Използвайте уведомления UseNotifications=Използвайте уведомления
NotificationsDesc=Функцията за уведомления по имейл позволява тихо изпращане на автоматичен мейл, за някои събития в Dolibarr, на трети лица (клиенти и доставчици), които са конфигурирани. Избор на активно уведомяване и цели контакти е направен на една трета страна в момента. NotificationsDesc=Функцията за уведомления по имейл позволява тихо изпращане на автоматичен мейл, за някои събития в Dolibarr, на трети лица (клиенти и доставчици), които са конфигурирани. Избор на активно уведомяване и цели контакти е направен на една трета страна в момента.
ModelModules=Документи шаблони ModelModules=Документи шаблони
# DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
WatermarkOnDraft=Воден знак върху проект на документ WatermarkOnDraft=Воден знак върху проект на документ
CompanyIdProfChecker=Професионална Id уникален CompanyIdProfChecker=Професионална Id уникален
MustBeUnique=Трябва да е уникален? MustBeUnique=Трябва да е уникален?
# MustBeMandatory=Mandatory to create third parties ? MustBeMandatory=Mandatory to create third parties ?
# MustBeInvoiceMandatory=Mandatory to validate invoices ? MustBeInvoiceMandatory=Mandatory to validate invoices ?
Miscellaneous=Разни Miscellaneous=Разни
##### Webcal setup ##### ##### Webcal setup #####
WebCalSetup=Настройка webcalendar връзка WebCalSetup=Настройка webcalendar връзка
@ -1095,7 +1096,7 @@ EnableEditDeleteValidInvoice=Разрешаване на възможностт
SuggestPaymentByRIBOnAccount=Предложи плащане от оттеглят по сметка SuggestPaymentByRIBOnAccount=Предложи плащане от оттеглят по сметка
SuggestPaymentByChequeToAddress=Предложи плащане с чек до SuggestPaymentByChequeToAddress=Предложи плащане с чек до
FreeLegalTextOnInvoices=Свободен текст на фактури FreeLegalTextOnInvoices=Свободен текст на фактури
# WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty)
##### Proposals ##### ##### Proposals #####
PropalSetup=Модул за настройка на търговски предложения PropalSetup=Модул за настройка на търговски предложения
CreateForm=Създаване на формуляри CreateForm=Създаване на формуляри
@ -1108,7 +1109,7 @@ AddShippingDateAbility=Добавяне на способността дата
AddDeliveryAddressAbility=Добавяне на способността дата на доставка AddDeliveryAddressAbility=Добавяне на способността дата на доставка
UseOptionLineIfNoQuantity=Линия на продукт / услуга с нулева сума се разглежда като вариант UseOptionLineIfNoQuantity=Линия на продукт / услуга с нулева сума се разглежда като вариант
FreeLegalTextOnProposal=Свободен текст на търговски предложения FreeLegalTextOnProposal=Свободен текст на търговски предложения
# WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty)
##### Orders ##### ##### Orders #####
OrdersSetup=Настройки за управление на поръчки OrdersSetup=Настройки за управление на поръчки
OrdersNumberingModules=Поръчки номериране модули OrdersNumberingModules=Поръчки номериране модули
@ -1116,7 +1117,7 @@ OrdersModelModule=Поръчка документи модели
HideTreadedOrders=Скриване на третираните или отказани поръчки в списъка HideTreadedOrders=Скриване на третираните или отказани поръчки в списъка
ValidOrderAfterPropalClosed=Да се ​​потвърди ред след предложението близо, това прави възможно да не се увеличат с временния ред ValidOrderAfterPropalClosed=Да се ​​потвърди ред след предложението близо, това прави възможно да не се увеличат с временния ред
FreeLegalTextOnOrders=Свободен текст на поръчки FreeLegalTextOnOrders=Свободен текст на поръчки
# WatermarkOnDraftOrders=Watermark on draft orders (none if empty) WatermarkOnDraftOrders=Watermark on draft orders (none if empty)
##### Clicktodial ##### ##### Clicktodial #####
ClickToDialSetup=Кликнете, за да наберете настройка модул ClickToDialSetup=Кликнете, за да наберете настройка модул
ClickToDialUrlDesc=Адреса нарича, когато се извършва едно кликване на телефона пиктограма. URL, можете да използвате маркери <br> <b>__PHONETO__,</b> Които ще бъдат заменени с телефонния номер на лицето, да се обадите <br> <b>__PHONEFROM__,</b> Че ще бъде заменен с телефонния номер на повикващата лице (твое) <br> <b>__LOGIN__,</b> Които ще бъдат заменени с clicktodial вход (определено на вашето потребителско карта) <br> <b>__PASS__,</b> Които ще бъдат заменени с clicktodial вашата парола (определено на вашето потребителско карта). ClickToDialUrlDesc=Адреса нарича, когато се извършва едно кликване на телефона пиктограма. URL, можете да използвате маркери <br> <b>__PHONETO__,</b> Които ще бъдат заменени с телефонния номер на лицето, да се обадите <br> <b>__PHONEFROM__,</b> Че ще бъде заменен с телефонния номер на повикващата лице (твое) <br> <b>__LOGIN__,</b> Които ще бъдат заменени с clicktodial вход (определено на вашето потребителско карта) <br> <b>__PASS__,</b> Които ще бъдат заменени с clicktodial вашата парола (определено на вашето потребителско карта).
@ -1127,13 +1128,13 @@ InterventionsSetup=Интервенциите модул за настройка
FreeLegalTextOnInterventions=Свободен текст на интервенционни документи FreeLegalTextOnInterventions=Свободен текст на интервенционни документи
FicheinterNumberingModules=Модули за намеса номериране FicheinterNumberingModules=Модули за намеса номериране
TemplatePDFInterventions=Намеса карти документи модели TemplatePDFInterventions=Намеса карти документи модели
# WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty)
##### Contracts ##### ##### Contracts #####
ContractsSetup=Договори модул за настройка ContractsSetup=Договори модул за настройка
ContractsNumberingModules=Договори за номериране модули ContractsNumberingModules=Договори за номериране модули
# TemplatePDFContracts=Contracts documents models TemplatePDFContracts=Contracts documents models
# FreeLegalTextOnContracts=Free text on contracts FreeLegalTextOnContracts=Free text on contracts
# WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty)
##### Members ##### ##### Members #####
MembersSetup=Потребители модул за настройка MembersSetup=Потребители модул за настройка
MemberMainOptions=Основни параметри MemberMainOptions=Основни параметри
@ -1202,7 +1203,7 @@ LDAPTestSynchroContact=Тест за синхронизация на конта
LDAPTestSynchroUser=Синхронизация тест на потребителя LDAPTestSynchroUser=Синхронизация тест на потребителя
LDAPTestSynchroGroup=Синхронизация Test група LDAPTestSynchroGroup=Синхронизация Test група
LDAPTestSynchroMember=Член на синхронизация Test LDAPTestSynchroMember=Член на синхронизация Test
# LDAPTestSearch= Test a LDAP search LDAPTestSearch= Test a LDAP search
LDAPSynchroOK=Синхронизация тест успешно LDAPSynchroOK=Синхронизация тест успешно
LDAPSynchroKO=Неуспешно синхронизиране тест LDAPSynchroKO=Неуспешно синхронизиране тест
LDAPSynchroKOMayBePermissions=Неуспешно синхронизиране тест. Уверете се, че свързването със сървъра е конфигуриран правилно и позволява LDAP udpates LDAPSynchroKOMayBePermissions=Неуспешно синхронизиране тест. Уверете се, че свързването със сървъра е конфигуриран правилно и позволява LDAP udpates
@ -1266,7 +1267,7 @@ LDAPFieldSid=SID
LDAPFieldSidExample=Пример: objectsid LDAPFieldSidExample=Пример: objectsid
LDAPFieldEndLastSubscription=Дата на абонамент края LDAPFieldEndLastSubscription=Дата на абонамент края
LDAPFieldTitle=Мнение / Функция LDAPFieldTitle=Мнение / Функция
# LDAPFieldTitleExample=Example: title LDAPFieldTitleExample=Example: title
LDAPParametersAreStillHardCoded=LDAP параметри все още кодиран (в контакт клас) LDAPParametersAreStillHardCoded=LDAP параметри все още кодиран (в контакт клас)
LDAPSetupNotComplete=LDAP настройка не е пълна (отидете на други раздели) LDAPSetupNotComplete=LDAP настройка не е пълна (отидете на други раздели)
LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Не администратор или парола. LDAP достъп ще бъдат анонимни и в режим само за четене. LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Не администратор или парола. LDAP достъп ще бъдат анонимни и в режим само за четене.
@ -1276,22 +1277,22 @@ LDAPDescGroups=Тази страница ви позволява да дефин
LDAPDescMembers=Тази страница ви позволява да дефинирате LDAP атрибути име в LDAP дърво за всеки намерени данни на Dolibarr членове модул. LDAPDescMembers=Тази страница ви позволява да дефинирате LDAP атрибути име в LDAP дърво за всеки намерени данни на Dolibarr членове модул.
LDAPDescValues=Примерни стойности са предназначени за <b>OpenLDAP</b> със следните заредени схеми: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Ако използвате thoose ценности и OpenLDAP, променете LDAP <b>slapd.conf</b> конфигурационен файл, за да има всички thoose схеми натоварени. LDAPDescValues=Примерни стойности са предназначени за <b>OpenLDAP</b> със следните заредени схеми: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Ако използвате thoose ценности и OpenLDAP, променете LDAP <b>slapd.conf</b> конфигурационен файл, за да има всички thoose схеми натоварени.
ForANonAnonymousAccess=За заверено достъп (достъп за писане например) ForANonAnonymousAccess=За заверено достъп (достъп за писане например)
# PerfDolibarr=Performance setup/optimizing report PerfDolibarr=Performance setup/optimizing report
# YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
# NotInstalled=Not installed, so your server is not slow down by this. NotInstalled=Not installed, so your server is not slow down by this.
# ApplicativeCache=Applicative cache ApplicativeCache=Applicative cache
# MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server. MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
# OPCodeCache=OPCode cache OPCodeCache=OPCode cache
# NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
# HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
# FilesOfTypeCached=Files of type %s are cached by HTTP server FilesOfTypeCached=Files of type %s are cached by HTTP server
# FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
# FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
# FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
# CacheByServer=Cache by server CacheByServer=Cache by server
# CacheByClient=Cache by browser CacheByClient=Cache by browser
# CompressionOfResources=Compression of HTTP responses CompressionOfResources=Compression of HTTP responses
# TestNotPossibleWithCurrentBrowsers=Automatic detection not possible TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
##### Products ##### ##### Products #####
ProductSetup=Продукти модул за настройка ProductSetup=Продукти модул за настройка
ServiceSetup=Услуги модул за настройка ServiceSetup=Услуги модул за настройка
@ -1336,8 +1337,8 @@ BarcodeDescISBN=Баркод от тип ISBN
BarcodeDescC39=Баркод от типа С39 BarcodeDescC39=Баркод от типа С39
BarcodeDescC128=Баркод от тип C128 BarcodeDescC128=Баркод от тип C128
GenbarcodeLocation=Бар код поколение инструмент за командния ред (използва се от двигател с вътрешно за някои видове баркод) GenbarcodeLocation=Бар код поколение инструмент за командния ред (използва се от двигател с вътрешно за някои видове баркод)
# BarcodeInternalEngine=Internal engine BarcodeInternalEngine=Internal engine
# BarCodeNumberManager=Manager to auto define barcode numbers BarCodeNumberManager=Manager to auto define barcode numbers
##### Prelevements ##### ##### Prelevements #####
WithdrawalsSetup=Настройка Оттегляне модул WithdrawalsSetup=Настройка Оттегляне модул
##### ExternalRSS ##### ##### ExternalRSS #####
@ -1372,8 +1373,8 @@ FCKeditorForCompany=WYSIWIG създаване / редактиране на е
FCKeditorForProduct=WYSIWIG създаване / редактиране на продукти / услуги описание и бележка FCKeditorForProduct=WYSIWIG създаване / редактиране на продукти / услуги описание и бележка
FCKeditorForProductDetails=WYSIWIG създаване / редактиране на линии продукти подробности за всички предприятия (предложения, поръчки, фактури и др.) <font class="warning">Внимание: Използването на тази опция за този случай сериозно не се recommanded, тъй като това може да създаде проблеми със специални символи и оформление на страница при изграждането на PDF файлове.</font> FCKeditorForProductDetails=WYSIWIG създаване / редактиране на линии продукти подробности за всички предприятия (предложения, поръчки, фактури и др.) <font class="warning">Внимание: Използването на тази опция за този случай сериозно не се recommanded, тъй като това може да създаде проблеми със специални символи и оформление на страница при изграждането на PDF файлове.</font>
FCKeditorForMailing= WYSIWIG създаване / редактиране на писма FCKeditorForMailing= WYSIWIG създаване / редактиране на писма
# FCKeditorForUserSignature=WYSIWIG creation/edition of user signature FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
# FCKeditorForMail=WYSIWIG creation/edition for all mail (except Outils->eMailing) FCKeditorForMail=WYSIWIG creation/edition for all mail (except Outils->eMailing)
##### OSCommerce 1 ##### ##### OSCommerce 1 #####
OSCommerceErrorConnectOkButWrongDatabase=Връзка успял, но базата данни не изглежда да бъде една база данни на OSCommerce (Ключови %s не е намерен в таблицата %s). OSCommerceErrorConnectOkButWrongDatabase=Връзка успял, но базата данни не изглежда да бъде една база данни на OSCommerce (Ключови %s не е намерен в таблицата %s).
OSCommerceTestOk=Връзка към &quot;%s&quot; сървър на &quot;%s&quot; база данни с успешен потребителски %s. OSCommerceTestOk=Връзка към &quot;%s&quot; сървър на &quot;%s&quot; база данни с успешен потребителски %s.
@ -1431,13 +1432,13 @@ Sell=Продажба
InvoiceDateUsed=Дата на фактура използва InvoiceDateUsed=Дата на фактура използва
YourCompanyDoesNotUseVAT=Вашата фирма е настроена да не се използва ДДС (Начало - Настройки - Фирма/Организация), така че е без опции за настройка на ДДС. YourCompanyDoesNotUseVAT=Вашата фирма е настроена да не се използва ДДС (Начало - Настройки - Фирма/Организация), така че е без опции за настройка на ДДС.
AccountancyCode=Счетоводен код AccountancyCode=Счетоводен код
# AccountancyCodeSell=Sale account. code AccountancyCodeSell=Sale account. code
# AccountancyCodeBuy=Purchase account. code AccountancyCodeBuy=Purchase account. code
##### Agenda ##### ##### Agenda #####
AgendaSetup=Събития и натъкмяване на дневен ред модул AgendaSetup=Събития и натъкмяване на дневен ред модул
PasswordTogetVCalExport=, За да разреши износ връзка PasswordTogetVCalExport=, За да разреши износ връзка
PastDelayVCalExport=Не изнася случай по-стари от PastDelayVCalExport=Не изнася случай по-стари от
# AGENDA_USE_EVENT_TYPE=Use events types (managed into Configuration->Dictionary->llx_c_actioncomm) AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionnary -> Type of agenda events)
##### ClickToDial ##### ##### ClickToDial #####
ClickToDialDesc=Този модул позволява да добавите икона след телефонни номера. Кликнете върху тази икона ще призове сървър с определен URL адрес можете да зададете по-долу. Това може да се използва, за да се обадя на кол център система от Dolibarr, че да се обаждат на телефонен номер на SIP система, например. ClickToDialDesc=Този модул позволява да добавите икона след телефонни номера. Кликнете върху тази икона ще призове сървър с определен URL адрес можете да зададете по-долу. Това може да се използва, за да се обадя на кол център система от Dolibarr, че да се обаждат на телефонен номер на SIP система, например.
##### Point Of Sales (CashDesk) ##### ##### Point Of Sales (CashDesk) #####
@ -1471,10 +1472,10 @@ MultiCompanySetup=Multi-модул за настройка компания
SuppliersSetup=Настройка доставчик модул SuppliersSetup=Настройка доставчик модул
SuppliersCommandModel=Пълна шаблон на доставчика за (logo. ..) SuppliersCommandModel=Пълна шаблон на доставчика за (logo. ..)
SuppliersInvoiceModel=Пълна образец на фактура на доставчика (logo. ..) SuppliersInvoiceModel=Пълна образец на фактура на доставчика (logo. ..)
# SuppliersInvoiceNumberingModel=Supplier invoices numbering models SuppliersInvoiceNumberingModel=Supplier invoices numbering models
##### GeoIPMaxmind ##### ##### GeoIPMaxmind #####
GeoIPMaxmindSetup=GeoIP MaxMind модул за настройка GeoIPMaxmindSetup=GeoIP MaxMind модул за настройка
# PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat
NoteOnPathLocation=Имайте предвид, че ИП в страната файла с данни трябва да е в директория PHP ви да прочетете (Проверете PHP open_basedir настройка и разрешения файловата система). NoteOnPathLocation=Имайте предвид, че ИП в страната файла с данни трябва да е в директория PHP ви да прочетете (Проверете PHP open_basedir настройка и разрешения файловата система).
YouCanDownloadFreeDatFileTo=Можете да изтеглите <b>безплатна демо версия</b> на файла GeoIP MaxMind страната в %s. YouCanDownloadFreeDatFileTo=Можете да изтеглите <b>безплатна демо версия</b> на файла GeoIP MaxMind страната в %s.
YouCanDownloadAdvancedDatFileTo=Можете също да изтеглите <b>по-пълна версия, с актуализации</b> на файла GeoIP MaxMind страната в %s. YouCanDownloadAdvancedDatFileTo=Можете също да изтеглите <b>по-пълна версия, с актуализации</b> на файла GeoIP MaxMind страната в %s.
@ -1483,8 +1484,8 @@ TestGeoIPResult=Тест на преобразуване IP -> страната
ProjectsNumberingModules=Проекти номериране модул ProjectsNumberingModules=Проекти номериране модул
ProjectsSetup=Инсталационния проект модул ProjectsSetup=Инсталационния проект модул
ProjectsModelModule=Проект доклади документ модел ProjectsModelModule=Проект доклади документ модел
# TasksNumberingModules=Tasks numbering module TasksNumberingModules=Tasks numbering module
# TaskModelModule=Tasks reports document model TaskModelModule=Tasks reports document model
##### ECM (GED) ##### ##### ECM (GED) #####
# ECMSetup = GED Setup ECMSetup = GED Setup
# ECMAutoTree = Automatic tree folder and document ECMAutoTree = Automatic tree folder and document

View File

@ -37,12 +37,13 @@ AgendaAutoActionDesc= Определете тук събития, за коит
AgendaSetupOtherDesc= Тази страница предоставя възможности да се допусне износ на вашите събития Dolibarr в външен календар (Thunderbird, Google Calendar, ...) AgendaSetupOtherDesc= Тази страница предоставя възможности да се допусне износ на вашите събития Dolibarr в външен календар (Thunderbird, Google Calendar, ...)
AgendaExtSitesDesc=Тази страница позволява да се обяви външните източници на календари, за да видят своите събития в дневния ред Dolibarr. AgendaExtSitesDesc=Тази страница позволява да се обяви външните източници на календари, за да видят своите събития в дневния ред Dolibarr.
ActionsEvents= Събития, за които Dolibarr ще създаде действие в дневния ред автоматично ActionsEvents= Събития, за които Dolibarr ще създаде действие в дневния ред автоматично
# PropalValidatedInDolibarr= Proposal %s validated PropalValidatedInDolibarr= Proposal %s validated
InvoiceValidatedInDolibarr= Фактура %s валидирани InvoiceValidatedInDolibarr= Фактура %s валидирани
InvoiceBackToDraftInDolibarr=Фактура %s се върнете в състояние на чернова InvoiceBackToDraftInDolibarr=Фактура %s се върнете в състояние на чернова
# InvoiceDeleteDolibarr=Invoice %s deleted InvoiceDeleteDolibarr=Invoice %s deleted
OrderValidatedInDolibarr= Поръчка %s валидирани OrderValidatedInDolibarr= Поръчка %s валидирани
OrderApprovedInDolibarr=Поръчка %s одобрен OrderApprovedInDolibarr=Поръчка %s одобрен
OrderRefusedInDolibarr=Order %s refused
OrderBackToDraftInDolibarr=Поръчка %s се върне в състояние на чернова OrderBackToDraftInDolibarr=Поръчка %s се върне в състояние на чернова
OrderCanceledInDolibarr=Поръчка %s отменен OrderCanceledInDolibarr=Поръчка %s отменен
InterventionValidatedInDolibarr=Намеса %s валидирани InterventionValidatedInDolibarr=Намеса %s валидирани
@ -52,7 +53,7 @@ InvoiceSentByEMail=, Изпратени по електронната поща %
SupplierOrderSentByEMail=%s доставчик реда, изпратени по електронната поща SupplierOrderSentByEMail=%s доставчик реда, изпратени по електронната поща
SupplierInvoiceSentByEMail=, Изпратени по електронната поща %s доставчик фактура SupplierInvoiceSentByEMail=, Изпратени по електронната поща %s доставчик фактура
ShippingSentByEMail=Доставка %s изпращат по електронна поща ShippingSentByEMail=Доставка %s изпращат по електронна поща
# ShippingValidated= Shipping %s validated ShippingValidated= Shipping %s validated
InterventionSentByEMail=Намеса %s изпращат по електронна поща InterventionSentByEMail=Намеса %s изпращат по електронна поща
NewCompanyToDolibarr= Създадено от трета страна NewCompanyToDolibarr= Създадено от трета страна
DateActionPlannedStart= Планирана начална дата DateActionPlannedStart= Планирана начална дата
@ -69,7 +70,7 @@ AgendaUrlOptions5=<b>logind = %s</b> да се ограничи производ
AgendaShowBirthdayEvents=Показване на контактите, които имат рожден ден AgendaShowBirthdayEvents=Показване на контактите, които имат рожден ден
AgendaHideBirthdayEvents=Скриване на контактите, които имат рожден ден AgendaHideBirthdayEvents=Скриване на контактите, които имат рожден ден
Busy=Зает Busy=Зает
# ExportDataset_event1=List of agenda events ExportDataset_event1=List of agenda events
# External Sites ical # External Sites ical
ExportCal=Изнасяне на календар ExportCal=Изнасяне на календар

View File

@ -8,7 +8,6 @@ BillsCustomersUnpaid=Неплатен клиента фактури
BillsCustomersUnpaidForCompany=Неплатен клиента фактури за %s BillsCustomersUnpaidForCompany=Неплатен клиента фактури за %s
BillsSuppliersUnpaid=Неплатен доставчика фактури BillsSuppliersUnpaid=Неплатен доставчика фактури
BillsSuppliersUnpaidForCompany=Неплатен доставчика фактури за %s BillsSuppliersUnpaidForCompany=Неплатен доставчика фактури за %s
BillsUnpaid=Неплатен
BillsLate=Забавянето на плащанията BillsLate=Забавянето на плащанията
BillsStatistics=Клиента фактури статистика BillsStatistics=Клиента фактури статистика
BillsStatisticsSuppliers=Доставчик фактури статистика BillsStatisticsSuppliers=Доставчик фактури статистика
@ -24,13 +23,13 @@ InvoiceProFormaAsk=Проформа фактура
InvoiceProFormaDesc=<b>Проформа фактура</b> е образ на една истинска фактура, но не е счетоводна стойност. InvoiceProFormaDesc=<b>Проформа фактура</b> е образ на една истинска фактура, но не е счетоводна стойност.
InvoiceReplacement=Подмяна фактура InvoiceReplacement=Подмяна фактура
InvoiceReplacementAsk=Резервна фактура за фактура InvoiceReplacementAsk=Резервна фактура за фактура
InvoiceReplacementDesc=<b>Подмяна фактура</b> се използва, за да се отмени и замени напълно фактура без заплащане вече е получил. <br><br> Забележка: Само фактура без заплащане върху него може да бъде заменен. Ако не е затворен, той автоматично ще бъде затворен за &quot;изоставена&quot;. InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
InvoiceAvoir=Кредитно известие InvoiceAvoir=Кредитно известие
InvoiceAvoirAsk=Кредитно известие за коригиране на фактура InvoiceAvoirAsk=Кредитно известие за коригиране на фактура
InvoiceAvoirDesc=<b>Кредитно известие</b> е отрицателна фактура, използвани за решаване на факта, че фактурата е сумата, която се различава от сумата, наистина са платени (защото платил твърде много от грешка, или няма да се изплаща напълно, тъй като той се върна някои продукти, например). InvoiceAvoirDesc=<b>Кредитно известие</b> е отрицателна фактура, използвани за решаване на факта, че фактурата е сумата, която се различава от сумата, наистина са платени (защото платил твърде много от грешка, или няма да се изплаща напълно, тъй като той се върна някои продукти, например).
# invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
# invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake invoiceAvoirWithPaymentRestAmount=Create Credit Note with the amount of origin invoice payment's lake
# invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake invoiceAvoirLineWithPaymentRestAmount=Credit Note amount of invoice payment's lake
ReplaceInvoice=Сменете фактура %s ReplaceInvoice=Сменете фактура %s
ReplacementInvoice=Подмяна фактура ReplacementInvoice=Подмяна фактура
ReplacedByInvoice=Заменен с фактура %s ReplacedByInvoice=Заменен с фактура %s
@ -59,7 +58,7 @@ Payment=Плащане
PaymentBack=Плащане гърба PaymentBack=Плащане гърба
Payments=Плащания Payments=Плащания
PaymentsBack=Плащания назад PaymentsBack=Плащания назад
# PaidBack=Paid back PaidBack=Paid back
DatePayment=Дата на плащане DatePayment=Дата на плащане
DeletePayment=Изтриване на плащане DeletePayment=Изтриване на плащане
ConfirmDeletePayment=Сигурен ли сте, че искате да изтриете това плащане? ConfirmDeletePayment=Сигурен ли сте, че искате да изтриете това плащане?
@ -67,12 +66,12 @@ ConfirmConvertToReduc=Ли искате да конвертирате това
SupplierPayments=Доставчици плащания SupplierPayments=Доставчици плащания
ReceivedPayments=Получени плащания ReceivedPayments=Получени плащания
ReceivedCustomersPayments=Плащания, получени от клиенти ReceivedCustomersPayments=Плащания, получени от клиенти
# PayedSuppliersPayments=Payments payed to suppliers PayedSuppliersPayments=Payments payed to suppliers
ReceivedCustomersPaymentsToValid=Получени плащания на клиентите за валидация ReceivedCustomersPaymentsToValid=Получени плащания на клиентите за валидация
PaymentsReportsForYear=Плащания доклади за %s PaymentsReportsForYear=Плащания доклади за %s
PaymentsReports=Плащания доклади PaymentsReports=Плащания доклади
PaymentsAlreadyDone=Плащания направили PaymentsAlreadyDone=Плащания направили
# PaymentsBackAlreadyDone=Payments back already done PaymentsBackAlreadyDone=Payments back already done
PaymentRule=Плащане правило PaymentRule=Плащане правило
PaymentMode=Начин на плащане PaymentMode=Начин на плащане
PaymentConditions=Начин на плащане PaymentConditions=Начин на плащане
@ -81,14 +80,14 @@ PaymentAmount=Сума за плащане
ValidatePayment=Проверка на плащане ValidatePayment=Проверка на плащане
PaymentHigherThanReminderToPay=Плащането по-висока от напомняне за плащане PaymentHigherThanReminderToPay=Плащането по-висока от напомняне за плащане
HelpPaymentHigherThanReminderToPay=Внимание, сумата на плащането на една или повече сметки е по-висока, отколкото останалата част да плащат. <br> Редактиране на влизането си, в противен случай потвърдят и да се мисли за създаване на кредитно известие от превишението получени за всеки надвнесени фактури. HelpPaymentHigherThanReminderToPay=Внимание, сумата на плащането на една или повече сметки е по-висока, отколкото останалата част да плащат. <br> Редактиране на влизането си, в противен случай потвърдят и да се мисли за създаване на кредитно известие от превишението получени за всеки надвнесени фактури.
# HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm.
ClassifyPaid=Класифициране 'Платено' ClassifyPaid=Класифициране 'Платено'
ClassifyPaidPartially=Класифициране 'Платено частично' ClassifyPaidPartially=Класифициране 'Платено частично'
ClassifyCanceled=Класифициране 'Изоставено' ClassifyCanceled=Класифициране 'Изоставено'
ClassifyClosed=Класифициране 'Затворено' ClassifyClosed=Класифициране 'Затворено'
CreateBill=Създаване на фактура CreateBill=Създаване на фактура
AddBill=Добави фактура или кредитно известие AddBill=Добави фактура или кредитно известие
# AddToDraftInvoices=Add to draft invoice AddToDraftInvoices=Add to draft invoice
DeleteBill=Изтриване на фактура DeleteBill=Изтриване на фактура
SearchACustomerInvoice=Търсене за клиент фактура SearchACustomerInvoice=Търсене за клиент фактура
SearchASupplierInvoice=Търсене за доставчик фактура SearchASupplierInvoice=Търсене за доставчик фактура
@ -171,7 +170,7 @@ ConfirmClassifyPaidPartiallyReasonOtherDesc=Използвайте този из
ConfirmClassifyAbandonReasonOther=Друг ConfirmClassifyAbandonReasonOther=Друг
ConfirmClassifyAbandonReasonOtherDesc=Този избор ще бъде използван във всички останали случаи. За пример, защото имате намерение да се създаде замяна на фактура. ConfirmClassifyAbandonReasonOtherDesc=Този избор ще бъде използван във всички останали случаи. За пример, защото имате намерение да се създаде замяна на фактура.
ConfirmCustomerPayment=Потвърждавате ли това плащане вход за %s <b>%s?</b> ConfirmCustomerPayment=Потвърждавате ли това плащане вход за %s <b>%s?</b>
# ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s ? ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s ?
ConfirmValidatePayment=Сигурен ли сте, че искате да проверите това плащане? Без промяна може да се направи, след като плащането е утвърден. ConfirmValidatePayment=Сигурен ли сте, че искате да проверите това плащане? Без промяна може да се направи, след като плащането е утвърден.
ValidateBill=Проверка на фактура ValidateBill=Проверка на фактура
UnvalidateBill=Unvalidate фактура UnvalidateBill=Unvalidate фактура
@ -188,13 +187,13 @@ ShowInvoiceDeposit=Покажи фактура депозит
ShowPayment=Покажи плащане ShowPayment=Покажи плащане
File=Досие File=Досие
AlreadyPaid=Вече е платена AlreadyPaid=Вече е платена
# AlreadyPaidBack=Already paid back AlreadyPaidBack=Already paid back
AlreadyPaidNoCreditNotesNoDeposits=Вече е платена (без кредитни известия и депозити) AlreadyPaidNoCreditNotesNoDeposits=Вече е платена (без кредитни известия и депозити)
Abandoned=Изоставен Abandoned=Изоставен
RemainderToPay=Остатък за плащане RemainderToPay=Остатък за плащане
RemainderToTake=Остатък да предприеме RemainderToTake=Остатък да предприеме
# RemainderToPayBack=Remainder to pay back RemainderToPayBack=Remainder to pay back
# Rest=Pending Rest=Pending
AmountExpected=Претендираната сума AmountExpected=Претендираната сума
ExcessReceived=Превишение получи ExcessReceived=Превишение получи
EscompteOffered=Отстъпка предложи (плащане преди термина) EscompteOffered=Отстъпка предложи (плащане преди термина)
@ -204,7 +203,7 @@ StandingOrders=Постоянните поръчки
StandingOrder=Постоянния цел StandingOrder=Постоянния цел
NoDraftBills=Няма тяга фактури NoDraftBills=Няма тяга фактури
NoOtherDraftBills=Никакви други фактури проекти NoOtherDraftBills=Никакви други фактури проекти
# NoDraftInvoices=No draft invoices NoDraftInvoices=No draft invoices
RefBill=Фактура код RefBill=Фактура код
ToBill=На Бил ToBill=На Бил
RemainderToBill=Остатък за законопроект RemainderToBill=Остатък за законопроект
@ -217,7 +216,6 @@ DateEcheance=Due date limit
DateInvoice=Дата на фактура DateInvoice=Дата на фактура
NoInvoice=Липса на фактура NoInvoice=Липса на фактура
ClassifyBill=Класифициране на фактурата ClassifyBill=Класифициране на фактурата
NoSupplierBillsUnpaid=Не, доставчици фактури неплатени
SupplierBillsToPay=Доставчици фактури за плащане SupplierBillsToPay=Доставчици фактури за плащане
CustomerBillsUnpaid=Неплатени фактури на клиентите CustomerBillsUnpaid=Неплатени фактури на клиентите
DispenseMontantLettres=Законопроектът, изготвен от механографски са освободени от реда, в писма DispenseMontantLettres=Законопроектът, изготвен от механографски са освободени от реда, в писма
@ -288,7 +286,7 @@ InvoiceNotChecked=Не е избран фактура
CloneInvoice=Clone фактура CloneInvoice=Clone фактура
ConfirmCloneInvoice=Сигурен ли сте, че искате да клонирате тази фактура <b>%s?</b> ConfirmCloneInvoice=Сигурен ли сте, че искате да клонирате тази фактура <b>%s?</b>
DisabledBecauseReplacedInvoice=Действие инвалиди, тъй като фактурата е била заменена DisabledBecauseReplacedInvoice=Действие инвалиди, тъй като фактурата е била заменена
DescTaxAndDividendsArea=Тук се представя обобщение на всички плащания, направени за данъци или социални осигуровки. Включват се само записи с плащане в рамките на зададената година. DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
NbOfPayments=Nb на плащанията NbOfPayments=Nb на плащанията
SplitDiscount=Сплит отстъпка в две SplitDiscount=Сплит отстъпка в две
ConfirmSplitDiscount=Сигурен ли сте, че искате да разделите тази отстъпка на <b>%s</b> %s в две по-ниски отстъпки? ConfirmSplitDiscount=Сигурен ли сте, че искате да разделите тази отстъпка на <b>%s</b> %s в две по-ниски отстъпки?
@ -315,8 +313,8 @@ PaymentConditionShortPT_ORDER=По поръчка
PaymentConditionPT_ORDER=По поръчка PaymentConditionPT_ORDER=По поръчка
PaymentConditionShortPT_5050=50-50 PaymentConditionShortPT_5050=50-50
PaymentConditionPT_5050=50% авансово, 50% при доставка PaymentConditionPT_5050=50% авансово, 50% при доставка
# FixAmount=Fix amount FixAmount=Fix amount
# VarAmount=Variable amount (%% tot.) VarAmount=Variable amount (%% tot.)
# PaymentType # PaymentType
PaymentTypeVIR=На влоговете в банките PaymentTypeVIR=На влоговете в банките
@ -392,13 +390,18 @@ CantRemovePaymentWithOneInvoicePaid=Не може да се премахне п
ExpectedToPay=Очаквано плащане ExpectedToPay=Очаквано плащане
PayedByThisPayment=Плаща от това плащане PayedByThisPayment=Плаща от това плащане
ClosePaidInvoicesAutomatically=Класифицира &quot;ЗАПЛАЩАТ&quot; стандартно или заместващи фактури entirely ЗАПЛАЩАТ. ClosePaidInvoicesAutomatically=Класифицира &quot;ЗАПЛАЩАТ&quot; стандартно или заместващи фактури entirely ЗАПЛАЩАТ.
# ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
AllCompletelyPayedInvoiceWillBeClosed=Всички фактура не остават да плати, ще бъде затворено автоматично статус &quot;Платени&quot;. AllCompletelyPayedInvoiceWillBeClosed=Всички фактура не остават да плати, ще бъде затворено автоматично статус &quot;Платени&quot;.
# ToMakePayment=Pay ToMakePayment=Pay
# ToMakePaymentBack=Pay back ToMakePaymentBack=Pay back
# ListOfYourUnpaidInvoices=List of unpaid invoices ListOfYourUnpaidInvoices=List of unpaid invoices
# NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative. NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
# RevenueStamp=Revenue stamp RevenueStamp=Revenue stamp
YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of thirdparty
PDFCrabeDescription=Фактура PDF Crabe шаблон. Пълна шаблон фактура (Шаблон recommanded)
TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for credit notes and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
TerreNumRefModelError=Законопроект, който започва с $ syymm вече съществува и не е съвместим с този модел на последователност. Извадете го или го преименувайте да се активира този модул.
##### Types de contacts ##### ##### Types de contacts #####
TypeContact_facture_internal_SALESREPFOLL=Представител проследяване клиент фактура TypeContact_facture_internal_SALESREPFOLL=Представител проследяване клиент фактура
TypeContact_facture_external_BILLING=Контакта с клиентите фактура TypeContact_facture_external_BILLING=Контакта с клиентите фактура
@ -408,11 +411,3 @@ TypeContact_invoice_supplier_internal_SALESREPFOLL=Представител пр
TypeContact_invoice_supplier_external_BILLING=Свържи се с доставчика фактура TypeContact_invoice_supplier_external_BILLING=Свържи се с доставчика фактура
TypeContact_invoice_supplier_external_SHIPPING=Свържи се с доставчика корабоплаване TypeContact_invoice_supplier_external_SHIPPING=Свържи се с доставчика корабоплаване
TypeContact_invoice_supplier_external_SERVICE=Свържи се с доставчика на услуги TypeContact_invoice_supplier_external_SERVICE=Свържи се с доставчика на услуги
# crabe PDF Model
PDFCrabeDescription=Фактура PDF Crabe шаблон. Пълна шаблон фактура (Шаблон recommanded)
# oursin PDF Model
PDFOursinDescription=Фактура PDF Oursin шаблон. Пълна шаблон фактура (Шаблон алтернатива)
# NumRef Modules
# TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
# MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for credit notes and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
TerreNumRefModelError=Законопроект, който започва с $ syymm вече съществува и не е съвместим с този модел на последователност. Извадете го или го преименувайте да се активира този модул.

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