Merge branch 'develop' of github.com:atm-maxime/dolibarr into new_modimport_update_option

This commit is contained in:
Maxime Kohlhaas 2016-07-27 09:13:29 +02:00
commit 34b4d0225e
893 changed files with 6303 additions and 4112 deletions

View File

@ -170,7 +170,7 @@ source_file = htdocs/langs/en_US/interventions.lang
source_lang = en_US source_lang = en_US
type = MOZILLAPROPERTIES type = MOZILLAPROPERTIES
[dolibarr.languages] [dolibarr.languages-not-res]
file_filter = htdocs/langs/<lang>/languages.lang file_filter = htdocs/langs/<lang>/languages.lang
source_file = htdocs/langs/en_US/languages.lang source_file = htdocs/langs/en_US/languages.lang
source_lang = en_US source_lang = en_US

View File

@ -21,10 +21,10 @@ TechnicalParameters=Param
IfFirstInstall=S'il s'agit de la première installation, merci de spécifier ces quelques paramètres techniques. Si vous ne les comprennez pas, êtes non sûr, ou procédez à une mise à jour, laissez les champs avec les valeurs proposées par défaut. IfFirstInstall=S'il s'agit de la première installation, merci de spécifier ces quelques paramètres techniques. Si vous ne les comprennez pas, êtes non sûr, ou procédez à une mise à jour, laissez les champs avec les valeurs proposées par défaut.
; WARNING !!! STRINGS FOR THIS 4 STRINGS MUST BE LOWER THAN 60 CHARACTERS ; WARNING !!! STRINGS FOR THIS 4 STRINGS MUST BE LOWER THAN 70 CHARACTERS
SMTPServer=Serveur SMTP (le votre ou celui de votre FAI, première installation uniquement) : SMTPServer=Serveur SMTP (le votre ou de votre FAI, première installation uniquement):
ApachePort=Port Apache (première installation uniquement, le choix standard est 80) : ApachePort=Port Apache (première installation uniquement, le choix standard est 80):
MySqlPort=Port Mysql (première installation uniquement, le choix standard est 3306) : MySqlPort=Port Mysql (première installation uniquement, le choix standard est 3306):
MySqlPassword=Mot de passe serveur+base MySql de root (première installation uniquement): MySqlPassword=Mot de passe serveur+base MySql de root (première installation uniquement):
FailedToDeleteLock=Echec de la suppression du fichier %1/www/dolibarr/install.lock. Vous pouvez ignorer l'avertissement mais il est possible que vous deviez le supprimer manuellement plus tard. Dans ce cas, cela vous sera signalé. Cliquez sur OK pour continuer... FailedToDeleteLock=Echec de la suppression du fichier %1/www/dolibarr/install.lock. Vous pouvez ignorer l'avertissement mais il est possible que vous deviez le supprimer manuellement plus tard. Dans ce cas, cela vous sera signalé. Cliquez sur OK pour continuer...

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

@ -99,13 +99,13 @@ Source: "build\exe\doliwamp\builddemosslfiles.bat.install"; DestDir: "{app}\"; F
Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversion; Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversion;
; PhpMyAdmin, Apache, Php, Mysql ; PhpMyAdmin, Apache, Php, Mysql
; Put here path of Wampserver applications ; Put here path of Wampserver applications
; Value OK: apache 2.2.6, php 5.2.5 (5.2.11, 5.3.0 and 5.3.1 fails if php_exif, php_pgsql, php_zip is on), mysql 5.0.45 or 5.1.36 ; Value OK: apache 2.2.6, php 5.2.5 (5.2.11, 5.3.0 and 5.3.1 fails if php_exif, php_pgsql, php_zip is on), mysql 5.0.45
; Value OK: apache 2.2.11, php 5.3.0 (if no php_exif, php_pgsql, php_zip), mysql 5.0.45 or 5.1.36 ; Value OK: apache 2.2.11, php 5.3.0 (if no php_exif, php_pgsql, php_zip), mysql 5.0.45
; Value ???: apache 2.4.19, php 5.5.12, mysql 5.6.17 (wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe) ; Value ???: apache 2.4.19, php 5.5.12, mysql 5.0.45 instead of 5.6.17 (wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe)
Source: "C:\Program Files\Wamp\apps\phpmyadmin4.1.14\*.*"; DestDir: "{app}\apps\phpmyadmin4.1.14"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf,*.log,*_log,darkblue_orange" Source: "C:\Program Files\Wamp\apps\phpmyadmin4.1.14\*.*"; DestDir: "{app}\apps\phpmyadmin4.1.14"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf,*.log,*_log,darkblue_orange"
Source: "C:\Program Files\Wamp\bin\apache\apache2.4.9\*.*"; DestDir: "{app}\bin\apache\apache2.4.9"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log" Source: "C:\Program Files\Wamp\bin\apache\apache2.4.9\*.*"; DestDir: "{app}\bin\apache\apache2.4.9"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
Source: "C:\Program Files\Wamp\bin\php\php5.5.12\*.*"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log" Source: "C:\Program Files\Wamp\bin\php\php5.5.12\*.*"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
Source: "C:\Program Files\Wamp\bin\mysql\mysql5.6.17\*.*"; DestDir: "{app}\bin\mysql\mysql5.6.17"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe" Source: "C:\Program Files\Wamp\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
; Mysql data files (does not overwrite if exists) ; Mysql data files (does not overwrite if exists)
Source: "build\exe\doliwamp\mysql\*.*"; DestDir: "{app}\bin\mysql\data\mysql"; Flags: onlyifdoesntexist ignoreversion recursesubdirs; Excludes: ".gitignore,.project,CVS\*,Thumbs.db" Source: "build\exe\doliwamp\mysql\*.*"; DestDir: "{app}\bin\mysql\data\mysql"; Flags: onlyifdoesntexist ignoreversion recursesubdirs; Excludes: ".gitignore,.project,CVS\*,Thumbs.db"
; Dolibarr ; Dolibarr
@ -119,7 +119,7 @@ Source: "build\exe\doliwamp\phpmyadmin.conf.install"; DestDir: "{app}\alias"; Fl
Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion; Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
Source: "build\exe\doliwamp\config.inc.php.install"; DestDir: "{app}\apps\phpmyadmin4.1.14"; Flags: ignoreversion; Source: "build\exe\doliwamp\config.inc.php.install"; DestDir: "{app}\apps\phpmyadmin4.1.14"; Flags: ignoreversion;
Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.9\conf"; Flags: ignoreversion; Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.9\conf"; Flags: ignoreversion;
Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.6.17"; Flags: ignoreversion; Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion;
Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion; Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion;
Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion; Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion;
Source: "build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion; Source: "build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion;
@ -146,6 +146,12 @@ Name: "{userdesktop}\Dolibarr Help center"; Filename: "{app}\rundolihelp.bat"; W
;Name: "{userstartup}\DoliWamp server"; Filename: "{app}\startdoliwamp.bat"; WorkingDir: "{app}"; Flags: runminimized; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico ;Name: "{userstartup}\DoliWamp server"; Filename: "{app}\startdoliwamp.bat"; WorkingDir: "{app}"; Flags: runminimized; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico
[Registry]
; Add "run as admin" flag. Same than command line: reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "<Path to your exe>" /t REG_SZ /d RUNASADMIN
Root: "HKLM"; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\"; ValueType: String; ValueName: "{app}\startdoliwamp.bat"; ValueData: "RUNASADMIN"; Flags: uninsdeletekeyifempty uninsdeletevalue;
Root: "HKLM"; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\"; ValueType: String; ValueName: "{app}\stopdoliwamp.bat"; ValueData: "RUNASADMIN"; Flags: uninsdeletekeyifempty uninsdeletevalue;
[Code] [Code]
//variables globales //variables globales
@ -198,7 +204,7 @@ begin
//version des applis, a modifier pour chaque version de WampServer 2 //version des applis, a modifier pour chaque version de WampServer 2
apacheVersion := '2.4.9'; apacheVersion := '2.4.9';
phpVersion := '5.5.12' ; phpVersion := '5.5.12' ;
mysqlVersion := '5.6.17'; mysqlVersion := '5.0.45';
phpmyadminVersion := '4.1.14'; phpmyadminVersion := '4.1.14';
smtpServer := 'localhost'; smtpServer := 'localhost';
@ -262,6 +268,7 @@ begin
if firstinstall if firstinstall
then then
begin begin
// False means it's not a password edit
Page.Add(CustomMessage('SMTPServer'), False); Page.Add(CustomMessage('SMTPServer'), False);
Page.Add(CustomMessage('ApachePort'), False); Page.Add(CustomMessage('ApachePort'), False);
Page.Add(CustomMessage('MySqlPort'), False); Page.Add(CustomMessage('MySqlPort'), False);
@ -269,6 +276,7 @@ begin
end end
else else
begin begin
// False means it's not a password edit
Page.Add(CustomMessage('SMTPServer'), False); Page.Add(CustomMessage('SMTPServer'), False);
Page.Add(CustomMessage('ApachePort'), False); Page.Add(CustomMessage('ApachePort'), False);
Page.Add(CustomMessage('MySqlPort'), False); Page.Add(CustomMessage('MySqlPort'), False);
@ -308,8 +316,7 @@ function NextButtonClick(CurPageID: Integer): Boolean;
var myResult: Integer; var myResult: Integer;
var res: Boolean; var res: Boolean;
var paramok: Boolean; var paramok: Boolean;
var datadirold: String; var datadir: String;
var datadirnew: String;
var exedirold: String; var exedirold: String;
var exedirnew: String; var exedirnew: String;
var themessage: String; var themessage: String;
@ -328,14 +335,13 @@ begin
winPath := ExpandConstant('{win}'); winPath := ExpandConstant('{win}');
pathWithSlashes := path; pathWithSlashes := path;
StringChange (pathWithSlashes, '\','/'); StringChange (pathWithSlashes, '\','/');
datadirold := pathWithSlashes+'/bin/mysql/mysql5.6.17/data'; datadir := pathWithSlashes+'/bin/mysql/data';
datadirnew := pathWithSlashes+'/bin/mysql/data'; exedirold := pathWithSlashes+'/bin/mysql/mysql5.0.45';
exedirold := pathWithSlashes+'/bin/mysql/mysql5.6.17'; exedirnew := pathWithSlashes+'/bin/mysql/mysql5.0.45';
exedirnew := pathWithSlashes+'/bin/mysql/mysql5.6.17';
//---------------------------------------------- //----------------------------------------------
// Test if VC11Redist has been installed // Test if msvcr110 DLL has been installed
//---------------------------------------------- //----------------------------------------------
if not FileExists ('c:/windows/system32/msvcr110.dll') and not FileExists ('c:/windows/sysWOW64/msvcr110.dll') and not FileExists ('c:/winnt/system32/msvcr110.dll') and not FileExists ('c:/winnt/sysWOW64/msvcr110.dll') then if not FileExists ('c:/windows/system32/msvcr110.dll') and not FileExists ('c:/windows/sysWOW64/msvcr110.dll') and not FileExists ('c:/winnt/system32/msvcr110.dll') and not FileExists ('c:/winnt/sysWOW64/msvcr110.dll') then
@ -675,7 +681,7 @@ begin
//installDir et version de php //installDir et version de php
StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True);
StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True);
StringChangeEx (srcContents, 'WAMPMYSQLVERSION', myport, True); StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True);
SaveStringToFile(destFile,srcContents, False); SaveStringToFile(destFile,srcContents, False);
end end
@ -995,7 +1001,7 @@ Filename: "{app}\rundoliwamp.bat"; Description: {cm:LaunchNow}; Flags: shellexec
[UninstallDelete] [UninstallDelete]
Type: files; Name: "{app}\*.*" Type: files; Name: "{app}\*.*"
Type: files; Name: "{app}\bin\mysql\mysql5.6.17\*.*" Type: files; Name: "{app}\bin\mysql\mysql5.0.45\*.*"
Type: filesandordirs; Name: "{app}\alias" Type: filesandordirs; Name: "{app}\alias"
Type: filesandordirs; Name: "{app}\apps" Type: filesandordirs; Name: "{app}\apps"
Type: filesandordirs; Name: "{app}\bin\apache" Type: filesandordirs; Name: "{app}\bin\apache"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -72,7 +72,6 @@ LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so LoadModule authz_core_module modules/mod_authz_core.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so
@ -412,7 +411,7 @@ LogLevel warn
# keep browsers from trying to display binary files as though they are # keep browsers from trying to display binary files as though they are
# text. # text.
# #
DefaultType text/plain #DefaultType text/plain
<IfModule mime_module> <IfModule mime_module>
# #

View File

@ -16,9 +16,9 @@ REM reg add HKLM\SYSTEM\CurrentControlSet\Services\doliwampapache /V Start /t RE
REM Mysql 5.0- REM Mysql 5.0-
REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --install-manual doliwampmysqld REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --install-manual doliwampmysqld
REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --install doliwampmysqld .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --install doliwampmysqld
REM Mysql 5.1+ REM Mysql 5.1+
.\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --install doliwampmysqld REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --install doliwampmysqld
echo ---- End script >> doliwamp.log 2>>&1 echo ---- End script >> doliwamp.log 2>>&1

View File

@ -77,10 +77,6 @@ log-error=WAMPROOT/logs/mysql.log
#Path to the database root #Path to the database root
datadir=WAMPROOT/bin/mysql/data datadir=WAMPROOT/bin/mysql/data
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=latin1
# The default storage engine that will be used when create new tables when # The default storage engine that will be used when create new tables when
default-storage-engine=INNODB default-storage-engine=INNODB
@ -101,13 +97,6 @@ max_connections=255
# slowdown instead of a performance improvement. # slowdown instead of a performance improvement.
query_cache_size=8M query_cache_size=8M
# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable "open-files-limit" in
# section [mysqld_safe]
table_cache=510
# Maximum size for internal (in-memory) temporary tables. If a table # Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk # grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many # based table This limitation is for a single table. There can be many
@ -125,18 +114,6 @@ thread_cache_size=12
#*** MyISAM Specific options #*** MyISAM Specific options
# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=100G
# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_max_extra_sort_file_size=100G
# If the temporary file used for fast index creation would be bigger # If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the # than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in # key cache method. This is mainly used to force long character keys in
@ -170,13 +147,6 @@ sort_buffer_size=203K
# and speed up some things. # and speed up some things.
#skip-innodb #skip-innodb
# Additional memory pool that is used by InnoDB to store metadata
# information. If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS. As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
innodb_additional_mem_pool_size=2M
# If set to 1, InnoDB will flush (fsync) the transaction logs to the # If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are # disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small # willing to compromise this safety, and you are running small
@ -226,7 +196,7 @@ port=WAMPMYSQLPORT
#Path to installation directory. All paths are usually resolved relative to this. #Path to installation directory. All paths are usually resolved relative to this.
basedir=WAMPROOT/bin/mysql/mysql5.6.17 basedir=WAMPROOT/bin/mysql/mysqlWAMPMYSQLVERSION
#log file #log file
log-error=WAMPROOT/logs/mysql.log log-error=WAMPROOT/logs/mysql.log
@ -234,10 +204,6 @@ log-error=WAMPROOT/logs/mysql.log
#Path to the database root #Path to the database root
datadir=WAMPROOT/bin/mysql/data datadir=WAMPROOT/bin/mysql/data
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=latin1
# The default storage engine that will be used when create new tables when # The default storage engine that will be used when create new tables when
default-storage-engine=INNODB default-storage-engine=INNODB
@ -258,13 +224,6 @@ max_connections=255
# slowdown instead of a performance improvement. # slowdown instead of a performance improvement.
query_cache_size=8M query_cache_size=8M
# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable "open-files-limit" in
# section [mysqld_safe]
table_cache=510
# Maximum size for internal (in-memory) temporary tables. If a table # Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk # grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many # based table This limitation is for a single table. There can be many
@ -282,18 +241,6 @@ thread_cache_size=12
#*** MyISAM Specific options #*** MyISAM Specific options
# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=100G
# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_max_extra_sort_file_size=100G
# If the temporary file used for fast index creation would be bigger # If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the # than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in # key cache method. This is mainly used to force long character keys in
@ -327,13 +274,6 @@ sort_buffer_size=203K
# and speed up some things. # and speed up some things.
#skip-innodb #skip-innodb
# Additional memory pool that is used by InnoDB to store metadata
# information. If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS. As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
innodb_additional_mem_pool_size=2M
# If set to 1, InnoDB will flush (fsync) the transaction logs to the # If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are # disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small # willing to compromise this safety, and you are running small

View File

@ -31,5 +31,5 @@ Alias /phpmyadmin "WAMPROOT/apps/phpmyadminWAMPPHPMYADMINVERSION/"
<RequireAny> <RequireAny>
Require ip 127.0.0.1 Require ip 127.0.0.1
Require host localhost Require host localhost
<RequireAny> </RequireAny>
</Directory> </Directory>

View File

@ -10,9 +10,11 @@ NET START doliwampapache >> doliwamp.log 2>>&1
echo NET START doliwampmysqld >> doliwamp.log 2>>&1 echo NET START doliwampmysqld >> doliwamp.log 2>>&1
NET START doliwampmysqld >> doliwamp.log 2>>&1 NET START doliwampmysqld >> doliwamp.log 2>>&1
REM You can also check logs into c:/dolibarr/logs if start fails
echo Please wait... echo Please wait...
echo ---- End script >> doliwamp.log 2>>&1 echo ---- End script >> doliwamp.log 2>>&1
REM sleep is not a Windows commande REM sleep is not a Windows commande
REM sleep 1 REM sleep 2
ping 1.1.1.1 -n 1 -w 1000 > nul ping 127.0.0.1 -n 2 -w 1000 > nul

View File

@ -13,5 +13,6 @@ echo
echo Running Mysql as user process (this process does not return so we use "start") echo Running Mysql as user process (this process does not return so we use "start")
start WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --defaults-file=WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\my.ini --console start WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --defaults-file=WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\my.ini --console
REM start WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --defaults-file=WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\my.ini --console
pause pause

View File

@ -16,3 +16,5 @@ echo ---- End script >> doliwamp.log 2>>&1
REM sleep is not a Windows command REM sleep is not a Windows command
REM sleep 1 REM sleep 1
ping 1.1.1.1 -n 1 -w 1000 > nul ping 1.1.1.1 -n 1 -w 1000 > nul
REM pause

View File

@ -11,9 +11,9 @@ NET STOP doliwampapache
NET STOP doliwampmysqld NET STOP doliwampmysqld
REM Mysql 5.0- REM Mysql 5.0-
REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --remove doliwampmysqld .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --remove doliwampmysqld
REM Mysql 5.1+ REM Mysql 5.1+
.\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --remove doliwampmysqld REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --remove doliwampmysqld
REM wampmanager.exe -quit -id={doliwampserver} REM wampmanager.exe -quit -id={doliwampserver}
echo ---- End script >> doliwamp.log 2>>&1 echo ---- End script >> doliwamp.log 2>>&1

View File

@ -90,7 +90,7 @@ class modMyModule extends DolibarrModules
// 'models' => 0, // Set this to 1 if module has its own models directory (core/modules/xxx) // 'models' => 0, // Set this to 1 if module has its own models directory (core/modules/xxx)
// 'css' => array('/mymodule/css/mymodule.css.php'), // Set this to relative path of css file if module has its own css file // 'css' => array('/mymodule/css/mymodule.css.php'), // Set this to relative path of css file if module has its own css file
// 'js' => array('/mymodule/js/mymodule.js'), // Set this to relative path of js file if module must load a js on all pages // 'js' => array('/mymodule/js/mymodule.js'), // Set this to relative path of js file if module must load a js on all pages
// 'hooks' => array('hookcontext1','hookcontext2') // Set here all hooks context managed by module // 'hooks' => array('hookcontext1','hookcontext2',...) // Set here all hooks context managed by module. You can also set hook context 'all'
// 'dir' => array('output' => 'othermodulename'), // To force the default directories names // 'dir' => array('output' => 'othermodulename'), // To force the default directories names
// 'workflow' => array('WORKFLOW_MODULE1_YOURACTIONTYPE_MODULE2'=>array('enabled'=>'! empty($conf->module1->enabled) && ! empty($conf->module2->enabled)', 'picto'=>'yourpicto@mymodule')) // Set here all workflow context managed by module // 'workflow' => array('WORKFLOW_MODULE1_YOURACTIONTYPE_MODULE2'=>array('enabled'=>'! empty($conf->module1->enabled) && ! empty($conf->module2->enabled)', 'picto'=>'yourpicto@mymodule')) // Set here all workflow context managed by module
// ); // );

View File

@ -293,6 +293,8 @@ if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($a
if (preg_match('/^Language_/', $value)) $qualifiedforclean=0; if (preg_match('/^Language_/', $value)) $qualifiedforclean=0;
if (preg_match('/^DescADHERENT_/', $value)) $qualifiedforclean=0; if (preg_match('/^DescADHERENT_/', $value)) $qualifiedforclean=0;
if (preg_match('/^SubmitTranslation/', $value)) $qualifiedforclean=0; if (preg_match('/^SubmitTranslation/', $value)) $qualifiedforclean=0;
if (preg_match('/^ModuleCompanyCode/', $value)) $qualifiedforclean=0;
// main.lang // main.lang
if (preg_match('/^Duration/', $value)) $qualifiedforclean=0; if (preg_match('/^Duration/', $value)) $qualifiedforclean=0;
if (preg_match('/^FormatDate/', $value)) $qualifiedforclean=0; if (preg_match('/^FormatDate/', $value)) $qualifiedforclean=0;

View File

@ -142,7 +142,7 @@ class AccountancyExport
case self::$EXPORT_TYPE_COGILOG : case self::$EXPORT_TYPE_COGILOG :
$this->exportCogilog($TData); $this->exportCogilog($TData);
break; break;
default : default:
$this->errors[] = $langs->trans('accountancy_error_modelnotfound'); $this->errors[] = $langs->trans('accountancy_error_modelnotfound');
break; break;
} }
@ -156,6 +156,8 @@ class AccountancyExport
* @return void * @return void
*/ */
public function exportNormal($objectLines) { public function exportNormal($objectLines) {
global $conf;
foreach ( $objectLines as $line ) { foreach ( $objectLines as $line ) {
// Std export // Std export
$date = dol_print_date($line->doc_date, $conf->global->ACCOUNTING_EXPORT_DATE); $date = dol_print_date($line->doc_date, $conf->global->ACCOUNTING_EXPORT_DATE);

View File

@ -190,11 +190,12 @@ class Cotisation extends CommonObject
*/ */
function delete($user) function delete($user)
{ {
$accountline=new AccountLine($this->db);
// It subscription is linked to a bank transaction, we get it // It subscription is linked to a bank transaction, we get it
if ($this->fk_bank) if ($this->fk_bank > 0)
{ {
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
$accountline=new AccountLine($this->db);
$result=$accountline->fetch($this->fk_bank); $result=$accountline->fetch($this->fk_bank);
} }

View File

@ -823,7 +823,8 @@ else
if (! empty($conf->global->MAIN_INFO_SIREN)) if (! empty($conf->global->MAIN_INFO_SIREN))
{ {
print $conf->global->MAIN_INFO_SIREN; print $conf->global->MAIN_INFO_SIREN;
if ($mysoc->country_code == 'FR') print ' &nbsp; <a href="http://avis-situation-sirene.insee.fr/avisitu/jsp/avis.jsp" target="_blank">'.$langs->trans("Check").'</a>'; $s = $mysoc->id_prof_url(1,$mysoc);
if ($s) print ' - '.$s;
} else { } else {
print '&nbsp;'; print '&nbsp;';
} }
@ -838,6 +839,8 @@ else
if (! empty($conf->global->MAIN_INFO_SIRET)) if (! empty($conf->global->MAIN_INFO_SIRET))
{ {
print $conf->global->MAIN_INFO_SIRET; print $conf->global->MAIN_INFO_SIRET;
$s = $mysoc->id_prof_url(2,$mysoc);
if ($s) print ' - '.$s;
} else { } else {
print '&nbsp;'; print '&nbsp;';
} }
@ -852,6 +855,8 @@ else
if (! empty($conf->global->MAIN_INFO_APE)) if (! empty($conf->global->MAIN_INFO_APE))
{ {
print $conf->global->MAIN_INFO_APE; print $conf->global->MAIN_INFO_APE;
$s = $mysoc->id_prof_url(3,$mysoc);
if ($s) print ' - '.$s;
} else { } else {
print '&nbsp;'; print '&nbsp;';
} }
@ -866,6 +871,8 @@ else
if (! empty($conf->global->MAIN_INFO_RCS)) if (! empty($conf->global->MAIN_INFO_RCS))
{ {
print $conf->global->MAIN_INFO_RCS; print $conf->global->MAIN_INFO_RCS;
$s = $mysoc->id_prof_url(4,$mysoc);
if ($s) print ' - '.$s;
} else { } else {
print '&nbsp;'; print '&nbsp;';
} }
@ -880,6 +887,8 @@ else
if (! empty($conf->global->MAIN_INFO_PROFID5)) if (! empty($conf->global->MAIN_INFO_PROFID5))
{ {
print $conf->global->MAIN_INFO_PROFID5; print $conf->global->MAIN_INFO_PROFID5;
$s = $mysoc->id_prof_url(5,$mysoc);
if ($s) print ' - '.$s;
} else { } else {
print '&nbsp;'; print '&nbsp;';
} }
@ -894,6 +903,8 @@ else
if (! empty($conf->global->MAIN_INFO_PROFID6)) if (! empty($conf->global->MAIN_INFO_PROFID6))
{ {
print $conf->global->MAIN_INFO_PROFID6; print $conf->global->MAIN_INFO_PROFID6;
$s = $mysoc->id_prof_url(6,$mysoc);
if ($s) print ' - '.$s;
} else { } else {
print '&nbsp;'; print '&nbsp;';
} }
@ -909,9 +920,9 @@ else
$s=''; $s='';
$s.=$conf->global->MAIN_INFO_TVAINTRA; $s.=$conf->global->MAIN_INFO_TVAINTRA;
$s.='<input type="hidden" name="tva_intra" size="12" maxlength="20" value="'.$conf->global->MAIN_INFO_TVAINTRA.'">'; $s.='<input type="hidden" name="tva_intra" size="12" maxlength="20" value="'.$conf->global->MAIN_INFO_TVAINTRA.'">';
if (empty($conf->global->MAIN_DISABLEVATCHECK)) if (empty($conf->global->MAIN_DISABLEVATCHECK) && $mysoc->isInEEC())
{ {
$s.=' &nbsp; '; $s.=' - ';
if (! empty($conf->use_javascript_ajax)) if (! empty($conf->use_javascript_ajax))
{ {
print "\n"; print "\n";

View File

@ -1008,13 +1008,13 @@ class Categorie extends CommonObject
} }
/** /**
* Affiche contenu de $this->cats * Display content of $this->cats
* *
* @return void * @return void
*/ */
function debug_cats() function debug_cats()
{ {
// Affiche $this->cats // Display $this->cats
foreach($this->cats as $key => $val) foreach($this->cats as $key => $val)
{ {
print 'id: '.$this->cats[$key]['id']; print 'id: '.$this->cats[$key]['id'];
@ -1029,11 +1029,11 @@ class Categorie extends CommonObject
/** /**
* Retourne toutes les categories * Returns all categories
* *
* @param int $type Type of category * @param int $type Type of category
* @param boolean $parent Just parent categories if true * @param boolean $parent Just parent categories if true
* @return array Tableau d'objet Categorie * @return array Table of Object Category
*/ */
function get_all_categories($type=null, $parent=false) function get_all_categories($type=null, $parent=false)
{ {
@ -1064,9 +1064,9 @@ class Categorie extends CommonObject
} }
/** /**
* Retourne le nombre total de categories * Returns total number of categories
* *
* @return int Nombre de categories * @return int Number of categories
* @deprecated function not used ? * @deprecated function not used ?
*/ */
function get_nb_categories() function get_nb_categories()
@ -1133,7 +1133,7 @@ class Categorie extends CommonObject
} }
/** /**
* Retourne les categories de premier niveau (qui ne sont pas filles) * Returns the top level categories (which are not girls)
* *
* @param int $type Type of category * @param int $type Type of category
* @return array * @return array
@ -1144,8 +1144,8 @@ class Categorie extends CommonObject
} }
/** /**
* Retourne les chemin de la categorie, avec les noms des categories * Returns the path of the category, with the names of the categories
* separes par $sep (" >> " par defaut) * separated by $sep (" >> " by default)
* *
* @param string $sep Separator * @param string $sep Separator
* @param string $url Url * @param string $url Url
@ -1205,7 +1205,7 @@ class Categorie extends CommonObject
/** /**
* Retourne un tableau contenant la liste des categories meres * Returns an array containing the list of parent categories
* *
* @return int|array <0 KO, array OK * @return int|array <0 KO, array OK
*/ */
@ -1239,8 +1239,8 @@ class Categorie extends CommonObject
} }
/** /**
* Retourne dans un tableau tous les chemins possibles pour arriver a la categorie * Returns in a table all possible paths to get to the category
* en partant des categories principales, representes par des tableaux de categories * starting with the major categories represented by Tables of categories
* *
* @return array * @return array
*/ */
@ -1324,8 +1324,8 @@ class Categorie extends CommonObject
/** /**
* Retourne les categories dont l'id ou le nom correspond * Returns categories whose id or name match
* ajoute des wildcards au nom sauf si $exact = true * add wildcards in the name unless $exact = true
* *
* @param int $id Id * @param int $id Id
* @param string $nom Name * @param string $nom Name

View File

@ -186,7 +186,7 @@ $week = $prev['week'];
$day = (int) $day; $day = (int) $day;
$next = dol_get_next_day($day, $month, $year); $next = dol_get_next_day($day, $month, $year);
$next_year = year + 1; $next_year = $year + 1;
$next_month = $month; $next_month = $month;
$next_day = $day; $next_day = $day;

View File

@ -673,9 +673,9 @@ if ($action == 'create')
dol_fiche_head(); dol_fiche_head();
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailTitle").'</td><td><input class="flat" name="titre" size="40" value="'.$_POST['titre'].'"></td></tr>'; print '<tr><td class="fieldrequired titlefieldcreate">'.$langs->trans("MailTitle").'</td><td><input class="flat" name="titre" size="40" value="'.$_POST['titre'].'"></td></tr>';
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailFrom").'</td><td><input class="flat" name="from" size="40" value="'.$conf->global->MAILING_EMAIL_FROM.'"></td></tr>'; print '<tr><td class="fieldrequired">'.$langs->trans("MailFrom").'</td><td><input class="flat" name="from" size="40" value="'.$conf->global->MAILING_EMAIL_FROM.'"></td></tr>';
print '<tr><td width="25%">'.$langs->trans("MailErrorsTo").'</td><td><input class="flat" name="errorsto" size="40" value="'.(!empty($conf->global->MAILING_EMAIL_ERRORSTO)?$conf->global->MAILING_EMAIL_ERRORSTO:$conf->global->MAIN_MAIL_ERRORS_TO).'"></td></tr>'; print '<tr><td>'.$langs->trans("MailErrorsTo").'</td><td><input class="flat" name="errorsto" size="40" value="'.(!empty($conf->global->MAILING_EMAIL_ERRORSTO)?$conf->global->MAILING_EMAIL_ERRORSTO:$conf->global->MAIN_MAIL_ERRORS_TO).'"></td></tr>';
// Other attributes // Other attributes
$parameters=array(); $parameters=array();
@ -689,11 +689,11 @@ if ($action == 'create')
print '</br><br>'; print '</br><br>';
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailTopic").'</td><td><input class="flat" name="sujet" size="60" value="'.$_POST['sujet'].'"></td></tr>'; print '<tr><td class="fieldrequired titlefieldcreate">'.$langs->trans("MailTopic").'</td><td><input class="flat" name="sujet" size="60" value="'.$_POST['sujet'].'"></td></tr>';
print '<tr><td width="25%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
print $htmlother->selectColor($_POST['bgcolor'],'bgcolor','new_mailing',0); print $htmlother->selectColor($_POST['bgcolor'],'bgcolor','new_mailing',0);
print '</td></tr>'; print '</td></tr>';
print '<tr><td width="25%" valign="top"><span class="fieldrequired">'.$langs->trans("MailMessage").'</span><br>'; print '<tr><td valign="top"><span class="fieldrequired">'.$langs->trans("MailMessage").'</span><br>';
print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>'; print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
foreach($object->substitutionarray as $key => $val) foreach($object->substitutionarray as $key => $val)
{ {
@ -792,7 +792,7 @@ else
$linkback = '<a href="'.DOL_URL_ROOT.'/comm/mailing/list.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/comm/mailing/list.php">'.$langs->trans("BackToList").'</a>';
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($object,'id', $linkback); print $form->showrefnav($object,'id', $linkback);
print '</td></tr>'; print '</td></tr>';
@ -995,7 +995,7 @@ else
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Subject // Subject
print '<tr><td width="25%">'.$langs->trans("MailTopic").'</td><td colspan="3">'.$object->sujet.'</td></tr>'; print '<tr><td class="titlefield">'.$langs->trans("MailTopic").'</td><td colspan="3">'.$object->sujet.'</td></tr>';
// Joined files // Joined files
print '<tr><td>'.$langs->trans("MailFile").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("MailFile").'</td><td colspan="3">';
@ -1021,7 +1021,7 @@ else
print '</td></tr>';*/ print '</td></tr>';*/
// Message // Message
print '<tr><td width="25%" valign="top">'.$langs->trans("MailMessage").'<br>'; print '<tr><td valign="top">'.$langs->trans("MailMessage").'<br>';
print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>'; print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
foreach($object->substitutionarray as $key => $val) foreach($object->substitutionarray as $key => $val)
{ {
@ -1055,7 +1055,7 @@ else
$linkback = '<a href="'.DOL_URL_ROOT.'/comm/mailing/list.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/comm/mailing/list.php">'.$langs->trans("BackToList").'</a>';
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($object,'id', $linkback); print $form->showrefnav($object,'id', $linkback);
print '</td></tr>'; print '</td></tr>';
@ -1114,9 +1114,9 @@ else
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
// Subject // Subject
print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("MailTopic").'</td><td colspan="3"><input class="flat" type="text" size=60 name="sujet" value="'.$object->sujet.'"></td></tr>'; print '<tr><td class="fieldrequired titlefield">'.$langs->trans("MailTopic").'</td><td colspan="3"><input class="flat" type="text" size=60 name="sujet" value="'.$object->sujet.'"></td></tr>';
$trackid=''; // TODO To avoid conflicts with 2 mass emailing, we shoul set a trackid here, even if we use another one into email header. $trackid=''; // TODO To avoid conflicts with 2 mass emailing, we should set a trackid here, even if we use another one into email header.
dol_init_file_process($upload_dir, $trackid); dol_init_file_process($upload_dir, $trackid);
// Joined files // Joined files
@ -1156,12 +1156,12 @@ else
print '</td></tr>'; print '</td></tr>';
// Background color // Background color
print '<tr><td width="25%">'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("BackgroundColorByDefault").'</td><td colspan="3">';
print $htmlother->selectColor($object->bgcolor,'bgcolor','edit_mailing',0); print $htmlother->selectColor($object->bgcolor,'bgcolor','edit_mailing',0);
print '</td></tr>'; print '</td></tr>';
// Message // Message
print '<tr><td width="25%" valign="top">'.$langs->trans("MailMessage").'<br>'; print '<tr><td valign="top">'.$langs->trans("MailMessage").'<br>';
print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>'; print '<br><i>'.$langs->trans("CommonSubstitutions").':<br>';
foreach($object->substitutionarray as $key => $val) foreach($object->substitutionarray as $key => $val)
{ {

View File

@ -183,30 +183,30 @@ if ($object->fetch($id) >= 0)
$linkback = '<a href="'.DOL_URL_ROOT.'/comm/mailing/list.php">'.$langs->trans("BackToList").'</a>'; $linkback = '<a href="'.DOL_URL_ROOT.'/comm/mailing/list.php">'.$langs->trans("BackToList").'</a>';
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>'; print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($object,'id', $linkback); print $form->showrefnav($object,'id', $linkback);
print '</td></tr>'; print '</td></tr>';
print '<tr><td width="25%">'.$langs->trans("MailTitle").'</td><td colspan="3">'.$object->titre.'</td></tr>'; print '<tr><td>'.$langs->trans("MailTitle").'</td><td colspan="3">'.$object->titre.'</td></tr>';
print '<tr><td width="25%">'.$langs->trans("MailFrom").'</td><td colspan="3">'.dol_print_email($object->email_from,0,0,0,0,1).'</td></tr>'; print '<tr><td>'.$langs->trans("MailFrom").'</td><td colspan="3">'.dol_print_email($object->email_from,0,0,0,0,1).'</td></tr>';
// Errors to // Errors to
print '<tr><td width="25%">'.$langs->trans("MailErrorsTo").'</td><td colspan="3">'.dol_print_email($object->email_errorsto,0,0,0,0,1); print '<tr><td>'.$langs->trans("MailErrorsTo").'</td><td colspan="3">'.dol_print_email($object->email_errorsto,0,0,0,0,1);
print '</td></tr>'; print '</td></tr>';
// Status // Status
print '<tr><td width="25%">'.$langs->trans("Status").'</td><td colspan="3">'.$object->getLibStatut(4); print '<tr><td>'.$langs->trans("Status").'</td><td colspan="3">'.$object->getLibStatut(4);
if ($object->statut == 2) print ' ('.$object->countNbOfTargets('alreadysent').'/'.$object->nbemail.')'; if ($object->statut == 2) print ' ('.$object->countNbOfTargets('alreadysent').'/'.$object->nbemail.')';
print '</td></tr>'; print '</td></tr>';
// Nb of distinct emails // Nb of distinct emails
print '<tr><td width="25%">'; print '<tr><td>';
print $langs->trans("TotalNbOfDistinctRecipients"); print $langs->trans("TotalNbOfDistinctRecipients");
print '</td><td colspan="3">'; print '</td><td colspan="3">';
$nbemail = ($object->nbemail?$object->nbemail:'0'); $nbemail = ($object->nbemail?$object->nbemail:'0');
if (!empty($conf->global->MAILING_LIMIT_SENDBYWEB) && $conf->global->MAILING_LIMIT_SENDBYWEB < $nbemail) if (!empty($conf->global->MAILING_LIMIT_SENDBYWEB) && ($conf->global->MAILING_LIMIT_SENDBYWEB < $nbemail) && ($object->statut == 1 || $object->statut == 2))
{ {
$text=$langs->trans('LimitSendingEmailing',$conf->global->MAILING_LIMIT_SENDBYWEB); $text=$langs->trans('LimitSendingEmailing',$conf->global->MAILING_LIMIT_SENDBYWEB);
print $form->textwithpicto($nbemail,$text,1,'warning'); print $form->textwithpicto($nbemail,$text,1,'warning');

View File

@ -41,6 +41,8 @@ class Mailing extends CommonObject
var $bgcolor; var $bgcolor;
var $bgimage; var $bgimage;
var $statut; // Status 0=Draft, 1=Validated, 2=Sent partially, 3=Sent completely
var $email_from; var $email_from;
var $email_replyto; var $email_replyto;
var $email_errorsto; var $email_errorsto;

View File

@ -1403,7 +1403,7 @@ if ($action == 'create')
print '<tr>'; print '<tr>';
print '<td>' . $langs->trans("Project") . '</td><td colspan="2">'; print '<td>' . $langs->trans("Project") . '</td><td colspan="2">';
$numprojet = $formproject->select_projects($soc->id, $projectid, 'projectid', 0); $numprojet = $formproject->select_projects($soc->id, $projectid, 'projectid', 0);
print ' &nbsp; <a href="../projet/card.php?socid=' . $soc->id . '&action=create&status=1&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create&socid='.$soc->id).'">' . $langs->trans("AddProject") . '</a>'; print ' &nbsp; <a href="'.DOL_URL_ROOT.'/projet/card.php?socid=' . $soc->id . '&action=create&status=1&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create&socid='.$soc->id).'">' . $langs->trans("AddProject") . '</a>';
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
} }

View File

@ -1030,7 +1030,6 @@ if ($resql)
else print '<td></td>'; else print '<td></td>';
} }
print '</tr>'; print '</tr>';
} }
$db->free($resql); $db->free($resql);

View File

@ -70,6 +70,11 @@ $date_end = dol_mktime(23,59,59,$_REQUEST["date_endmonth"],$_REQUEST["date_endda
$date_starty = dol_mktime(0,0,0,$_REQUEST["date_start_delymonth"],$_REQUEST["date_start_delyday"],$_REQUEST["date_start_delyyear"]); // Date for local PHP server $date_starty = dol_mktime(0,0,0,$_REQUEST["date_start_delymonth"],$_REQUEST["date_start_delyday"],$_REQUEST["date_start_delyyear"]); // Date for local PHP server
$date_endy = dol_mktime(23,59,59,$_REQUEST["date_end_delymonth"],$_REQUEST["date_end_delyday"],$_REQUEST["date_end_delyyear"]); $date_endy = dol_mktime(23,59,59,$_REQUEST["date_end_delymonth"],$_REQUEST["date_end_delyday"],$_REQUEST["date_end_delyyear"]);
$extrafields = new ExtraFields($db);
// fetch optionals attributes and labels
$extralabels=$extrafields->fetch_name_optionals_label('facture');
if ($action == 'create') if ($action == 'create')
{ {
if (! is_array($selected)) if (! is_array($selected))
@ -174,6 +179,9 @@ if (($action == 'create' || $action == 'add') && !$error)
$object->remise_absolue = $_POST['remise_absolue']; $object->remise_absolue = $_POST['remise_absolue'];
$object->remise_percent = $_POST['remise_percent']; $object->remise_percent = $_POST['remise_percent'];
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
if ($ret < 0) $error++;
if ($_POST['origin'] && $_POST['originid']) if ($_POST['origin'] && $_POST['originid'])
{ {
$object->origin = $_POST['origin']; $object->origin = $_POST['origin'];
@ -464,6 +472,12 @@ if ($action == 'create' && !$error)
$parameters=array('objectsrc' => $objectsrc, 'idsrc' => $listoforders, 'colspan' => ' colspan="3"'); $parameters=array('objectsrc' => $objectsrc, 'idsrc' => $listoforders, 'colspan' => ' colspan="3"');
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
if (empty($reshook) && ! empty($extrafields->attribute_label))
{
$object=new Facture($db);
print $object->showOptionals($extrafields,'edit');
}
// Modele PDF // Modele PDF
print '<tr><td>'.$langs->trans('Model').'</td>'; print '<tr><td>'.$langs->trans('Model').'</td>';
print '<td>'; print '<td>';

View File

@ -163,7 +163,7 @@ if (empty($reshook))
// Change status of invoice // Change status of invoice
else if ($action == 'reopen' && $user->rights->facture->creer) { else if ($action == 'reopen' && $user->rights->facture->creer) {
$result = $object->fetch($id); $result = $object->fetch($id);
if ($object->statut == 2 || ($object->statut == 3 && $object->close_code != 'replaced')) { if ($object->statut == 2 || ($object->statut == 3 && $object->close_code != 'replaced') || ($object->statut == 1 && $object->paye == 1)) { // ($object->statut == 1 && $object->paye == 1) should not happened but can be found when data are corrupted
$result = $object->set_unpaid($user); $result = $object->set_unpaid($user);
if ($result > 0) { if ($result > 0) {
header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $id); header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $id);
@ -2930,16 +2930,16 @@ else if ($id > 0 || ! empty($ref))
// Ref // Ref
print '<tr><td width="20%">' . $langs->trans('Ref') . '</td>'; print '<tr><td width="20%">' . $langs->trans('Ref') . '</td>';
print '<td colspan="5">'; print '<td colspan="5">';
$morehtmlref = ''; $morehtmlright = '';
$discount = new DiscountAbsolute($db); $discount = new DiscountAbsolute($db);
$result = $discount->fetch(0, $object->id); $result = $discount->fetch(0, $object->id);
if ($result > 0) { if ($result > 0) {
$morehtmlref = ' (' . $langs->trans("CreditNoteConvertedIntoDiscount", $discount->getNomUrl(1, 'discount')) . ')'; $morehtmlright = '&nbsp; (' . $langs->trans("CreditNoteConvertedIntoDiscount", $discount->getNomUrl(1, 'discount')) . ')';
} }
if ($result < 0) { if ($result < 0) {
dol_print_error('', $discount->error); dol_print_error('', $discount->error);
} }
print $form->showrefnav($object, 'ref', $linkback, 1, 'facnumber', 'ref', $morehtmlref); print $form->showrefnav($object, 'ref', $linkback, 1, 'facnumber', 'ref', '', '', 0, '', '', $morehtmlright);
print '</td></tr>'; print '</td></tr>';
// Ref customer // Ref customer
@ -3905,8 +3905,8 @@ else if ($id > 0 || ! empty($ref))
if ((($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) if ((($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT)
|| ($object->type == Facture::TYPE_CREDIT_NOTE && empty($discount->id)) || ($object->type == Facture::TYPE_CREDIT_NOTE && empty($discount->id))
|| ($object->type == Facture::TYPE_DEPOSIT && empty($discount->id))) || ($object->type == Facture::TYPE_DEPOSIT && empty($discount->id)))
&& ($object->statut == 2 || $object->statut == 3) && ($object->statut == 2 || $object->statut == 3 || ($object->statut == 1 && $object->paye == 1)) // Condition ($object->statut == 1 && $object->paye == 1) should not happened but can be found due to corrupted data
&& $user->rights->facture->creer) // A paid invoice (partially or completely) && $user->rights->facture->creer) // A paid invoice (partially or completely)
{ {
if (! $objectidnext && $object->close_code != 'replaced') // Not replaced by another invoice if (! $objectidnext && $object->close_code != 'replaced') // Not replaced by another invoice
{ {

View File

@ -699,7 +699,13 @@ if ($search_company) $sql .= natural_search('s.nom', $search_company);
if ($search_montant_ht != '') $sql.= natural_search('f.total', $search_montant_ht, 1); if ($search_montant_ht != '') $sql.= natural_search('f.total', $search_montant_ht, 1);
if ($search_montant_vat != '') $sql.= natural_search('f.total_vat', $search_montant_vat, 1); if ($search_montant_vat != '') $sql.= natural_search('f.total_vat', $search_montant_vat, 1);
if ($search_montant_ttc != '') $sql.= natural_search('f.total_ttc', $search_montant_ttc, 1); if ($search_montant_ttc != '') $sql.= natural_search('f.total_ttc', $search_montant_ttc, 1);
if ($search_status != '' && $search_status >= 0) $sql.= " AND f.fk_statut = ".$db->escape($search_status); if ($search_status != '' && $search_status >= 0)
{
if ($search_status == '0') $sql.=" AND f.fk_statut = 0"; // draft
if ($search_status == '1') $sql.=" AND f.fk_statut = 1"; // unpayed
if ($search_status == '2') $sql.=" AND f.fk_statut = 2"; // payed Not that some correupted data may contains f.fk_statut = 1 AND f.paye = 1 (it means payed too but should not happend. If yes, reopen and reclassify billed)
if ($search_status == '3') $sql.=" AND f.fk_statut = 3"; // abandonned
}
if ($search_paymentmode > 0) $sql .= " AND f.fk_mode_reglement = ".$search_paymentmode.""; if ($search_paymentmode > 0) $sql .= " AND f.fk_mode_reglement = ".$search_paymentmode."";
if ($month > 0) if ($month > 0)
{ {

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2015 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2015-2016 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
@ -62,13 +62,17 @@ if (! empty($conf->projet->enabled) && empty($conf->global->MAIN_SEARCHFORM_PROJ
{ {
$arrayresult['searchintoprojects']=array('text'=>img_picto('','object_projectpub').' '.$langs->trans("SearchIntoProjects", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/projet/list.php?search_all='.urlencode($search_boxvalue)); $arrayresult['searchintoprojects']=array('text'=>img_picto('','object_projectpub').' '.$langs->trans("SearchIntoProjects", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/projet/list.php?search_all='.urlencode($search_boxvalue));
} }
if (! empty($conf->projet->enabled) && empty($conf->global->MAIN_SEARCHFORM_TASK_DISABLED) && $user->rights->projet->lire)
{
$arrayresult['searchintotasks']=array('text'=>img_picto('','object_task').' '.$langs->trans("SearchIntoTasks", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/projet/tasks/list.php?search_all='.urlencode($search_boxvalue));
}
if (! empty($conf->adherent->enabled) && empty($conf->global->MAIN_SEARCHFORM_ADHERENT_DISABLED) && $user->rights->adherent->lire) if (! empty($conf->adherent->enabled) && empty($conf->global->MAIN_SEARCHFORM_ADHERENT_DISABLED) && $user->rights->adherent->lire)
{ {
$arrayresult['searchintomember']=array('text'=>img_picto('','object_user').' '.$langs->trans("SearchIntoMembers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/adherents/list.php?sall='.urlencode($search_boxvalue)); $arrayresult['searchintomember']=array('text'=>img_picto('','object_user').' '.$langs->trans("SearchIntoMembers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/adherents/list.php?sall='.urlencode($search_boxvalue));
} }
if (! empty($conf->user->enabled) && empty($conf->global->MAIN_SEARCHFORM_PROJECT_DISABLED) && $user->rights->user->user->lire) if (! empty($conf->user->enabled) && empty($conf->global->MAIN_SEARCHFORM_USER_DISABLED) && $user->rights->user->user->lire)
{ {
$arrayresult['searchintouser']=array('text'=>img_picto('','object_user').' '.$langs->trans("SearchIntoUsers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/user/index.php?sall='.urlencode($search_boxvalue)); $arrayresult['searchintouser']=array('text'=>img_picto('','object_user').' '.$langs->trans("SearchIntoUsers", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/user/index.php?sall='.urlencode($search_boxvalue));
} }
@ -114,11 +118,11 @@ if (! empty($conf->ficheinter->enabled) && empty($conf->global->MAIN_SEARCHFORM_
// HR // HR
if (! empty($conf->expensereport->enabled) && empty($conf->global->MAIN_SEARCHFORM_EXPENSEREPORT_DISABLED) && $user->rights->expensereport->lire) if (! empty($conf->expensereport->enabled) && empty($conf->global->MAIN_SEARCHFORM_EXPENSEREPORT_DISABLED) && $user->rights->expensereport->lire)
{ {
$arrayresult['searchintoexpensereport']=array('text'=>img_picto('','object_trip').' '.$langs->trans("SearchIntoExpenseReports", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/expensereport/list.php?sall='.urlencode($search_boxvalue)); $arrayresult['searchintoexpensereport']=array('text'=>img_picto('','object_trip').' '.$langs->trans("SearchIntoExpenseReports", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm&sall='.urlencode($search_boxvalue));
} }
if (! empty($conf->holiday->enabled) && empty($conf->global->MAIN_SEARCHFORM_HOLIDAY_DISABLED) && $user->rights->holiday->read) if (! empty($conf->holiday->enabled) && empty($conf->global->MAIN_SEARCHFORM_HOLIDAY_DISABLED) && $user->rights->holiday->read)
{ {
$arrayresult['searchintoleaves']=array('text'=>img_picto('','object_holiday').' '.$langs->trans("SearchIntoLeaves", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/holiday/list.php?sall='.urlencode($search_boxvalue)); $arrayresult['searchintoleaves']=array('text'=>img_picto('','object_holiday').' '.$langs->trans("SearchIntoLeaves", $search_boxvalue), 'url'=>DOL_URL_ROOT.'/holiday/list.php?mainmenu=hrm&sall='.urlencode($search_boxvalue));
} }

View File

@ -794,11 +794,7 @@ class ExtraFields
// 4 : where clause filter on column or table extrafield, syntax field='value' or extra.field=value // 4 : where clause filter on column or table extrafield, syntax field='value' or extra.field=value
$keyList=(empty($InfoFieldList[2])?'rowid':$InfoFieldList[2].' as rowid'); $keyList=(empty($InfoFieldList[2])?'rowid':$InfoFieldList[2].' as rowid');
if (count($InfoFieldList) > 3 && ! empty($InfoFieldList[3]))
{
list($parentName, $parentField) = explode('|', $InfoFieldList[3]);
$keyList.= ', '.$parentField;
}
if (count($InfoFieldList) > 4 && ! empty($InfoFieldList[4])) if (count($InfoFieldList) > 4 && ! empty($InfoFieldList[4]))
{ {
if (strpos($InfoFieldList[4], 'extra.') !== false) if (strpos($InfoFieldList[4], 'extra.') !== false)
@ -808,6 +804,11 @@ class ExtraFields
$keyList=$InfoFieldList[2].' as rowid'; $keyList=$InfoFieldList[2].' as rowid';
} }
} }
if (count($InfoFieldList) > 3 && ! empty($InfoFieldList[3]))
{
list($parentName, $parentField) = explode('|', $InfoFieldList[3]);
$keyList.= ', '.$parentField;
}
$fields_label = explode('|',$InfoFieldList[1]); $fields_label = explode('|',$InfoFieldList[1]);
if (is_array($fields_label)) if (is_array($fields_label))

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2010-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2010-2014 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2010-2014 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
* *
@ -87,8 +87,7 @@ class HookManager
{ {
if (is_array($hooks)) $arrayhooks=$hooks; // New system if (is_array($hooks)) $arrayhooks=$hooks; // New system
else $arrayhooks=explode(':',$hooks); // Old system (for backward compatibility) else $arrayhooks=explode(':',$hooks); // Old system (for backward compatibility)
if (in_array($context,$arrayhooks) || in_array('all',$arrayhooks)) // We instantiate action class only if hook is required
if (in_array($context,$arrayhooks)) // We instantiate action class only if hook is required
{ {
$path = '/'.$module.'/class/'; $path = '/'.$module.'/class/';
$actionfile = 'actions_'.$module.'.class.php'; $actionfile = 'actions_'.$module.'.class.php';
@ -143,6 +142,7 @@ class HookManager
'formObjectOptions', 'formObjectOptions',
'formattachOptions', 'formattachOptions',
'formBuilddocLineOptions', 'formBuilddocLineOptions',
'getIdProfUrl',
'moveUploadedFile', 'moveUploadedFile',
'pdf_build_address', 'pdf_build_address',
'pdf_writelinedesc', 'pdf_writelinedesc',
@ -247,11 +247,7 @@ class HookManager
} }
} }
// TODO remove this. When there is something to print for an output hook, ->resPrint is filled.
//if ($hooktype == 'output') return $this->resPrint;
//if ($hooktype == 'returnvalue') return $result;
return ($error?-1:$resaction); return ($error?-1:$resaction);
} }
} }

View File

@ -5582,10 +5582,11 @@ class Form
* @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 * @param int $nodbprefix Do not include DB prefix to forge table name
* @param string $morehtmlleft More html code to show before ref * @param string $morehtmlleft More html code to show before ref
* @param string $morehtmlright More html code to show before navigation arrows * @param string $morehtmlstatus More html code to show under navigation arrows (status place)
* @param string $morehtmlright More html code to show after ref
* @return string Portion HTML avec ref + boutons nav * @return string Portion HTML avec ref + boutons nav
*/ */
function showrefnav($object,$paramid,$morehtml='',$shownav=1,$fieldid='rowid',$fieldref='ref',$morehtmlref='',$moreparam='',$nodbprefix=0,$morehtmlleft='',$morehtmlright='') function showrefnav($object,$paramid,$morehtml='',$shownav=1,$fieldid='rowid',$fieldref='ref',$morehtmlref='',$moreparam='',$nodbprefix=0,$morehtmlleft='',$morehtmlstatus='',$morehtmlright='')
{ {
global $langs,$conf; global $langs,$conf;
@ -5604,7 +5605,7 @@ class Form
//print "xx".$previous_ref."x".$next_ref; //print "xx".$previous_ref."x".$next_ref;
$ret.='<div style="vertical-align: middle">'; $ret.='<div style="vertical-align: middle">';
$ret.='<div class="inline-block floatleft">'.$morehtmlleft.'</div>'; if ($morehtmlleft) $ret.='<div class="inline-block floatleft">'.$morehtmlleft.'</div>';
$ret.='<div class="inline-block floatleft valignmiddle refid'.(($shownav && ($previous_ref || $next_ref))?' refidpadding':'').'">'; $ret.='<div class="inline-block floatleft valignmiddle refid'.(($shownav && ($previous_ref || $next_ref))?' refidpadding':'').'">';
@ -5624,6 +5625,8 @@ class Form
} }
$ret.='</div>'; $ret.='</div>';
if ($morehtmlright) $ret.='<div class="inline-block floatleft">'.$morehtmlright.'</div>';
if ($previous_ref || $next_ref || $morehtml) if ($previous_ref || $next_ref || $morehtml)
{ {
$ret.='<div class="pagination"><ul>'; $ret.='<div class="pagination"><ul>';
@ -5641,7 +5644,7 @@ class Form
{ {
$ret.='</ul></div>'; $ret.='</ul></div>';
} }
if ($morehtmlright) $ret.='<div class="statusref">'.$morehtmlright.'</div>'; if ($morehtmlstatus) $ret.='<div class="statusref">'.$morehtmlstatus.'</div>';
$ret.='</div>'; $ret.='</div>';
return $ret; return $ret;

View File

@ -250,8 +250,9 @@ class FormMail extends Form
$hookmanager->initHooks(array('formmail')); $hookmanager->initHooks(array('formmail'));
$parameters=array( $parameters=array(
'addfileaction' => $addfileaction, 'addfileaction' => $addfileaction,
'removefileaction'=> $removefileaction 'removefileaction'=> $removefileaction,
'trackid'=> $this->trackid
); );
$reshook=$hookmanager->executeHooks('getFormMail', $parameters, $this); $reshook=$hookmanager->executeHooks('getFormMail', $parameters, $this);

View File

@ -161,6 +161,7 @@ class Translate
{ {
global $conf,$db; global $conf,$db;
// Load $this->tab_translate[] from database
if (count($this->tab_translate) == 0) $this->loadFromDatabase($db); // Nothing was loaded yet, so we load database. if (count($this->tab_translate) == 0) $this->loadFromDatabase($db); // Nothing was loaded yet, so we load database.
// Check parameters // Check parameters
@ -241,7 +242,7 @@ class Translate
$tmparray=dol_getcache($usecachekey); $tmparray=dol_getcache($usecachekey);
if (is_array($tmparray) && count($tmparray)) if (is_array($tmparray) && count($tmparray))
{ {
$this->tab_translate+=$tmparray; // Faster than array_merge($tmparray,$this->tab_translate). Note: If a valuer already exists into tab_translate, value into tmparaay is not added. $this->tab_translate+=$tmparray; // Faster than array_merge($tmparray,$this->tab_translate). Note: If a value already exists into tab_translate, value into tmparaay is not added.
//print $newdomain."\n"; //print $newdomain."\n";
//var_dump($this->tab_translate); //var_dump($this->tab_translate);
if ($alt == 2) $fileread=1; if ($alt == 2) $fileread=1;
@ -261,7 +262,8 @@ class Translate
{ {
$tab=explode('=',$line,2); $tab=explode('=',$line,2);
$key=trim($tab[0]); $key=trim($tab[0]);
//print "Domain=$domain, found a string for $tab[0] with value $tab[1]<br>"; //if ($domain == 'orders') print "Domain=$domain, found a string for $tab[0] with value $tab[1]. Currently in cache ".$this->tab_translate[$key]."<br>";
//if ($key == 'Order') print "Domain=$domain, found a string for key=$key=$tab[0] with value $tab[1]. Currently in cache ".$this->tab_translate[$key]."<br>";
if (empty($this->tab_translate[$key]) && isset($tab[1])) // If translation was already found, we must not continue, even if MAIN_FORCELANGDIR is set (MAIN_FORCELANGDIR is to replace lang dir, not to overwrite entries) if (empty($this->tab_translate[$key]) && isset($tab[1])) // If translation was already found, we must not continue, even if MAIN_FORCELANGDIR is set (MAIN_FORCELANGDIR is to replace lang dir, not to overwrite entries)
{ {
$value=trim(preg_replace('/\\n/',"\n",$tab[1])); $value=trim(preg_replace('/\\n/',"\n",$tab[1]));
@ -278,6 +280,7 @@ class Translate
else else
{ {
$this->tab_translate[$key]=$value; $this->tab_translate[$key]=$value;
//if ($domain == 'orders') print "$tab[0] value $value<br>";
if ($usecachekey) $tabtranslatedomain[$key]=$value; // To save lang content in cache if ($usecachekey) $tabtranslatedomain[$key]=$value; // To save lang content in cache
} }
} }

View File

@ -133,26 +133,26 @@ oConnector.CheckError = function( responseXml )
switch ( iErrorNumber ) switch ( iErrorNumber )
{ {
case 0 : case 0:
break ; break;
case 1 : // Custom error. Message placed in the "text" attribute. case 1: // Custom error. Message placed in the "text" attribute.
alert( oErrorNode.attributes.getNamedItem('text').value ); alert( oErrorNode.attributes.getNamedItem('text').value );
break ; break;
case 101 : case 101:
alert( 'Folder already exists' ); alert( 'Folder already exists' );
break ; break;
case 102 : case 102:
alert( 'Invalid folder name' ); alert( 'Invalid folder name' );
break ; break;
case 103 : case 103:
alert( 'You have no permissions to create the folder' ); alert( 'You have no permissions to create the folder' );
break ; break;
case 110 : case 110:
alert( 'Unknown error creating folder' ); alert( 'Unknown error creating folder' );
break ; break;
default : default:
alert( 'Error on your request. Error number: ' + iErrorNumber ); alert( 'Error on your request. Error number: ' + iErrorNumber );
break ; break;
} }
} }
return iErrorNumber ; return iErrorNumber ;

View File

@ -91,24 +91,24 @@ function CreateFolderCallBack( fckXml )
switch ( iErrorNumber ) switch ( iErrorNumber )
{ {
case 0 : case 0:
window.parent.frames['frmResourcesList'].Refresh(); window.parent.frames['frmResourcesList'].Refresh();
break ; break;
case 101 : case 101:
alert( 'Folder already exists' ); alert( 'Folder already exists' );
break ; break;
case 102 : case 102:
alert( 'Invalid folder name' ); alert( 'Invalid folder name' );
break ; break;
case 103 : case 103:
alert( 'You have no permissions to create the folder' ); alert( 'You have no permissions to create the folder' );
break ; break;
case 110 : case 110:
alert( 'Unknown error creating folder' ); alert( 'Unknown error creating folder' );
break ; break;
default : default:
alert( 'Error creating folder. Error number: ' + iErrorNumber ); alert( 'Error creating folder. Error number: ' + iErrorNumber );
break ; break;
} }
*/ */
} }

View File

@ -95,22 +95,22 @@ function OnUploadCompleted( errorNumber, data )
switch ( errorNumber ) switch ( errorNumber )
{ {
case 0 : case 0:
window.parent.frames['frmResourcesList'].Refresh(); window.parent.frames['frmResourcesList'].Refresh();
break ; break;
case 1 : // Custom error. case 1: // Custom error.
alert( data ); alert( data );
break ; break;
case 201 : case 201:
window.parent.frames['frmResourcesList'].Refresh(); window.parent.frames['frmResourcesList'].Refresh();
alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + data + '"' ); alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + data + '"' );
break ; break;
case 202 : case 202:
alert( 'Invalid file' ); alert( 'Invalid file' );
break ; break;
default : default:
alert( 'Error on file upload. Error number: ' + errorNumber ); alert( 'Error on file upload. Error number: ' + errorNumber );
break ; break;
} }
} }

View File

@ -160,14 +160,14 @@ function CreateFolder( $resourceType, $currentFolder )
switch ( $sErrorMsg ) switch ( $sErrorMsg )
{ {
case '' : case '':
$sErrorNumber = '0' ; $sErrorNumber = '0' ;
break ; break;
case 'Invalid argument' : case 'Invalid argument' :
case 'No such file or directory' : case 'No such file or directory' :
$sErrorNumber = '102' ; // Path too long. $sErrorNumber = '102' ; // Path too long.
break ; break ;
default : default:
$sErrorNumber = '110' ; $sErrorNumber = '110' ;
break ; break ;
} }

View File

@ -606,8 +606,8 @@ function clean_url($url,$http=1)
* Returns an email value with obfuscated parts. * Returns an email value with obfuscated parts.
* *
* @param string $mail Email * @param string $mail Email
* @param string $replace Replacement character (defaul : *) * @param string $replace Replacement character (defaul: *)
* @param int $nbreplace Number of replacement character (default : 8) * @param int $nbreplace Number of replacement character (default: 8)
* @param int $nbdisplaymail Number of character unchanged (default: 4) * @param int $nbdisplaymail Number of character unchanged (default: 4)
* @param int $nbdisplaydomain Number of character unchanged of domain (default: 3) * @param int $nbdisplaydomain Number of character unchanged of domain (default: 3)
* @param bool $displaytld Display tld (default: true) * @param bool $displaytld Display tld (default: true)

View File

@ -485,7 +485,7 @@ class pdf_einstein extends ModelePDFCommandes
$this->tva[$vatrate] += $tvaligne; $this->tva[$vatrate] += $tvaligne;
// Add line // Add line
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1)) if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
{ {
$pdf->setPage($pageposafter); $pdf->setPage($pageposafter);
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80))); $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));

View File

@ -279,7 +279,7 @@ class pdf_merou extends ModelePdfExpedition
$pdf->MultiCell(30, 3, $object->lines[$i]->qty_shipped, 0, 'C', 0); $pdf->MultiCell(30, 3, $object->lines[$i]->qty_shipped, 0, 'C', 0);
// Add line // Add line
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1)) if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
{ {
$pdf->setPage($pageposafter); $pdf->setPage($pageposafter);
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80))); $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));

View File

@ -467,7 +467,7 @@ class pdf_rouget extends ModelePdfExpedition
$pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxqtytoship), 3, $object->lines[$i]->qty_shipped,'','C'); $pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxqtytoship), 3, $object->lines[$i]->qty_shipped,'','C');
// Add line // Add line
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1)) if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
{ {
$pdf->setPage($pageposafter); $pdf->setPage($pageposafter);
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80))); $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));

View File

@ -587,7 +587,7 @@ class pdf_crabe extends ModelePDFFactures
if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage; if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage;
// Add line // Add line
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1)) if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
{ {
$pdf->setPage($pageposafter); $pdf->setPage($pageposafter);
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80))); $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));

View File

@ -434,6 +434,7 @@ class doc_generic_task_odt extends ModelePDFTask
} }
$project= new Project($this->db); $project= new Project($this->db);
$project->fetch($object->fk_project); $project->fetch($object->fk_project);
$project->fetch_thirdparty();
$dir = $conf->projet->dir_output. "/" . $project->ref. "/"; $dir = $conf->projet->dir_output. "/" . $project->ref. "/";
$objectref = dol_sanitizeFileName($object->ref); $objectref = dol_sanitizeFileName($object->ref);
@ -468,7 +469,7 @@ class doc_generic_task_odt extends ModelePDFTask
dol_mkdir($conf->projet->dir_temp); dol_mkdir($conf->projet->dir_temp);
$socobject=$object->thirdparty; $socobject=$project->thirdparty;
// Make substitution // Make substitution
$substitutionarray=array( $substitutionarray=array(

View File

@ -573,7 +573,7 @@ class pdf_azur extends ModelePDFPropales
if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage; if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage;
// Add line // Add line
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1)) if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
{ {
$pdf->setPage($pageposafter); $pdf->setPage($pageposafter);
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80))); $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));

View File

@ -448,7 +448,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
$this->localtax2[$localtax2rate]+=$localtax2ligne; $this->localtax2[$localtax2rate]+=$localtax2ligne;
// Add line // Add line
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1)) if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
{ {
$pdf->setPage($pageposafter); $pdf->setPage($pageposafter);
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80))); $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));

View File

@ -470,7 +470,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
// Add line // Add line
if ($conf->global->MAIN_PDF_DASH_BETWEEN_LINES && $i < ($nblignes - 1)) if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
{ {
$pdf->setPage($pageposafter); $pdf->setPage($pageposafter);
$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80))); $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));

View File

@ -85,7 +85,9 @@ $alwayseditable=$extrafields->attribute_alwayseditable[$attrname];
$param=$extrafields->attribute_param[$attrname]; $param=$extrafields->attribute_param[$attrname];
$perms=$extrafields->attribute_perms[$attrname]; $perms=$extrafields->attribute_perms[$attrname];
$list=$extrafields->attribute_list[$attrname]; $list=$extrafields->attribute_list[$attrname];
//$ishidden=$extrafields->attribute_hidden[$attrname]; if (! empty($conf->global->MAIN_CAN_HIDE_EXTRAFIELDS)) {
$ishidden=$extrafields->attribute_hidden[$attrname];
}
if((($type == 'select') || ($type == 'checkbox') || ($type == 'radio')) && is_array($param)) if((($type == 'select') || ($type == 'checkbox') || ($type == 'radio')) && is_array($param))
{ {

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com> * Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
@ -51,22 +51,21 @@ $month_end = GETPOST("month_end","int");
$year_end = GETPOST("year_end","int"); $year_end = GETPOST("year_end","int");
$optioncss = GETPOST('optioncss','alpha'); $optioncss = GETPOST('optioncss','alpha');
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test must be present to be compatible with all browsers
{
$search_ref="";
$search_user="";
$search_amount_ht="";
$search_amount_ttc="";
$search_status="";
$month_start="";
$year_start="";
$month_end="";
$year_end="";
}
if ($search_status == '') $search_status=-1; if ($search_status == '') $search_status=-1;
if ($search_user == '') $search_user=-1; if ($search_user == '') $search_user=-1;
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
$contextpage='expensereportlist';
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('expensereportlist'));
$extrafields = new ExtraFields($db);
// fetch optionals attributes and labels
$extralabels = $extrafields->fetch_name_optionals_label('expensereport');
$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
// List of fields to search into when doing a "search in all" // List of fields to search into when doing a "search in all"
$fieldstosearchall = array( $fieldstosearchall = array(
'd.ref'=>'Ref', 'd.ref'=>'Ref',
@ -75,6 +74,33 @@ $fieldstosearchall = array(
); );
/*
* Actions
*/
$parameters=array('socid'=>$socid);
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test must be present to be compatible with all browsers
{
$search_ref="";
$search_user="";
$search_amount_ht="";
$search_amount_ttc="";
$search_status="";
$month_start="";
$year_start="";
$month_end="";
$year_end="";
$search_array_options=array();
}
/* /*
* View * View
*/ */
@ -108,7 +134,6 @@ $sql.= " u.rowid as id_user, u.firstname, u.lastname";
$sql.= " FROM ".MAIN_DB_PREFIX."expensereport as d"; $sql.= " FROM ".MAIN_DB_PREFIX."expensereport as d";
$sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON d.fk_user_author = u.rowid"; $sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON d.fk_user_author = u.rowid";
$sql.= " WHERE d.entity = ".$conf->entity; $sql.= " WHERE d.entity = ".$conf->entity;
// Search all // Search all
if (!empty($sall)) if (!empty($sall))
{ {
@ -192,12 +217,21 @@ if ($resql)
$i = 0; $i = 0;
$param=""; $param="";
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
if ($search_ref) $param.="&search_ref=".$search_ref; if ($search_ref) $param.="&search_ref=".$search_ref;
if ($search_user) $param.="&search_user=".$search_user; if ($search_user) $param.="&search_user=".$search_user;
if ($search_amount_ht) $param.="&search_amount_ht=".$search_amount_ht; if ($search_amount_ht) $param.="&search_amount_ht=".$search_amount_ht;
if ($search_amount_ttc) $param.="&search_amount_ttc=".$search_amount_ttc; if ($search_amount_ttc) $param.="&search_amount_ttc=".$search_amount_ttc;
if ($search_status >= 0) $param.="&search_status=".$search_status; if ($search_status >= 0) $param.="&search_status=".$search_status;
if ($optioncss != '') $param.='&optioncss='.$optioncss; if ($optioncss != '') $param.='&optioncss='.$optioncss;
// Add $param from extra fields
foreach ($search_array_options as $key => $val)
{
$crit=$val;
$tmpkey=preg_replace('/search_options_/','',$key);
if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val);
}
print_barre_liste($langs->trans("ListTripsAndExpenses"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords); print_barre_liste($langs->trans("ListTripsAndExpenses"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n"; print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n";
@ -210,6 +244,7 @@ if ($resql)
if ($sall) if ($sall)
{ {
foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
} }
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';

View File

@ -958,8 +958,8 @@ class Fichinter extends CommonObject
if ($objsoc->fetch($socid)>0) if ($objsoc->fetch($socid)>0)
{ {
$this->socid = $objsoc->id; $this->socid = $objsoc->id;
$this->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); //$this->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0);
$this->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); //$this->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0);
$this->fk_project = ''; $this->fk_project = '';
$this->fk_delivery_address = ''; $this->fk_delivery_address = '';
} }
@ -987,8 +987,7 @@ class Fichinter extends CommonObject
// Add lines because it is not included into create function // Add lines because it is not included into create function
foreach ($this->lines as $line) foreach ($this->lines as $line)
{ {
// TODO $this->addline($user, $this->id, $line->desc, $line->datei, $line->duration);
} }
// Hook of thirdparty module // Hook of thirdparty module
@ -1132,9 +1131,11 @@ class Fichinter extends CommonObject
$line = new FichinterLigne($this->db); $line = new FichinterLigne($this->db);
$line->id = $objp->rowid; $line->id = $objp->rowid;
$line->desc = $objp->description; $line->desc = $objp->description;
$line->duration = $objp->duree;
//For invoicing we calculing hours //For invoicing we calculing hours
$line->qty = round($objp->duree/3600,2); $line->qty = round($objp->duree/3600,2);
$line->date = $this->db->jdate($objp->date); $line->date = $this->db->jdate($objp->date);
$line->datei = $this->db->jdate($objp->date);
$line->rang = $objp->rang; $line->rang = $objp->rang;
$line->product_type = 1; $line->product_type = 1;

View File

@ -4,7 +4,7 @@
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr> * Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr> * Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.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
@ -64,13 +64,13 @@ $search_status=GETPOST('search_status');
$sall=GETPOST('sall'); $sall=GETPOST('sall');
$optioncss = GETPOST('optioncss','alpha'); $optioncss = GETPOST('optioncss','alpha');
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
{ $hookmanager->initHooks(array('interventionlist'));
$search_ref=""; $extrafields = new ExtraFields($db);
$search_company="";
$search_desc=""; // fetch optionals attributes and labels
$search_status=""; $extralabels = $extrafields->fetch_name_optionals_label('fichinter');
} $search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
// List of fields to search into when doing a "search in all" // List of fields to search into when doing a "search in all"
$fieldstosearchall = array( $fieldstosearchall = array(
@ -82,6 +82,52 @@ $fieldstosearchall = array(
if (empty($user->socid)) $fieldstosearchall["f.note_private"]="NotePrivate"; if (empty($user->socid)) $fieldstosearchall["f.note_private"]="NotePrivate";
if (! empty($conf->global->FICHINTER_DISABLE_DETAILS)) unset($fieldstosearchall['f.description']); if (! empty($conf->global->FICHINTER_DISABLE_DETAILS)) unset($fieldstosearchall['f.description']);
// Definition of fields for list
$arrayfields=array(
'f.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
's.nom'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1),
'f.fk_project'=>array('label'=>$langs->trans("Project"), 'checked'=>1),
'f.fk_contrat'=>array('label'=>$langs->trans("Contract"), 'checked'=>1),
'f.description'=>array('label'=>$langs->trans("Description"), 'checked'=>1),
'fd.description'=>array('label'=>"xx", 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS)?1:0),
'fd.date'=>array('label'=>$langs->trans("Date"), 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS)?1:0),
'fd.duree'=>array('label'=>$langs->trans("Duration"), 'checked'=>1, 'enabled'=>empty($conf->global->FICHINTER_DISABLE_DETAILS)?1:0),
'f.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
'f.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
'f.fk_statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
);
// Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
{
foreach($extrafields->attribute_label as $key => $val)
{
$arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>$extrafields->attribute_list[$key], 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>$extrafields->attribute_perms[$key]);
}
}
/*
* Acions
*/
$parameters=array();
$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
{
$search_ref="";
$search_company="";
$search_project="";
$search_contract="";
$search_desc="";
$search_status="";
$search_array_options=array();
}
/* /*
* View * View
@ -94,13 +140,20 @@ llxHeader('', $langs->trans("Intervention"));
$sql = "SELECT"; $sql = "SELECT";
$sql.= " f.ref, f.rowid as fichid, f.fk_statut, f.description,"; $sql.= " f.ref, f.rowid as fichid, f.fk_statut, f.description, f.datec as date_creation, f.tms as date_update,";
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sql.= " fd.description as descriptiondetail, fd.date as dp, fd.duree,"; if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sql.= " fd.description as descriptiondetail, fd.date as dp, fd.duree,";
$sql.= " s.nom as name, s.rowid as socid, s.client"; $sql.= " s.nom as name, s.rowid as socid, s.client";
$sql.= " FROM (".MAIN_DB_PREFIX."societe as s"; // Add fields from extrafields
if (! $user->rights->societe->client->voir && empty($socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : '');
$sql.= ", ".MAIN_DB_PREFIX."fichinter as f)"; // Add fields from hooks
$parameters=array();
$reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook
$sql.=$hookmanager->resPrint;
$sql.= " FROM ".MAIN_DB_PREFIX."fichinter as f";
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinter_extrafields as ef on (f.rowid = ef.fk_object)";
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as fd ON fd.fk_fichinter = f.rowid"; if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as fd ON fd.fk_fichinter = f.rowid";
if (! $user->rights->societe->client->voir && empty($socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
$sql.= " WHERE f.fk_soc = s.rowid "; $sql.= " WHERE f.fk_soc = s.rowid ";
$sql.= " AND f.entity = ".$conf->entity; $sql.= " AND f.entity = ".$conf->entity;
if ($search_ref) { if ($search_ref) {
@ -123,6 +176,23 @@ if ($socid)
if ($sall) { if ($sall) {
$sql .= natural_search(array_keys($fieldstosearchall), $sall); $sql .= natural_search(array_keys($fieldstosearchall), $sall);
} }
// Add where from extra fields
foreach ($search_array_options as $key => $val)
{
$crit=$val;
$tmpkey=preg_replace('/search_options_/','',$key);
$typ=$extrafields->attribute_type[$tmpkey];
$mode=0;
if (in_array($typ, array('int','double'))) $mode=1; // Search on a numeric
if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit)))
{
$sql .= natural_search('ef.'.$tmpkey, $crit, $mode);
}
}
// Add where from hooks
$parameters=array();
$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
$sql.=$hookmanager->resPrint;
$sql.= $db->order($sortfield,$sortorder); $sql.= $db->order($sortfield,$sortorder);
$totalnboflines=0; $totalnboflines=0;
@ -149,6 +219,13 @@ if ($result)
if ($search_desc) $param.="&search_desc=".urlencode($search_desc); if ($search_desc) $param.="&search_desc=".urlencode($search_desc);
if ($search_status != '' && $search_status > -1) $param.="&search_status=".urlencode($search_status); if ($search_status != '' && $search_status > -1) $param.="&search_status=".urlencode($search_status);
if ($optioncss != '') $param.='&optioncss='.$optioncss; if ($optioncss != '') $param.='&optioncss='.$optioncss;
// Add $param from extra fields
foreach ($search_array_options as $key => $val)
{
$crit=$val;
$tmpkey=preg_replace('/search_options_/','',$key);
if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val);
}
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n"; print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">'; if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
@ -166,41 +243,119 @@ if ($result)
print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall); print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
} }
print '<table class="noborder" width="100%">'; $moreforfilter='';
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.ref","",$param,'width="15%"',$sortfield,$sortorder); if (! empty($arrayfields['f.ref']['checked'])) print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.ref","",$param,'width="15%"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder); if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Description"),$_SERVER["PHP_SELF"],"f.description","",$param,'',$sortfield,$sortorder); if (! empty($arrayfields['f.description']['checked'])) print_liste_field_titre($langs->trans("Description"),$_SERVER["PHP_SELF"],"f.description","",$param,'',$sortfield,$sortorder);
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) if (! empty($arrayfields['fd.description']['checked'])) print_liste_field_titre('',$_SERVER["PHP_SELF"],'');
if (! empty($arrayfields['fd.date']['checked'])) print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"fd.date","",$param,'align="center"',$sortfield,$sortorder);
if (! empty($arrayfields['fd.duree']['checked'])) print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],"fd.duree","",$param,'align="right"',$sortfield,$sortorder);
// Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
{ {
print_liste_field_titre('',$_SERVER["PHP_SELF"],''); foreach($extrafields->attribute_label as $key => $val)
print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"fd.date","",$param,'align="center"',$sortfield,$sortorder); {
print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],"fd.duree","",$param,'align="right"',$sortfield,$sortorder); if (! empty($arrayfields["ef.".$key]['checked']))
{
$align=$extrafields->getAlignFlag($key);
print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
}
}
} }
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.fk_statut","",$param,'align="right"',$sortfield,$sortorder); // Hook fields
print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); $parameters=array('arrayfields'=>$arrayfields);
$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
if (! empty($arrayfields['f.datec']['checked'])) print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"f.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
if (! empty($arrayfields['f.tms']['checked'])) print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"f.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
if (! empty($arrayfields['f.fk_statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.fk_statut","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
print "</tr>\n"; print "</tr>\n";
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td class="liste_titre">'; if (! empty($arrayfields['f.ref']['checked']))
print '<input type="text" class="flat" name="search_ref" value="'.$search_ref.'" size="8">'; {
print '</td><td class="liste_titre">'; print '<td class="liste_titre">';
print '<input type="text" class="flat" name="search_company" value="'.$search_company.'" size="10">'; print '<input type="text" class="flat" name="search_ref" value="'.$search_ref.'" size="8">';
print '</td><td class="liste_titre">'; print '</td>';
print '<input type="text" class="flat" name="search_desc" value="'.$search_desc.'" size="12">'; }
print '</td>'; if (! empty($arrayfields['s.nom']['checked']))
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) {
{ print '<td class="liste_titre">';
// Desc of line print '<input type="text" class="flat" name="search_company" value="'.$search_company.'" size="10">';
print '<td class="liste_titre">&nbsp;</td>'; print '</td>';
print '<td class="liste_titre">&nbsp;</td>'; }
if (! empty($arrayfields['f.description']['checked']))
{
print '<td class="liste_titre">';
print '<input type="text" class="flat" name="search_desc" value="'.$search_desc.'" size="12">';
print '</td>';
}
if (! empty($arrayfields['fd.description']['checked']))
{
// Desc of line
print '<td class="liste_titre">&nbsp;</td>'; print '<td class="liste_titre">&nbsp;</td>';
}
if (! empty($arrayfields['fd.date']['checked']))
{
print '<td class="liste_titre">&nbsp;</td>';
}
if (! empty($arrayfields['fd.duree']['checked']))
{
print '<td class="liste_titre">&nbsp;</td>';
} }
print '<td class="liste_titre" align="right">'; // Extra fields
$liststatus=$interventionstatic->statuts_short; if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 1); {
print '</td>'; foreach($extrafields->attribute_label as $key => $val)
{
if (! empty($arrayfields["ef.".$key]['checked']))
{
$align=$extrafields->getAlignFlag($key);
$typeofextrafield=$extrafields->attribute_type[$key];
print '<td class="liste_titre'.($align?' '.$align:'').'">';
if (in_array($typeofextrafield, array('varchar', 'int', 'double', 'select')))
{
$crit=$val;
$tmpkey=preg_replace('/search_options_/','',$key);
$searchclass='';
if (in_array($typeofextrafield, array('varchar', 'select'))) $searchclass='searchstring';
if (in_array($typeofextrafield, array('int', 'double'))) $searchclass='searchnum';
print '<input class="flat'.($searchclass?' '.$searchclass:'').'" size="4" type="text" name="search_options_'.$tmpkey.'" value="'.dol_escape_htmltag($search_array_options['search_options_'.$tmpkey]).'">';
}
print '</td>';
}
}
}
// Fields from hook
$parameters=array('arrayfields'=>$arrayfields);
$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
if (! empty($arrayfields['f.datec']['checked']))
{
// Date creation
print '<td class="liste_titre">';
print '</td>';
}
if (! empty($arrayfields['f.tms']['checked']))
{
// Date modification
print '<td class="liste_titre">';
print '</td>';
}
if (! empty($arrayfields['f.fk_statut']['checked']))
{
print '<td class="liste_titre" align="right">';
$liststatus=$interventionstatic->statuts_short;
print $form->selectarray('search_status', $liststatus, $search_status, 1, 0, 0, '', 1);
print '</td>';
}
print '<td class="liste_titre" align="right">'; print '<td class="liste_titre" align="right">';
$searchpitco=$form->showFilterAndCheckAddButtons(0); $searchpitco=$form->showFilterAndCheckAddButtons(0);
print $searchpitco; print $searchpitco;
@ -212,44 +367,129 @@ if ($result)
$var=True; $var=True;
$total = 0; $total = 0;
$i = 0; $i = 0;
$totalarray=array();
while ($i < min($num, $limit)) while ($i < min($num, $limit))
{ {
$objp = $db->fetch_object($result); $obj = $db->fetch_object($result);
$interventionstatic->id=$obj->fichid;
$interventionstatic->ref=$obj->ref;
$interventionstatic->statut=$obj->fk_statut;
$var=!$var; $var=!$var;
print "<tr ".$bc[$var].">"; print "<tr ".$bc[$var].">";
print "<td>"; if (! empty($arrayfields['f.ref']['checked']))
$interventionstatic->id=$objp->fichid;
$interventionstatic->ref=$objp->ref;
print $interventionstatic->getNomUrl(1);
print "</td>\n";
print '<td>';
$companystatic->name=$objp->name;
$companystatic->id=$objp->socid;
$companystatic->client=$objp->client;
print $companystatic->getNomUrl(1,'',44);
print '</td>';
print '<td>'.dol_trunc(dolGetFirstLineOfText($objp->description),48).'</td>';
if (empty($conf->global->FICHINTER_DISABLE_DETAILS))
{ {
//print '<td>'.dol_trunc(dol_escape_htmltag(dolGetFirstLineOfText($objp->descriptiondetail)),48).'</td>'; print "<td>";
print '<td>'.dolGetFirstLineOfText($objp->descriptiondetail).'</td>'; print $interventionstatic->getNomUrl(1);
print '<td align="center">'.dol_print_date($db->jdate($objp->dp),'dayhour')."</td>\n"; print "</td>\n";
print '<td align="right">'.convertSecondToTime($objp->duree).'</td>'; if (! $i) $totalarray['nbfield']++;
}
if (! empty($arrayfields['s.nom']['checked']))
{
print '<td>';
$companystatic->name=$obj->name;
$companystatic->id=$obj->socid;
$companystatic->client=$obj->client;
print $companystatic->getNomUrl(1,'',44);
print '</td>';
if (! $i) $totalarray['nbfield']++;
}
if (! empty($arrayfields['f.description']['checked']))
{
print '<td>'.dol_trunc(dolGetFirstLineOfText($obj->description),48).'</td>';
if (! $i) $totalarray['nbfield']++;
}
if (! empty($arrayfields['fd.description']['checked']))
{
//print '<td>'.dol_trunc(dol_escape_htmltag(dolGetFirstLineOfText($obj->descriptiondetail)),48).'</td>';
print '<td>'.dolGetFirstLineOfText($obj->descriptiondetail).'</td>';
if (! $i) $totalarray['nbfield']++;
}
if (! empty($arrayfields['fd.date']['checked']))
{
print '<td align="center">'.dol_print_date($db->jdate($obj->dp),'dayhour')."</td>\n";
if (! $i) $totalarray['nbfield']++;
}
if (! empty($arrayfields['fd.duree']['checked']))
{
print '<td align="right">'.convertSecondToTime($obj->duree, 'allhourmin').'</td>';
if (! $i) $totalarray['nbfield']++;
if (! $i) $totalarray['totaldurationfield']=$totalarray['nbfield'];
$totalarray['totalduration']+=$obj->duree;
} }
print '<td align="right">'.$interventionstatic->LibStatut($objp->fk_statut,5).'</td>';
print '<td>&nbsp;</td>'; // Extra fields
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
{
foreach($extrafields->attribute_label as $key => $val)
{
if (! empty($arrayfields["ef.".$key]['checked']))
{
print '<td';
$align=$extrafields->getAlignFlag($key);
if ($align) print ' align="'.$align.'"';
print '>';
$tmpkey='options_'.$key;
print $extrafields->showOutputField($key, $obj->$tmpkey, '', 1);
print '</td>';
if (! $i) $totalarray['nbfield']++;
}
}
}
// Fields from hook
$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
// Date creation
if (! empty($arrayfields['f.datec']['checked']))
{
print '<td align="center">';
print dol_print_date($db->jdate($obj->date_creation), 'dayhour');
print '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Date modification
if (! empty($arrayfields['f.tms']['checked']))
{
print '<td align="center">';
print dol_print_date($db->jdate($obj->date_update), 'dayhour');
print '</td>';
if (! $i) $totalarray['nbfield']++;
}
// Status
if (! empty($arrayfields['f.fk_statut']['checked']))
{
print '<td align="right">'.$interventionstatic->LibStatut($obj->fk_statut,5).'</td>';
if (! $i) $totalarray['nbfield']++;
}
// Action column
print '<td></td>';
if (! $i) $totalarray['nbfield']++;
print "</tr>\n"; print "</tr>\n";
$total += $objp->duree; $total += $obj->duree;
$i++; $i++;
} }
$rowspan=3;
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) // Show total line
if (isset($totalarray['totalduration']))
{ {
print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").'</td>'; print '<tr class="liste_total">';
print '<td align="right" class="nowrap liste_total">'.convertSecondToTime($total).'</td><td>&nbsp;</td><td>&nbsp;</td>'; $i=0;
print '</tr>'; while ($i < $totalarray['nbfield'])
{
$i++;
if ($i == 1)
{
if ($num < $limit) print '<td align="left">'.$langs->trans("Total").'</td>';
else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
}
elseif ($totalarray['totaldurationfield'] == $i) print '<td align="right">'.convertSecondToTime($totalarray['totalduration'], 'allhourmin').'</td>';
else print '<td></td>';
}
print '</tr>';
} }
print '</table>'; print '</table>';

View File

@ -31,7 +31,7 @@
*/ */
if (! defined('DOL_APPLICATION_TITLE')) define('DOL_APPLICATION_TITLE','Dolibarr'); if (! defined('DOL_APPLICATION_TITLE')) define('DOL_APPLICATION_TITLE','Dolibarr');
if (! defined('DOL_VERSION')) define('DOL_VERSION','4.0.0-beta'); if (! defined('DOL_VERSION')) define('DOL_VERSION','4.0.0-rc');
if (! defined('EURO')) define('EURO',chr(128)); if (! defined('EURO')) define('EURO',chr(128));

View File

@ -71,6 +71,11 @@ $date_end = dol_mktime(23, 59, 59, $_REQUEST["date_endmonth"], $_REQUEST["date_e
$date_starty = dol_mktime(0, 0, 0, $_REQUEST["date_start_delymonth"], $_REQUEST["date_start_delyday"], $_REQUEST["date_start_delyyear"]); // Date for local PHP server $date_starty = dol_mktime(0, 0, 0, $_REQUEST["date_start_delymonth"], $_REQUEST["date_start_delyday"], $_REQUEST["date_start_delyyear"]); // Date for local PHP server
$date_endy = dol_mktime(23, 59, 59, $_REQUEST["date_end_delymonth"], $_REQUEST["date_end_delyday"], $_REQUEST["date_end_delyyear"]); $date_endy = dol_mktime(23, 59, 59, $_REQUEST["date_end_delymonth"], $_REQUEST["date_end_delyday"], $_REQUEST["date_end_delyyear"]);
$extrafields = new ExtraFields($db);
// fetch optionals attributes and labels
$extralabels=$extrafields->fetch_name_optionals_label('facture_fourn');
if ($action == 'create') if ($action == 'create')
{ {
if (! is_array($selected)) if (! is_array($selected))
@ -162,6 +167,9 @@ if (($action == 'create' || $action == 'add') && ! $error) {
if (empty($object->date_echeance)) if (empty($object->date_echeance))
$object->date_echeance = $object->calculate_date_lim_reglement(); $object->date_echeance = $object->calculate_date_lim_reglement();
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
if ($ret < 0) $error++;
if ($_POST['origin'] && $_POST['originid']) { if ($_POST['origin'] && $_POST['originid']) {
$object->linked_objects = $orders_id; $object->linked_objects = $orders_id;
$id = $object->create($user); $id = $object->create($user);
@ -362,6 +370,12 @@ if ($action == 'create' && !$error) {
); );
$reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
if (empty($reshook) && ! empty($extrafields->attribute_label))
{
$object=new FactureFournisseur($db);
print $object->showOptionals($extrafields,'edit');
}
// Modele PDF // Modele PDF
print '<tr><td>' . $langs->trans('Model') . '</td>'; print '<tr><td>' . $langs->trans('Model') . '</td>';
print '<td>'; print '<td>';

View File

@ -311,14 +311,17 @@ if (empty($reshook))
} }
// Delete payment // Delete payment
elseif ($action == 'deletepaiement' && $user->rights->fournisseur->facture->creer) elseif ($action == 'confirm_delete_paiement' && $confirm == 'yes' && $user->rights->fournisseur->facture->creer)
{ {
$object->fetch($id); $object->fetch($id);
if ($object->statut == FactureFournisseur::STATUS_VALIDATED && $object->paye == 0) if ($object->statut == FactureFournisseur::STATUS_VALIDATED && $object->paye == 0)
{ {
$paiementfourn = new PaiementFourn($db); $paiementfourn = new PaiementFourn($db);
$result=$paiementfourn->fetch(GETPOST('paiement_id')); $result=$paiementfourn->fetch(GETPOST('paiement_id'));
if ($result > 0) $result=$paiementfourn->delete(); // If fetch ok and found if ($result > 0) {
$result=$paiementfourn->delete(); // If fetch ok and found
header("Location: ".$_SERVER['PHP_SELF']."?id=".$id);
}
if ($result < 0) { if ($result < 0) {
setEventMessages($paiementfourn->error, $paiementfourn->errors, 'errors'); setEventMessages($paiementfourn->error, $paiementfourn->errors, 'errors');
} }
@ -1620,6 +1623,12 @@ else
{ {
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteBill'), $langs->trans('ConfirmDeleteBill'), 'confirm_delete', '', 0, 1); $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteBill'), $langs->trans('ConfirmDeleteBill'), 'confirm_delete', '', 0, 1);
}
if ($action == 'deletepaiement')
{
$payment_id = GETPOST('paiement_id');
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&paiement_id='.$payment_id, $langs->trans('DeletePayment'), $langs->trans('ConfirmDeletePayment'), 'confirm_delete_paiement', '', 0, 1);
} }
// Confirmation to delete line // Confirmation to delete line

View File

@ -288,7 +288,6 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typ
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)";
$sql.= ', '.MAIN_DB_PREFIX.'facture_fourn as f'; $sql.= ', '.MAIN_DB_PREFIX.'facture_fourn as f';
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture_fourn_extrafields as ef on (f.rowid = ef.fk_object)"; if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture_fourn_extrafields as ef on (f.rowid = ef.fk_object)";
else $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_det as fd ON fd.fk_facture_fourn = f.rowid';
if ($sall || $search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_det as pd ON f.rowid=pd.fk_facture_fourn'; if ($sall || $search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_det as pd ON f.rowid=pd.fk_facture_fourn';
if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product'; if ($search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=pd.fk_product';
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = f.fk_projet"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = f.fk_projet";

View File

@ -263,7 +263,7 @@ delete from llx_menu where menu_handler = 'smartphone';
-- Detect bad consistency between duraction_effective of a task and sum of time of tasks -- Detect bad consistency between duraction_effective of a task and sum of time of tasks
-- select pt.rowid, pt.duration_effective, SUM(ptt.task_duration) as y from llx_projet_task as pt, llx_projet_task_time as ptt where ptt.fk_task = pt.rowid group by pt.rowid, pt.duration_effective having pt.duration_effective <> y; -- select pt.rowid, pt.duration_effective, SUM(ptt.task_duration) as y from llx_projet_task as pt, llx_projet_task_time as ptt where ptt.fk_task = pt.rowid group by pt.rowid, pt.duration_effective having pt.duration_effective <> y;
update llx_projet_task as pt set pt.duration_effective = (select SUM(ptt.task_duration) as y from llx_projet_task_time as ptt where ptt.fk_task = pt.rowid) where pt.duration_effective <> (select SUM(ptt.task_duration) as y from llx_projet_task_time as ptt where ptt.fk_task = pt.rowid) update llx_projet_task as pt set pt.duration_effective = (select SUM(ptt.task_duration) as y from llx_projet_task_time as ptt where ptt.fk_task = pt.rowid) where pt.duration_effective <> (select SUM(ptt.task_duration) as y from llx_projet_task_time as ptt where ptt.fk_task = pt.rowid);
-- Remove duplicate of shipment mode (keep the one with tracking defined) -- Remove duplicate of shipment mode (keep the one with tracking defined)

View File

@ -148,6 +148,9 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_societe_rib FOR EACH
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_socpeople FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_socpeople FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_socpeople_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_socpeople_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_stock_mouvement FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_stock_mouvement FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_supplier_proposal FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_supplier_proposal_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_supplier_proposaldet_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_tva FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_tva FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_user FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_user FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_user_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_user_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();

View File

@ -82,6 +82,13 @@ Codejournal=دفتر اليومية
NumPiece=Piece number NumPiece=Piece number
AccountingCategory=Accounting category AccountingCategory=Accounting category
NotMatch=Not Set
DeleteMvt=Delete general ledger lines
DelYear=Year to delete
DelJournal=Journal to delete
ConfirmDeleteMvt=This will delete all line of of the general ledger for year and/or from a specifics journal
DelBookKeeping=حذف السجلات من دفتر الأستاذ العام DelBookKeeping=حذف السجلات من دفتر الأستاذ العام
DescSellsJournal=دفتر المبيعات اليومية DescSellsJournal=دفتر المبيعات اليومية
@ -140,6 +147,7 @@ Modelcsv_bob50=Export towards Sage BOB 50
Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution
Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_quadratus=Export towards Quadratus QuadraCompta
Modelcsv_ebp=Export towards EBP Modelcsv_ebp=Export towards EBP
Modelcsv_cogilog=Export towards Cogilog
## Tools - Init accounting account on product / service ## Tools - Init accounting account on product / service
InitAccountancy=Init accountancy InitAccountancy=Init accountancy
@ -158,3 +166,4 @@ Formula=Formula
## Error ## Error
ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country
ExportNotSupported=The export format setuped is not supported into this page ExportNotSupported=The export format setuped is not supported into this page
BookeppingLineAlreayExists=Lines already existing into bookeeping

View File

@ -240,6 +240,7 @@ MAIN_SMS_SENDMODE=طريقة استخدامه لإرسال الرسائل الق
MAIN_MAIL_SMS_FROM=رقم الهاتف المرسل الافتراضي لإرسال الرسائل القصيرة MAIN_MAIL_SMS_FROM=رقم الهاتف المرسل الافتراضي لإرسال الرسائل القصيرة
FeatureNotAvailableOnLinux=ميزة لا تتوفر على مثل أنظمة يونكس. sendmail برنامج الاختبار الخاص بك محليا. FeatureNotAvailableOnLinux=ميزة لا تتوفر على مثل أنظمة يونكس. sendmail برنامج الاختبار الخاص بك محليا.
SubmitTranslation=إذا ترجمة لهذه اللغة ليست كاملة أو تجد الأخطاء، يمكنك تصحيح هذا عن طريق تحرير الملفات إلى دليل <b>LANGS /%s</b> وتقديم التغيير إلى www.transifex.com/dolibarr-association/dolibarr/~~V SubmitTranslation=إذا ترجمة لهذه اللغة ليست كاملة أو تجد الأخطاء، يمكنك تصحيح هذا عن طريق تحرير الملفات إلى دليل <b>LANGS /%s</b> وتقديم التغيير إلى www.transifex.com/dolibarr-association/dolibarr/~~V
SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
ModuleSetup=إعداد وحدة ModuleSetup=إعداد وحدة
ModulesSetup=نمائط الإعداد ModulesSetup=نمائط الإعداد
ModuleFamilyBase=نظام ModuleFamilyBase=نظام
@ -511,6 +512,8 @@ Module5000Name=شركة متعددة
Module5000Desc=يسمح لك لإدارة الشركات المتعددة Module5000Desc=يسمح لك لإدارة الشركات المتعددة
Module6000Name=سير العمل Module6000Name=سير العمل
Module6000Desc=إدارة سير العمل Module6000Desc=إدارة سير العمل
Module10000Name=Websites
Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet.
Module20000Name=ترك إدارة الطلبات Module20000Name=ترك إدارة الطلبات
Module20000Desc=أعلن وتابع الموظفين يترك طلبات Module20000Desc=أعلن وتابع الموظفين يترك طلبات
Module39000Name=الكثير المنتج Module39000Name=الكثير المنتج
@ -531,6 +534,8 @@ Module59000Name=هوامش
Module59000Desc=وحدة لإدارة الهوامش Module59000Desc=وحدة لإدارة الهوامش
Module60000Name=العمولات Module60000Name=العمولات
Module60000Desc=وحدة لإدارة اللجان Module60000Desc=وحدة لإدارة اللجان
Module63000Name=Resources
Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
Permission11=قراءة الفواتير Permission11=قراءة الفواتير
Permission12=إنشاء / تعديل فواتير العملاء Permission12=إنشاء / تعديل فواتير العملاء
Permission13=تعديل الفواتير Permission13=تعديل الفواتير
@ -1588,3 +1593,4 @@ DetectionNotPossible=Detection not possible
UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and will be checked on each future access) UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and will be checked on each future access)
ListOfAvailableAPIs=List of available APIs ListOfAvailableAPIs=List of available APIs
activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.

View File

@ -88,6 +88,8 @@ ConciliatedBy=طريق التصالح
DateConciliating=التوفيق التاريخ DateConciliating=التوفيق التاريخ
BankLineConciliated=صفقة التصالح BankLineConciliated=صفقة التصالح
CustomerInvoicePayment=عملاء الدفع CustomerInvoicePayment=عملاء الدفع
SupplierInvoicePayment=Supplier payment
SubscriptionPayment=Subscription payment
WithdrawalPayment=انسحاب الدفع WithdrawalPayment=انسحاب الدفع
SocialContributionPayment=اجتماعي / دفع الضرائب المالية SocialContributionPayment=اجتماعي / دفع الضرائب المالية
BankTransfer=حوالة مصرفية BankTransfer=حوالة مصرفية

View File

@ -56,6 +56,7 @@ SupplierBill=فاتورة المورد
SupplierBills=فاتورة الاتصالات SupplierBills=فاتورة الاتصالات
Payment=الدفع Payment=الدفع
PaymentBack=دفع العودة PaymentBack=دفع العودة
CustomerInvoicePaymentBack=Payment back
Payments=المدفوعات Payments=المدفوعات
PaymentsBack=عودة المدفوعات PaymentsBack=عودة المدفوعات
paymentInInvoiceCurrency=in invoices currency paymentInInvoiceCurrency=in invoices currency
@ -322,6 +323,7 @@ NextDateToExecution=Date for next invoice generation
DateLastGeneration=Date of latest generation DateLastGeneration=Date of latest generation
MaxPeriodNumber=Max nb of invoice generation MaxPeriodNumber=Max nb of invoice generation
NbOfGenerationDone=Nb of invoice generation already done NbOfGenerationDone=Nb of invoice generation already done
MaxGenerationReached=Maximum nb of generations reached
InvoiceAutoValidate=Validate invoices automatically InvoiceAutoValidate=Validate invoices automatically
GeneratedFromRecurringInvoice=Generated from template recurring invoice %s GeneratedFromRecurringInvoice=Generated from template recurring invoice %s
DateIsNotEnough=Date not reached yet DateIsNotEnough=Date not reached yet

View File

@ -77,9 +77,9 @@ LT1PaymentES=RE الدفع
LT1PaymentsES=المدفوعات RE LT1PaymentsES=المدفوعات RE
LT2PaymentES=IRPF الدفع LT2PaymentES=IRPF الدفع
LT2PaymentsES=الدفعات IRPF LT2PaymentsES=الدفعات IRPF
VATPayment=دفع ضريبة القيمة المضافة VATPayment=Sales tax payment
VATPayments=دفع ضريبة القيمة المضافة VATPayments=Sales tax payments
VATRefund=استرداد ضريبة القيمة المضافة VATRefund=Sales tax refund Refund
Refund=رد Refund=رد
SocialContributionsPayments=الاجتماعية المدفوعات / الضرائب المالية SocialContributionsPayments=الاجتماعية المدفوعات / الضرائب المالية
ShowVatPayment=وتظهر دفع ضريبة القيمة المضافة ShowVatPayment=وتظهر دفع ضريبة القيمة المضافة

View File

@ -169,6 +169,11 @@ ErrorSavingChanges=وقد ocurred لخطأ عند حفظ التغييرات
ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
ErrorFileMustHaveFormat=File must have format %s ErrorFileMustHaveFormat=File must have format %s
ErrorSupplierCountryIsNotDefined=Country for this supplier is not defined. Correct this first. ErrorSupplierCountryIsNotDefined=Country for this supplier is not defined. Correct this first.
ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled.
ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enougth for product %s to add it into a new order.
ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enougth for product %s to add it into a new invoice.
ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enougth for product %s to add it into a new shipment.
ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enougth for product %s to add it into a new proposal.
# Warnings # Warnings
WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم. WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم.

View File

@ -76,6 +76,8 @@ BoxTitleLastLeaveRequests=Latest %s modified leave requests
HolidaysMonthlyUpdate=تحديث شهري HolidaysMonthlyUpdate=تحديث شهري
ManualUpdate=التحديث اليدوي ManualUpdate=التحديث اليدوي
HolidaysCancelation=ترك طلب الإلغاء HolidaysCancelation=ترك طلب الإلغاء
EmployeeLastname=Employee lastname
EmployeeFirstname=Employee firstname
## Configuration du Module ## ## Configuration du Module ##
LastUpdateCP=Latest automatic update of leaves allocation LastUpdateCP=Latest automatic update of leaves allocation

View File

@ -14,10 +14,12 @@ DeleteIntervention=حذف التدخل
ValidateIntervention=تحقق من التدخل ValidateIntervention=تحقق من التدخل
ModifyIntervention=تعديل التدخل ModifyIntervention=تعديل التدخل
DeleteInterventionLine=حذف السطر التدخل DeleteInterventionLine=حذف السطر التدخل
CloneIntervention=Clone intervention
ConfirmDeleteIntervention=هل أنت متأكد من أنك تريد حذف هذا التدخل؟ ConfirmDeleteIntervention=هل أنت متأكد من أنك تريد حذف هذا التدخل؟
ConfirmValidateIntervention=هل أنت متأكد أنك تريد التحقق من صحة هذا التدخل؟ ConfirmValidateIntervention=هل أنت متأكد أنك تريد التحقق من صحة هذا التدخل؟
ConfirmModifyIntervention=هل أنت متأكد من تعديل هذا التدخل؟ ConfirmModifyIntervention=هل أنت متأكد من تعديل هذا التدخل؟
ConfirmDeleteInterventionLine=هل أنت متأكد من أنك تريد حذف هذا السطر التدخل؟ ConfirmDeleteInterventionLine=هل أنت متأكد من أنك تريد حذف هذا السطر التدخل؟
ConfirmCloneIntervention=Are you sure you want to clone this intervention ?
NameAndSignatureOfInternalContact=الاسم والتوقيع على التدخل : NameAndSignatureOfInternalContact=الاسم والتوقيع على التدخل :
NameAndSignatureOfExternalContact=اسم وتوقيع العميل : NameAndSignatureOfExternalContact=اسم وتوقيع العميل :
DocumentModelStandard=نموذج وثيقة موحدة للتدخلات DocumentModelStandard=نموذج وثيقة موحدة للتدخلات

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - languages # Dolibarr language file - Source file is en_US - languages
Language_ar_AR=العربية Language_ar_AR=العربية
Language_ar_SA=العربية Language_ar_SA=العربية
Language_bn_BD=بنغالي Language_bn_BD=بنغالي

View File

@ -102,7 +102,8 @@ YouCanUseCommaSeparatorForSeveralRecipients=يمكنك استخدام <b>الف
TagCheckMail=افتتاح البريد المسار TagCheckMail=افتتاح البريد المسار
TagUnsubscribe=رابط إلغاء الاشتراك TagUnsubscribe=رابط إلغاء الاشتراك
TagSignature=التوقيع إرسال المستعمل TagSignature=التوقيع إرسال المستعمل
TagMailtoEmail=البريد الإلكتروني المستلم EMailRecipient=Recipient EMail
TagMailtoEmail=Recipient EMail (including html "mailto:" link)
NoEmailSentBadSenderOrRecipientEmail=لا ترسل البريد الإلكتروني. مرسل سيئة أو البريد الإلكتروني المستلم. تحقق ملف تعريف المستخدم. NoEmailSentBadSenderOrRecipientEmail=لا ترسل البريد الإلكتروني. مرسل سيئة أو البريد الإلكتروني المستلم. تحقق ملف تعريف المستخدم.
# Module Notifications # Module Notifications
Notifications=الإخطارات Notifications=الإخطارات

View File

@ -28,6 +28,7 @@ NoTemplateDefined=No template defined for this email type
AvailableVariables=Available substitution variables AvailableVariables=Available substitution variables
NoTranslation=لا يوجد ترجمة NoTranslation=لا يوجد ترجمة
NoRecordFound=لا يوجد سجلات NoRecordFound=لا يوجد سجلات
NotEnoughDataYet=Not enough data
NoError=لا خطأ NoError=لا خطأ
Error=خطأ Error=خطأ
Errors=أخطاء Errors=أخطاء
@ -35,8 +36,8 @@ ErrorFieldRequired=Field '%s' is required
ErrorFieldFormat=Field '%s' has a bad value ErrorFieldFormat=Field '%s' has a bad value
ErrorFileDoesNotExists=File %s does not exist ErrorFileDoesNotExists=File %s does not exist
ErrorFailedToOpenFile=Failed to open file %s ErrorFailedToOpenFile=Failed to open file %s
ErrorCanNotCreateDir=Can not create dir %s ErrorCanNotCreateDir=Cannot create dir %s
ErrorCanNotReadDir=Can not read dir %s ErrorCanNotReadDir=Cannot read dir %s
ErrorConstantNotDefined=Parameter %s not defined ErrorConstantNotDefined=Parameter %s not defined
ErrorUnknown=خطأ غير معروف ErrorUnknown=خطأ غير معروف
ErrorSQL=خطأ SQL ErrorSQL=خطأ SQL
@ -44,10 +45,8 @@ ErrorLogoFileNotFound=Logo file '%s' was not found
ErrorGoToGlobalSetup=اذهب إلى 'شركة / مؤسسة' الإعداد لإصلاح هذه ErrorGoToGlobalSetup=اذهب إلى 'شركة / مؤسسة' الإعداد لإصلاح هذه
ErrorGoToModuleSetup=الذهاب إلى الوحدة الإعداد لإصلاح هذه ErrorGoToModuleSetup=الذهاب إلى الوحدة الإعداد لإصلاح هذه
ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
ErrorAttachedFilesDisabled=تم تعطيل إرفاق ملف في هذا الخادم
ErrorFileNotUploaded=ويتم تحميل الملف. تحقق لا يتجاوز هذا الحجم الأقصى المسموح به، أن المساحة الحرة المتوفرة على القرص والتي لا يوجد بالفعل ملف بنفس الاسم في هذا الدليل. ErrorFileNotUploaded=ويتم تحميل الملف. تحقق لا يتجاوز هذا الحجم الأقصى المسموح به، أن المساحة الحرة المتوفرة على القرص والتي لا يوجد بالفعل ملف بنفس الاسم في هذا الدليل.
ErrorInternalErrorDetected=خطأ الكشف عن ErrorInternalErrorDetected=خطأ الكشف عن
ErrorNoRequestRan=أي طلب ركض
ErrorWrongHostParameter=المعلمة المضيف خاطئة ErrorWrongHostParameter=المعلمة المضيف خاطئة
ErrorYourCountryIsNotDefined=لم يتم تعريف بلدك. الذهاب إلى الصفحة الرئيسية الإعداد-تحرير ومشاركة مرة أخرى في النموذج. ErrorYourCountryIsNotDefined=لم يتم تعريف بلدك. الذهاب إلى الصفحة الرئيسية الإعداد-تحرير ومشاركة مرة أخرى في النموذج.
ErrorRecordIsUsedByChild=فشل في حذف هذا السجل. ويستخدم هذا السجل من قبل واحد على الأقل السجلات التابعة. ErrorRecordIsUsedByChild=فشل في حذف هذا السجل. ويستخدم هذا السجل من قبل واحد على الأقل السجلات التابعة.
@ -68,18 +67,15 @@ SelectDate=تحديد تاريخ
SeeAlso=See also %s SeeAlso=See also %s
SeeHere=انظر هنا SeeHere=انظر هنا
BackgroundColorByDefault=لون الخلفية الافتراضية BackgroundColorByDefault=لون الخلفية الافتراضية
FileNotUploaded=لم إيداع الملف
FileUploaded=تم تحميل الملف بنجاح FileUploaded=تم تحميل الملف بنجاح
FileWasNotUploaded=يتم اختيار ملف لمرفق ولكن لم تحميلها بعد. انقر على "إرفاق ملف" لهذا الغرض. FileWasNotUploaded=يتم اختيار ملف لمرفق ولكن لم تحميلها بعد. انقر على "إرفاق ملف" لهذا الغرض.
NbOfEntries=ملحوظة من إدخالات NbOfEntries=ملحوظة من إدخالات
GoToWikiHelpPage=قراءة التعليمات الفورية (تحتاج الوصول إلى الإنترنت) GoToWikiHelpPage=Read online help (Internet access needed)
GoToHelpPage=قراءة المساعدة GoToHelpPage=قراءة المساعدة
RecordSaved=سجل حفظ RecordSaved=سجل حفظ
RecordDeleted=سجل محذوف RecordDeleted=سجل محذوف
LevelOfFeature=مستوى ميزات LevelOfFeature=مستوى ميزات
NotDefined=غير معرف NotDefined=غير معرف
DefinedAndHasThisValue=تعريف وقيمة ل
IsNotDefined=غير محدد
DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is setup to <b>%s</b> in configuration file <b>conf.php</b>.<br>This means that password database is extern to Dolibarr, so changing this field may have no effects. DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is setup to <b>%s</b> in configuration file <b>conf.php</b>.<br>This means that password database is extern to Dolibarr, so changing this field may have no effects.
Administrator=مدير Administrator=مدير
Undefined=غير محدد Undefined=غير محدد
@ -93,12 +89,11 @@ ConnectedSince=إتصال منذ
AuthenticationMode=وضع صحة المستندات AuthenticationMode=وضع صحة المستندات
RequestedUrl=URL المطلوب RequestedUrl=URL المطلوب
DatabaseTypeManager=نوع قاعدة البيانات مدير DatabaseTypeManager=نوع قاعدة البيانات مدير
RequestLastAccess=طلب الوصول إلى قاعدة البيانات الماضي RequestLastAccessInError=Latest database access request error
RequestLastAccessInError=طلب الأخير الوصول إلى قاعدة البيانات في الخطأ ReturnCodeLastAccessInError=Return code for latest database access request error
ReturnCodeLastAccessInError=العودة رمز لآخر الوصول إلى قاعدة البيانات في الخطأ InformationLastAccessInError=Information for latest database access request error
InformationLastAccessInError=معلومات عن الماضي الوصول إلى قاعدة البيانات في الخطأ
DolibarrHasDetectedError=كشف Dolibarr خطأ فني DolibarrHasDetectedError=كشف Dolibarr خطأ فني
InformationToHelpDiagnose=هذا هو المعلومات التي يمكن أن تساعد في التشخيص InformationToHelpDiagnose=This information can be useful for diagnostic
MoreInformation=المزيد من المعلومات MoreInformation=المزيد من المعلومات
TechnicalInformation=المعلومات التقنية TechnicalInformation=المعلومات التقنية
TechnicalID=ID الفني TechnicalID=ID الفني
@ -114,11 +109,11 @@ Yes=نعم فعلا
no=لا no=لا
No=لا No=لا
All=جميع All=جميع
Alls=جميع
Home=الصفحة الرئيسية Home=الصفحة الرئيسية
Help=مساعدة Help=مساعدة
OnlineHelp=مساعدة على الانترنت OnlineHelp=مساعدة على الانترنت
PageWiki=صفحة ويكيبيديا PageWiki=صفحة ويكيبيديا
MediaBrowser=Media browser
Always=دائما Always=دائما
Never=أبدا Never=أبدا
Under=تحت Under=تحت
@ -135,11 +130,10 @@ Disabled=تعطيل
Add=إضافة Add=إضافة
AddLink=إضافة وصلة AddLink=إضافة وصلة
RemoveLink=نلغي RemoveLink=نلغي
AddToDraft=Add to draft
Update=تحديث Update=تحديث
AddActionToDo=إضافة حدث أن تفعل
AddActionDone=إضافة حدث القيام به
Close=إغلاق Close=إغلاق
Close2=إغلاق CloseBox=Remove widget from your dashboard
Confirm=تأكيد Confirm=تأكيد
ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b> ? ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b> ?
Delete=حذف Delete=حذف
@ -173,7 +167,6 @@ Upload=إرسال ملف
ToLink=حلقة الوصل ToLink=حلقة الوصل
Select=اختار Select=اختار
Choose=أختر Choose=أختر
ChooseLangage=الرجاء اختيار لغتك
Resize=تغيير Resize=تغيير
Recenter=Recenter Recenter=Recenter
Author=مؤلف Author=مؤلف
@ -184,13 +177,12 @@ Groups=المجموعات
NoUserGroupDefined=لا توجد مجموعة يحددها المستخدم NoUserGroupDefined=لا توجد مجموعة يحددها المستخدم
Password=الرمز السري Password=الرمز السري
PasswordRetype=أعد كتابة كلمة السر PasswordRetype=أعد كتابة كلمة السر
NoteSomeFeaturesAreDisabled=لاحظ أن الكثير من الميزات / معطلة في هذه المظاهرة وحدات. NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration.
Name=اسم Name=اسم
Person=شخص Person=شخص
Parameter=معلمة Parameter=معلمة
Parameters=المعايير Parameters=المعايير
Value=القيمة Value=القيمة
GlobalValue=القيمة العالمية
PersonalValue=قيمة الشخصية PersonalValue=قيمة الشخصية
NewValue=القيمة الجديدة NewValue=القيمة الجديدة
CurrentValue=القيمة الحالية CurrentValue=القيمة الحالية
@ -199,7 +191,6 @@ Type=اكتب
Language=لغة Language=لغة
MultiLanguage=متعدد اللغات MultiLanguage=متعدد اللغات
Note=ملاحظة Note=ملاحظة
CurrentNote=مذكرة الحالية
Title=العنوان Title=العنوان
Label=ملصق Label=ملصق
RefOrLabel=المرجع. أو هذا الملصق RefOrLabel=المرجع. أو هذا الملصق
@ -217,7 +208,6 @@ AmountByMonth=المبلغ الشهر
Numero=عدد Numero=عدد
Limit=حد Limit=حد
Limits=حدود Limits=حدود
DevelopmentTeam=فريق التطوير
Logout=تسجيل خروج Logout=تسجيل خروج
NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode <b>%s</b> NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode <b>%s</b>
Connection=الاتصال Connection=الاتصال
@ -233,8 +223,8 @@ Date=التاريخ
DateAndHour=التاريخ و الساعة DateAndHour=التاريخ و الساعة
DateToday=Today's date DateToday=Today's date
DateReference=Reference date DateReference=Reference date
DateStart=تاريخ بداية DateStart=Start date
DateEnd=تاريخ انتهاء DateEnd=End date
DateCreation=تاريخ الإنشاء DateCreation=تاريخ الإنشاء
DateCreationShort=يخلق. التاريخ DateCreationShort=يخلق. التاريخ
DateModification=تاريخ التعديل DateModification=تاريخ التعديل
@ -250,8 +240,6 @@ DateOperationShort=دار الأوبرا. التاريخ
DateLimit=تاريخ الحد DateLimit=تاريخ الحد
DateRequest=تاريخ الطلب DateRequest=تاريخ الطلب
DateProcess=تاريخ العملية DateProcess=تاريخ العملية
DatePlanShort=تاريخ مملس
DateRealShort=تاريخ ريال مدريد.
DateBuild=تقرير تاريخ الإنشاء DateBuild=تقرير تاريخ الإنشاء
DatePayment=تاريخ الدفع DatePayment=تاريخ الدفع
DateApprove=تاريخ الموافقة DateApprove=تاريخ الموافقة
@ -305,7 +293,6 @@ Copy=نسخ
Paste=لصق Paste=لصق
Default=افتراضي Default=افتراضي
DefaultValue=القيمة الافتراضية DefaultValue=القيمة الافتراضية
DefaultGlobalValue=القيمة العالمية
Price=السعر Price=السعر
UnitPrice=سعر الوحدة UnitPrice=سعر الوحدة
UnitPriceHT=سعر الوحدة (صافي) UnitPriceHT=سعر الوحدة (صافي)
@ -313,7 +300,6 @@ UnitPriceTTC=سعر الوحدة
PriceU=إلى أعلى PriceU=إلى أعلى
PriceUHT=UP (صافي) PriceUHT=UP (صافي)
PriceUHTCurrency=U.P (currency) PriceUHTCurrency=U.P (currency)
SupplierProposalUHT=شبكة UP مطلوب
PriceUTTC=UP (شركة الضريبة) PriceUTTC=UP (شركة الضريبة)
Amount=كمية Amount=كمية
AmountInvoice=قيمة الفاتورة AmountInvoice=قيمة الفاتورة
@ -332,10 +318,7 @@ AmountLT1ES=كمية RE
AmountLT2ES=كمية IRPF AmountLT2ES=كمية IRPF
AmountTotal=الكمية الكلية AmountTotal=الكمية الكلية
AmountAverage=متوسط ​​كمية AmountAverage=متوسط ​​كمية
PriceQtyHT=سعر هذه الكمية (صافية من الضرائب)
PriceQtyMinHT=دقيقة سعر الكمية. (صافية من الضرائب) PriceQtyMinHT=دقيقة سعر الكمية. (صافية من الضرائب)
PriceQtyTTC=سعر هذه الكمية (شركة الضريبة)
PriceQtyMinTTC=دقيقة سعر الكمية. (المؤتمر الوطني العراقي. من الضرائب)
Percentage=نسبة مئوية Percentage=نسبة مئوية
Total=الإجمالي الكلي Total=الإجمالي الكلي
SubTotal=حاصل الجمع SubTotal=حاصل الجمع
@ -344,6 +327,7 @@ TotalHTShortCurrency=Total (net in currency)
TotalTTCShort=إجمالي (شركة الضريبة) TotalTTCShort=إجمالي (شركة الضريبة)
TotalHT=مجموع (صافي الضريبة) TotalHT=مجموع (صافي الضريبة)
TotalHTforthispage=مجموع (صافي الضريبة) لهذه الصفحة TotalHTforthispage=مجموع (صافي الضريبة) لهذه الصفحة
Totalforthispage=Total for this page
TotalTTC=إجمالي (شركة الضريبة) TotalTTC=إجمالي (شركة الضريبة)
TotalTTCToYourCredit=الإجمالي (المؤتمر الوطني العراقي. الضريبية) لالائتمان الخاصة بك TotalTTCToYourCredit=الإجمالي (المؤتمر الوطني العراقي. الضريبية) لالائتمان الخاصة بك
TotalVAT=مجموع الضرائب TotalVAT=مجموع الضرائب
@ -351,7 +335,6 @@ TotalLT1=مجموع الضرائب 2
TotalLT2=مجموع الضرائب 3 TotalLT2=مجموع الضرائب 3
TotalLT1ES=مجموع RE TotalLT1ES=مجموع RE
TotalLT2ES=مجموع IRPF TotalLT2ES=مجموع IRPF
IncludedVAT=وشملت الضرائب
HT=صافي من الضريبة HT=صافي من الضريبة
TTC=شركة الضرائب TTC=شركة الضرائب
VAT=ضريبة المبيعات VAT=ضريبة المبيعات
@ -379,9 +362,7 @@ CommercialProposalsShort=مقترحات تجارية
Comment=التعليق Comment=التعليق
Comments=تعليقات Comments=تعليقات
ActionsToDo=الأحداث للقيام ActionsToDo=الأحداث للقيام
ActionsDone=أحداث القيام به
ActionsToDoShort=لكى يفعل ActionsToDoShort=لكى يفعل
ActionsRunningshort=بدأ
ActionsDoneShort=انتهيت ActionsDoneShort=انتهيت
ActionNotApplicable=غير قابل للتطبيق ActionNotApplicable=غير قابل للتطبيق
ActionRunningNotStarted=لبدء ActionRunningNotStarted=لبدء
@ -394,7 +375,6 @@ ContactsAddressesForCompany=اتصالات / عناوين لهذا الطرف ا
AddressesForCompany=عناوين لهذا الطرف الثالث AddressesForCompany=عناوين لهذا الطرف الثالث
ActionsOnCompany=الأحداث حول هذا الطرف الثالث ActionsOnCompany=الأحداث حول هذا الطرف الثالث
ActionsOnMember=الأحداث عن هذا العضو ActionsOnMember=الأحداث عن هذا العضو
NActions=%s events
NActionsLate=%s late NActionsLate=%s late
RequestAlreadyDone=طلب المسجل بالفعل RequestAlreadyDone=طلب المسجل بالفعل
Filter=فلتر Filter=فلتر
@ -407,15 +387,11 @@ Generate=توليد
Duration=المدة الزمنية Duration=المدة الزمنية
TotalDuration=المدة الإجمالية TotalDuration=المدة الإجمالية
Summary=ملخص Summary=ملخص
MyBookmarks=المواقع المفضلة
OtherInformationsBoxes=صناديق غيرها من المعلومات
DolibarrBoard=Dolibarr مجلس
DolibarrStateBoard=إحصائيات DolibarrStateBoard=إحصائيات
DolibarrWorkBoard=مهام العمل متنها DolibarrWorkBoard=مهام العمل متنها
Available=متاح Available=متاح
NotYetAvailable=لم تتوفر بعد NotYetAvailable=لم تتوفر بعد
NotAvailable=غير متوفر NotAvailable=غير متوفر
Popularity=شعبية
Categories=الكلمات / فئات Categories=الكلمات / فئات
Category=العلامة / فئة Category=العلامة / فئة
By=بواسطة By=بواسطة
@ -434,7 +410,6 @@ ApprovedBy2=التي وافقت عليها (موافقة الثانية)
Approved=وافق Approved=وافق
Refused=رفض Refused=رفض
ReCalculate=حساب ReCalculate=حساب
ResultOk=نجاح
ResultKo=فشل ResultKo=فشل
Reporting=التقارير Reporting=التقارير
Reportings=التقارير Reportings=التقارير
@ -454,11 +429,9 @@ ByCompanies=من قبل أطراف ثالثة
ByUsers=من قبل المستخدمين ByUsers=من قبل المستخدمين
Links=الروابط Links=الروابط
Link=حلقة الوصل Link=حلقة الوصل
Receipts=المبالغ المستلمة
Rejects=ترفض Rejects=ترفض
Preview=معاينة Preview=معاينة
NextStep=الخطوة التالية NextStep=الخطوة التالية
PreviousStep=خطوة سابقة
Datas=البيانات Datas=البيانات
None=لا شيء None=لا شيء
NoneF=لا شيء NoneF=لا شيء
@ -467,6 +440,8 @@ LateDesc=Delay to define if a record is late or not depends on your setup. Ask y
Photo=صورة Photo=صورة
Photos=الصور Photos=الصور
AddPhoto=إضافة الصورة AddPhoto=إضافة الصورة
DeletePicture=Picture delete
ConfirmDeletePicture=Confirm picture deletion?
Login=تسجيل الدخول Login=تسجيل الدخول
CurrentLogin=تسجيل الدخول الحالي CurrentLogin=تسجيل الدخول الحالي
January=كانون الثاني January=كانون الثاني
@ -526,12 +501,10 @@ ReportName=اسم التقرير
ReportPeriod=فترة التقرير ReportPeriod=فترة التقرير
ReportDescription=وصف ReportDescription=وصف
Report=تقرير Report=تقرير
Keyword=الفحص السنوي clé Keyword=Keyword
Legend=أسطورة Legend=أسطورة
FillTownFromZip=شغل البلدة من الرمز البريدي
Fill=تعبئة Fill=تعبئة
Reset=إعادة تعيين Reset=إعادة تعيين
ShowLog=وتظهر الدخول
File=ملف File=ملف
Files=ملفات Files=ملفات
NotAllowed=غير مسموح NotAllowed=غير مسموح
@ -542,12 +515,10 @@ Examples=أمثلة
NoExample=على سبيل المثال لا NoExample=على سبيل المثال لا
FindBug=تقرير خلل FindBug=تقرير خلل
NbOfThirdParties=عدد من الأطراف الثالثة NbOfThirdParties=عدد من الأطراف الثالثة
NbOfCustomers=عدد من العملاء
NbOfLines=عدد الخطوط NbOfLines=عدد الخطوط
NbOfObjects=عدد الأجسام NbOfObjects=عدد الأجسام
NbOfReferers=عدد المشيرين NbOfObjectReferers=Number of related items
NbOfObjectReferers=Number of refering objects Referers=Related items
Referers=اشارة الأجسام
TotalQuantity=الكمية الإجمالية TotalQuantity=الكمية الإجمالية
DateFromTo=From %s to %s DateFromTo=From %s to %s
DateFrom=From %s DateFrom=From %s
@ -560,20 +531,13 @@ Internals=الداخلية
Externals=الخارجية Externals=الخارجية
Warning=تحذير Warning=تحذير
Warnings=تحذيرات Warnings=تحذيرات
BuildPDF=بناء الشعبي
RebuildPDF=إعادة بناء الشعبي
BuildDoc=بناء مستدات BuildDoc=بناء مستدات
RebuildDoc=إعادة بناء مستدات
Entity=كيان Entity=كيان
Entities=الكيانات Entities=الكيانات
EventLogs=الجذوع
CustomerPreview=العميل معاينة CustomerPreview=العميل معاينة
SupplierPreview=المورد معاينة SupplierPreview=المورد معاينة
AccountancyPreview=المحاسبة معاينة
ShowCustomerPreview=وتبين للعملاء معاينة ShowCustomerPreview=وتبين للعملاء معاينة
ShowSupplierPreview=وتظهر معاينة المورد ShowSupplierPreview=وتظهر معاينة المورد
ShowAccountancyPreview=وتظهر معاينة المحاسبة
ShowProspectPreview=وتظهر احتمال معاينة
RefCustomer=المرجع. العميل RefCustomer=المرجع. العميل
Currency=العملة Currency=العملة
InfoAdmin=معلومات للإداريين InfoAdmin=معلومات للإداريين
@ -584,18 +548,16 @@ UndoExpandAll=التراجع عن التوسع
Reason=سبب Reason=سبب
FeatureNotYetSupported=ميزة لم يؤيد FeatureNotYetSupported=ميزة لم يؤيد
CloseWindow=إغلاق النافذة CloseWindow=إغلاق النافذة
Question=السؤال
Response=رد Response=رد
Priority=الأولوية Priority=الأولوية
SendByMail=أرسل عن طريق البريد الالكتروني SendByMail=أرسل عن طريق البريد الالكتروني
MailSentBy=البريد الإلكتروني التي بعث بها MailSentBy=البريد الإلكتروني التي بعث بها
TextUsedInTheMessageBody=هيئة البريد الإلكتروني TextUsedInTheMessageBody=هيئة البريد الإلكتروني
SendAcknowledgementByMail=ارسال Ack. عن طريق البريد الإلكتروني SendAcknowledgementByMail=Send confirmation email
EMail=البريد الإلكتروني EMail=البريد الإلكتروني
NoEMail=أي بريد إلكتروني NoEMail=أي بريد إلكتروني
NoMobilePhone=لا هاتف المحمول NoMobilePhone=لا هاتف المحمول
Owner=مالك Owner=مالك
DetectedVersion=اكتشاف نسخة
FollowingConstantsWillBeSubstituted=الثوابت التالية ستكون بديلا المقابلة القيمة. FollowingConstantsWillBeSubstituted=الثوابت التالية ستكون بديلا المقابلة القيمة.
Refresh=تجديد Refresh=تجديد
BackToList=العودة إلى قائمة BackToList=العودة إلى قائمة
@ -605,27 +567,22 @@ CanBeModifiedIfKo=يمكن تعديلها إذا لم يكن صحيحا
RecordModifiedSuccessfully=سجل تعديل بنجاح RecordModifiedSuccessfully=سجل تعديل بنجاح
RecordsModified=%s records modified RecordsModified=%s records modified
AutomaticCode=مدونة الآلي AutomaticCode=مدونة الآلي
NotManaged=لم يفلح
FeatureDisabled=سمة المعوقين FeatureDisabled=سمة المعوقين
MoveBox=Move box %s MoveBox=Move widget
Offered=عرض Offered=عرض
NotEnoughPermissions=ليس لديك إذن لهذا العمل NotEnoughPermissions=ليس لديك إذن لهذا العمل
SessionName=اسم الدورة SessionName=اسم الدورة
Method=الطريقة Method=الطريقة
Receive=استقبال Receive=استقبال
PartialWoman=جزئي PartialWoman=جزئي
PartialMan=جزئي
TotalWoman=المجموع TotalWoman=المجموع
TotalMan=المجموع
NeverReceived=لم يتلق NeverReceived=لم يتلق
Canceled=ألغى Canceled=ألغى
YouCanChangeValuesForThisListFromDictionarySetup=يمكنك تغيير قيم هذه القائمة من إعداد القائمة - القاموس YouCanChangeValuesForThisListFromDictionarySetup=يمكنك تغيير قيم هذه القائمة من إعداد القائمة - القاموس
YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
Color=لون Color=لون
Documents=ربط الملفات Documents=ربط الملفات
DocumentsNb=ملفات مرتبطة (%s)
Documents2=وثائق Documents2=وثائق
BuildDocuments=ولدت وثائق
UploadDisabled=تحميل المعوقين UploadDisabled=تحميل المعوقين
MenuECM=وثائق MenuECM=وثائق
MenuAWStats=AWStats MenuAWStats=AWStats
@ -648,7 +605,6 @@ Page=صفحة
Notes=وتلاحظ Notes=وتلاحظ
AddNewLine=إضافة خط جديد AddNewLine=إضافة خط جديد
AddFile=إضافة ملف AddFile=إضافة ملف
ListOfFiles=قائمة الملفات المتوفرة
FreeZone=الدخول مجانا FreeZone=الدخول مجانا
FreeLineOfType=دخول مجاني من نوع FreeLineOfType=دخول مجاني من نوع
CloneMainAttributes=استنساخ وجوه مع السمات الرئيسية CloneMainAttributes=استنساخ وجوه مع السمات الرئيسية
@ -656,7 +612,6 @@ PDFMerge=دمج الشعبي
Merge=دمج Merge=دمج
PrintContentArea=وتظهر الصفحة الرئيسية لطباعة ناحية المحتوى PrintContentArea=وتظهر الصفحة الرئيسية لطباعة ناحية المحتوى
MenuManager=مدير القائمة MenuManager=مدير القائمة
NoMenu=لا القائمة الفرعية
WarningYouAreInMaintenanceMode=انذار ، كنت في وضع الصيانة ، <b>%s</b> الدخول فقط بحيث يتم السماح لاستخدام التطبيق في الوقت الراهن. WarningYouAreInMaintenanceMode=انذار ، كنت في وضع الصيانة ، <b>%s</b> الدخول فقط بحيث يتم السماح لاستخدام التطبيق في الوقت الراهن.
CoreErrorTitle=نظام خطأ CoreErrorTitle=نظام خطأ
CoreErrorMessage=عذرا، حدث خطأ. تحقق من سجلات أو اتصل بمسؤول النظام. CoreErrorMessage=عذرا، حدث خطأ. تحقق من سجلات أو اتصل بمسؤول النظام.
@ -683,7 +638,6 @@ Frequency=تردد
IM=التراسل الفوري IM=التراسل الفوري
NewAttribute=جديد السمة NewAttribute=جديد السمة
AttributeCode=السمة رمز AttributeCode=السمة رمز
OptionalFieldsSetup=اضافية سمات الإعداد
URLPhoto=للتسجيل من الصورة / الشعار URLPhoto=للتسجيل من الصورة / الشعار
SetLinkToAnotherThirdParty=تصل إلى طرف ثالث آخر SetLinkToAnotherThirdParty=تصل إلى طرف ثالث آخر
CreateDraft=إنشاء مشروع CreateDraft=إنشاء مشروع
@ -699,8 +653,6 @@ ByMonth=من قبل شهر
ByDay=بعد يوم ByDay=بعد يوم
BySalesRepresentative=بواسطة مندوب مبيعات BySalesRepresentative=بواسطة مندوب مبيعات
LinkedToSpecificUsers=يرتبط اسم مستخدم معين LinkedToSpecificUsers=يرتبط اسم مستخدم معين
DeleteAFile=حذف ملف
ConfirmDeleteAFile=هل أنت متأكد أنك تريد حذف الملف
NoResults=لا نتائج NoResults=لا نتائج
AdminTools=Admin tools AdminTools=Admin tools
SystemTools=ادوات النظام SystemTools=ادوات النظام
@ -708,7 +660,6 @@ ModulesSystemTools=أدوات حدات
Test=اختبار Test=اختبار
Element=العنصر Element=العنصر
NoPhotoYet=أي صور متوفرة حتى الآن NoPhotoYet=أي صور متوفرة حتى الآن
HomeDashboard=الرئيسية ملخص
Dashboard=Dashboard Dashboard=Dashboard
Deductible=خصم Deductible=خصم
from=من عند from=من عند
@ -742,7 +693,13 @@ Sincerely=بإخلاص
DeleteLine=حذف الخط DeleteLine=حذف الخط
ConfirmDeleteLine=هل أنت متأكد أنك تريد حذف هذا الخط؟ ConfirmDeleteLine=هل أنت متأكد أنك تريد حذف هذا الخط؟
NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records
TooManyRecordForMassAction=Too many records selected for mass action. Such action are restriced to a list of %s records. TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
MassFilesArea=Area for files built by mass actions
ShowTempMassFilesArea=Show area of files built by mass actions
RelatedObjects=Related Objects
ClassifyBilled=Classify billed
Progress=Progress
ClickHere=Click here
# Week day # Week day
Monday=يوم الاثنين Monday=يوم الاثنين
Tuesday=الثلاثاء Tuesday=الثلاثاء
@ -777,6 +734,7 @@ SetRef=تعيين المرجع
Select2ResultFoundUseArrows= Select2ResultFoundUseArrows=
Select2NotFound=لا نتائج لبحثك Select2NotFound=لا نتائج لبحثك
Select2Enter=أدخل Select2Enter=أدخل
Select2MoreCharacter=or more character
Select2MoreCharacters=أحرف أو أكثر Select2MoreCharacters=أحرف أو أكثر
Select2LoadingMoreResults=تحميل المزيد من النتائج ... Select2LoadingMoreResults=تحميل المزيد من النتائج ...
Select2SearchInProgress=بحث في التقدم ... Select2SearchInProgress=بحث في التقدم ...
@ -786,6 +744,7 @@ SearchIntoMembers=أعضاء
SearchIntoUsers=المستخدمين SearchIntoUsers=المستخدمين
SearchIntoProductsOrServices=المنتجات أو الخدمات SearchIntoProductsOrServices=المنتجات أو الخدمات
SearchIntoProjects=مشاريع SearchIntoProjects=مشاريع
SearchIntoTasks=Tasks
SearchIntoCustomerInvoices=فواتير العملاء SearchIntoCustomerInvoices=فواتير العملاء
SearchIntoSupplierInvoices=فواتير الموردين SearchIntoSupplierInvoices=فواتير الموردين
SearchIntoCustomerOrders=طلبات العملاء SearchIntoCustomerOrders=طلبات العملاء
@ -794,4 +753,6 @@ SearchIntoCustomerProposals=مقترحات العملاء
SearchIntoSupplierProposals=مقترحات المورد SearchIntoSupplierProposals=مقترحات المورد
SearchIntoInterventions=التدخلات SearchIntoInterventions=التدخلات
SearchIntoContracts=عقود SearchIntoContracts=عقود
SearchIntoCustomerShipments=Customer shipments
SearchIntoExpenseReports=تقارير المصاريف SearchIntoExpenseReports=تقارير المصاريف
SearchIntoLeaves=Leaves

View File

@ -51,3 +51,5 @@ IPP_Supported=نوع من وسائل الإعلام
DirectPrintingJobsDesc=هذا عمل القوائم صفحة الطباعة تم العثور عليها ل الطابعات المتوفرة. DirectPrintingJobsDesc=هذا عمل القوائم صفحة الطباعة تم العثور عليها ل الطابعات المتوفرة.
GoogleAuthNotConfigured=الإعداد جوجل أوث لم تفعل. تمكين وحدة أوث ووضع جوجل ID / السرية. GoogleAuthNotConfigured=الإعداد جوجل أوث لم تفعل. تمكين وحدة أوث ووضع جوجل ID / السرية.
GoogleAuthConfigured=أوراق جوجل أوث وجدت في الإعداد وحدة أوث. GoogleAuthConfigured=أوراق جوجل أوث وجدت في الإعداد وحدة أوث.
PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print.
PrintTestDescprintgcp=List of Printers for Google Cloud Print.

View File

@ -32,6 +32,8 @@ ServicesOnSellAndOnBuy=خدمات للبيع والشراء
LastModifiedProductsAndServices=Latest %s modified products/services LastModifiedProductsAndServices=Latest %s modified products/services
LastRecordedProducts=Latest %s recorded products LastRecordedProducts=Latest %s recorded products
LastRecordedServices=Latest %s recorded services LastRecordedServices=Latest %s recorded services
CardProduct0=Product card
CardProduct1=Service card
Stock=الأسهم Stock=الأسهم
Stocks=الاسهم Stocks=الاسهم
Movements=حركات Movements=حركات
@ -83,7 +85,7 @@ SetDefaultBarcodeType=حدد نوع الباركود
BarcodeValue=قيمة الباركود BarcodeValue=قيمة الباركود
NoteNotVisibleOnBill=علما) على الفواتير غير مرئي ، واقتراحات...) NoteNotVisibleOnBill=علما) على الفواتير غير مرئي ، واقتراحات...)
ServiceLimitedDuration=إذا كان المنتج هو خدمة لفترة محدودة : ServiceLimitedDuration=إذا كان المنتج هو خدمة لفترة محدودة :
MultiPricesAbility=مستوى العديد من الأسعار لكل المنتجات / الخدمات MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment)
MultiPricesNumPrices=عدد من السعر MultiPricesNumPrices=عدد من السعر
AssociatedProductsAbility=تفعيل ميزة حزمة AssociatedProductsAbility=تفعيل ميزة حزمة
AssociatedProducts=المنتج حزمة AssociatedProducts=المنتج حزمة
@ -174,13 +176,13 @@ AlwaysUseNewPrice=دائما استخدام السعر الحالي للمنتج
AlwaysUseFixedPrice=استخدام سعر ثابت AlwaysUseFixedPrice=استخدام سعر ثابت
PriceByQuantity=أسعار مختلفة حسب الكمية PriceByQuantity=أسعار مختلفة حسب الكمية
PriceByQuantityRange=كمية مجموعة PriceByQuantityRange=كمية مجموعة
MultipriceRules=قواعد مستوى الأسعار MultipriceRules=Price segment rules
UseMultipriceRules=قواعد مستوى استخدام السعر (المعرفة في إعداد وحدة المنتج) إلى autocalculate أسعار جميع مستوى آخر وفقا لمستوى الأول UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment
PercentVariationOver=٪٪ الاختلاف على الصورة٪ PercentVariationOver=٪٪ الاختلاف على الصورة٪
PercentDiscountOver=٪٪ خصم أكثر من٪ الصورة PercentDiscountOver=٪٪ خصم أكثر من٪ الصورة
### composition fabrication ### composition fabrication
Build=إنتاج Build=إنتاج
ProductsMultiPrice=Products and prices for each price level ProductsMultiPrice=Products and prices for each price segment
ProductsOrServiceMultiPrice=أسعار العملاء (منتجات أو خدمات، أسعار متعددة) ProductsOrServiceMultiPrice=أسعار العملاء (منتجات أو خدمات، أسعار متعددة)
ProductSellByQuarterHT=منتجات دوران الفصلية قبل الضرائب ProductSellByQuarterHT=منتجات دوران الفصلية قبل الضرائب
ServiceSellByQuarterHT=خدمات دوران الفصلية قبل الضرائب ServiceSellByQuarterHT=خدمات دوران الفصلية قبل الضرائب
@ -201,9 +203,9 @@ DefinitionOfBarCodeForThirdpartyNotComplete=تعريف نوع أو قيمة ال
BarCodeDataForProduct=معلومات الباركود من الناتج٪ الصورة: BarCodeDataForProduct=معلومات الباركود من الناتج٪ الصورة:
BarCodeDataForThirdparty=معلومات الباركود من مرشحين عن٪ الصورة: BarCodeDataForThirdparty=معلومات الباركود من مرشحين عن٪ الصورة:
ResetBarcodeForAllRecords=تحديد قيمة الباركود لكافة السجلات (هذه القيمة الباركود سيتم إعادة تعيين أيضا يعرف بالفعل مع القيم الجديدة) ResetBarcodeForAllRecords=تحديد قيمة الباركود لكافة السجلات (هذه القيمة الباركود سيتم إعادة تعيين أيضا يعرف بالفعل مع القيم الجديدة)
PriceByCustomer=سعر مختلف لكل عميل PriceByCustomer=Different prices for each customer
PriceCatalogue=سعر فريدة من نوعها لكل منتج / خدمة PriceCatalogue=A single sell price per product/service
PricingRule=قواعد لاجل اسعارها العملاء PricingRule=Rules for sell prices
AddCustomerPrice=إضافة السعر من قبل العملاء AddCustomerPrice=إضافة السعر من قبل العملاء
ForceUpdateChildPriceSoc=تعيين نفس السعر على الشركات التابعة العملاء ForceUpdateChildPriceSoc=تعيين نفس السعر على الشركات التابعة العملاء
PriceByCustomerLog=سجل الأسعار العملاء السابقة PriceByCustomerLog=سجل الأسعار العملاء السابقة

View File

@ -12,6 +12,7 @@ RequestsOpened=طلبات السعر المفتوحة
SupplierProposalArea=منطقة مقترحات المورد SupplierProposalArea=منطقة مقترحات المورد
SupplierProposalShort=Supplier proposal SupplierProposalShort=Supplier proposal
SupplierProposals=مقترحات المورد SupplierProposals=مقترحات المورد
SupplierProposalsShort=Supplier proposals
NewAskPrice=طلب السعر الجديد NewAskPrice=طلب السعر الجديد
ShowSupplierProposal=طلب عرض أسعار ShowSupplierProposal=طلب عرض أسعار
AddSupplierProposal=إنشاء طلب السعر AddSupplierProposal=إنشاء طلب السعر

View File

@ -82,6 +82,13 @@ Codejournal=Дневник
NumPiece=Номер на част NumPiece=Номер на част
AccountingCategory=Accounting category AccountingCategory=Accounting category
NotMatch=Not Set
DeleteMvt=Delete general ledger lines
DelYear=Year to delete
DelJournal=Journal to delete
ConfirmDeleteMvt=This will delete all line of of the general ledger for year and/or from a specifics journal
DelBookKeeping=Delete the records of the general ledger DelBookKeeping=Delete the records of the general ledger
DescSellsJournal=Sells journal DescSellsJournal=Sells journal
@ -140,6 +147,7 @@ Modelcsv_bob50=Export towards Sage BOB 50
Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution
Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_quadratus=Export towards Quadratus QuadraCompta
Modelcsv_ebp=Export towards EBP Modelcsv_ebp=Export towards EBP
Modelcsv_cogilog=Export towards Cogilog
## Tools - Init accounting account on product / service ## Tools - Init accounting account on product / service
InitAccountancy=Init accountancy InitAccountancy=Init accountancy
@ -158,3 +166,4 @@ Formula=Formula
## Error ## Error
ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country
ExportNotSupported=The export format setuped is not supported into this page ExportNotSupported=The export format setuped is not supported into this page
BookeppingLineAlreayExists=Lines already existing into bookeeping

View File

@ -240,6 +240,7 @@ MAIN_SMS_SENDMODE=Метод за изпращане на SMS
MAIN_MAIL_SMS_FROM=Номер по подразбиране на телефона за изпращане на SMS MAIN_MAIL_SMS_FROM=Номер по подразбиране на телефона за изпращане на SMS
FeatureNotAvailableOnLinux=Функцията не е на разположение на Unix подобни системи. Тествайте вашата програма Sendmail на местно ниво. FeatureNotAvailableOnLinux=Функцията не е на разположение на Unix подобни системи. Тествайте вашата програма Sendmail на местно ниво.
SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
ModuleSetup=Настройки на модул ModuleSetup=Настройки на модул
ModulesSetup=Настройки на модули ModulesSetup=Настройки на модули
ModuleFamilyBase=Система ModuleFamilyBase=Система
@ -511,6 +512,8 @@ Module5000Name=Няколко фирми
Module5000Desc=Позволява ви да управлявате няколко фирми Module5000Desc=Позволява ви да управлявате няколко фирми
Module6000Name=Workflow Module6000Name=Workflow
Module6000Desc=Workflow management Module6000Desc=Workflow management
Module10000Name=Websites
Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet.
Module20000Name=Leave Requests management Module20000Name=Leave Requests management
Module20000Desc=Declare and follow employees leaves requests Module20000Desc=Declare and follow employees leaves requests
Module39000Name=Product lot Module39000Name=Product lot
@ -531,6 +534,8 @@ Module59000Name=Полета
Module59000Desc=Модул за управление на маржовете Module59000Desc=Модул за управление на маржовете
Module60000Name=Комисии Module60000Name=Комисии
Module60000Desc=Модул за управление на комисии Module60000Desc=Модул за управление на комисии
Module63000Name=Resources
Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
Permission11=Клиентите фактури Permission11=Клиентите фактури
Permission12=Създаване / промяна на фактури на клиентите Permission12=Създаване / промяна на фактури на клиентите
Permission13=Unvalidate клиентите фактури Permission13=Unvalidate клиентите фактури
@ -1588,3 +1593,4 @@ DetectionNotPossible=Detection not possible
UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and will be checked on each future access) UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and will be checked on each future access)
ListOfAvailableAPIs=List of available APIs ListOfAvailableAPIs=List of available APIs
activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.

View File

@ -88,6 +88,8 @@ ConciliatedBy=Съгласуват от
DateConciliating=Reconcile дата DateConciliating=Reconcile дата
BankLineConciliated=Transaction примири BankLineConciliated=Transaction примири
CustomerInvoicePayment=Клиентско плащане CustomerInvoicePayment=Клиентско плащане
SupplierInvoicePayment=Supplier payment
SubscriptionPayment=Subscription payment
WithdrawalPayment=Оттегляне плащане WithdrawalPayment=Оттегляне плащане
SocialContributionPayment=Social/fiscal tax payment SocialContributionPayment=Social/fiscal tax payment
BankTransfer=Банков превод BankTransfer=Банков превод

View File

@ -56,6 +56,7 @@ SupplierBill=Доставна фактура
SupplierBills=Доставни фактури SupplierBills=Доставни фактури
Payment=Плащане Payment=Плащане
PaymentBack=Обратно плащане PaymentBack=Обратно плащане
CustomerInvoicePaymentBack=Payment back
Payments=Плащания Payments=Плащания
PaymentsBack=Обратни плащания PaymentsBack=Обратни плащания
paymentInInvoiceCurrency=in invoices currency paymentInInvoiceCurrency=in invoices currency
@ -322,6 +323,7 @@ NextDateToExecution=Date for next invoice generation
DateLastGeneration=Date of latest generation DateLastGeneration=Date of latest generation
MaxPeriodNumber=Max nb of invoice generation MaxPeriodNumber=Max nb of invoice generation
NbOfGenerationDone=Nb of invoice generation already done NbOfGenerationDone=Nb of invoice generation already done
MaxGenerationReached=Maximum nb of generations reached
InvoiceAutoValidate=Validate invoices automatically InvoiceAutoValidate=Validate invoices automatically
GeneratedFromRecurringInvoice=Generated from template recurring invoice %s GeneratedFromRecurringInvoice=Generated from template recurring invoice %s
DateIsNotEnough=Date not reached yet DateIsNotEnough=Date not reached yet

View File

@ -77,9 +77,9 @@ LT1PaymentES=RE Payment
LT1PaymentsES=RE Payments LT1PaymentsES=RE Payments
LT2PaymentES=IRPF плащане LT2PaymentES=IRPF плащане
LT2PaymentsES=IRPF Плащания LT2PaymentsES=IRPF Плащания
VATPayment=Плащането на ДДС VATPayment=Sales tax payment
VATPayments=Плащанията по ДДС VATPayments=Sales tax payments
VATRefund=VAT Refund VATRefund=Sales tax refund Refund
Refund=Refund Refund=Refund
SocialContributionsPayments=Social/fiscal taxes payments SocialContributionsPayments=Social/fiscal taxes payments
ShowVatPayment=Покажи плащане на ДДС ShowVatPayment=Покажи плащане на ДДС

View File

@ -169,6 +169,11 @@ ErrorSavingChanges=An error has ocurred when saving the changes
ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
ErrorFileMustHaveFormat=File must have format %s ErrorFileMustHaveFormat=File must have format %s
ErrorSupplierCountryIsNotDefined=Country for this supplier is not defined. Correct this first. ErrorSupplierCountryIsNotDefined=Country for this supplier is not defined. Correct this first.
ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled.
ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enougth for product %s to add it into a new order.
ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enougth for product %s to add it into a new invoice.
ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enougth for product %s to add it into a new shipment.
ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enougth for product %s to add it into a new proposal.
# Warnings # Warnings
WarningPasswordSetWithNoAccount=Парола е зададено за този член. Обаче, няма създаден потребителски акаунт. Следователно тази парола е записана, но не може да бъде използвана за влизане в Dolibarr. Може да бъде използвана от външен модул/интерфейс, но ако нямате нужда да определите нито потребителско име нито парола за член, можете да деактивирате тази опция. Ако имате нужда да управлявате потребителско име, но нямата нужда от парола, можете да оставите това поле празно, за да избегнете това предупреждение. Забележка: Имейл също може да бъде използван като потребителско име ако члена с свързан към потребител. WarningPasswordSetWithNoAccount=Парола е зададено за този член. Обаче, няма създаден потребителски акаунт. Следователно тази парола е записана, но не може да бъде използвана за влизане в Dolibarr. Може да бъде използвана от външен модул/интерфейс, но ако нямате нужда да определите нито потребителско име нито парола за член, можете да деактивирате тази опция. Ако имате нужда да управлявате потребителско име, но нямата нужда от парола, можете да оставите това поле празно, за да избегнете това предупреждение. Забележка: Имейл също може да бъде използван като потребителско име ако члена с свързан към потребител.

View File

@ -76,6 +76,8 @@ BoxTitleLastLeaveRequests=Latest %s modified leave requests
HolidaysMonthlyUpdate=Месечна актуализация HolidaysMonthlyUpdate=Месечна актуализация
ManualUpdate=Ръчна акуализация ManualUpdate=Ръчна акуализация
HolidaysCancelation=Отказване на молба за отпуск HolidaysCancelation=Отказване на молба за отпуск
EmployeeLastname=Employee lastname
EmployeeFirstname=Employee firstname
## Configuration du Module ## ## Configuration du Module ##
LastUpdateCP=Latest automatic update of leaves allocation LastUpdateCP=Latest automatic update of leaves allocation

View File

@ -14,10 +14,12 @@ DeleteIntervention=Изтриване на интервенция
ValidateIntervention=Проверка на интервенция ValidateIntervention=Проверка на интервенция
ModifyIntervention=Промяна на интервенция ModifyIntervention=Промяна на интервенция
DeleteInterventionLine=Изтрий ред намеса DeleteInterventionLine=Изтрий ред намеса
CloneIntervention=Clone intervention
ConfirmDeleteIntervention=Сигурен ли сте, че искате да изтриете тази интервенция? ConfirmDeleteIntervention=Сигурен ли сте, че искате да изтриете тази интервенция?
ConfirmValidateIntervention=Сигурен ли сте, че искате да проверите тази интервенция? ConfirmValidateIntervention=Сигурен ли сте, че искате да проверите тази интервенция?
ConfirmModifyIntervention=Сигурен ли сте, че искате да промените тази интервенция? ConfirmModifyIntervention=Сигурен ли сте, че искате да промените тази интервенция?
ConfirmDeleteInterventionLine=Сигурен ли сте, че искате да изтриете тази линия намеса? ConfirmDeleteInterventionLine=Сигурен ли сте, че искате да изтриете тази линия намеса?
ConfirmCloneIntervention=Are you sure you want to clone this intervention ?
NameAndSignatureOfInternalContact=Име и подпис на намеса: NameAndSignatureOfInternalContact=Име и подпис на намеса:
NameAndSignatureOfExternalContact=Име и подпис на клиента: NameAndSignatureOfExternalContact=Име и подпис на клиента:
DocumentModelStandard=Стандартен документ модел за интервенции DocumentModelStandard=Стандартен документ модел за интервенции

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - languages # Dolibarr language file - Source file is en_US - languages
Language_ar_AR=Арабски Language_ar_AR=Арабски
Language_ar_SA=Арабски Language_ar_SA=Арабски
Language_bn_BD=Бенгали Language_bn_BD=Бенгали

View File

@ -102,7 +102,8 @@ YouCanUseCommaSeparatorForSeveralRecipients=Можете да използват
TagCheckMail=Tracker поща отвори TagCheckMail=Tracker поща отвори
TagUnsubscribe=Отписване връзка TagUnsubscribe=Отписване връзка
TagSignature=Подпис изпращане на потребителя TagSignature=Подпис изпращане на потребителя
TagMailtoEmail=E-mail на получателя EMailRecipient=Recipient EMail
TagMailtoEmail=Recipient EMail (including html "mailto:" link)
NoEmailSentBadSenderOrRecipientEmail=Няма изпратен имейл. Неправилен подател или получател на имейла. Проверете потребителския профил. NoEmailSentBadSenderOrRecipientEmail=Няма изпратен имейл. Неправилен подател или получател на имейла. Проверете потребителския профил.
# Module Notifications # Module Notifications
Notifications=Известия Notifications=Известия

View File

@ -177,6 +177,7 @@ Groups=Групи
NoUserGroupDefined=Няма дефинирана потребителска група NoUserGroupDefined=Няма дефинирана потребителска група
Password=Парола Password=Парола
PasswordRetype=Повторете паролата PasswordRetype=Повторете паролата
NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration.
Name=Име Name=Име
Person=Лице Person=Лице
Parameter=Параметър Parameter=Параметър
@ -743,6 +744,7 @@ SearchIntoMembers=Членове
SearchIntoUsers=Потребители SearchIntoUsers=Потребители
SearchIntoProductsOrServices=Продукти или услуги SearchIntoProductsOrServices=Продукти или услуги
SearchIntoProjects=Проекти SearchIntoProjects=Проекти
SearchIntoTasks=Tasks
SearchIntoCustomerInvoices=Клиентски фактури SearchIntoCustomerInvoices=Клиентски фактури
SearchIntoSupplierInvoices=Фактури доставчици SearchIntoSupplierInvoices=Фактури доставчици
SearchIntoCustomerOrders=Клиентски поръчки SearchIntoCustomerOrders=Клиентски поръчки
@ -751,5 +753,6 @@ SearchIntoCustomerProposals=Клиентски предложения
SearchIntoSupplierProposals=Предложения доставчици SearchIntoSupplierProposals=Предложения доставчици
SearchIntoInterventions=Намеси SearchIntoInterventions=Намеси
SearchIntoContracts=Договори SearchIntoContracts=Договори
SearchIntoExpenseReports=Опис разходи
SearchIntoCustomerShipments=Customer shipments SearchIntoCustomerShipments=Customer shipments
SearchIntoExpenseReports=Опис разходи
SearchIntoLeaves=Leaves

View File

@ -51,3 +51,5 @@ IPP_Supported=Тип на носител
DirectPrintingJobsDesc=This page lists printing jobs found for available printers. DirectPrintingJobsDesc=This page lists printing jobs found for available printers.
GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret.
GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth.
PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print.
PrintTestDescprintgcp=List of Printers for Google Cloud Print.

View File

@ -32,6 +32,8 @@ ServicesOnSellAndOnBuy=Услуги за продажба или покупка
LastModifiedProductsAndServices=Latest %s modified products/services LastModifiedProductsAndServices=Latest %s modified products/services
LastRecordedProducts=Latest %s recorded products LastRecordedProducts=Latest %s recorded products
LastRecordedServices=Latest %s recorded services LastRecordedServices=Latest %s recorded services
CardProduct0=Product card
CardProduct1=Service card
Stock=Наличност Stock=Наличност
Stocks=Наличности Stocks=Наличности
Movements=Движения Movements=Движения
@ -83,7 +85,7 @@ SetDefaultBarcodeType=Задайте тип баркод
BarcodeValue=Баркод стойност BarcodeValue=Баркод стойност
NoteNotVisibleOnBill=Бележка (не се вижда на фактури, предложения...) NoteNotVisibleOnBill=Бележка (не се вижда на фактури, предложения...)
ServiceLimitedDuration=Ако продуктът е услуга с ограничен срок на действие: ServiceLimitedDuration=Ако продуктът е услуга с ограничен срок на действие:
MultiPricesAbility=Няколко нива на цени за продукт/услуга MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment)
MultiPricesNumPrices=Number of prices MultiPricesNumPrices=Number of prices
AssociatedProductsAbility=Активиране на опцията за пакетиране AssociatedProductsAbility=Активиране на опцията за пакетиране
AssociatedProducts=Пакетирай продукт AssociatedProducts=Пакетирай продукт
@ -174,13 +176,13 @@ AlwaysUseNewPrice=Винаги използвайте текуща цена на
AlwaysUseFixedPrice=Използвайте фиксирана цена AlwaysUseFixedPrice=Използвайте фиксирана цена
PriceByQuantity=Различни цени за количество PriceByQuantity=Различни цени за количество
PriceByQuantityRange=Количествен диапазон PriceByQuantityRange=Количествен диапазон
MultipriceRules=Правила за ниво на цена MultipriceRules=Price segment rules
UseMultipriceRules=Използване на правила за ниво на цена (определени в настройката на продуктовия модул) за автоматично изчисляване на цени за всяко друго ниво спрямо първото ниво. UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment
PercentVariationOver=%% вариация около %s PercentVariationOver=%% вариация около %s
PercentDiscountOver=%% discount over %s PercentDiscountOver=%% discount over %s
### composition fabrication ### composition fabrication
Build=Произвеждане Build=Произвеждане
ProductsMultiPrice=Products and prices for each price level ProductsMultiPrice=Products and prices for each price segment
ProductsOrServiceMultiPrice=Клиентски цени (за продукт или услуги, мулти цени) ProductsOrServiceMultiPrice=Клиентски цени (за продукт или услуги, мулти цени)
ProductSellByQuarterHT=Products turnover quarterly before tax ProductSellByQuarterHT=Products turnover quarterly before tax
ServiceSellByQuarterHT=Services turnover quarterly before tax ServiceSellByQuarterHT=Services turnover quarterly before tax
@ -201,9 +203,9 @@ DefinitionOfBarCodeForThirdpartyNotComplete=Определяне на тип и
BarCodeDataForProduct=Информация за бар код на продукт %s: BarCodeDataForProduct=Информация за бар код на продукт %s:
BarCodeDataForThirdparty=Информация за бар код на трето лице %s: BarCodeDataForThirdparty=Информация за бар код на трето лице %s:
ResetBarcodeForAllRecords=Определяне на стойност на бар код за всички записи (това също така ще ресетира стойността на определен вече бар код с нова стойност) ResetBarcodeForAllRecords=Определяне на стойност на бар код за всички записи (това също така ще ресетира стойността на определен вече бар код с нова стойност)
PriceByCustomer=Различна цена за всеки клиент PriceByCustomer=Different prices for each customer
PriceCatalogue=Уникална цена по продукт/услуга PriceCatalogue=A single sell price per product/service
PricingRule=Правила за клиентски цени PricingRule=Rules for sell prices
AddCustomerPrice=Добавяне на цена за клиент AddCustomerPrice=Добавяне на цена за клиент
ForceUpdateChildPriceSoc=Set same price on customer subsidiaries ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
PriceByCustomerLog=История на предишни цени за клиент PriceByCustomerLog=История на предишни цени за клиент

View File

@ -12,6 +12,7 @@ RequestsOpened=Отваряне на запитване за цена
SupplierProposalArea=Зона предложения от доставчици SupplierProposalArea=Зона предложения от доставчици
SupplierProposalShort=Supplier proposal SupplierProposalShort=Supplier proposal
SupplierProposals=Предложения доставчици SupplierProposals=Предложения доставчици
SupplierProposalsShort=Supplier proposals
NewAskPrice=Ново запитване за цена NewAskPrice=Ново запитване за цена
ShowSupplierProposal=Показване на запитване за цена ShowSupplierProposal=Показване на запитване за цена
AddSupplierProposal=Създаване на запитване за цена AddSupplierProposal=Създаване на запитване за цена

View File

@ -82,6 +82,13 @@ Codejournal=Journal
NumPiece=Piece number NumPiece=Piece number
AccountingCategory=Accounting category AccountingCategory=Accounting category
NotMatch=Not Set
DeleteMvt=Delete general ledger lines
DelYear=Year to delete
DelJournal=Journal to delete
ConfirmDeleteMvt=This will delete all line of of the general ledger for year and/or from a specifics journal
DelBookKeeping=Delete the records of the general ledger DelBookKeeping=Delete the records of the general ledger
DescSellsJournal=Sells journal DescSellsJournal=Sells journal
@ -140,6 +147,7 @@ Modelcsv_bob50=Export towards Sage BOB 50
Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution
Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_quadratus=Export towards Quadratus QuadraCompta
Modelcsv_ebp=Export towards EBP Modelcsv_ebp=Export towards EBP
Modelcsv_cogilog=Export towards Cogilog
## Tools - Init accounting account on product / service ## Tools - Init accounting account on product / service
InitAccountancy=Init accountancy InitAccountancy=Init accountancy
@ -158,3 +166,4 @@ Formula=Formula
## Error ## Error
ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country
ExportNotSupported=The export format setuped is not supported into this page ExportNotSupported=The export format setuped is not supported into this page
BookeppingLineAlreayExists=Lines already existing into bookeeping

View File

@ -240,6 +240,7 @@ MAIN_SMS_SENDMODE=Method to use to send SMS
MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
ModuleSetup=Module setup ModuleSetup=Module setup
ModulesSetup=Modules setup ModulesSetup=Modules setup
ModuleFamilyBase=System ModuleFamilyBase=System
@ -511,6 +512,8 @@ Module5000Name=Multi-company
Module5000Desc=Allows you to manage multiple companies Module5000Desc=Allows you to manage multiple companies
Module6000Name=Workflow Module6000Name=Workflow
Module6000Desc=Workflow management Module6000Desc=Workflow management
Module10000Name=Websites
Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet.
Module20000Name=Leave Requests management Module20000Name=Leave Requests management
Module20000Desc=Declare and follow employees leaves requests Module20000Desc=Declare and follow employees leaves requests
Module39000Name=Product lot Module39000Name=Product lot
@ -531,6 +534,8 @@ 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
Module63000Name=Resources
Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
Permission11=Read customer invoices Permission11=Read customer invoices
Permission12=Create/modify customer invoices Permission12=Create/modify customer invoices
Permission13=Unvalidate customer invoices Permission13=Unvalidate customer invoices
@ -1588,3 +1593,4 @@ DetectionNotPossible=Detection not possible
UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and will be checked on each future access) UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and will be checked on each future access)
ListOfAvailableAPIs=List of available APIs ListOfAvailableAPIs=List of available APIs
activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.

View File

@ -88,6 +88,8 @@ ConciliatedBy=Reconciled by
DateConciliating=Reconcile date DateConciliating=Reconcile date
BankLineConciliated=Transaction reconciled BankLineConciliated=Transaction reconciled
CustomerInvoicePayment=Customer payment CustomerInvoicePayment=Customer payment
SupplierInvoicePayment=Supplier payment
SubscriptionPayment=Subscription payment
WithdrawalPayment=Withdrawal payment WithdrawalPayment=Withdrawal payment
SocialContributionPayment=Social/fiscal tax payment SocialContributionPayment=Social/fiscal tax payment
BankTransfer=Bank transfer BankTransfer=Bank transfer

View File

@ -56,6 +56,7 @@ SupplierBill=Supplier invoice
SupplierBills=suppliers invoices SupplierBills=suppliers invoices
Payment=Payment Payment=Payment
PaymentBack=Payment back PaymentBack=Payment back
CustomerInvoicePaymentBack=Payment back
Payments=Payments Payments=Payments
PaymentsBack=Payments back PaymentsBack=Payments back
paymentInInvoiceCurrency=in invoices currency paymentInInvoiceCurrency=in invoices currency
@ -322,6 +323,7 @@ NextDateToExecution=Date for next invoice generation
DateLastGeneration=Date of latest generation DateLastGeneration=Date of latest generation
MaxPeriodNumber=Max nb of invoice generation MaxPeriodNumber=Max nb of invoice generation
NbOfGenerationDone=Nb of invoice generation already done NbOfGenerationDone=Nb of invoice generation already done
MaxGenerationReached=Maximum nb of generations reached
InvoiceAutoValidate=Validate invoices automatically InvoiceAutoValidate=Validate invoices automatically
GeneratedFromRecurringInvoice=Generated from template recurring invoice %s GeneratedFromRecurringInvoice=Generated from template recurring invoice %s
DateIsNotEnough=Date not reached yet DateIsNotEnough=Date not reached yet

View File

@ -77,9 +77,9 @@ LT1PaymentES=RE Payment
LT1PaymentsES=RE Payments LT1PaymentsES=RE Payments
LT2PaymentES=IRPF Payment LT2PaymentES=IRPF Payment
LT2PaymentsES=IRPF Payments LT2PaymentsES=IRPF Payments
VATPayment=VAT Payment VATPayment=Sales tax payment
VATPayments=VAT Payments VATPayments=Sales tax payments
VATRefund=VAT Refund VATRefund=Sales tax refund Refund
Refund=Refund Refund=Refund
SocialContributionsPayments=Social/fiscal taxes payments SocialContributionsPayments=Social/fiscal taxes payments
ShowVatPayment=Show VAT payment ShowVatPayment=Show VAT payment

View File

@ -169,6 +169,11 @@ ErrorSavingChanges=An error has ocurred when saving the changes
ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
ErrorFileMustHaveFormat=File must have format %s ErrorFileMustHaveFormat=File must have format %s
ErrorSupplierCountryIsNotDefined=Country for this supplier is not defined. Correct this first. ErrorSupplierCountryIsNotDefined=Country for this supplier is not defined. Correct this first.
ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled.
ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enougth for product %s to add it into a new order.
ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enougth for product %s to add it into a new invoice.
ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enougth for product %s to add it into a new shipment.
ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enougth for product %s to add it into a new proposal.
# Warnings # Warnings
WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.

View File

@ -76,6 +76,8 @@ BoxTitleLastLeaveRequests=Latest %s modified leave requests
HolidaysMonthlyUpdate=Monthly update HolidaysMonthlyUpdate=Monthly update
ManualUpdate=Manual update ManualUpdate=Manual update
HolidaysCancelation=Leave request cancelation HolidaysCancelation=Leave request cancelation
EmployeeLastname=Employee lastname
EmployeeFirstname=Employee firstname
## Configuration du Module ## ## Configuration du Module ##
LastUpdateCP=Latest automatic update of leaves allocation LastUpdateCP=Latest automatic update of leaves allocation

View File

@ -14,10 +14,12 @@ DeleteIntervention=Delete intervention
ValidateIntervention=Validate intervention ValidateIntervention=Validate intervention
ModifyIntervention=Modify intervention ModifyIntervention=Modify intervention
DeleteInterventionLine=Delete intervention line DeleteInterventionLine=Delete intervention line
CloneIntervention=Clone intervention
ConfirmDeleteIntervention=Are you sure you want to delete this intervention ? ConfirmDeleteIntervention=Are you sure you want to delete this intervention ?
ConfirmValidateIntervention=Are you sure you want to validate this intervention under name <b>%s</b> ? ConfirmValidateIntervention=Are you sure you want to validate this intervention under name <b>%s</b> ?
ConfirmModifyIntervention=Are you sure you want to modify this intervention ? ConfirmModifyIntervention=Are you sure you want to modify this intervention ?
ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line ? ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line ?
ConfirmCloneIntervention=Are you sure you want to clone this intervention ?
NameAndSignatureOfInternalContact=Name and signature of intervening : NameAndSignatureOfInternalContact=Name and signature of intervening :
NameAndSignatureOfExternalContact=Name and signature of customer : NameAndSignatureOfExternalContact=Name and signature of customer :
DocumentModelStandard=Standard document model for interventions DocumentModelStandard=Standard document model for interventions

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - languages # Dolibarr language file - Source file is en_US - languages
Language_ar_AR=Arabic Language_ar_AR=Arabic
Language_ar_SA=Arabic Language_ar_SA=Arabic
Language_bn_BD=Bengali Language_bn_BD=Bengali

View File

@ -102,7 +102,8 @@ YouCanUseCommaSeparatorForSeveralRecipients=You can use the <b>comma</b> separat
TagCheckMail=Track mail opening TagCheckMail=Track mail opening
TagUnsubscribe=Unsubscribe link TagUnsubscribe=Unsubscribe link
TagSignature=Signature sending user TagSignature=Signature sending user
TagMailtoEmail=Recipient EMail EMailRecipient=Recipient EMail
TagMailtoEmail=Recipient EMail (including html "mailto:" link)
NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile. NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile.
# Module Notifications # Module Notifications
Notifications=Notifications Notifications=Notifications

View File

@ -177,6 +177,7 @@ Groups=Groups
NoUserGroupDefined=No user group defined NoUserGroupDefined=No user group defined
Password=Password Password=Password
PasswordRetype=Retype your password PasswordRetype=Retype your password
NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration.
Name=Name Name=Name
Person=Person Person=Person
Parameter=Parameter Parameter=Parameter
@ -743,6 +744,7 @@ SearchIntoMembers=Members
SearchIntoUsers=Users SearchIntoUsers=Users
SearchIntoProductsOrServices=Products or services SearchIntoProductsOrServices=Products or services
SearchIntoProjects=Projects SearchIntoProjects=Projects
SearchIntoTasks=Tasks
SearchIntoCustomerInvoices=Customer invoices SearchIntoCustomerInvoices=Customer invoices
SearchIntoSupplierInvoices=Supplier invoices SearchIntoSupplierInvoices=Supplier invoices
SearchIntoCustomerOrders=Customer orders SearchIntoCustomerOrders=Customer orders
@ -751,5 +753,6 @@ SearchIntoCustomerProposals=Customer proposals
SearchIntoSupplierProposals=Supplier proposals SearchIntoSupplierProposals=Supplier proposals
SearchIntoInterventions=Interventions SearchIntoInterventions=Interventions
SearchIntoContracts=Contracts SearchIntoContracts=Contracts
SearchIntoExpenseReports=Expense reports
SearchIntoCustomerShipments=Customer shipments SearchIntoCustomerShipments=Customer shipments
SearchIntoExpenseReports=Expense reports
SearchIntoLeaves=Leaves

View File

@ -51,3 +51,5 @@ IPP_Supported=Type of media
DirectPrintingJobsDesc=This page lists printing jobs found for available printers. DirectPrintingJobsDesc=This page lists printing jobs found for available printers.
GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret.
GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth.
PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print.
PrintTestDescprintgcp=List of Printers for Google Cloud Print.

View File

@ -32,6 +32,8 @@ ServicesOnSellAndOnBuy=Services for sale and for purchase
LastModifiedProductsAndServices=Latest %s modified products/services LastModifiedProductsAndServices=Latest %s modified products/services
LastRecordedProducts=Latest %s recorded products LastRecordedProducts=Latest %s recorded products
LastRecordedServices=Latest %s recorded services LastRecordedServices=Latest %s recorded services
CardProduct0=Product card
CardProduct1=Service card
Stock=Stock Stock=Stock
Stocks=Stocks Stocks=Stocks
Movements=Movements Movements=Movements
@ -83,7 +85,7 @@ SetDefaultBarcodeType=Set barcode type
BarcodeValue=Barcode value BarcodeValue=Barcode value
NoteNotVisibleOnBill=Note (not visible on invoices, proposals...) NoteNotVisibleOnBill=Note (not visible on invoices, proposals...)
ServiceLimitedDuration=If product is a service with limited duration: ServiceLimitedDuration=If product is a service with limited duration:
MultiPricesAbility=Several level of prices per product/service MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment)
MultiPricesNumPrices=Number of prices MultiPricesNumPrices=Number of prices
AssociatedProductsAbility=Activate the package feature AssociatedProductsAbility=Activate the package feature
AssociatedProducts=Package product AssociatedProducts=Package product
@ -174,13 +176,13 @@ AlwaysUseNewPrice=Always use current price of product/service
AlwaysUseFixedPrice=Use the fixed price AlwaysUseFixedPrice=Use the fixed price
PriceByQuantity=Different prices by quantity PriceByQuantity=Different prices by quantity
PriceByQuantityRange=Quantity range PriceByQuantityRange=Quantity range
MultipriceRules=Price level rules MultipriceRules=Price segment rules
UseMultipriceRules=Use price level rules (defined into product module setup) to autocalculate prices of all other level according to first level UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment
PercentVariationOver=%% variation over %s PercentVariationOver=%% variation over %s
PercentDiscountOver=%% discount over %s PercentDiscountOver=%% discount over %s
### composition fabrication ### composition fabrication
Build=Produce Build=Produce
ProductsMultiPrice=Products and prices for each price level ProductsMultiPrice=Products and prices for each price segment
ProductsOrServiceMultiPrice=Customer prices (of products or services, multi-prices) ProductsOrServiceMultiPrice=Customer prices (of products or services, multi-prices)
ProductSellByQuarterHT=Products turnover quarterly before tax ProductSellByQuarterHT=Products turnover quarterly before tax
ServiceSellByQuarterHT=Services turnover quarterly before tax ServiceSellByQuarterHT=Services turnover quarterly before tax
@ -201,9 +203,9 @@ DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar c
BarCodeDataForProduct=Barcode information of product %s : BarCodeDataForProduct=Barcode information of product %s :
BarCodeDataForThirdparty=Barcode information of thirdparty %s : BarCodeDataForThirdparty=Barcode information of thirdparty %s :
ResetBarcodeForAllRecords=Define barcode value for all records (this will also reset barcode value already defined with new values) ResetBarcodeForAllRecords=Define barcode value for all records (this will also reset barcode value already defined with new values)
PriceByCustomer=Different price for each customer PriceByCustomer=Different prices for each customer
PriceCatalogue=Unique price per product/service PriceCatalogue=A single sell price per product/service
PricingRule=Rules for customer prices PricingRule=Rules for sell prices
AddCustomerPrice=Add price by customer AddCustomerPrice=Add price by customer
ForceUpdateChildPriceSoc=Set same price on customer subsidiaries ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
PriceByCustomerLog=Log of previous customer prices PriceByCustomerLog=Log of previous customer prices

View File

@ -12,6 +12,7 @@ RequestsOpened=Open price requests
SupplierProposalArea=Supplier proposals area SupplierProposalArea=Supplier proposals area
SupplierProposalShort=Supplier proposal SupplierProposalShort=Supplier proposal
SupplierProposals=Supplier proposals SupplierProposals=Supplier proposals
SupplierProposalsShort=Supplier proposals
NewAskPrice=New price request NewAskPrice=New price request
ShowSupplierProposal=Show price request ShowSupplierProposal=Show price request
AddSupplierProposal=Create a price request AddSupplierProposal=Create a price request

View File

@ -82,6 +82,13 @@ Codejournal=Journal
NumPiece=Piece number NumPiece=Piece number
AccountingCategory=Accounting category AccountingCategory=Accounting category
NotMatch=Not Set
DeleteMvt=Delete general ledger lines
DelYear=Year to delete
DelJournal=Journal to delete
ConfirmDeleteMvt=This will delete all line of of the general ledger for year and/or from a specifics journal
DelBookKeeping=Delete the records of the general ledger DelBookKeeping=Delete the records of the general ledger
DescSellsJournal=Sells journal DescSellsJournal=Sells journal
@ -140,6 +147,7 @@ Modelcsv_bob50=Export towards Sage BOB 50
Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution
Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_quadratus=Export towards Quadratus QuadraCompta
Modelcsv_ebp=Export towards EBP Modelcsv_ebp=Export towards EBP
Modelcsv_cogilog=Export towards Cogilog
## Tools - Init accounting account on product / service ## Tools - Init accounting account on product / service
InitAccountancy=Init accountancy InitAccountancy=Init accountancy
@ -158,3 +166,4 @@ Formula=Formula
## Error ## Error
ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country
ExportNotSupported=The export format setuped is not supported into this page ExportNotSupported=The export format setuped is not supported into this page
BookeppingLineAlreayExists=Lines already existing into bookeeping

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