Merge remote-tracking branch 'Dolibarr/12.0' into 12
This commit is contained in:
commit
df297f89d0
12
ChangeLog
12
ChangeLog
@ -3,7 +3,7 @@ English Dolibarr ChangeLog
|
|||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 12.0 compared to 11.0 *****
|
***** ChangeLog for 12.0.0 compared to 11.0.0 *****
|
||||||
For users:
|
For users:
|
||||||
|
|
||||||
NEW: Module MO (Manufacturing Order) is available as stable module.
|
NEW: Module MO (Manufacturing Order) is available as stable module.
|
||||||
@ -230,6 +230,16 @@ Following changes may create regressions for some external modules, but were nec
|
|||||||
- remove input field in form '<input type="hidden" name="page" value="'.$page.'">';'
|
- remove input field in form '<input type="hidden" name="page" value="'.$page.'">';'
|
||||||
- add parameter $pagenavastextinput to value 1 when calling print_barre_liste()
|
- add parameter $pagenavastextinput to value 1 when calling print_barre_liste()
|
||||||
|
|
||||||
|
WARNING FOR DOLIWAMP USERS ONLY:
|
||||||
|
|
||||||
|
Only people that installed Dolibarr using the all-in-one autoinstaller for Windows called "DoliWAMP" are concerned by the following warnings:
|
||||||
|
|
||||||
|
* DoliWAMP autoinstaller for Windows is not more available on 32bits systems. Use standard package if you need to use such architecture.
|
||||||
|
* It is not possible to migrate from an installation done with the old DoliWAMP autoinstaller for Windows by using this new one. You must make a backup
|
||||||
|
of your database, make a fresh installation using the new installer and reload.
|
||||||
|
* Don't forget that DoliWAMP is a good solution to make a quick test of Dolibarr on your local computer but was never recommanded as a production
|
||||||
|
solution on a local desktop since a desktop computer has not a backup and security policy as good as on a server (when there is one).
|
||||||
|
DoliWAMP remains a solution for fast test or demo purposes.
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 11.0.4 compared to 11.0.3 *****
|
***** ChangeLog for 11.0.4 compared to 11.0.3 *****
|
||||||
|
|||||||
@ -41,7 +41,7 @@ Compression=lzma
|
|||||||
SolidCompression=yes
|
SolidCompression=yes
|
||||||
WizardImageFile=build\exe\doliwamp\doliwamp.bmp
|
WizardImageFile=build\exe\doliwamp\doliwamp.bmp
|
||||||
WizardSmallImageFile=build\exe\doliwamp\doliwampsmall.bmp
|
WizardSmallImageFile=build\exe\doliwamp\doliwampsmall.bmp
|
||||||
SetupIconFile=doc\images\dolibarr.ico
|
SetupIconFile=doc\images\dolibarr_favicon.ico
|
||||||
;To say the installer must be ran as admin
|
;To say the installer must be ran as admin
|
||||||
PrivilegesRequired=admin
|
PrivilegesRequired=admin
|
||||||
DisableProgramGroupPage=yes
|
DisableProgramGroupPage=yes
|
||||||
@ -104,7 +104,7 @@ Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversi
|
|||||||
; 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.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
|
; Value OK: apache 2.2.11, php 5.3.0 (if no php_exif, php_pgsql, php_zip), mysql 5.0.45
|
||||||
; Value OK: apache 2.4.9, 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)
|
; Value OK: apache 2.4.9, 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)
|
||||||
; Value To test: apache 2.4.41, php 7.3.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)
|
; Value To test: apache 2.4.41, php 7.3.12, mariadb10.4.10 (wampserver3.2.0_x64.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:\wamp64\bin\apache\apache2.4.41\*.*"; DestDir: "{app}\bin\apache\apache2.4.41"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
|
Source: "C:\wamp64\bin\apache\apache2.4.41\*.*"; DestDir: "{app}\bin\apache\apache2.4.41"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
|
||||||
|
|||||||
@ -304,7 +304,7 @@ expose_php = On
|
|||||||
max_execution_time = 30 ; Maximum execution time of each script, in seconds
|
max_execution_time = 30 ; Maximum execution time of each script, in seconds
|
||||||
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
|
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
|
||||||
;max_input_nesting_level = 64 ; Maximum input variable nesting level
|
;max_input_nesting_level = 64 ; Maximum input variable nesting level
|
||||||
memory_limit = 64M ; Maximum amount of memory a script may consume (128MB)
|
memory_limit = 256M ; Maximum amount of memory a script may consume (128MB)
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|||||||
@ -90,7 +90,7 @@ cui hai bisogno ed essere facile da usare.
|
|||||||
%{__install} -m 644 build/rpm/install.forced.php.fedora $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php
|
%{__install} -m 644 build/rpm/install.forced.php.fedora $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php
|
||||||
|
|
||||||
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
||||||
%{__install} -m 644 doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
|
%{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
|
||||||
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
|
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
|
||||||
#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
|
#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
|
||||||
%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
|
%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
|
||||||
|
|||||||
@ -150,7 +150,7 @@ cui hai bisogno ed essere facile da usare.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
||||||
%{__install} -m 644 doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
|
%{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
|
||||||
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
|
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
|
||||||
%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
|
%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
|
||||||
%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} || 0%{?mdkversion} || 0%{?suse_version}
|
%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} || 0%{?mdkversion} || 0%{?suse_version}
|
||||||
|
|||||||
@ -89,7 +89,7 @@ cui hai bisogno ed essere facile da usare.
|
|||||||
%{__install} -m 644 build/rpm/install.forced.php.mandriva $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php
|
%{__install} -m 644 build/rpm/install.forced.php.mandriva $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php
|
||||||
|
|
||||||
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
||||||
%{__install} -m 644 doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
|
%{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
|
||||||
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
|
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
|
||||||
#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
|
#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
|
||||||
%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
|
%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
|
||||||
|
|||||||
@ -90,7 +90,7 @@ cui hai bisogno ed essere facile da usare.
|
|||||||
%{__install} -m 644 build/rpm/install.forced.php.opensuse $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php
|
%{__install} -m 644 build/rpm/install.forced.php.opensuse $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php
|
||||||
|
|
||||||
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
|
||||||
%{__install} -m 644 doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
|
%{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
|
||||||
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
|
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
|
||||||
#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
|
#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
|
||||||
%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
|
%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
# Script to pull language files to Transifex
|
# Script to pull language files to Transifex
|
||||||
#
|
#
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
# Script to push language files to Transifex
|
# Script to push language files to Transifex
|
||||||
#
|
#
|
||||||
|
|||||||
@ -41,7 +41,7 @@ $action = GETPOST('action', 'aZ09');
|
|||||||
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
|
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
|
||||||
|
|
||||||
$id = GETPOST('id', 'int'); // id of record
|
$id = GETPOST('id', 'int'); // id of record
|
||||||
$mode = GETPOST('mode', 'aZ09'); // '' or 'tmp'
|
$mode = GETPOST('mode', 'aZ09'); // '' or '_tmp'
|
||||||
$piece_num = GETPOST("piece_num", 'int'); // id of transaction (several lines share the same transaction id)
|
$piece_num = GETPOST("piece_num", 'int'); // id of transaction (several lines share the same transaction id)
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
|
|||||||
@ -1085,7 +1085,7 @@ class AccountancyExport
|
|||||||
|
|
||||||
print $racine_subledger_account.$separator; // deprecated CPTG & CPTA use instead
|
print $racine_subledger_account.$separator; // deprecated CPTG & CPTA use instead
|
||||||
// MONT
|
// MONT
|
||||||
print price(abs($line->montant), 0, '', 1, 2).$separator;
|
print price(abs($line->montant), 0, '', 1, 2, 2).$separator;
|
||||||
// CODC
|
// CODC
|
||||||
print $line->sens.$separator;
|
print $line->sens.$separator;
|
||||||
// CPTG
|
// CPTG
|
||||||
|
|||||||
@ -1127,7 +1127,7 @@ class BookKeeping extends CommonObject
|
|||||||
*
|
*
|
||||||
* @param User $user User that modifies
|
* @param User $user User that modifies
|
||||||
* @param bool $notrigger false=launch triggers after, true=disable triggers
|
* @param bool $notrigger false=launch triggers after, true=disable triggers
|
||||||
* @param string $mode Mode
|
* @param string $mode Mode ('' or _tmp')
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
public function update(User $user, $notrigger = false, $mode = '')
|
public function update(User $user, $notrigger = false, $mode = '')
|
||||||
@ -1254,12 +1254,12 @@ class BookKeeping extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update movement
|
* Update accounting movement
|
||||||
*
|
*
|
||||||
* @param string $piece_num Piece num
|
* @param string $piece_num Piece num
|
||||||
* @param string $field Field
|
* @param string $field Field
|
||||||
* @param string $value Value
|
* @param string $value Value
|
||||||
* @param string $mode Mode
|
* @param string $mode Mode ('' or _tmp')
|
||||||
* @return number <0 if KO, >0 if OK
|
* @return number <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
public function updateByMvt($piece_num = '', $field = '', $value = '', $mode = '')
|
public function updateByMvt($piece_num = '', $field = '', $value = '', $mode = '')
|
||||||
@ -1268,9 +1268,9 @@ class BookKeeping extends CommonObject
|
|||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element.$mode." as ab";
|
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element.$mode;
|
||||||
$sql .= ' SET ab.'.$field.'='.(is_numeric($value) ? $value : "'".$this->db->escape($value)."'");
|
$sql .= ' SET '.$field.'='.(is_numeric($value) ? $value : "'".$this->db->escape($value)."'");
|
||||||
$sql .= ' WHERE ab.piece_num='.$piece_num;
|
$sql .= " WHERE piece_num = '".$this->db->escape($piece_num)."'";
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|
||||||
if (!$resql) {
|
if (!$resql) {
|
||||||
|
|||||||
@ -996,7 +996,8 @@ else
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// EMail
|
// EMail
|
||||||
print '<tr><td>'.img_picto('', 'object_email').' '.($conf->global->ADHERENT_MAIL_REQUIRED ? '<span class="fieldrequired">' : '').$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED ? '</span>' : '').'</td><td><input type="text" name="member_email" class="minwidth300" maxlength="255" value="'.(GETPOSTISSET('member_email') ? GETPOST('member_email', 'alpha') : $object->email).'"></td></tr>';
|
print '<tr><td>'.($conf->global->ADHERENT_MAIL_REQUIRED ? '<span class="fieldrequired">' : '').$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED ? '</span>' : '').'</td>';
|
||||||
|
print '<td>'.img_picto('', 'object_email').' <input type="text" name="member_email" class="minwidth300" maxlength="255" value="'.(GETPOSTISSET('member_email') ? GETPOST('member_email', 'alpha') : $object->email).'"></td></tr>';
|
||||||
|
|
||||||
// Address
|
// Address
|
||||||
print '<tr><td class="tdtop">'.$langs->trans("Address").'</td><td>';
|
print '<tr><td class="tdtop">'.$langs->trans("Address").'</td><td>';
|
||||||
@ -1033,13 +1034,16 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pro phone
|
// Pro phone
|
||||||
print '<tr><td>'.img_picto('', 'object_phoning').' '.$langs->trans("PhonePro").'</td><td><input type="text" name="phone" size="20" value="'.(GETPOSTISSET('phone') ? GETPOST('phone', 'alpha') : $object->phone).'"></td></tr>';
|
print '<tr><td>'.$langs->trans("PhonePro").'</td>';
|
||||||
|
print '<td>'.img_picto('', 'object_phoning').' <input type="text" name="phone" size="20" value="'.(GETPOSTISSET('phone') ? GETPOST('phone', 'alpha') : $object->phone).'"></td></tr>';
|
||||||
|
|
||||||
// Personal phone
|
// Personal phone
|
||||||
print '<tr><td>'.img_picto('', 'object_phoning').' '.$langs->trans("PhonePerso").'</td><td><input type="text" name="phone_perso" size="20" value="'.(GETPOSTISSET('phone_perso') ? GETPOST('phone_perso', 'alpha') : $object->phone_perso).'"></td></tr>';
|
print '<tr><td>'.$langs->trans("PhonePerso").'</td>';
|
||||||
|
print '<td>'.img_picto('', 'object_phoning').' <input type="text" name="phone_perso" size="20" value="'.(GETPOSTISSET('phone_perso') ? GETPOST('phone_perso', 'alpha') : $object->phone_perso).'"></td></tr>';
|
||||||
|
|
||||||
// Mobile phone
|
// Mobile phone
|
||||||
print '<tr><td>'.img_picto('', 'object_phoning_mobile').' '.$langs->trans("PhoneMobile").'</td><td><input type="text" name="phone_mobile" size="20" value="'.(GETPOSTISSET('phone_mobile') ? GETPOST('phone_mobile', 'alpha') : $object->phone_mobile).'"></td></tr>';
|
print '<tr><td>'.$langs->trans("PhoneMobile").'</td>';
|
||||||
|
print '<td>'.img_picto('', 'object_phoning_mobile').' <input type="text" name="phone_mobile" size="20" value="'.(GETPOSTISSET('phone_mobile') ? GETPOST('phone_mobile', 'alpha') : $object->phone_mobile).'"></td></tr>';
|
||||||
|
|
||||||
if (!empty($conf->socialnetworks->enabled)) {
|
if (!empty($conf->socialnetworks->enabled)) {
|
||||||
foreach ($socialnetworks as $key => $value) {
|
foreach ($socialnetworks as $key => $value) {
|
||||||
@ -1249,7 +1253,8 @@ else
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// EMail
|
// EMail
|
||||||
print '<tr><td>'.img_picto('', 'object_email').' '.($conf->global->ADHERENT_MAIL_REQUIRED ? '<span class="fieldrequired">' : '').$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED ? '</span>' : '').'</td><td><input type="text" name="member_email" class="minwidth300" maxlength="255" value="'.(isset($_POST["member_email"]) ?GETPOST("member_email", '', 2) : $object->email).'"></td></tr>';
|
print '<tr><td>'.($conf->global->ADHERENT_MAIL_REQUIRED ? '<span class="fieldrequired">' : '').$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED ? '</span>' : '').'</td>';
|
||||||
|
print '<td>'.img_picto('', 'object_email').' <input type="text" name="member_email" class="minwidth300" maxlength="255" value="'.(isset($_POST["member_email"]) ?GETPOST("member_email", '', 2) : $object->email).'"></td></tr>';
|
||||||
|
|
||||||
// Address
|
// Address
|
||||||
print '<tr><td>'.$langs->trans("Address").'</td><td>';
|
print '<tr><td>'.$langs->trans("Address").'</td><td>';
|
||||||
@ -1279,13 +1284,16 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Pro phone
|
// Pro phone
|
||||||
print '<tr><td>'.img_picto('', 'object_phoning').' '.$langs->trans("PhonePro").'</td><td><input type="text" name="phone" size="20" value="'.(GETPOSTISSET("phone") ? GETPOST("phone") : $object->phone).'"></td></tr>';
|
print '<tr><td>'.$langs->trans("PhonePro").'</td>';
|
||||||
|
print '<td>'.img_picto('', 'object_phoning').' <input type="text" name="phone" value="'.(GETPOSTISSET("phone") ? GETPOST("phone") : $object->phone).'"></td></tr>';
|
||||||
|
|
||||||
// Personal phone
|
// Personal phone
|
||||||
print '<tr><td>'.img_picto('', 'object_phoning').' '.$langs->trans("PhonePerso").'</td><td><input type="text" name="phone_perso" size="20" value="'.(GETPOSTISSET("phone_perso") ? GETPOST("phone_perso") : $object->phone_perso).'"></td></tr>';
|
print '<tr><td>'.$langs->trans("PhonePerso").'</td>';
|
||||||
|
print '<td>'.img_picto('', 'object_phoning').' <input type="text" name="phone_perso" value="'.(GETPOSTISSET("phone_perso") ? GETPOST("phone_perso") : $object->phone_perso).'"></td></tr>';
|
||||||
|
|
||||||
// Mobile phone
|
// Mobile phone
|
||||||
print '<tr><td>'.img_picto('', 'object_phoning_mobile').' '.$langs->trans("PhoneMobile").'</td><td><input type="text" name="phone_mobile" size="20" value="'.(GETPOSTISSET("phone_mobile") ? GETPOST("phone_mobile") : $object->phone_mobile).'"></td></tr>';
|
print '<tr><td>'.img_picto('', 'object_phoning_mobile').' '.$langs->trans("PhoneMobile").'</td>';
|
||||||
|
print '<td>'.img_picto('', 'object_phoning_mobile').' <input type="text" name="phone_mobile" value="'.(GETPOSTISSET("phone_mobile") ? GETPOST("phone_mobile") : $object->phone_mobile).'"></td></tr>';
|
||||||
|
|
||||||
if (!empty($conf->socialnetworks->enabled)) {
|
if (!empty($conf->socialnetworks->enabled)) {
|
||||||
foreach ($socialnetworks as $key => $value) {
|
foreach ($socialnetworks as $key => $value) {
|
||||||
|
|||||||
@ -260,7 +260,8 @@ if ($mode == 'config' && $user->admin) {
|
|||||||
print '<input type="hidden" name="action" value="updateprinter">';
|
print '<input type="hidden" name="action" value="updateprinter">';
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_fiche_head($head, $mode, $langs->trans("ModuleSetup"), 0, 'technic');
|
|
||||||
|
dol_fiche_head($head, $mode, $langs->trans("ModuleSetup"), -1, 'technic');
|
||||||
|
|
||||||
print $langs->trans("ReceiptPrinterDesc")."<br><br>\n";
|
print $langs->trans("ReceiptPrinterDesc")."<br><br>\n";
|
||||||
|
|
||||||
@ -346,11 +347,11 @@ if ($mode == 'config' && $user->admin) {
|
|||||||
}
|
}
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
print '<div><p></div>';
|
print '<br>';
|
||||||
|
|
||||||
dol_fiche_head();
|
|
||||||
|
|
||||||
print $langs->trans("ReceiptPrinterTypeDesc")."<br><br>\n";
|
print load_fiche_titre($langs->trans("ReceiptPrinterTypeDesc"), '', '')."\n";
|
||||||
|
|
||||||
print '<table class="noborder centpercent">'."\n";
|
print '<table class="noborder centpercent">'."\n";
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("CONNECTOR_DUMMY").':</td><td>'.$langs->trans("CONNECTOR_DUMMY_HELP").'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("CONNECTOR_DUMMY").':</td><td>'.$langs->trans("CONNECTOR_DUMMY_HELP").'</td></tr>';
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("CONNECTOR_NETWORK_PRINT").':</td><td>'.$langs->trans("CONNECTOR_NETWORK_PRINT_HELP").'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("CONNECTOR_NETWORK_PRINT").':</td><td>'.$langs->trans("CONNECTOR_NETWORK_PRINT_HELP").'</td></tr>';
|
||||||
@ -358,12 +359,12 @@ if ($mode == 'config' && $user->admin) {
|
|||||||
print '<tr class="oddeven"><td>'.$langs->trans("CONNECTOR_WINDOWS_PRINT").':</td><td>'.$langs->trans("CONNECTOR_WINDOWS_PRINT_HELP").'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("CONNECTOR_WINDOWS_PRINT").':</td><td>'.$langs->trans("CONNECTOR_WINDOWS_PRINT_HELP").'</td></tr>';
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("CONNECTOR_CUPS_PRINT").':</td><td>'.$langs->trans("CONNECTOR_CUPS_PRINT_HELP").'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("CONNECTOR_CUPS_PRINT").':</td><td>'.$langs->trans("CONNECTOR_CUPS_PRINT_HELP").'</td></tr>';
|
||||||
print '</table>';
|
print '</table>';
|
||||||
dol_fiche_end();
|
|
||||||
|
|
||||||
print '<div><p></div>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans("ReceiptPrinterProfileDesc"), '', '')."\n";
|
||||||
|
|
||||||
dol_fiche_head();
|
|
||||||
print $langs->trans("ReceiptPrinterProfileDesc")."<br><br>\n";
|
|
||||||
print '<table class="noborder centpercent">'."\n";
|
print '<table class="noborder centpercent">'."\n";
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("PROFILE_DEFAULT").':</td><td>'.$langs->trans("PROFILE_DEFAULT_HELP").'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("PROFILE_DEFAULT").':</td><td>'.$langs->trans("PROFILE_DEFAULT_HELP").'</td></tr>';
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("PROFILE_SIMPLE").':</td><td>'.$langs->trans("PROFILE_SIMPLE_HELP").'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("PROFILE_SIMPLE").':</td><td>'.$langs->trans("PROFILE_SIMPLE_HELP").'</td></tr>';
|
||||||
@ -371,7 +372,6 @@ if ($mode == 'config' && $user->admin) {
|
|||||||
print '<tr class="oddeven"><td>'.$langs->trans("PROFILE_P822D").':</td><td>'.$langs->trans("PROFILE_P822D_HELP").'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("PROFILE_P822D").':</td><td>'.$langs->trans("PROFILE_P822D_HELP").'</td></tr>';
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("PROFILE_STAR").':</td><td>'.$langs->trans("PROFILE_STAR_HELP").'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("PROFILE_STAR").':</td><td>'.$langs->trans("PROFILE_STAR_HELP").'</td></tr>';
|
||||||
print '</table>';
|
print '</table>';
|
||||||
dol_fiche_end();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mode == 'template' && $user->admin) {
|
if ($mode == 'template' && $user->admin) {
|
||||||
@ -383,9 +383,9 @@ if ($mode == 'template' && $user->admin) {
|
|||||||
print '<input type="hidden" name="action" value="updatetemplate">';
|
print '<input type="hidden" name="action" value="updatetemplate">';
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_fiche_head($head, $mode, $langs->trans("ModuleSetup"), 0, 'technic');
|
|
||||||
|
|
||||||
print $langs->trans("ReceiptPrinterTemplateDesc")."<br><br>\n";
|
print load_fiche_titre($langs->trans("ReceiptPrinterTemplateDesc"), '', '')."<br><br>\n";
|
||||||
|
|
||||||
print '<table class="noborder centpercent">'."\n";
|
print '<table class="noborder centpercent">'."\n";
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<th>'.$langs->trans("Name").'</th>';
|
print '<th>'.$langs->trans("Name").'</th>';
|
||||||
@ -412,15 +412,15 @@ if ($mode == 'template' && $user->admin) {
|
|||||||
print '<td>'.$printer->listprinterstemplates[$line]['name'].'</td>';
|
print '<td>'.$printer->listprinterstemplates[$line]['name'].'</td>';
|
||||||
print '<td>'.nl2br(htmlentities($printer->listprinterstemplates[$line]['template'])).'</td>';
|
print '<td>'.nl2br(htmlentities($printer->listprinterstemplates[$line]['template'])).'</td>';
|
||||||
// edit icon
|
// edit icon
|
||||||
print '<td><a href="'.$_SERVER['PHP_SELF'].'?mode=template&action=edittemplate&templateid='.$printer->listprinterstemplates[$line]['rowid'].'">';
|
print '<td><a class="editfielda paddingleftonly paddingrightonly" href="'.$_SERVER['PHP_SELF'].'?mode=template&action=edittemplate&templateid='.$printer->listprinterstemplates[$line]['rowid'].'">';
|
||||||
print img_picto($langs->trans("Edit"), 'edit');
|
print img_picto($langs->trans("Edit"), 'edit');
|
||||||
print '</a>';
|
print '</a>';
|
||||||
// delete icon
|
// delete icon
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?mode=template&action=deletetemplate&templateid='.$printer->listprinterstemplates[$line]['rowid'].'&templatename='.$printer->listprinterstemplates[$line]['name'].'">';
|
print '<a class="paddingleftonly paddingrightonly" href="'.$_SERVER['PHP_SELF'].'?mode=template&action=deletetemplate&templateid='.$printer->listprinterstemplates[$line]['rowid'].'&templatename='.$printer->listprinterstemplates[$line]['name'].'">';
|
||||||
print img_picto($langs->trans("Delete"), 'delete');
|
print img_picto($langs->trans("Delete"), 'delete');
|
||||||
print '</a>';
|
print '</a>';
|
||||||
// test icon
|
// test icon
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?mode=template&action=testtemplate&templateid='.$printer->listprinterstemplates[$line]['rowid'].'&templatename='.$printer->listprinterstemplates[$line]['name'].'">';
|
print '<a class="paddingleftonly paddingrightonly" href="'.$_SERVER['PHP_SELF'].'?mode=template&action=testtemplate&templateid='.$printer->listprinterstemplates[$line]['rowid'].'&templatename='.$printer->listprinterstemplates[$line]['name'].'">';
|
||||||
print img_picto($langs->trans("TestPrinterTemplate"), 'printer');
|
print img_picto($langs->trans("TestPrinterTemplate"), 'printer');
|
||||||
print '</a></td>';
|
print '</a></td>';
|
||||||
}
|
}
|
||||||
@ -441,21 +441,22 @@ if ($mode == 'template' && $user->admin) {
|
|||||||
print '<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
print '<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
||||||
}
|
}
|
||||||
print '</form>';
|
print '</form>';
|
||||||
print '<div><p></div>';
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
print '<table class="noborder centpercent">'."\n";
|
print '<table class="noborder centpercent">'."\n";
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<th>'.$langs->trans("Tag").'</th>';
|
print '<th>'.$langs->trans("Tag").'</th>';
|
||||||
print '<th>'.$langs->trans("Description").'</th>';
|
print '<th>'.$langs->trans("Description").'</th>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$max = count($printer->tags);
|
|
||||||
for ($tag = 0; $tag < $max; $tag++) {
|
$langs->loadLangs(array("bills", "companies"));
|
||||||
|
foreach ($printer->tags as $key => $val) {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td><'.$printer->tags[$tag].'></td><td>'.$langs->trans(strtoupper($printer->tags[$tag])).'</td>';
|
print '<td><'.$key.'></td><td>'.$langs->trans($val).'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
dol_fiche_end();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// End of page
|
// End of page
|
||||||
|
|||||||
@ -608,6 +608,12 @@ class Documents extends DolibarrApi
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
|
||||||
$object = new ExpenseReport($this->db);
|
$object = new ExpenseReport($this->db);
|
||||||
}
|
}
|
||||||
|
elseif ($modulepart == 'adherent' || $modulepart == 'member')
|
||||||
|
{
|
||||||
|
$modulepart = 'adherent';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
|
||||||
|
$object = new Adherent($this->db);
|
||||||
|
}
|
||||||
// TODO Implement additional moduleparts
|
// TODO Implement additional moduleparts
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -652,6 +658,7 @@ class Documents extends DolibarrApi
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($modulepart == 'invoice') $modulepart = 'facture';
|
if ($modulepart == 'invoice') $modulepart = 'facture';
|
||||||
|
if ($modulepart == 'member') $modulepart = 'adherent';
|
||||||
|
|
||||||
$relativefile = $subdir;
|
$relativefile = $subdir;
|
||||||
|
|
||||||
|
|||||||
@ -32,6 +32,7 @@ if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no
|
|||||||
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php
|
if (!defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php
|
||||||
if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); // Do not load ajax.lib.php library
|
if (!defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); // Do not load ajax.lib.php library
|
||||||
if (!defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session)
|
if (!defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session)
|
||||||
|
if (!defined("NOSESSION")) define("NOSESSION", '1');
|
||||||
|
|
||||||
|
|
||||||
// Force entity if a value is provided into HTTP header. Otherwise, will use the entity of user of token used.
|
// Force entity if a value is provided into HTTP header. Otherwise, will use the entity of user of token used.
|
||||||
@ -72,7 +73,8 @@ if (empty($conf->global->MAIN_MODULE_API))
|
|||||||
dol_syslog("Call Dolibarr API interfaces with module REST disabled");
|
dol_syslog("Call Dolibarr API interfaces with module REST disabled");
|
||||||
print $langs->trans("WarningModuleNotActive", 'Api').'.<br><br>';
|
print $langs->trans("WarningModuleNotActive", 'Api').'.<br><br>';
|
||||||
print $langs->trans("ToActivateModule");
|
print $langs->trans("ToActivateModule");
|
||||||
exit;
|
//session_destroy();
|
||||||
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test if explorer is not disabled
|
// Test if explorer is not disabled
|
||||||
@ -81,7 +83,8 @@ if (preg_match('/api\/index\.php\/explorer/', $url) && !empty($conf->global->API
|
|||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
dol_syslog("Call Dolibarr API interfaces with module REST disabled");
|
dol_syslog("Call Dolibarr API interfaces with module REST disabled");
|
||||||
print $langs->trans("WarningAPIExplorerDisabled").'.<br><br>';
|
print $langs->trans("WarningAPIExplorerDisabled").'.<br><br>';
|
||||||
exit;
|
//session_destroy();
|
||||||
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -138,7 +141,7 @@ if (!empty($conf->global->API_RESTRICT_ON_IP))
|
|||||||
dol_syslog('Remote ip is '.$ipremote.', not into list '.$conf->global->API_RESTRICT_ON_IP);
|
dol_syslog('Remote ip is '.$ipremote.', not into list '.$conf->global->API_RESTRICT_ON_IP);
|
||||||
print 'APIs are not allowed from the IP '.$ipremote;
|
print 'APIs are not allowed from the IP '.$ipremote;
|
||||||
header('HTTP/1.1 503 API not allowed from your IP '.$ipremote);
|
header('HTTP/1.1 503 API not allowed from your IP '.$ipremote);
|
||||||
//print $conf->global->API_RESTRICT_ON_IP;
|
//session_destroy();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -235,19 +238,19 @@ if (!empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/swagger.json' || $
|
|||||||
$regbis = array();
|
$regbis = array();
|
||||||
if (!empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/swagger.json' && $reg[2] != '/resources.json' && preg_match('/^\/(swagger|resources)\.json\/(.+)$/', $reg[2], $regbis) && $regbis[2] != 'root')))
|
if (!empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/swagger.json' && $reg[2] != '/resources.json' && preg_match('/^\/(swagger|resources)\.json\/(.+)$/', $reg[2], $regbis) && $regbis[2] != 'root')))
|
||||||
{
|
{
|
||||||
$module = $reg[1];
|
$moduleobject = $reg[1];
|
||||||
if ($module == 'explorer') // If we call page to explore details of a service
|
if ($moduleobject == 'explorer') // If we call page to explore details of a service
|
||||||
{
|
{
|
||||||
$module = $regbis[2];
|
$moduleobject = $regbis[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
$module = strtolower($module);
|
$moduleobject = strtolower($moduleobject);
|
||||||
$moduledirforclass = getModuleDirForApiClass($module);
|
$moduledirforclass = getModuleDirForApiClass($moduleobject);
|
||||||
|
|
||||||
// Load a dedicated API file
|
// Load a dedicated API file
|
||||||
dol_syslog("Load a dedicated API file module=".$module." moduledirforclass=".$moduledirforclass);
|
dol_syslog("Load a dedicated API file moduleobject=".$moduleobject." moduledirforclass=".$moduledirforclass);
|
||||||
|
|
||||||
$tmpmodule = $module;
|
$tmpmodule = $moduleobject;
|
||||||
if ($tmpmodule != 'api')
|
if ($tmpmodule != 'api')
|
||||||
$tmpmodule = preg_replace('/api$/i', '', $tmpmodule);
|
$tmpmodule = preg_replace('/api$/i', '', $tmpmodule);
|
||||||
$classfile = str_replace('_', '', $tmpmodule);
|
$classfile = str_replace('_', '', $tmpmodule);
|
||||||
@ -264,7 +267,7 @@ if (!empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/swagger.json' &&
|
|||||||
|
|
||||||
$dir_part_file = dol_buildpath('/'.$moduledirforclass.'/class/api_'.$classfile.'.class.php', 0, 2);
|
$dir_part_file = dol_buildpath('/'.$moduledirforclass.'/class/api_'.$classfile.'.class.php', 0, 2);
|
||||||
|
|
||||||
$classname = ucwords($module);
|
$classname = ucwords($moduleobject);
|
||||||
|
|
||||||
dol_syslog('Search api file /'.$moduledirforclass.'/class/api_'.$classfile.'.class.php => dir_part_file='.$dir_part_file.' classname='.$classname);
|
dol_syslog('Search api file /'.$moduledirforclass.'/class/api_'.$classfile.'.class.php => dir_part_file='.$dir_part_file.' classname='.$classname);
|
||||||
|
|
||||||
@ -275,6 +278,7 @@ if (!empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/swagger.json' &&
|
|||||||
dol_syslog('Failed to make include_once '.$dir_part_file, LOG_WARNING);
|
dol_syslog('Failed to make include_once '.$dir_part_file, LOG_WARNING);
|
||||||
print 'API not found (failed to include API file)';
|
print 'API not found (failed to include API file)';
|
||||||
header('HTTP/1.1 501 API not found (failed to include API file)');
|
header('HTTP/1.1 501 API not found (failed to include API file)');
|
||||||
|
//session_destroy();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,9 +286,16 @@ if (!empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/swagger.json' &&
|
|||||||
$api->r->addAPIClass($classname);
|
$api->r->addAPIClass($classname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//var_dump($api->r->apiVersionMap);
|
//var_dump($api->r->apiVersionMap);
|
||||||
//exit;
|
//exit;
|
||||||
|
|
||||||
// Call API (we suppose we found it).
|
// Call API (we suppose we found it).
|
||||||
// The handle will use the file api/temp/routes.php to get data to run the API. If the file exists and the entry for API is not found, it will return 404.
|
// The handle will use the file api/temp/routes.php to get data to run the API. If the file exists and the entry for API is not found, it will return 404.
|
||||||
|
|
||||||
|
//Luracast\Restler\Defaults::$returnResponse = true;
|
||||||
|
//print $api->r->handle();
|
||||||
|
|
||||||
$api->r->handle();
|
$api->r->handle();
|
||||||
|
|
||||||
|
//session_destroy();
|
||||||
|
|||||||
@ -193,7 +193,7 @@ llxHeader('', $langs->trans("MassBarcodeInit"));
|
|||||||
print load_fiche_titre($langs->trans("MassBarcodeInit"), '', 'title_setup.png');
|
print load_fiche_titre($langs->trans("MassBarcodeInit"), '', 'title_setup.png');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print $langs->trans("MassBarcodeInitDesc").'<br>';
|
print '<span class="opacitymedium">'.$langs->trans("MassBarcodeInitDesc").'</span><br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
//print img_picto('','puce').' '.$langs->trans("PrintsheetForOneBarCode").'<br>';
|
//print img_picto('','puce').' '.$langs->trans("PrintsheetForOneBarCode").'<br>';
|
||||||
@ -317,6 +317,12 @@ if ($conf->product->enabled || $conf->product->service)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans("BarCodePrintsheet"), '', 'generic');
|
||||||
|
print '<br>'."\n";
|
||||||
|
print $langs->trans("ClickHereToGoTo").' : <a href="'.DOL_URL_ROOT.'/barcode/printsheet.php">'.$langs->trans("BarCodePrintsheet").'</a>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|||||||
@ -267,7 +267,7 @@ llxHeader('', $langs->trans("BarCodePrintsheet"));
|
|||||||
print load_fiche_titre($langs->trans("BarCodePrintsheet"), '', 'barcode');
|
print load_fiche_titre($langs->trans("BarCodePrintsheet"), '', 'barcode');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print $langs->trans("PageToGenerateBarCodeSheets", $langs->transnoentitiesnoconv("BuildPageToPrint")).'<br>';
|
print '<span class="opacitymedium">'.$langs->trans("PageToGenerateBarCodeSheets", $langs->transnoentitiesnoconv("BuildPageToPrint")).'</span><br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
dol_htmloutput_errors($mesg);
|
dol_htmloutput_errors($mesg);
|
||||||
|
|||||||
@ -24,11 +24,11 @@ require_once DOL_DOCUMENT_ROOT.'/bom/class/bom.class.php';
|
|||||||
/**
|
/**
|
||||||
* \file bom/class/api_boms.class.php
|
* \file bom/class/api_boms.class.php
|
||||||
* \ingroup bom
|
* \ingroup bom
|
||||||
* \brief File for API management of bom.
|
* \brief File for API management of BOM.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API class for bom
|
* API class for BOM
|
||||||
*
|
*
|
||||||
* @access protected
|
* @access protected
|
||||||
* @class DolibarrApiAccess {@requires user,external}
|
* @class DolibarrApiAccess {@requires user,external}
|
||||||
@ -120,7 +120,7 @@ class Boms extends DolibarrApi
|
|||||||
//if ($mode == 1) $sql.= " AND s.client IN (1, 3)";
|
//if ($mode == 1) $sql.= " AND s.client IN (1, 3)";
|
||||||
//if ($mode == 2) $sql.= " AND s.client IN (2, 3)";
|
//if ($mode == 2) $sql.= " AND s.client IN (2, 3)";
|
||||||
|
|
||||||
if ($tmpobject->ismultientitymanaged) $sql .= ' AND t.entity IN ('.getEntity('bom').')';
|
if ($tmpobject->ismultientitymanaged) $sql .= ' AND t.entity IN ('.getEntity($tmpobject->element).')';
|
||||||
if ($restrictonsocid && (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= " AND t.fk_soc = sc.fk_soc";
|
if ($restrictonsocid && (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= " AND t.fk_soc = sc.fk_soc";
|
||||||
if ($restrictonsocid && $socid) $sql .= " AND t.fk_soc = ".$socid;
|
if ($restrictonsocid && $socid) $sql .= " AND t.fk_soc = ".$socid;
|
||||||
if ($restrictonsocid && $search_sale > 0) $sql .= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale
|
if ($restrictonsocid && $search_sale > 0) $sql .= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale
|
||||||
|
|||||||
@ -248,7 +248,7 @@ class AgendaEvents extends DolibarrApi
|
|||||||
throw new RestException(404, 'actioncomm not found');
|
throw new RestException(404, 'actioncomm not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DolibarrApi::_checkAccessToResource('actioncomm', $this->actioncomm->id)) {
|
if (!DolibarrApi::_checkAccessToResource('actioncomm', $this->actioncomm->id, 'actioncomm', '', 'fk_soc', 'id')) {
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
}
|
}
|
||||||
foreach ($request_data as $field => $value) {
|
foreach ($request_data as $field => $value) {
|
||||||
@ -290,7 +290,7 @@ class AgendaEvents extends DolibarrApi
|
|||||||
throw new RestException(404, 'Agenda Event not found');
|
throw new RestException(404, 'Agenda Event not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DolibarrApi::_checkAccessToResource('actioncomm', $this->actioncomm->id)) {
|
if (!DolibarrApi::_checkAccessToResource('actioncomm', $this->actioncomm->id, 'actioncomm', '', 'fk_soc', 'id')) {
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -341,74 +341,6 @@ class FormAdvTargetEmailing extends Form
|
|||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return combo list with customer categories
|
|
||||||
*
|
|
||||||
* @param string $htmlname Name of categorie
|
|
||||||
* @param array $selected_array value selected
|
|
||||||
* @return string HTML combo
|
|
||||||
*/
|
|
||||||
public function multiselectCustomerCategories($htmlname = 'cust_cat', $selected_array = array())
|
|
||||||
{
|
|
||||||
return $this->multiselectCategories($htmlname, $selected_array, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return combo list with customer contact
|
|
||||||
*
|
|
||||||
* @param string $htmlname Name of categorie
|
|
||||||
* @param array $selected_array value selected
|
|
||||||
* @return string HTML combo
|
|
||||||
*/
|
|
||||||
public function multiselectContactCategories($htmlname = 'contact_cat', $selected_array = array())
|
|
||||||
{
|
|
||||||
return $this->multiselectCategories($htmlname, $selected_array, 4);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return combo list of categories
|
|
||||||
*
|
|
||||||
* @param string $htmlname Name of categorie
|
|
||||||
* @param array $selected_array Value selected
|
|
||||||
* @param int $type Type
|
|
||||||
* @return string HTML combo
|
|
||||||
*/
|
|
||||||
public function multiselectCategories($htmlname = '', $selected_array = array(), $type = 0)
|
|
||||||
{
|
|
||||||
global $conf, $langs, $user;
|
|
||||||
$langs->load("dict");
|
|
||||||
|
|
||||||
$options_array = array();
|
|
||||||
|
|
||||||
$sql = "SELECT rowid, label FROM ".MAIN_DB_PREFIX."categorie";
|
|
||||||
$sql .= " WHERE type=".$type;
|
|
||||||
|
|
||||||
dol_syslog(__METHOD__, LOG_DEBUG);
|
|
||||||
$resql = $this->db->query($sql);
|
|
||||||
if ($resql)
|
|
||||||
{
|
|
||||||
$num = $this->db->num_rows($resql);
|
|
||||||
$i = 0;
|
|
||||||
if ($num)
|
|
||||||
{
|
|
||||||
while ($i < $num)
|
|
||||||
{
|
|
||||||
$obj = $this->db->fetch_object($resql);
|
|
||||||
|
|
||||||
$options_array[$obj->rowid] = $obj->label;
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dol_print_error($this->db);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->advMultiselectarray($htmlname, $options_array, $selected_array);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a combo list to select emailing target selector
|
* Return a combo list to select emailing target selector
|
||||||
*
|
*
|
||||||
|
|||||||
@ -323,15 +323,23 @@ if (empty($reshook))
|
|||||||
|
|
||||||
if (($tmp_total_ht < 0 || $tmp_total_ht_devise < 0) && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES))
|
if (($tmp_total_ht < 0 || $tmp_total_ht_devise < 0) && empty($conf->global->FACTURE_ENABLE_NEGATIVE_LINES))
|
||||||
{
|
{
|
||||||
$langs->load("errors");
|
|
||||||
if ($object->type == $object::TYPE_DEPOSIT) {
|
if ($object->type == $object::TYPE_DEPOSIT) {
|
||||||
|
$langs->load("errors");
|
||||||
// Using negative lines on deposit lead to headach and blocking problems when you want to consume them.
|
// Using negative lines on deposit lead to headach and blocking problems when you want to consume them.
|
||||||
setEventMessages($langs->trans("ErrorLinesCantBeNegativeOnDeposits"), null, 'errors');
|
setEventMessages($langs->trans("ErrorLinesCantBeNegativeOnDeposits"), null, 'errors');
|
||||||
|
$error++;
|
||||||
|
$action = '';
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("ErrorLinesCantBeNegativeForOneVATRate"), null, 'errors');
|
$tmpvatratetoshow = explode('_', $vatrate);
|
||||||
|
$tmpvatratetoshow[0] = round($tmpvatratetoshow[0], 2);
|
||||||
|
|
||||||
|
if ($tmpvatratetoshow[0] != 0) {
|
||||||
|
$langs->load("errors");
|
||||||
|
setEventMessages($langs->trans("ErrorLinesCantBeNegativeForOneVATRate", $tmpvatratetoshow[0]), null, 'errors');
|
||||||
|
$error++;
|
||||||
|
$action = '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$error++;
|
|
||||||
$action = '';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3536,10 +3544,19 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Other attributes
|
// Other attributes
|
||||||
$parameters = array('objectsrc' => $objectsrc, 'colspan' => ' colspan="2"', 'cols' => '2');
|
$parameters = array('objectsrc' => $objectsrc, 'colspan' => ' colspan="2"', 'cols' => '2', 'socid'=>$socid);
|
||||||
$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
|
||||||
print $hookmanager->resPrint;
|
print $hookmanager->resPrint;
|
||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
|
if (!empty($conf->global->THIRDPARTY_PROPAGATE_EXTRAFIELDS_TO_INVOICE)) {
|
||||||
|
// copy from thirdparty
|
||||||
|
$tpExtrafields = new Extrafields($db);
|
||||||
|
$tpExtrafieldLabels = $tpExtrafields->fetch_name_optionals_label($soc->table_element);
|
||||||
|
if ($soc->fetch_optionals() > 0) {
|
||||||
|
$object->array_options = array_merge($object->array_options, $soc->array_options);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
print $object->showOptionals($extrafields, 'edit', $parameters);
|
print $object->showOptionals($extrafields, 'edit', $parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -455,6 +455,7 @@ if (!$sall) $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiement_facture as pf ON pf.f
|
|||||||
if ($sall || $search_product_category > 0) $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'facturedet as pd ON f.rowid=pd.fk_facture';
|
if ($sall || $search_product_category > 0) $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'facturedet as pd ON f.rowid=pd.fk_facture';
|
||||||
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";
|
||||||
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user AS u ON f.fk_user_author = u.rowid';
|
||||||
// We'll need this table joined to the select in order to filter by sale
|
// We'll need this table joined to the select in order to filter by sale
|
||||||
if ($search_sale > 0 || (!$user->rights->societe->client->voir && !$socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
if ($search_sale > 0 || (!$user->rights->societe->client->voir && !$socid)) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||||
if ($search_user > 0)
|
if ($search_user > 0)
|
||||||
@ -462,7 +463,7 @@ if ($search_user > 0)
|
|||||||
$sql .= ", ".MAIN_DB_PREFIX."element_contact as ec";
|
$sql .= ", ".MAIN_DB_PREFIX."element_contact as ec";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX."c_type_contact as tc";
|
$sql .= ", ".MAIN_DB_PREFIX."c_type_contact as tc";
|
||||||
}
|
}
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'user AS u ON f.fk_user_author = u.rowid';
|
|
||||||
$sql .= ' WHERE f.fk_soc = s.rowid';
|
$sql .= ' WHERE f.fk_soc = s.rowid';
|
||||||
$sql .= ' AND f.entity IN ('.getEntity('invoice').')';
|
$sql .= ' AND f.entity IN ('.getEntity('invoice').')';
|
||||||
if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||||
|
|||||||
@ -68,9 +68,11 @@ class Paiement extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $montant;
|
public $montant;
|
||||||
|
|
||||||
public $amount; // Total amount of payment
|
public $amount; // Total amount of payment (in the main currency)
|
||||||
public $amounts = array(); // Array of amounts
|
public $multicurrency_amount; // Total amount of payment (in the currency of the bank account)
|
||||||
public $multicurrency_amounts = array(); // Array of amounts
|
public $amounts = array(); // array: invoice ID => amount for that invoice (in the main currency)>
|
||||||
|
public $multicurrency_amounts = array(); // array: invoice ID => amount for that invoice (in the invoice's currency)>
|
||||||
|
|
||||||
public $author;
|
public $author;
|
||||||
public $paiementid; // Type of payment. Id saved into fields fk_paiement on llx_paiement
|
public $paiementid; // Type of payment. Id saved into fields fk_paiement on llx_paiement
|
||||||
public $paiementcode; // Code of payment.
|
public $paiementcode; // Code of payment.
|
||||||
@ -159,7 +161,7 @@ class Paiement extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public function fetch($id, $ref = '', $fk_bank = '')
|
public function fetch($id, $ref = '', $fk_bank = '')
|
||||||
{
|
{
|
||||||
$sql = 'SELECT p.rowid, p.ref, p.datep as dp, p.amount, p.statut, p.ext_payment_id, p.ext_payment_site, p.fk_bank,';
|
$sql = 'SELECT p.rowid, p.ref, p.datep as dp, p.amount, p.statut, p.ext_payment_id, p.ext_payment_site, p.fk_bank, p.multicurrency_amount,';
|
||||||
$sql .= ' c.code as type_code, c.libelle as type_label,';
|
$sql .= ' c.code as type_code, c.libelle as type_label,';
|
||||||
$sql .= ' p.num_paiement as num_payment, p.note,';
|
$sql .= ' p.num_paiement as num_payment, p.note,';
|
||||||
$sql .= ' b.fk_account';
|
$sql .= ' b.fk_account';
|
||||||
@ -179,6 +181,7 @@ class Paiement extends CommonObject
|
|||||||
if ($this->db->num_rows($resql))
|
if ($this->db->num_rows($resql))
|
||||||
{
|
{
|
||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
$this->ref = $obj->ref ? $obj->ref : $obj->rowid;
|
$this->ref = $obj->ref ? $obj->ref : $obj->rowid;
|
||||||
$this->date = $this->db->jdate($obj->dp);
|
$this->date = $this->db->jdate($obj->dp);
|
||||||
@ -187,6 +190,7 @@ class Paiement extends CommonObject
|
|||||||
$this->num_payment = $obj->num_payment;
|
$this->num_payment = $obj->num_payment;
|
||||||
$this->montant = $obj->amount; // deprecated
|
$this->montant = $obj->amount; // deprecated
|
||||||
$this->amount = $obj->amount;
|
$this->amount = $obj->amount;
|
||||||
|
$this->multicurrency_amount = $obj->multicurrency_amount;
|
||||||
$this->note = $obj->note;
|
$this->note = $obj->note;
|
||||||
$this->type_label = $obj->type_label;
|
$this->type_label = $obj->type_label;
|
||||||
$this->type_code = $obj->type_code;
|
$this->type_code = $obj->type_code;
|
||||||
@ -513,8 +517,10 @@ class Paiement extends CommonObject
|
|||||||
{
|
{
|
||||||
$accline = new AccountLine($this->db);
|
$accline = new AccountLine($this->db);
|
||||||
|
|
||||||
$result = $accline->fetch($bank_line_id);
|
$result=$accline->fetch($bank_line_id);
|
||||||
if ($result == 0) $accline->rowid = $bank_line_id; // If not found, we set artificially rowid to allow delete of llx_bank_url
|
if ($result == 0) {
|
||||||
|
$accline->id = $accline->rowid = $bank_line_id; // If not found, we set artificially rowid to allow delete of llx_bank_url
|
||||||
|
}
|
||||||
|
|
||||||
// Delete bank account url lines linked to payment
|
// Delete bank account url lines linked to payment
|
||||||
$result = $accline->delete_urls($user);
|
$result = $accline->delete_urls($user);
|
||||||
|
|||||||
@ -78,13 +78,13 @@ print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").'</
|
|||||||
print '<tr class="oddeven"><td>'.$langs->trans("NbOfInvoiceToPayByBankTransfer").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("NbOfInvoiceToPayByBankTransfer").'</td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
print '<a href="'.DOL_URL_ROOT.'/compta/prelevement/demandes.php?status=0&type=bank-transfer">';
|
print '<a href="'.DOL_URL_ROOT.'/compta/prelevement/demandes.php?status=0&type=bank-transfer">';
|
||||||
print $bprev->nbOfInvoiceToPay('credit-transfer');
|
print $bprev->nbOfInvoiceToPay('bank-transfer');
|
||||||
print '</a>';
|
print '</a>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("AmountToWithdraw").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("AmountToWithdraw").'</td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
print price($bprev->SommeAPrelever('credit-transfer'), '', '', 1, -1, -1, 'auto');
|
print price($bprev->SommeAPrelever('bank-transfer'), '', '', 1, -1, -1, 'auto');
|
||||||
print '</td></tr></table></div><br>';
|
print '</td></tr></table></div><br>';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -688,7 +688,7 @@ class BonPrelevement extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Returns amount of withdrawal
|
* Returns amount of withdrawal
|
||||||
*
|
*
|
||||||
* @param string $mode 'direct-debit' or 'credit-transfer'
|
* @param string $mode 'direct-debit' or 'bank-transfer'
|
||||||
* @return double <O if KO, Total amount
|
* @return double <O if KO, Total amount
|
||||||
*/
|
*/
|
||||||
public function SommeAPrelever($mode = 'direct-debit')
|
public function SommeAPrelever($mode = 'direct-debit')
|
||||||
@ -697,7 +697,7 @@ class BonPrelevement extends CommonObject
|
|||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$sql = "SELECT sum(pfd.amount) as nb";
|
$sql = "SELECT sum(pfd.amount) as nb";
|
||||||
if ($mode != 'credit-transfer') {
|
if ($mode != 'bank-transfer') {
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f,";
|
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f,";
|
||||||
} else {
|
} else {
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as f,";
|
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as f,";
|
||||||
@ -732,7 +732,7 @@ class BonPrelevement extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Get number of invoices waiting for payment
|
* Get number of invoices waiting for payment
|
||||||
*
|
*
|
||||||
* @param string $mode 'direct-debit' or 'credit-transfer'
|
* @param string $mode 'direct-debit' or 'bank-transfer'
|
||||||
* @return int <O if KO, number of invoices if OK
|
* @return int <O if KO, number of invoices if OK
|
||||||
*/
|
*/
|
||||||
public function nbOfInvoiceToPay($mode = 'direct-debit')
|
public function nbOfInvoiceToPay($mode = 'direct-debit')
|
||||||
@ -744,7 +744,7 @@ class BonPrelevement extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Get number of invoices to withdrawal
|
* Get number of invoices to withdrawal
|
||||||
*
|
*
|
||||||
* @param string $mode 'direct-debit' or 'credit-transfer'
|
* @param string $mode 'direct-debit' or 'bank-transfer'
|
||||||
* @return int <O if KO, number of invoices if OK
|
* @return int <O if KO, number of invoices if OK
|
||||||
*/
|
*/
|
||||||
public function NbFactureAPrelever($mode = 'direct-debit')
|
public function NbFactureAPrelever($mode = 'direct-debit')
|
||||||
@ -753,7 +753,7 @@ class BonPrelevement extends CommonObject
|
|||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$sql = "SELECT count(f.rowid) as nb";
|
$sql = "SELECT count(f.rowid) as nb";
|
||||||
if ($mode == 'credit-transfer') {
|
if ($mode == 'bank-transfer') {
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as f";
|
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as f";
|
||||||
} else {
|
} else {
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
|
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
|
||||||
@ -764,7 +764,7 @@ class BonPrelevement extends CommonObject
|
|||||||
{
|
{
|
||||||
$sql .= " AND f.fk_statut = ".Facture::STATUS_VALIDATED;
|
$sql .= " AND f.fk_statut = ".Facture::STATUS_VALIDATED;
|
||||||
}
|
}
|
||||||
if ($mode == 'credit-transfer') {
|
if ($mode == 'bank-transfer') {
|
||||||
$sql .= " AND f.rowid = pfd.fk_facture_fourn";
|
$sql .= " AND f.rowid = pfd.fk_facture_fourn";
|
||||||
} else {
|
} else {
|
||||||
$sql .= " AND f.rowid = pfd.fk_facture";
|
$sql .= " AND f.rowid = pfd.fk_facture";
|
||||||
|
|||||||
@ -157,7 +157,7 @@ if ($type == 'bank-transfer') {
|
|||||||
$title = $langs->trans("NbOfInvoiceToPayByBankTransfer");
|
$title = $langs->trans("NbOfInvoiceToPayByBankTransfer");
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<tr><td class="titlefield">'.$title.'</td>';
|
print '<tr><td class="titlefieldcreate">'.$title.'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $nb;
|
print $nb;
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|||||||
@ -1200,7 +1200,7 @@ if ($action == 'create')
|
|||||||
{
|
{
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->select_company('', 'socid', '', 'SelectThirdParty', 1, 0, null, 0, 'minwidth300');
|
print $form->select_company('', 'socid', '', 'SelectThirdParty', 1, 0, null, 0, 'minwidth300');
|
||||||
print ' <a href="'.DOL_URL_ROOT.'/societe/card.php?action=create&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create').'"><span class="valignmiddle text-plus-circle">'.$langs->trans("AddThirdParty").'</span><span class="fa fa-plus-circle valignmiddle paddingleft"></span></a>';
|
print ' <a href="'.DOL_URL_ROOT.'/societe/card.php?action=create&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create').'"><span class="fa fa-plus-circle valignmiddle paddingleft" title="'.$langs->trans("AddThirdParty").'"></span></a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
@ -1242,7 +1242,7 @@ if ($action == 'create')
|
|||||||
|
|
||||||
print '<tr><td>'.$langs->trans("Project").'</td><td>';
|
print '<tr><td>'.$langs->trans("Project").'</td><td>';
|
||||||
$formproject->select_projects(($soc->id > 0 ? $soc->id : -1), $projectid, "projectid", 0, 0, 1, 1);
|
$formproject->select_projects(($soc->id > 0 ? $soc->id : -1), $projectid, "projectid", 0, 0, 1, 1);
|
||||||
print ' <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).'"><span class="valignmiddle text-plus-circle">'.$langs->trans("AddProject").'</span><span class="fa fa-plus-circle valignmiddle"></span></a>';
|
print ' <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).'"><span class="fa fa-plus-circle valignmiddle" title="'.$langs->trans("AddProject").'"></span></a>';
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -217,8 +217,10 @@ elseif ($action == 'renamefile' && GETPOST('renamefilesave', 'alpha'))
|
|||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
if (!file_exists($destpath))
|
if (preg_match('/^\./', $filenameto)) {
|
||||||
{
|
$langs->load("errors"); // lang must be loaded because we can't rely on loading during output, we need var substitution to be done now.
|
||||||
|
setEventMessages($langs->trans("ErrorFilenameCantStartWithDot", $filenameto), null, 'errors');
|
||||||
|
} elseif (!file_exists($destpath)) {
|
||||||
$result = dol_move($srcpath, $destpath);
|
$result = dol_move($srcpath, $destpath);
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
@ -244,13 +246,13 @@ elseif ($action == 'renamefile' && GETPOST('renamefilesave', 'alpha'))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$langs->load("errors"); // key must be loaded because we can't rely on loading during output, we need var substitution to be done now.
|
$langs->load("errors"); // lang must be loaded because we can't rely on loading during output, we need var substitution to be done now.
|
||||||
setEventMessages($langs->trans("ErrorFailToRenameFile", $filenamefrom, $filenameto), null, 'errors');
|
setEventMessages($langs->trans("ErrorFailToRenameFile", $filenamefrom, $filenameto), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$langs->load("errors"); // key must be loaded because we can't rely on loading during output, we need var substitution to be done now.
|
$langs->load("errors"); // lang must be loaded because we can't rely on loading during output, we need var substitution to be done now.
|
||||||
setEventMessages($langs->trans("ErrorDestinationAlreadyExists", $filenameto), null, 'errors');
|
setEventMessages($langs->trans("ErrorDestinationAlreadyExists", $filenameto), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -101,7 +101,9 @@ class box_external_rss extends ModeleBoxes
|
|||||||
if ($result < 0 || !empty($rssparser->error))
|
if ($result < 0 || !empty($rssparser->error))
|
||||||
{
|
{
|
||||||
// Show warning
|
// Show warning
|
||||||
$title .= " ".img_error($langs->trans("FailedToRefreshDataInfoNotUpToDate", ($rssparser->getLastFetchDate() ?dol_print_date($rssparser->getLastFetchDate(), "dayhourtext") : $langs->trans("Unknown"))));
|
$errormessage = $langs->trans("FailedToRefreshDataInfoNotUpToDate", ($rssparser->getLastFetchDate() ? dol_print_date($rssparser->getLastFetchDate(), "dayhourtext") : $langs->trans("Unknown")));
|
||||||
|
if ($rssparser->error) $errormessage .= " - ".$rssparser->error;
|
||||||
|
$title .= " ".img_error($errormessage);
|
||||||
$this->info_box_head = array('text' => $title, 'limit' => 0);
|
$this->info_box_head = array('text' => $title, 'limit' => 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -109,7 +111,7 @@ class box_external_rss extends ModeleBoxes
|
|||||||
$this->info_box_head = array(
|
$this->info_box_head = array(
|
||||||
'text' => $title,
|
'text' => $title,
|
||||||
'sublink' => $link,
|
'sublink' => $link,
|
||||||
'subtext'=>$langs->trans("LastRefreshDate").': '.($rssparser->getLastFetchDate() ?dol_print_date($rssparser->getLastFetchDate(), "dayhourtext") : $langs->trans("Unknown")),
|
'subtext'=>$langs->trans("LastRefreshDate").': '.($rssparser->getLastFetchDate() ? dol_print_date($rssparser->getLastFetchDate(), "dayhourtext") : $langs->trans("Unknown")),
|
||||||
'subpicto'=>'globe',
|
'subpicto'=>'globe',
|
||||||
'target'=>'_blank',
|
'target'=>'_blank',
|
||||||
);
|
);
|
||||||
|
|||||||
@ -6091,7 +6091,7 @@ abstract class CommonObject
|
|||||||
{
|
{
|
||||||
$morecss = 'minwidth100imp';
|
$morecss = 'minwidth100imp';
|
||||||
}
|
}
|
||||||
elseif ($type == 'datetime' || $type == 'link')
|
elseif ($type == 'datetime' || $type == 'link') // link means an foreign key to another primary id
|
||||||
{
|
{
|
||||||
$morecss = 'minwidth200imp';
|
$morecss = 'minwidth200imp';
|
||||||
}
|
}
|
||||||
@ -6563,11 +6563,13 @@ abstract class CommonObject
|
|||||||
$param_list = array_keys($param['options']); // $param_list='ObjectName:classPath[:AddCreateButtonOrNot[:Filter]]'
|
$param_list = array_keys($param['options']); // $param_list='ObjectName:classPath[:AddCreateButtonOrNot[:Filter]]'
|
||||||
$param_list_array = explode(':', $param_list[0]);
|
$param_list_array = explode(':', $param_list[0]);
|
||||||
$showempty = (($required && $default != '') ? 0 : 1);
|
$showempty = (($required && $default != '') ? 0 : 1);
|
||||||
|
if (!empty($param_list_array[2])) { // If the entry into $fields is set to add a create button
|
||||||
|
$morecss .= ' widthcentpercentminusx';
|
||||||
|
}
|
||||||
|
|
||||||
$out = $form->selectForForms($param_list[0], $keyprefix.$key.$keysuffix, $value, $showempty, '', '', $morecss, $moreparam, 0, empty($val['disabled']) ? 0 : 1);
|
$out = $form->selectForForms($param_list[0], $keyprefix.$key.$keysuffix, $value, $showempty, '', '', $morecss, $moreparam, 0, empty($val['disabled']) ? 0 : 1);
|
||||||
|
|
||||||
if (!empty($param_list_array[2])) // If we set to add a create button
|
if (!empty($param_list_array[2])) { // If the entry into $fields is set to add a create button
|
||||||
{
|
|
||||||
if (!GETPOSTISSET('backtopage') && empty($val['disabled']) && empty($nonewbutton)) // To avoid to open several times the 'Create Object' button and to avoid to have button if field is protected by a "disabled".
|
if (!GETPOSTISSET('backtopage') && empty($val['disabled']) && empty($nonewbutton)) // To avoid to open several times the 'Create Object' button and to avoid to have button if field is protected by a "disabled".
|
||||||
{
|
{
|
||||||
list($class, $classfile) = explode(':', $param_list[0]);
|
list($class, $classfile) = explode(':', $param_list[0]);
|
||||||
|
|||||||
@ -158,79 +158,72 @@ class dolReceiptPrinter extends Printer
|
|||||||
{
|
{
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
$this->tags = array(
|
$this->tags = array(
|
||||||
'dol_line_feed',
|
'dol_line_feed' => 'DOL_LINE_FEED',
|
||||||
'dol_line_feed_reverse',
|
'dol_line_feed_reverse' => 'DOL_LINE_FEED_REVERSE',
|
||||||
'dol_align_left',
|
'dol_align_left' => 'DOL_ALIGN_LEFT',
|
||||||
'dol_align_center',
|
'dol_align_center' => 'DOL_ALIGN_CENTER',
|
||||||
'dol_align_right',
|
'dol_align_right' => 'DOL_ALIGN_RIGHT',
|
||||||
'dol_use_font_a',
|
'dol_use_font_a' => 'DOL_USE_FONT_A',
|
||||||
'dol_use_font_b',
|
'dol_use_font_b' => 'DOL_USE_FONT_B',
|
||||||
'dol_use_font_c',
|
'dol_use_font_c' => 'DOL_USE_FONT_C',
|
||||||
'dol_bold',
|
'dol_bold' => 'DOL_BOLD',
|
||||||
'dol_bold_disabled',
|
'dol_bold_disabled' => 'DOL_BOLD_DISABLED',
|
||||||
'dol_double_height',
|
'dol_double_height' => 'DOL_DOUBLE_HEIGHT',
|
||||||
'dol_double_width',
|
'dol_double_width' => 'DOL_DOUBLE_WIDTH',
|
||||||
'dol_default_height_width',
|
'dol_default_height_width' => 'DOL_DEFAULT_HEIGHT_WIDTH',
|
||||||
'dol_underline',
|
'dol_underline' => 'DOL_UNDERLINE',
|
||||||
'dol_underline_disabled',
|
'dol_underline_disabled' => 'DOL_UNDERLINE_DISABLED',
|
||||||
'dol_cut_paper_full',
|
'dol_cut_paper_full' => 'DOL_CUT_PAPER_FULL',
|
||||||
'dol_cut_paper_partial',
|
'dol_cut_paper_partial' => 'DOL_CUT_PAPER_PARTIAL',
|
||||||
'dol_open_drawer',
|
'dol_open_drawer' => 'DOL_OPEN_DRAWER',
|
||||||
'dol_beep',
|
'dol_beep' => 'DOL_BEEP',
|
||||||
'dol_print_text',
|
'dol_print_text' => 'DOL_PRINT_TEXT',
|
||||||
'dol_print_barcode',
|
'dol_print_barcode' => 'DOL_PRINT_BARCODE',
|
||||||
'dol_value_date',
|
'dol_value_date' => 'DateInvoice',
|
||||||
'dol_value_date_time',
|
'dol_value_date_time' => 'DateInvoiceWithTime',
|
||||||
'dol_value_year',
|
'dol_value_year' => 'YearInvoice',
|
||||||
'dol_value_month_letters',
|
'dol_value_month_letters' => 'DOL_VALUE_MONTH_LETTERS',
|
||||||
'dol_value_month',
|
'dol_value_month' => 'DOL_VALUE_MONTH',
|
||||||
'dol_value_day',
|
'dol_value_day' => 'DOL_VALUE_DAY',
|
||||||
'dol_value_day_letters',
|
'dol_value_day_letters' => 'DOL_VALUE_DAY',
|
||||||
//'dol_print_payment',
|
//'dol_print_payment',
|
||||||
'dol_print_logo',
|
'dol_print_logo' => 'DOL_PRINT_LOGO',
|
||||||
'dol_print_logo_old',
|
'dol_print_logo_old' => 'DOL_PRINT_LOGO_OLD',
|
||||||
'dol_value_object_id',
|
'dol_value_object_id' => 'InvoiceID',
|
||||||
'dol_value_object_ref',
|
'dol_value_object_ref' => 'InvoiceRef',
|
||||||
'dol_print_object_lines',
|
'dol_print_object_lines' => 'DOL_PRINT_OBJECT_LINES',
|
||||||
'dol_print_object_tax',
|
'dol_print_object_tax' => 'TotalVAT',
|
||||||
'dol_print_object_local_tax',
|
'dol_print_object_local_tax1' => 'TotalLT1',
|
||||||
'dol_print_object_total',
|
'dol_print_object_local_tax2' => 'TotalLT2',
|
||||||
'dol_print_object_number',
|
'dol_print_object_total' => 'Total',
|
||||||
'dol_print_order_lines',
|
'dol_print_object_number' => 'DOL_PRINT_OBJECT_NUMBER',
|
||||||
'dol_value_customer_firstname',
|
'dol_value_object_points' => 'DOL_VALUE_OBJECT_POINTS',
|
||||||
'dol_value_customer_lastname',
|
'dol_print_order_lines' => 'DOL_PRINT_ORDER_LINES',
|
||||||
'dol_value_customer_mail',
|
'dol_value_customer_firstname' => 'DOL_VALUE_CUSTOMER_FIRSTNAME',
|
||||||
'dol_value_customer_phone',
|
'dol_value_customer_lastname' => 'DOL_VALUE_CUSTOMER_LASTNAME',
|
||||||
'dol_value_customer_mobile',
|
'dol_value_customer_mail' => 'DOL_VALUE_CUSTOMER_MAIL',
|
||||||
'dol_value_customer_skype',
|
'dol_value_customer_phone' => 'DOL_VALUE_CUSTOMER_PHONE',
|
||||||
'dol_value_customer_tax_number',
|
'dol_value_customer_mobile' => 'DOL_VALUE_CUSTOMER_MOBILE',
|
||||||
'dol_value_customer_account_balance',
|
'dol_value_customer_skype' => 'DOL_VALUE_CUSTOMER_SKYPE',
|
||||||
'dol_value_mysoc_name',
|
'dol_value_customer_tax_number' => 'DOL_VALUE_CUSTOMER_TAX_NUMBER',
|
||||||
'dol_value_mysoc_address',
|
'dol_value_customer_account_balance' => 'DOL_VALUE_CUSTOMER_ACCOUNT_BALANCE',
|
||||||
'dol_value_mysoc_zip',
|
'dol_value_customer_points' => 'DOL_VALUE_CUSTOMER_POINTS',
|
||||||
'dol_value_mysoc_town',
|
'dol_value_mysoc_name' => 'DOL_VALUE_MYSOC_NAME',
|
||||||
'dol_value_mysoc_country',
|
'dol_value_mysoc_address' => 'Address',
|
||||||
'dol_value_mysoc_idprof1',
|
'dol_value_mysoc_zip' => 'Zip',
|
||||||
'dol_value_mysoc_idprof2',
|
'dol_value_mysoc_town' => 'Town',
|
||||||
'dol_value_mysoc_idprof3',
|
'dol_value_mysoc_country' => 'Country',
|
||||||
'dol_value_mysoc_idprof4',
|
'dol_value_mysoc_idprof1' => 'ProfId1',
|
||||||
'dol_value_mysoc_idprof5',
|
'dol_value_mysoc_idprof2' => 'ProfId2',
|
||||||
'dol_value_mysoc_idprof6',
|
'dol_value_mysoc_idprof3' => 'ProfId3',
|
||||||
'dol_value_mysoc_tva_intra',
|
'dol_value_mysoc_idprof4' => 'ProfId4',
|
||||||
'dol_value_mysoc_capital',
|
'dol_value_mysoc_idprof5' => 'ProfId5',
|
||||||
'dol_value_vendor_lastname',
|
'dol_value_mysoc_idprof6' => 'ProfId6',
|
||||||
'dol_value_vendor_firstname',
|
'dol_value_mysoc_tva_intra' => 'VATIntra',
|
||||||
'dol_value_vendor_mail',
|
'dol_value_mysoc_capital' => 'Capital',
|
||||||
'dol_value_customer_points',
|
'dol_value_vendor_lastname' => 'VendorLastname',
|
||||||
'dol_value_object_points',
|
'dol_value_vendor_firstname' => 'VendorFirstname',
|
||||||
//'dol_print_if_customer',
|
'dol_value_vendor_mail' => 'VendorEmail',
|
||||||
//'dol_print_if_vendor',
|
|
||||||
//'dol_print_if_happy_hour',
|
|
||||||
//'dol_print_if_num_object_unique',
|
|
||||||
//'dol_print_if_customer_points',
|
|
||||||
//'dol_print_if_object_points',
|
|
||||||
//'dol_print_if_customer_tax_number',
|
|
||||||
//'dol_print_if_customer_account_balance_positive',
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -545,14 +538,14 @@ class dolReceiptPrinter extends Printer
|
|||||||
/**
|
/**
|
||||||
* Function to Print Receipt Ticket
|
* Function to Print Receipt Ticket
|
||||||
*
|
*
|
||||||
* @param object $object order or invoice object
|
* @param Facture|Commande $object Order or invoice object
|
||||||
* @param int $templateid Template id
|
* @param int $templateid Template id
|
||||||
* @param int $printerid Printer id
|
* @param int $printerid Printer id
|
||||||
* @return int 0 if OK; >0 if KO
|
* @return int 0 if OK; >0 if KO
|
||||||
*/
|
*/
|
||||||
public function sendToPrinter($object, $templateid, $printerid)
|
public function sendToPrinter($object, $templateid, $printerid)
|
||||||
{
|
{
|
||||||
global $conf, $mysoc, $langs;
|
global $conf, $mysoc, $langs, $user;
|
||||||
$error = 0;
|
$error = 0;
|
||||||
$ret = $this->loadTemplate($templateid);
|
$ret = $this->loadTemplate($templateid);
|
||||||
|
|
||||||
@ -560,15 +553,23 @@ class dolReceiptPrinter extends Printer
|
|||||||
$this->template = str_replace('<dol_value_object_id>', $object->id, $this->template);
|
$this->template = str_replace('<dol_value_object_id>', $object->id, $this->template);
|
||||||
$this->template = str_replace('<dol_value_object_ref>', $object->ref, $this->template);
|
$this->template = str_replace('<dol_value_object_ref>', $object->ref, $this->template);
|
||||||
$this->template = str_replace('<dol_value_object_points>', $object->points, $this->template);
|
$this->template = str_replace('<dol_value_object_points>', $object->points, $this->template);
|
||||||
$this->template = str_replace('<dol_value_customer_firstname>', $object->customer_firstname, $this->template);
|
$this->template = str_replace('<dol_value_date>', dol_print_date($object->date, 'day'), $this->template);
|
||||||
$this->template = str_replace('<dol_value_customer_lastname>', $object->customer_lastname, $this->template);
|
$this->template = str_replace('<dol_value_date_time>', dol_print_date($object->date, 'dayhour'), $this->template);
|
||||||
$this->template = str_replace('<dol_value_customer_mail>', $object->customer_mail, $this->template);
|
$this->template = str_replace('<dol_value_year>', dol_print_date($object->date, '%Y'), $this->template);
|
||||||
$this->template = str_replace('<dol_value_customer_phone>', $object->customer_phone, $this->template);
|
$this->template = str_replace('<dol_value_month_letters>', $langs->trans("Month".dol_print_date($object->date, '%m')), $this->template);
|
||||||
$this->template = str_replace('<dol_value_customer_mobile>', $object->customer_mobile, $this->template);
|
$this->template = str_replace('<dol_value_month>', dol_print_date($object->date, '%m'), $this->template);
|
||||||
$this->template = str_replace('<dol_value_customer_skype>', $object->customer_skype, $this->template);
|
$this->template = str_replace('<dol_value_day>', dol_print_date($object->date, '%d'), $this->template);
|
||||||
$this->template = str_replace('<dol_value_customer_tax_number>', $object->customer_tax_number, $this->template);
|
$this->template = str_replace('<dol_value_day_letters>', $langs->trans("Day".dol_print_date($object->date, '%m')[1]), $this->template);
|
||||||
|
|
||||||
|
$this->template = str_replace('<dol_value_customer_firstname>', $object->thirdparty->firstname, $this->template);
|
||||||
|
$this->template = str_replace('<dol_value_customer_lastname>', $object->thirdparty->lastname, $this->template);
|
||||||
|
$this->template = str_replace('<dol_value_customer_mail>', $object->thirdparty->mail, $this->template);
|
||||||
|
$this->template = str_replace('<dol_value_customer_phone>', $object->thirdparty->phone, $this->template);
|
||||||
|
$this->template = str_replace('<dol_value_customer_mobile>', $object->thirdparty->mobile, $this->template);
|
||||||
|
$this->template = str_replace('<dol_value_customer_tax_number>', $object->thirdparty->vatintra, $this->template);
|
||||||
$this->template = str_replace('<dol_value_customer_account_balance>', $object->customer_account_balance, $this->template);
|
$this->template = str_replace('<dol_value_customer_account_balance>', $object->customer_account_balance, $this->template);
|
||||||
$this->template = str_replace('<dol_value_customer_points>', $object->customer_points, $this->template);
|
$this->template = str_replace('<dol_value_customer_points>', $object->customer_points, $this->template);
|
||||||
|
|
||||||
$this->template = str_replace('<dol_value_mysoc_name>', $mysoc->name, $this->template);
|
$this->template = str_replace('<dol_value_mysoc_name>', $mysoc->name, $this->template);
|
||||||
$this->template = str_replace('<dol_value_mysoc_address>', $mysoc->address, $this->template);
|
$this->template = str_replace('<dol_value_mysoc_address>', $mysoc->address, $this->template);
|
||||||
$this->template = str_replace('<dol_value_mysoc_zip>', $mysoc->zip, $this->template);
|
$this->template = str_replace('<dol_value_mysoc_zip>', $mysoc->zip, $this->template);
|
||||||
@ -582,16 +583,10 @@ class dolReceiptPrinter extends Printer
|
|||||||
$this->template = str_replace('<dol_value_mysoc_idprof6>', $mysoc->idprof6, $this->template);
|
$this->template = str_replace('<dol_value_mysoc_idprof6>', $mysoc->idprof6, $this->template);
|
||||||
$this->template = str_replace('<dol_value_mysoc_tva_intra>', $mysoc->tva_intra, $this->template);
|
$this->template = str_replace('<dol_value_mysoc_tva_intra>', $mysoc->tva_intra, $this->template);
|
||||||
$this->template = str_replace('<dol_value_mysoc_capital>', $mysoc->capital, $this->template);
|
$this->template = str_replace('<dol_value_mysoc_capital>', $mysoc->capital, $this->template);
|
||||||
$this->template = str_replace('<dol_value_vendor_firstname>', $object->vendor_firstname, $this->template);
|
|
||||||
$this->template = str_replace('<dol_value_vendor_lastname>', $object->vendor_lastname, $this->template);
|
$this->template = str_replace('<dol_value_vendor_firstname>', $user->firstname, $this->template);
|
||||||
$this->template = str_replace('<dol_value_vendor_mail>', $object->vendor_mail, $this->template);
|
$this->template = str_replace('<dol_value_vendor_lastname>', $user->lastname, $this->template);
|
||||||
$this->template = str_replace('<dol_value_date>', dol_print_date($object->date, 'day'), $this->template);
|
$this->template = str_replace('<dol_value_vendor_mail>', $user->email, $this->template);
|
||||||
$this->template = str_replace('<dol_value_date_time>', dol_print_date($object->date, 'dayhour'), $this->template);
|
|
||||||
$this->template = str_replace('<dol_value_year>', dol_print_date($object->date, '%Y'), $this->template);
|
|
||||||
$this->template = str_replace('<dol_value_month_letters>', $langs->trans("Month".dol_print_date($object->date, '%m')), $this->template);
|
|
||||||
$this->template = str_replace('<dol_value_month>', dol_print_date($object->date, '%m'), $this->template);
|
|
||||||
$this->template = str_replace('<dol_value_day>', dol_print_date($object->date, '%d'), $this->template);
|
|
||||||
$this->template = str_replace('<dol_value_day_letters>', $langs->trans("Day".dol_print_date($object->date, '%m')[1]), $this->template);
|
|
||||||
|
|
||||||
// parse template
|
// parse template
|
||||||
$p = xml_parser_create();
|
$p = xml_parser_create();
|
||||||
@ -634,6 +629,26 @@ class dolReceiptPrinter extends Printer
|
|||||||
$this->printer->text($spaces.$vatkey.'% '.str_pad(price($vatvalue), 10, ' ', STR_PAD_LEFT)."\n");
|
$this->printer->text($spaces.$vatkey.'% '.str_pad(price($vatvalue), 10, ' ', STR_PAD_LEFT)."\n");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'DOL_PRINT_OBJECT_TAX1':
|
||||||
|
//var_dump($object);
|
||||||
|
$total_localtax1 = 0;
|
||||||
|
foreach ($object->lines as $line) {
|
||||||
|
$total_localtax1 += $line->total_localtax1;
|
||||||
|
}
|
||||||
|
foreach ($vatarray as $vatkey => $vatvalue) {
|
||||||
|
$this->printer->text(str_pad(price($total_localtax1), 10, ' ', STR_PAD_LEFT)."\n");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'DOL_PRINT_OBJECT_TAX2':
|
||||||
|
//var_dump($object);
|
||||||
|
$total_localtax2 = 0;
|
||||||
|
foreach ($object->lines as $line) {
|
||||||
|
$total_localtax2 += $line->total_localtax2;
|
||||||
|
}
|
||||||
|
foreach ($vatarray as $vatkey => $vatvalue) {
|
||||||
|
$this->printer->text(str_pad(price($total_localtax2), 10, ' ', STR_PAD_LEFT)."\n");
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'DOL_PRINT_OBJECT_TOTAL':
|
case 'DOL_PRINT_OBJECT_TOTAL':
|
||||||
$title = $langs->trans('TotalHT');
|
$title = $langs->trans('TotalHT');
|
||||||
$spacestoadd = $nbcharactbyline - strlen($title) - 10;
|
$spacestoadd = $nbcharactbyline - strlen($title) - 10;
|
||||||
|
|||||||
@ -5933,7 +5933,7 @@ class Form
|
|||||||
}
|
}
|
||||||
elseif ($typehour == 'text' || $typehour == 'textselect')
|
elseif ($typehour == 'text' || $typehour == 'textselect')
|
||||||
{
|
{
|
||||||
$retstring .= '<input placeholder="'.$langs->trans('HourShort').'" type="number" min="0" size="1" name="'.$prefix.'hour"'.($disabled ? ' disabled' : '').' class="flat maxwidth50 inputhour" value="'.(($hourSelected != '') ? ((int) $hourSelected) : '').'">';
|
$retstring .= '<input placeholder="'.$langs->trans('HourShort').'" type="number" min="0" name="'.$prefix.'hour"'.($disabled ? ' disabled' : '').' class="flat maxwidth50 inputhour" value="'.(($hourSelected != '') ? ((int) $hourSelected) : '').'">';
|
||||||
}
|
}
|
||||||
else return 'BadValueForParameterTypeHour';
|
else return 'BadValueForParameterTypeHour';
|
||||||
|
|
||||||
@ -5957,7 +5957,7 @@ class Form
|
|||||||
}
|
}
|
||||||
elseif ($typehour == 'text')
|
elseif ($typehour == 'text')
|
||||||
{
|
{
|
||||||
$retstring .= '<input placeholder="'.$langs->trans('MinuteShort').'" type="number" min="0" size="1" name="'.$prefix.'min"'.($disabled ? ' disabled' : '').' class="flat maxwidth50 inputminute" value="'.(($minSelected != '') ? ((int) $minSelected) : '').'">';
|
$retstring .= '<input placeholder="'.$langs->trans('MinuteShort').'" type="number" min="0" name="'.$prefix.'min"'.($disabled ? ' disabled' : '').' class="flat maxwidth50 inputminute" value="'.(($minSelected != '') ? ((int) $minSelected) : '').'">';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($typehour != 'text') $retstring .= ' '.$langs->trans('MinuteShort');
|
if ($typehour != 'text') $retstring .= ' '.$langs->trans('MinuteShort');
|
||||||
|
|||||||
@ -261,9 +261,15 @@ class RssParser
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (! function_exists('xml_parser_create')) {
|
||||||
|
$this->error = 'Function xml_parser_create are not supported by your PHP';
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
$xmlparser = xml_parser_create('');
|
$xmlparser = xml_parser_create('');
|
||||||
if (!is_resource($xmlparser)) {
|
if (!is_resource($xmlparser)) {
|
||||||
$this->error = "ErrorFailedToCreateParser"; return -1;
|
$this->error = "ErrorFailedToCreateParser";
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
xml_set_object($xmlparser, $this);
|
xml_set_object($xmlparser, $this);
|
||||||
|
|||||||
@ -273,10 +273,10 @@ function run_sql($sqlfile, $silent = 1, $entity = '', $usesavepoint = 1, $handle
|
|||||||
if ($offsetforchartofaccount > 0)
|
if ($offsetforchartofaccount > 0)
|
||||||
{
|
{
|
||||||
// Replace lines
|
// Replace lines
|
||||||
// 'INSERT INTO llx_accounting_account (__ENTITY__, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (1401, 'PCG99-ABREGE','CAPIT', 'XXXXXX', '1', 0, '...', 1);'
|
// 'INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1401, 'PCG99-ABREGE','CAPIT', 'XXXXXX', '1', '0', '...', 1);'
|
||||||
// with
|
// with
|
||||||
// 'INSERT INTO llx_accounting_account (__ENTITY__, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (1401 + 200100000, 'PCG99-ABREGE','CAPIT', 'XXXXXX', '1', 0, '...', 1);'
|
// 'INSERT INTO llx_accounting_account (entity, rowid, fk_pcg_version, pcg_type, account_number, account_parent, label, active) VALUES (__ENTITY__, 1401 + 200100000, 'PCG99-ABREGE','CAPIT', 'XXXXXX', '1', '0', '...', 1);'
|
||||||
$newsql = preg_replace('/VALUES\s*\(__ENTITY__, \s*(\d+)\s*,(\s*\'[^\',]*\'\s*,\s*\'[^\',]*\'\s*,\s*\'[^\',]*\'\s*,\s*\'[^\',]*\'\s*),\s*\'?([^\',]*)\'?/ims', 'VALUES (__ENTITY__, \1 + '.$offsetforchartofaccount.', \2, \3 + '.$offsetforchartofaccount, $newsql);
|
$newsql = preg_replace('/VALUES\s*\(__ENTITY__, \s*(\d+)\s*,(\s*\'[^\',]*\'\s*,\s*\'[^\',]*\'\s*,\s*\'?[^\',]*\'?\s*),\s*\'?([^\',]*)\'?/ims', 'VALUES (__ENTITY__, \1 + '.$offsetforchartofaccount.', \2, \3 + '.$offsetforchartofaccount, $newsql);
|
||||||
$newsql = preg_replace('/([,\s])0 \+ '.$offsetforchartofaccount.'/ims', '\1 0', $newsql);
|
$newsql = preg_replace('/([,\s])0 \+ '.$offsetforchartofaccount.'/ims', '\1 0', $newsql);
|
||||||
//var_dump($newsql);
|
//var_dump($newsql);
|
||||||
$arraysql[$i] = $newsql;
|
$arraysql[$i] = $newsql;
|
||||||
|
|||||||
@ -48,7 +48,7 @@ function emailing_prepare_head(Mailing $object)
|
|||||||
$h++;
|
$h++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($conf->global->EMAILING_USE_ADVANCED_SELECTOR))
|
if (!empty($conf->global->EMAILING_USE_ADVANCED_SELECTOR))
|
||||||
{
|
{
|
||||||
$head[$h][0] = DOL_URL_ROOT."/comm/mailing/advtargetemailing.php?id=".$object->id;
|
$head[$h][0] = DOL_URL_ROOT."/comm/mailing/advtargetemailing.php?id=".$object->id;
|
||||||
$head[$h][1] = $langs->trans("MailAdvTargetRecipients");
|
$head[$h][1] = $langs->trans("MailAdvTargetRecipients");
|
||||||
|
|||||||
@ -324,11 +324,13 @@ function completeFileArrayWithDatabaseInfo(&$filearray, $relativedir)
|
|||||||
// Complete filearray with properties found into $filearrayindatabase
|
// Complete filearray with properties found into $filearrayindatabase
|
||||||
foreach ($filearray as $key => $val)
|
foreach ($filearray as $key => $val)
|
||||||
{
|
{
|
||||||
|
$tmpfilename = preg_replace('/\.noexe$/', '', $filearray[$key]['name']);
|
||||||
|
|
||||||
$found = 0;
|
$found = 0;
|
||||||
// Search if it exists into $filearrayindatabase
|
// Search if it exists into $filearrayindatabase
|
||||||
foreach ($filearrayindatabase as $key2 => $val2)
|
foreach ($filearrayindatabase as $key2 => $val2)
|
||||||
{
|
{
|
||||||
if ($filearrayindatabase[$key2]['name'] == $filearray[$key]['name'])
|
if ($filearrayindatabase[$key2]['name'] == $tmpfilename)
|
||||||
{
|
{
|
||||||
$filearray[$key]['position_name'] = ($filearrayindatabase[$key2]['position'] ? $filearrayindatabase[$key2]['position'] : '0').'_'.$filearrayindatabase[$key2]['name'];
|
$filearray[$key]['position_name'] = ($filearrayindatabase[$key2]['position'] ? $filearrayindatabase[$key2]['position'] : '0').'_'.$filearrayindatabase[$key2]['name'];
|
||||||
$filearray[$key]['position'] = $filearrayindatabase[$key2]['position'];
|
$filearray[$key]['position'] = $filearrayindatabase[$key2]['position'];
|
||||||
@ -349,7 +351,7 @@ function completeFileArrayWithDatabaseInfo(&$filearray, $relativedir)
|
|||||||
$filearray[$key]['acl'] = '';
|
$filearray[$key]['acl'] = '';
|
||||||
|
|
||||||
$rel_filename = preg_replace('/^'.preg_quote(DOL_DATA_ROOT, '/').'/', '', $filearray[$key]['fullname']);
|
$rel_filename = preg_replace('/^'.preg_quote(DOL_DATA_ROOT, '/').'/', '', $filearray[$key]['fullname']);
|
||||||
if (!preg_match('/([\\/]temp[\\/]|[\\/]thumbs|\.meta$)/', $rel_filetorenameafter)) // If not a tmp file
|
if (!preg_match('/([\\/]temp[\\/]|[\\/]thumbs|\.meta$)/', $rel_filename)) // If not a tmp file
|
||||||
{
|
{
|
||||||
dol_syslog("list_of_documents We found a file called '".$filearray[$key]['name']."' not indexed into database. We add it");
|
dol_syslog("list_of_documents We found a file called '".$filearray[$key]['name']."' not indexed into database. We add it");
|
||||||
include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php';
|
||||||
@ -1548,6 +1550,7 @@ function dol_add_file_process($upload_dir, $allowoverwrite = 0, $donotupdatesess
|
|||||||
if (!empty($_FILES[$varfiles])) // For view $_FILES[$varfiles]['error']
|
if (!empty($_FILES[$varfiles])) // For view $_FILES[$varfiles]['error']
|
||||||
{
|
{
|
||||||
dol_syslog('dol_add_file_process upload_dir='.$upload_dir.' allowoverwrite='.$allowoverwrite.' donotupdatesession='.$donotupdatesession.' savingdocmask='.$savingdocmask, LOG_DEBUG);
|
dol_syslog('dol_add_file_process upload_dir='.$upload_dir.' allowoverwrite='.$allowoverwrite.' donotupdatesession='.$donotupdatesession.' savingdocmask='.$savingdocmask, LOG_DEBUG);
|
||||||
|
|
||||||
if (dol_mkdir($upload_dir) >= 0)
|
if (dol_mkdir($upload_dir) >= 0)
|
||||||
{
|
{
|
||||||
$TFile = $_FILES[$varfiles];
|
$TFile = $_FILES[$varfiles];
|
||||||
@ -1574,6 +1577,13 @@ function dol_add_file_process($upload_dir, $allowoverwrite = 0, $donotupdatesess
|
|||||||
$destfile = preg_replace('/__file__/', $TFile['name'][$i], $savingdocmask);
|
$destfile = preg_replace('/__file__/', $TFile['name'][$i], $savingdocmask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$filenameto = basename($destfile);
|
||||||
|
if (preg_match('/^\./', $filenameto)) {
|
||||||
|
$langs->load("errors"); // key must be loaded because we can't rely on loading during output, we need var substitution to be done now.
|
||||||
|
setEventMessages($langs->trans("ErrorFilenameCantStartWithDot", $filenameto), null, 'errors');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// dol_sanitizeFileName the file name and lowercase extension
|
// dol_sanitizeFileName the file name and lowercase extension
|
||||||
$info = pathinfo($destfull);
|
$info = pathinfo($destfull);
|
||||||
$destfull = $info['dirname'].'/'.dol_sanitizeFileName($info['filename'].($info['extension'] != '' ? ('.'.strtolower($info['extension'])) : ''));
|
$destfull = $info['dirname'].'/'.dol_sanitizeFileName($info['filename'].($info['extension'] != '' ? ('.'.strtolower($info['extension'])) : ''));
|
||||||
|
|||||||
@ -8872,15 +8872,16 @@ function fetchObjectByElement($element_id, $element_type, $element_ref = '')
|
|||||||
/**
|
/**
|
||||||
* Return if a file can contains executable content
|
* Return if a file can contains executable content
|
||||||
*
|
*
|
||||||
* @param string $filename File NamedRange
|
* @param string $filename File name to test
|
||||||
* @return boolean True if yes, False if no
|
* @return boolean True if yes, False if no
|
||||||
*/
|
*/
|
||||||
function isAFileWithExecutableContent($filename)
|
function isAFileWithExecutableContent($filename)
|
||||||
{
|
{
|
||||||
if (preg_match('/\.(htm|html|js|php|php\d+|phtml|pl|py|cgi|ksh|sh|bash|bat|cmd|wpk|exe|dmg)$/i', $filename))
|
if (preg_match('/\.(htm|html|js|phar|php|php\d+|phtml|pht|pl|py|cgi|ksh|sh|shtml|bash|bat|cmd|wpk|exe|dmg)$/i', $filename))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2289,82 +2289,70 @@ function cartesianArray(array $input)
|
|||||||
/**
|
/**
|
||||||
* Get name of directory where the api_...class.php file is stored
|
* Get name of directory where the api_...class.php file is stored
|
||||||
*
|
*
|
||||||
* @param string $module Module name
|
* @param string $moduleobject Module object name
|
||||||
* @return string Directory name
|
* @return string Directory name
|
||||||
*/
|
*/
|
||||||
function getModuleDirForApiClass($module)
|
function getModuleDirForApiClass($moduleobject)
|
||||||
{
|
{
|
||||||
$moduledirforclass = $module;
|
$moduledirforclass = $moduleobject;
|
||||||
if ($moduledirforclass != 'api') $moduledirforclass = preg_replace('/api$/i', '', $moduledirforclass);
|
if ($moduledirforclass != 'api') $moduledirforclass = preg_replace('/api$/i', '', $moduledirforclass);
|
||||||
|
|
||||||
if ($module == 'contracts') {
|
if ($moduleobject == 'contracts') {
|
||||||
$moduledirforclass = 'contrat';
|
$moduledirforclass = 'contrat';
|
||||||
}
|
}
|
||||||
elseif (in_array($module, array('admin', 'login', 'setup', 'access', 'status', 'tools', 'documents'))) {
|
elseif (in_array($moduleobject, array('admin', 'login', 'setup', 'access', 'status', 'tools', 'documents'))) {
|
||||||
$moduledirforclass = 'api';
|
$moduledirforclass = 'api';
|
||||||
}
|
}
|
||||||
elseif ($module == 'contact' || $module == 'contacts' || $module == 'customer' || $module == 'thirdparty' || $module == 'thirdparties') {
|
elseif ($moduleobject == 'contact' || $moduleobject == 'contacts' || $moduleobject == 'customer' || $moduleobject == 'thirdparty' || $moduleobject == 'thirdparties') {
|
||||||
$moduledirforclass = 'societe';
|
$moduledirforclass = 'societe';
|
||||||
}
|
}
|
||||||
elseif ($module == 'propale' || $module == 'proposals') {
|
elseif ($moduleobject == 'propale' || $moduleobject == 'proposals') {
|
||||||
$moduledirforclass = 'comm/propal';
|
$moduledirforclass = 'comm/propal';
|
||||||
}
|
}
|
||||||
elseif ($module == 'agenda' || $module == 'agendaevents') {
|
elseif ($moduleobject == 'agenda' || $moduleobject == 'agendaevents') {
|
||||||
$moduledirforclass = 'comm/action';
|
$moduledirforclass = 'comm/action';
|
||||||
}
|
}
|
||||||
elseif ($module == 'adherent' || $module == 'members' || $module == 'memberstypes' || $module == 'subscriptions') {
|
elseif ($moduleobject == 'adherent' || $moduleobject == 'members' || $moduleobject == 'memberstypes' || $moduleobject == 'subscriptions') {
|
||||||
$moduledirforclass = 'adherents';
|
$moduledirforclass = 'adherents';
|
||||||
}
|
}
|
||||||
elseif ($module == 'don' || $module == 'donations') {
|
elseif ($moduleobject == 'don' || $moduleobject == 'donations') {
|
||||||
$moduledirforclass = 'don';
|
$moduledirforclass = 'don';
|
||||||
}
|
}
|
||||||
elseif ($module == 'banque' || $module == 'bankaccounts') {
|
elseif ($moduleobject == 'banque' || $moduleobject == 'bankaccounts') {
|
||||||
$moduledirforclass = 'compta/bank';
|
$moduledirforclass = 'compta/bank';
|
||||||
}
|
}
|
||||||
elseif ($module == 'category' || $module == 'categorie') {
|
elseif ($moduleobject == 'category' || $moduleobject == 'categorie') {
|
||||||
$moduledirforclass = 'categories';
|
$moduledirforclass = 'categories';
|
||||||
}
|
}
|
||||||
elseif ($module == 'order' || $module == 'orders') {
|
elseif ($moduleobject == 'order' || $moduleobject == 'orders') {
|
||||||
$moduledirforclass = 'commande';
|
$moduledirforclass = 'commande';
|
||||||
}
|
}
|
||||||
elseif ($module == 'shipments') {
|
elseif ($moduleobject == 'shipments') {
|
||||||
$moduledirforclass = 'expedition';
|
$moduledirforclass = 'expedition';
|
||||||
}
|
}
|
||||||
elseif ($module == 'facture' || $module == 'invoice' || $module == 'invoices') {
|
elseif ($moduleobject == 'facture' || $moduleobject == 'invoice' || $moduleobject == 'invoices') {
|
||||||
$moduledirforclass = 'compta/facture';
|
$moduledirforclass = 'compta/facture';
|
||||||
}
|
}
|
||||||
elseif ($module == 'products') {
|
elseif ($moduleobject == 'project' || $moduleobject == 'projects' || $moduleobject == 'task' || $moduleobject == 'tasks') {
|
||||||
$moduledirforclass = 'product';
|
|
||||||
}
|
|
||||||
elseif ($module == 'project' || $module == 'projects' || $module == 'tasks') {
|
|
||||||
$moduledirforclass = 'projet';
|
$moduledirforclass = 'projet';
|
||||||
}
|
}
|
||||||
elseif ($module == 'task') {
|
elseif ($moduleobject == 'stock' || $moduleobject == 'stockmovements' || $moduleobject == 'warehouses') {
|
||||||
$moduledirforclass = 'projet';
|
|
||||||
}
|
|
||||||
elseif ($module == 'stock' || $module == 'stockmovements' || $module == 'warehouses') {
|
|
||||||
$moduledirforclass = 'product/stock';
|
$moduledirforclass = 'product/stock';
|
||||||
}
|
}
|
||||||
elseif ($module == 'supplierproposals' || $module == 'supplierproposal' || $module == 'supplier_proposal') {
|
elseif ($moduleobject == 'supplierproposals' || $moduleobject == 'supplierproposal' || $moduleobject == 'supplier_proposal') {
|
||||||
$moduledirforclass = 'supplier_proposal';
|
$moduledirforclass = 'supplier_proposal';
|
||||||
}
|
}
|
||||||
elseif ($module == 'fournisseur' || $module == 'supplierinvoices' || $module == 'supplierorders') {
|
elseif ($moduleobject == 'fournisseur' || $moduleobject == 'supplierinvoices' || $moduleobject == 'supplierorders') {
|
||||||
$moduledirforclass = 'fourn';
|
$moduledirforclass = 'fourn';
|
||||||
}
|
}
|
||||||
elseif ($module == 'expensereports') {
|
elseif ($moduleobject == 'ficheinter' || $moduleobject == 'interventions') {
|
||||||
$moduledirforclass = 'expensereport';
|
|
||||||
}
|
|
||||||
elseif ($module == 'users') {
|
|
||||||
$moduledirforclass = 'user';
|
|
||||||
}
|
|
||||||
elseif ($module == 'ficheinter' || $module == 'interventions') {
|
|
||||||
$moduledirforclass = 'fichinter';
|
$moduledirforclass = 'fichinter';
|
||||||
}
|
}
|
||||||
elseif ($module == 'tickets') {
|
elseif ($moduleobject == 'mos') {
|
||||||
$moduledirforclass = 'ticket';
|
$moduledirforclass = 'mrp';
|
||||||
}
|
}
|
||||||
elseif ($module == 'boms') {
|
elseif (in_array($moduleobject, array('products', 'expensereports', 'users', 'tickets', 'boms'))) {
|
||||||
$moduledirforclass = 'bom';
|
$moduledirforclass = preg_replace('/s$/', '', $moduleobject);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $moduledirforclass;
|
return $moduledirforclass;
|
||||||
|
|||||||
@ -164,10 +164,12 @@ function invoice_admin_prepare_head()
|
|||||||
$head[$h][2] = 'attributeslinesrec';
|
$head[$h][2] = 'attributeslinesrec';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
$head[$h][0] = DOL_URL_ROOT.'/admin/facture_situation.php';
|
if ($conf->global->INVOICE_USE_SITUATION) { // Warning, implementation is seriously bugged and a new one not compatible is expected to become stable
|
||||||
$head[$h][1] = $langs->trans("InvoiceSituation");
|
$head[$h][0] = DOL_URL_ROOT.'/admin/facture_situation.php';
|
||||||
$head[$h][2] = 'situation';
|
$head[$h][1] = $langs->trans("InvoiceSituation");
|
||||||
$h++;
|
$head[$h][2] = 'situation';
|
||||||
|
$h++;
|
||||||
|
}
|
||||||
|
|
||||||
complete_head_from_modules($conf, $langs, null, $head, $h, 'invoice_admin', 'remove');
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'invoice_admin', 'remove');
|
||||||
|
|
||||||
|
|||||||
@ -2191,7 +2191,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks
|
|||||||
{
|
{
|
||||||
if (!in_array('prospectionstatus', $hiddenfields)) print_liste_field_titre("OpportunityStatus", "", "", "", "", '', $sortfield, $sortorder, 'right ');
|
if (!in_array('prospectionstatus', $hiddenfields)) print_liste_field_titre("OpportunityStatus", "", "", "", "", '', $sortfield, $sortorder, 'right ');
|
||||||
print_liste_field_titre("OpportunityAmount", "", "", "", "", 'align="right"', $sortfield, $sortorder);
|
print_liste_field_titre("OpportunityAmount", "", "", "", "", 'align="right"', $sortfield, $sortorder);
|
||||||
print_liste_field_titre('OpportunityWeightedAmount', '', '', '', '', 'align="right"', $sortfield, $sortorder);
|
//print_liste_field_titre('OpportunityWeightedAmount', '', '', '', '', 'align="right"', $sortfield, $sortorder);
|
||||||
}
|
}
|
||||||
if (empty($conf->global->PROJECT_HIDE_TASKS))
|
if (empty($conf->global->PROJECT_HIDE_TASKS))
|
||||||
{
|
{
|
||||||
@ -2225,10 +2225,11 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks
|
|||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
print '<td>';
|
print '<td class="tdoverflowmax150">';
|
||||||
print $projectstatic->getNomUrl(1, '', 0, '', '-', 0, -1, 'nowraponall');
|
print $projectstatic->getNomUrl(1, '', 0, '', '-', 0, -1, 'nowraponall');
|
||||||
if (!in_array('projectlabel', $hiddenfields)) print '<br><span class="opacitymedium">'.dol_trunc($objp->title, 24).'</span>';
|
if (!in_array('projectlabel', $hiddenfields)) print '<br><span class="opacitymedium">'.dol_trunc($objp->title, 24).'</span>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td class="nowraponall tdoverflowmax100">';
|
print '<td class="nowraponall tdoverflowmax100">';
|
||||||
if ($objp->fk_soc > 0)
|
if ($objp->fk_soc > 0)
|
||||||
{
|
{
|
||||||
@ -2242,7 +2243,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks
|
|||||||
if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES))
|
if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES))
|
||||||
{
|
{
|
||||||
if (!in_array('prospectionstatus', $hiddenfields)) {
|
if (!in_array('prospectionstatus', $hiddenfields)) {
|
||||||
print '<td class="center">';
|
print '<td class="center tdoverflowmax75">';
|
||||||
// Because color of prospection status has no meaning yet, it is used if hidden constant is set
|
// Because color of prospection status has no meaning yet, it is used if hidden constant is set
|
||||||
if (empty($conf->global->USE_COLOR_FOR_PROSPECTION_STATUS)) {
|
if (empty($conf->global->USE_COLOR_FOR_PROSPECTION_STATUS)) {
|
||||||
$oppStatusCode = dol_getIdFromCode($db, $objp->opp_status, 'c_lead_status', 'rowid', 'code');
|
$oppStatusCode = dol_getIdFromCode($db, $objp->opp_status, 'c_lead_status', 'rowid', 'code');
|
||||||
@ -2269,14 +2270,12 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ($objp->opp_amount) print price($objp->opp_amount, 0, '', 1, -1, -1, $conf->currency);
|
if ($objp->opp_percent && $objp->opp_amount) {
|
||||||
print '</td>';
|
$opp_weighted_amount = $objp->opp_percent * $objp->opp_amount / 100;
|
||||||
print '<td class="right">';
|
$alttext = $langs->trans("OpportunityWeightedAmount").' '.price($opp_weighted_amount, 0, '', 1, -1, 0, $conf->currency);
|
||||||
if ($objp->opp_percent && $objp->opp_amount) {
|
$ponderated_opp_amount += price2num($opp_weighted_amount);
|
||||||
$opp_weighted_amount = $objp->opp_percent * $objp->opp_amount / 100;
|
}
|
||||||
print price($opp_weighted_amount, 0, '', 1, -1, -1, $conf->currency);
|
if ($objp->opp_amount) print '<span title="'.$alttext.'">'.price($objp->opp_amount, 0, '', 1, -1, 0, $conf->currency).'</span>';
|
||||||
$ponderated_opp_amount += price2num($opp_weighted_amount);
|
|
||||||
}
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2317,14 +2316,16 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '<tr class="liste_total">';
|
print '<tr class="liste_total">';
|
||||||
print '<td colspan="2">'.$langs->trans("Total")."</td>";
|
print '<td>'.$langs->trans("Total")."</td><td></td>";
|
||||||
if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES))
|
if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES))
|
||||||
{
|
{
|
||||||
if (!in_array('prospectionstatus', $hiddenfields)) {
|
if (!in_array('prospectionstatus', $hiddenfields)) {
|
||||||
print '<td class="liste_total"></td>';
|
print '<td class="liste_total"></td>';
|
||||||
}
|
}
|
||||||
print '<td class="liste_total right">'.price($total_opp_amount, 0, '', 1, -1, -1, $conf->currency).'</td>';
|
print '<td class="liste_total right">';
|
||||||
print '<td class="liste_total right">'.$form->textwithpicto(price($ponderated_opp_amount, 0, '', 1, -1, -1, $conf->currency), $langs->trans("OpportunityPonderatedAmountDesc"), 1).'</td>';
|
//$form->textwithpicto(price($ponderated_opp_amount, 0, '', 1, -1, -1, $conf->currency), $langs->trans("OpportunityPonderatedAmountDesc"), 1);
|
||||||
|
print $form->textwithpicto(price($total_opp_amount, 0, '', 1, -1, 0, $conf->currency), $langs->trans("OpportunityPonderatedAmountDesc").' : '.price($ponderated_opp_amount, 0, '', 1, -1, 0, $conf->currency));
|
||||||
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (empty($conf->global->PROJECT_HIDE_TASKS))
|
if (empty($conf->global->PROJECT_HIDE_TASKS))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -287,9 +287,12 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f
|
|||||||
if (!$readok) accessforbidden();
|
if (!$readok) accessforbidden();
|
||||||
//print "Read access is ok";
|
//print "Read access is ok";
|
||||||
|
|
||||||
// Check write permission from module (we need to know write permission to create but also to delete drafts record)
|
// Check write permission from module (we need to know write permission to create but also to delete drafts record or to upload files)
|
||||||
$createok = 1; $nbko = 0;
|
$createok = 1; $nbko = 0;
|
||||||
if (GETPOST('action', 'aZ09') == 'create' || GETPOST('action', 'aZ09') == 'update' || ((GETPOST("action", "aZ09") == 'confirm_delete' && GETPOST("confirm", "aZ09") == 'yes') || GETPOST("action", "aZ09") == 'delete'))
|
$wemustcheckpermissionforcreate = (GETPOST('sendit', 'alpha') || GETPOST('linkit', 'alpha') || GETPOST('action', 'aZ09') == 'create' || GETPOST('action', 'aZ09') == 'update');
|
||||||
|
$wemustcheckpermissionfordeletedraft = ((GETPOST("action", "aZ09") == 'confirm_delete' && GETPOST("confirm", "aZ09") == 'yes') || GETPOST("action", "aZ09") == 'delete');
|
||||||
|
|
||||||
|
if ($wemustcheckpermissionforcreate || $wemustcheckpermissionfordeletedraft)
|
||||||
{
|
{
|
||||||
foreach ($featuresarray as $feature)
|
foreach ($featuresarray as $feature)
|
||||||
{
|
{
|
||||||
@ -351,7 +354,7 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f
|
|||||||
// If a or and at least one ok
|
// If a or and at least one ok
|
||||||
if (preg_match('/\|/', $features) && $nbko < count($featuresarray)) $createok = 1;
|
if (preg_match('/\|/', $features) && $nbko < count($featuresarray)) $createok = 1;
|
||||||
|
|
||||||
if ((GETPOST('action', 'aZ09') == 'create' || GETPOST('action', 'aZ09') == 'update') && !$createok) accessforbidden();
|
if ($wemustcheckpermissionforcreate && !$createok) accessforbidden();
|
||||||
//print "Write access is ok";
|
//print "Write access is ok";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -460,7 +460,7 @@ function showWebsiteTemplates(Website $website)
|
|||||||
|
|
||||||
$colspan = 2;
|
$colspan = 2;
|
||||||
|
|
||||||
print '<!-- For to import website template -->'."\n";
|
print '<!-- For website template import -->'."\n";
|
||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
|
|
||||||
// Title
|
// Title
|
||||||
|
|||||||
@ -298,6 +298,14 @@ class modFournisseur extends DolibarrModules
|
|||||||
'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel', 'p.accountancy_code_buy'=>'ProductAccountancyBuyCode', 'project.rowid'=>'ProjectId',
|
'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel', 'p.accountancy_code_buy'=>'ProductAccountancyBuyCode', 'project.rowid'=>'ProjectId',
|
||||||
'project.ref'=>'ProjectRef', 'project.title'=>'ProjectLabel'
|
'project.ref'=>'ProjectRef', 'project.title'=>'ProjectLabel'
|
||||||
);
|
);
|
||||||
|
if (! empty($conf->multicurrency->enabled))
|
||||||
|
{
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_code'] = 'Currency';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_total_tva'] = 'MulticurrencyAmountVAT';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC';
|
||||||
|
}
|
||||||
//$this->export_TypeFields_array[$r]=array(
|
//$this->export_TypeFields_array[$r]=array(
|
||||||
// 's.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text',
|
// 's.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text',
|
||||||
// 's.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Numeric",'f.total_ttc'=>"Numeric",'f.total_tva'=>"Numeric",
|
// 's.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Numeric",'f.total_ttc'=>"Numeric",'f.total_tva'=>"Numeric",
|
||||||
@ -425,6 +433,14 @@ class modFournisseur extends DolibarrModules
|
|||||||
'f.fk_statut'=>'InvoiceStatus', 'f.note_public'=>"InvoiceNote", 'p.rowid'=>'PaymentId', 'pf.amount'=>'AmountPayment',
|
'f.fk_statut'=>'InvoiceStatus', 'f.note_public'=>"InvoiceNote", 'p.rowid'=>'PaymentId', 'pf.amount'=>'AmountPayment',
|
||||||
'p.datep'=>'DatePayment', 'p.num_paiement'=>'PaymentNumber', 'p.fk_bank'=>'IdTransaction', 'project.rowid'=>'ProjectId', 'project.ref'=>'ProjectRef', 'project.title'=>'ProjectLabel'
|
'p.datep'=>'DatePayment', 'p.num_paiement'=>'PaymentNumber', 'p.fk_bank'=>'IdTransaction', 'project.rowid'=>'ProjectId', 'project.ref'=>'ProjectRef', 'project.title'=>'ProjectLabel'
|
||||||
);
|
);
|
||||||
|
if (! empty($conf->multicurrency->enabled))
|
||||||
|
{
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_code'] = 'Currency';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_total_tva'] = 'MulticurrencyAmountVAT';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC';
|
||||||
|
}
|
||||||
//$this->export_TypeFields_array[$r]=array(
|
//$this->export_TypeFields_array[$r]=array(
|
||||||
// 's.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text',
|
// 's.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text',
|
||||||
// 's.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",
|
// 's.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",
|
||||||
@ -511,6 +527,14 @@ class modFournisseur extends DolibarrModules
|
|||||||
'fd.total_tva'=>"LineTotalVAT", 'fd.product_type'=>'TypeOfLineServiceOrProduct', 'fd.ref'=>'RefSupplier', 'fd.fk_product'=>'ProductId',
|
'fd.total_tva'=>"LineTotalVAT", 'fd.product_type'=>'TypeOfLineServiceOrProduct', 'fd.ref'=>'RefSupplier', 'fd.fk_product'=>'ProductId',
|
||||||
'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel', 'project.rowid'=>'ProjectId', 'project.ref'=>'ProjectRef', 'project.title'=>'ProjectLabel'
|
'p.ref'=>'ProductRef', 'p.label'=>'ProductLabel', 'project.rowid'=>'ProjectId', 'project.ref'=>'ProjectRef', 'project.title'=>'ProjectLabel'
|
||||||
);
|
);
|
||||||
|
if (! empty($conf->multicurrency->enabled))
|
||||||
|
{
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_code'] = 'Currency';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_tx'] = 'CurrencyRate';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_total_ht'] = 'MulticurrencyAmountHT';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_total_tva'] = 'MulticurrencyAmountVAT';
|
||||||
|
$this->export_fields_array[$r]['f.multicurrency_total_ttc'] = 'MulticurrencyAmountTTC';
|
||||||
|
}
|
||||||
if (empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED))
|
if (empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED))
|
||||||
{
|
{
|
||||||
unset($this->export_fields_array['f.date_approve2']);
|
unset($this->export_fields_array['f.date_approve2']);
|
||||||
|
|||||||
@ -15,6 +15,10 @@
|
|||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
|
}
|
||||||
|
|
||||||
print '<script type="text/javascript" language="javascript">
|
print '<script type="text/javascript" language="javascript">
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
||||||
@ -135,7 +139,7 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
// Customer Country
|
// Customer Country
|
||||||
print '<tr><td>'.$langs->trans("Country");
|
print '<tr><td>'.$langs->trans("Country");
|
||||||
if (count($array_query['cust_country']) > 0) {
|
if (!empty($array_query['cust_country'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>'."\n";
|
print '</td><td>'."\n";
|
||||||
@ -145,7 +149,7 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
// State Customer
|
// State Customer
|
||||||
print '<tr><td>'.$langs->trans('Status').' '.$langs->trans('ThirdParty');
|
print '<tr><td>'.$langs->trans('Status').' '.$langs->trans('ThirdParty');
|
||||||
if (count($array_query['cust_status']) > 0) {
|
if (!empty($array_query['cust_status'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@ -173,7 +177,7 @@ print '</td></tr>'."\n";
|
|||||||
// Prospect/Customer
|
// Prospect/Customer
|
||||||
$selected = $array_query['cust_typecust'];
|
$selected = $array_query['cust_typecust'];
|
||||||
print '<tr><td>'.$langs->trans('ProspectCustomer').' '.$langs->trans('ThirdParty');
|
print '<tr><td>'.$langs->trans('ProspectCustomer').' '.$langs->trans('ThirdParty');
|
||||||
if (count($array_query['cust_typecust']) > 0) {
|
if (!empty($array_query['cust_typecust'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@ -189,7 +193,7 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
// Prospection status
|
// Prospection status
|
||||||
print '<tr><td>'.$langs->trans('ProspectLevel');
|
print '<tr><td>'.$langs->trans('ProspectLevel');
|
||||||
if (count($array_query['cust_prospect_status']) > 0) {
|
if (!empty($array_query['cust_prospect_status'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@ -199,7 +203,7 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
// Prospection comm status
|
// Prospection comm status
|
||||||
print '<tr><td>'.$langs->trans('StatusProsp');
|
print '<tr><td>'.$langs->trans('StatusProsp');
|
||||||
if (count($array_query['cust_comm_status']) > 0) {
|
if (!empty($array_query['cust_comm_status'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@ -209,7 +213,7 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
// Customer Type
|
// Customer Type
|
||||||
print '<tr><td>'.$langs->trans("ThirdPartyType");
|
print '<tr><td>'.$langs->trans("ThirdPartyType");
|
||||||
if (count($array_query['cust_typeent']) > 0) {
|
if (!empty($array_query['cust_typeent'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>'."\n";
|
print '</td><td>'."\n";
|
||||||
@ -219,7 +223,7 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
// Staff number
|
// Staff number
|
||||||
print '<td>'.$langs->trans("Staff");
|
print '<td>'.$langs->trans("Staff");
|
||||||
if (count($array_query['cust_effectif_id']) > 0) {
|
if (!empty($array_query['cust_effectif_id'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@ -229,7 +233,7 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
// Sales manager
|
// Sales manager
|
||||||
print '<tr><td>'.$langs->trans("SalesRepresentatives");
|
print '<tr><td>'.$langs->trans("SalesRepresentatives");
|
||||||
if (count($array_query['cust_saleman']) > 0) {
|
if (!empty($array_query['cust_saleman'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>'."\n";
|
print '</td><td>'."\n";
|
||||||
@ -240,7 +244,7 @@ print '</td></tr>'."\n";
|
|||||||
// Customer Default Langauge
|
// Customer Default Langauge
|
||||||
if (!empty($conf->global->MAIN_MULTILANGS)) {
|
if (!empty($conf->global->MAIN_MULTILANGS)) {
|
||||||
print '<tr><td>'.$langs->trans("DefaultLang");
|
print '<tr><td>'.$langs->trans("DefaultLang");
|
||||||
if (count($array_query['cust_language']) > 0) {
|
if (!empty($array_query['cust_language'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>'."\n";
|
print '</td><td>'."\n";
|
||||||
@ -252,11 +256,12 @@ if (!empty($conf->global->MAIN_MULTILANGS)) {
|
|||||||
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
|
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
|
||||||
// Customer Categories
|
// Customer Categories
|
||||||
print '<tr><td>'.$langs->trans("CustomersCategoryShort");
|
print '<tr><td>'.$langs->trans("CustomersCategoryShort");
|
||||||
if (count($array_query['cust_categ']) > 0) {
|
if (!empty($array_query['cust_categ'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>'."\n";
|
print '</td><td>'."\n";
|
||||||
print $formadvtargetemaling->multiselectCustomerCategories('cust_categ', $array_query['cust_categ']);
|
$cate_arbo = $form->select_all_categories(Categorie::TYPE_CUSTOMER, null, 'parent', null, null, 1);
|
||||||
|
print $form->multiselectarray('cust_categ', $cate_arbo, GETPOST('cust_categ', 'array'), null, null, null, null, "90%");
|
||||||
print '</td><td>'."\n";
|
print '</td><td>'."\n";
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
}
|
}
|
||||||
@ -346,7 +351,7 @@ if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) {
|
|||||||
|
|
||||||
// State Contact
|
// State Contact
|
||||||
print '<tr><td>'.$langs->trans('Status').' '.$langs->trans('Contact');
|
print '<tr><td>'.$langs->trans('Status').' '.$langs->trans('Contact');
|
||||||
if (count($array_query['contact_status']) > 0) {
|
if (!empty($array_query['contact_status'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@ -364,7 +369,7 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
// Civility
|
// Civility
|
||||||
print '<tr><td width="15%">'.$langs->trans("UserTitle");
|
print '<tr><td width="15%">'.$langs->trans("UserTitle");
|
||||||
if (count($array_query['contact_civility']) > 0) {
|
if (!empty($array_query['contact_civility'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@ -389,7 +394,7 @@ print '</td></tr>'."\n";
|
|||||||
|
|
||||||
// Contact Country
|
// Contact Country
|
||||||
print '<tr><td>'.$langs->trans('Contact').' '.$langs->trans("Country");
|
print '<tr><td>'.$langs->trans('Contact').' '.$langs->trans("Country");
|
||||||
if (count($array_query['contact_country']) > 0) {
|
if (!empty($array_query['contact_country'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>'."\n";
|
print '</td><td>'."\n";
|
||||||
@ -448,11 +453,12 @@ print '</td></tr>'."\n";
|
|||||||
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
|
if (!empty($conf->categorie->enabled) && $user->rights->categorie->lire) {
|
||||||
// Customer Categories
|
// Customer Categories
|
||||||
print '<tr><td>'.$langs->trans("ContactCategoriesShort");
|
print '<tr><td>'.$langs->trans("ContactCategoriesShort");
|
||||||
if (count($array_query['contact_categ']) > 0) {
|
if (!empty($array_query['contact_categ'])) {
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
}
|
}
|
||||||
print '</td><td>'."\n";
|
print '</td><td>'."\n";
|
||||||
print $formadvtargetemaling->multiselectContactCategories('contact_categ', $array_query['contact_categ']);
|
$cate_arbo = $form->select_all_categories(Categorie::TYPE_CONTACT, null, 'parent', null, null, 1);
|
||||||
|
print $form->multiselectarray('contact_categ', $cate_arbo, GETPOST('contact_categ', 'array'), null, null, null, null, "90%");
|
||||||
print '</td><td>'."\n";
|
print '</td><td>'."\n";
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
}
|
}
|
||||||
@ -465,62 +471,66 @@ if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) {
|
|||||||
dol_include_once('/core/class/extrafields.class.php');
|
dol_include_once('/core/class/extrafields.class.php');
|
||||||
$extrafields = new ExtraFields($db);
|
$extrafields = new ExtraFields($db);
|
||||||
$extrafields->fetch_name_optionals_label($elementype);
|
$extrafields->fetch_name_optionals_label($elementype);
|
||||||
foreach ($extrafields->attributes[$elementtype]['type'] as $key=>&$value) {
|
if (!empty($extrafields->attributes[$elementtype]['type'])) {
|
||||||
if ($value == 'radio')$value = 'select';
|
foreach ($extrafields->attributes[$elementtype]['type'] as $key => &$value) {
|
||||||
}
|
if ($value == 'radio')
|
||||||
|
$value = 'select';
|
||||||
foreach ($extrafields->attributes[$elementtype]['label'] as $key => $val) {
|
|
||||||
print '<tr><td>'.$extrafields->attributes[$elementtype]['label'][$key];
|
|
||||||
if ($array_query['options_'.$key.'_cnct'] != '' || (is_array($array_query['options_'.$key.'_cnct']) && count($array_query['options_'.$key.'_cnct']) > 0)) {
|
|
||||||
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
|
||||||
}
|
}
|
||||||
print '</td><td>';
|
}
|
||||||
if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) {
|
if (!empty($extrafields->attributes[$elementtype]['label'])) {
|
||||||
print '<input type="text" name="options_'.$key.'_cnct"/></td><td>'."\n";
|
foreach ($extrafields->attributes[$elementtype]['label'] as $key => $val) {
|
||||||
print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
|
print '<tr><td>' . $extrafields->attributes[$elementtype]['label'][$key];
|
||||||
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'int') || ($extrafields->attributes[$elementtype]['type'][$key] == 'double')) {
|
if ($array_query['options_' . $key . '_cnct'] != '' || (is_array($array_query['options_' . $key . '_cnct']) && count($array_query['options_' . $key . '_cnct']) > 0)) {
|
||||||
print $langs->trans("AdvTgtMinVal").'<input type="text" name="options_'.$key.'_min_cnct"/>';
|
print img_picto($langs->trans('AdvTgtUse'), 'ok.png@advtargetemailing');
|
||||||
print $langs->trans("AdvTgtMaxVal").'<input type="text" name="options_'.$key.'_max_cnct"/>';
|
|
||||||
print '</td><td>'."\n";
|
|
||||||
print $form->textwithpicto('', $langs->trans("AdvTgtSearchIntHelp"), 1, 'help');
|
|
||||||
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'date') || ($extrafields->attributes[$elementtype]['type'][$key] == 'datetime')) {
|
|
||||||
print '<table class="nobordernopadding"><tr>';
|
|
||||||
print '<td>'.$langs->trans("AdvTgtStartDt").'</td><td>';
|
|
||||||
print $form->selectDate('', 'options_'.$key.'_st_dt_cnct');
|
|
||||||
print '</td><td>'.$langs->trans("AdvTgtEndDt").'</td><td>';
|
|
||||||
print $form->selectDate('', 'options_'.$key.'_end_dt_cnct');
|
|
||||||
print '</td></tr></table>';
|
|
||||||
print '</td><td>'."\n";
|
|
||||||
print $form->textwithpicto('', $langs->trans("AdvTgtSearchDtHelp"), 1, 'help');
|
|
||||||
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'boolean')) {
|
|
||||||
print $form->selectarray(
|
|
||||||
'options_'.$key.'_cnct',
|
|
||||||
array(
|
|
||||||
'' => '',
|
|
||||||
'1' => $langs->trans('Yes'),
|
|
||||||
'0' => $langs->trans('No')
|
|
||||||
),
|
|
||||||
$array_query['options_'.$key.'_cnct']
|
|
||||||
);
|
|
||||||
print '</td><td>'."\n";
|
|
||||||
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'select')) {
|
|
||||||
print $formadvtargetemaling->advMultiselectarray('options_'.$key.'_cnct', $extrafields->attributes[$key]['param']['options'], $array_query['options_'.$key.'_cnct']);
|
|
||||||
print '</td><td>'."\n";
|
|
||||||
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'sellist')) {
|
|
||||||
print $formadvtargetemaling->advMultiselectarraySelllist('options_'.$key.'_cnct', $extrafields->attributes[$key]['param']['options'], $array_query['options_'.$key.'_cnct']);
|
|
||||||
print '</td><td>'."\n";
|
|
||||||
} else {
|
|
||||||
print '<table class="nobordernopadding"><tr>';
|
|
||||||
print '<td></td><td>';
|
|
||||||
if (is_array($array_query['options_'.$key.'_cnct'])) {
|
|
||||||
print $extrafields->showInputField($key, implode(',', $array_query['options_'.$key.'_cnct']), '', '_cnct');
|
|
||||||
} else {
|
|
||||||
print $extrafields->showInputField($key, $array_query['options_'.$key.'_cnct'], '', '_cnct');
|
|
||||||
}
|
}
|
||||||
print '</td></tr></table>';
|
print '</td><td>';
|
||||||
print '</td><td>'."\n";
|
if (($extrafields->attributes[$elementtype]['type'][$key] == 'varchar') || ($extrafields->attributes[$elementtype]['type'][$key] == 'text')) {
|
||||||
|
print '<input type="text" name="options_' . $key . '_cnct"/></td><td>' . "\n";
|
||||||
|
print $form->textwithpicto('', $langs->trans("AdvTgtSearchTextHelp"), 1, 'help');
|
||||||
|
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'int') || ($extrafields->attributes[$elementtype]['type'][$key] == 'double')) {
|
||||||
|
print $langs->trans("AdvTgtMinVal") . '<input type="text" name="options_' . $key . '_min_cnct"/>';
|
||||||
|
print $langs->trans("AdvTgtMaxVal") . '<input type="text" name="options_' . $key . '_max_cnct"/>';
|
||||||
|
print '</td><td>' . "\n";
|
||||||
|
print $form->textwithpicto('', $langs->trans("AdvTgtSearchIntHelp"), 1, 'help');
|
||||||
|
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'date') || ($extrafields->attributes[$elementtype]['type'][$key] == 'datetime')) {
|
||||||
|
print '<table class="nobordernopadding"><tr>';
|
||||||
|
print '<td>' . $langs->trans("AdvTgtStartDt") . '</td><td>';
|
||||||
|
print $form->selectDate('', 'options_' . $key . '_st_dt_cnct');
|
||||||
|
print '</td><td>' . $langs->trans("AdvTgtEndDt") . '</td><td>';
|
||||||
|
print $form->selectDate('', 'options_' . $key . '_end_dt_cnct');
|
||||||
|
print '</td></tr></table>';
|
||||||
|
print '</td><td>' . "\n";
|
||||||
|
print $form->textwithpicto('', $langs->trans("AdvTgtSearchDtHelp"), 1, 'help');
|
||||||
|
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'boolean')) {
|
||||||
|
print $form->selectarray(
|
||||||
|
'options_' . $key . '_cnct',
|
||||||
|
array(
|
||||||
|
'' => '',
|
||||||
|
'1' => $langs->trans('Yes'),
|
||||||
|
'0' => $langs->trans('No')
|
||||||
|
),
|
||||||
|
$array_query['options_' . $key . '_cnct']
|
||||||
|
);
|
||||||
|
print '</td><td>' . "\n";
|
||||||
|
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'select')) {
|
||||||
|
print $formadvtargetemaling->advMultiselectarray('options_' . $key . '_cnct', $extrafields->attributes[$key]['param']['options'], $array_query['options_' . $key . '_cnct']);
|
||||||
|
print '</td><td>' . "\n";
|
||||||
|
} elseif (($extrafields->attributes[$elementtype]['type'][$key] == 'sellist')) {
|
||||||
|
print $formadvtargetemaling->advMultiselectarraySelllist('options_' . $key . '_cnct', $extrafields->attributes[$key]['param']['options'], $array_query['options_' . $key . '_cnct']);
|
||||||
|
print '</td><td>' . "\n";
|
||||||
|
} else {
|
||||||
|
print '<table class="nobordernopadding"><tr>';
|
||||||
|
print '<td></td><td>';
|
||||||
|
if (is_array($array_query['options_' . $key . '_cnct'])) {
|
||||||
|
print $extrafields->showInputField($key, implode(',', $array_query['options_' . $key . '_cnct']), '', '_cnct');
|
||||||
|
} else {
|
||||||
|
print $extrafields->showInputField($key, $array_query['options_' . $key . '_cnct'], '', '_cnct');
|
||||||
|
}
|
||||||
|
print '</td></tr></table>';
|
||||||
|
print '</td><td>' . "\n";
|
||||||
|
}
|
||||||
|
print '</td></tr>' . "\n";
|
||||||
}
|
}
|
||||||
print '</td></tr>'."\n";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '<tr>'."\n";
|
print '<tr>'."\n";
|
||||||
|
|||||||
@ -65,6 +65,7 @@ $extrafields->fetch_name_optionals_label($object->table_element);
|
|||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
$hookmanager->initHooks(array('doncard', 'globalcard'));
|
$hookmanager->initHooks(array('doncard', 'globalcard'));
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
@ -409,11 +410,11 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// Country
|
// Country
|
||||||
print '<tr><td><label for="selectcountry_id">'.$langs->trans('Country').'</label></td><td class="maxwidthonsmartphone">';
|
print '<tr><td><label for="selectcountry_id">'.$langs->trans('Country').'</label></td><td class="maxwidthonsmartphone">';
|
||||||
print $form->select_country(GETPOST('country_id') != '' ?GETPOST('country_id') : $object->country_id);
|
print img_picto('', 'globe-americas', 'class="paddingrightonly"').$form->select_country(GETPOST('country_id') != '' ?GETPOST('country_id') : $object->country_id);
|
||||||
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" value="'.dol_escape_htmltag(GETPOST("email")).'" class="maxwidth200"></td></tr>';
|
print "<tr>".'<td>'.$langs->trans("EMail").'</td><td>'.img_picto('', 'object_email', 'class="paddingrightonly"').'<input type="text" name="email" value="'.dol_escape_htmltag(GETPOST("email")).'" class="maxwidth200"></td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Payment mode
|
// Payment mode
|
||||||
|
|||||||
@ -91,12 +91,12 @@ class PaiementFourn extends Paiement
|
|||||||
{
|
{
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
$sql = 'SELECT p.rowid, p.ref, p.entity, p.datep as dp, p.amount, p.statut, p.fk_bank,';
|
$sql = 'SELECT p.rowid, p.ref, p.entity, p.datep as dp, p.amount, p.statut, p.fk_bank, p.multicurrency_amount,';
|
||||||
$sql .= ' c.code as paiement_code, c.libelle as paiement_type,';
|
$sql .= ' c.code as paiement_code, c.libelle as paiement_type,';
|
||||||
$sql .= ' p.num_paiement as num_payment, p.note, b.fk_account';
|
$sql .= ' p.num_paiement as num_payment, p.note, b.fk_account';
|
||||||
$sql .= ' FROM '.MAIN_DB_PREFIX.'paiementfourn as p';
|
$sql .= ' FROM '.MAIN_DB_PREFIX.'paiementfourn as p';
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as c ON p.fk_paiement = c.id';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as c ON p.fk_paiement = c.id';
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON p.fk_bank = b.rowid ';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON p.fk_bank = b.rowid';
|
||||||
$sql .= ' WHERE p.entity IN ('.getEntity('facture_fourn').')';
|
$sql .= ' WHERE p.entity IN ('.getEntity('facture_fourn').')';
|
||||||
if ($id > 0)
|
if ($id > 0)
|
||||||
$sql .= ' AND p.rowid = '.$id;
|
$sql .= ' AND p.rowid = '.$id;
|
||||||
@ -113,6 +113,7 @@ class PaiementFourn extends Paiement
|
|||||||
if ($num > 0)
|
if ($num > 0)
|
||||||
{
|
{
|
||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
$this->ref = $obj->ref;
|
$this->ref = $obj->ref;
|
||||||
$this->entity = $obj->entity;
|
$this->entity = $obj->entity;
|
||||||
@ -125,11 +126,13 @@ class PaiementFourn extends Paiement
|
|||||||
$this->bank_line = $obj->fk_bank;
|
$this->bank_line = $obj->fk_bank;
|
||||||
$this->montant = $obj->amount;
|
$this->montant = $obj->amount;
|
||||||
$this->amount = $obj->amount;
|
$this->amount = $obj->amount;
|
||||||
|
$this->multicurrency_amount = $obj->multicurrency_amount;
|
||||||
$this->note = $obj->note;
|
$this->note = $obj->note;
|
||||||
$this->note_private = $obj->note;
|
$this->note_private = $obj->note;
|
||||||
$this->type_code = $obj->paiement_code;
|
$this->type_code = $obj->paiement_code;
|
||||||
$this->type_label = $obj->paiement_type;
|
$this->type_label = $obj->paiement_type;
|
||||||
$this->statut = $obj->statut;
|
$this->statut = $obj->statut;
|
||||||
|
|
||||||
$error = 1;
|
$error = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -58,8 +58,8 @@ AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in f
|
|||||||
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
|
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
|
||||||
|
|
||||||
AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s
|
AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s
|
||||||
AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s
|
AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s
|
||||||
AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s
|
AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s
|
||||||
|
|
||||||
AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
|
AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
|
||||||
AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
|
AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
|
||||||
|
|||||||
@ -95,7 +95,7 @@ NextValueForInvoices=Next value (invoices)
|
|||||||
NextValueForCreditNotes=Next value (credit notes)
|
NextValueForCreditNotes=Next value (credit notes)
|
||||||
NextValueForDeposit=Next value (down payment)
|
NextValueForDeposit=Next value (down payment)
|
||||||
NextValueForReplacements=Next value (replacements)
|
NextValueForReplacements=Next value (replacements)
|
||||||
MustBeLowerThanPHPLimit=Note: <b>your</b> PHP configuration currently limits the maximum filesize for upload to <b>%s</b> %s, irrespective of the value of this parameter
|
MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to <b>%s</b> %s, irrespective of the value of this parameter
|
||||||
NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration
|
NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration
|
||||||
MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload)
|
MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload)
|
||||||
UseCaptchaCode=Use graphical code (CAPTCHA) on login page
|
UseCaptchaCode=Use graphical code (CAPTCHA) on login page
|
||||||
@ -207,7 +207,7 @@ ModulesMarketPlaces=Find external app/modules
|
|||||||
ModulesDevelopYourModule=Develop your own app/modules
|
ModulesDevelopYourModule=Develop your own app/modules
|
||||||
ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
|
ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
|
||||||
DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
|
DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
|
||||||
NewModule=New
|
NewModule=New module
|
||||||
FreeModule=Free
|
FreeModule=Free
|
||||||
CompatibleUpTo=Compatible with version %s
|
CompatibleUpTo=Compatible with version %s
|
||||||
NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
|
NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
|
||||||
@ -219,7 +219,7 @@ Nouveauté=Novelty
|
|||||||
AchatTelechargement=Buy / Download
|
AchatTelechargement=Buy / Download
|
||||||
GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: <a href="%s">%s</a>.
|
GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: <a href="%s">%s</a>.
|
||||||
DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
|
DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
|
||||||
DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
|
DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming should be able to develop a module.
|
||||||
WebSiteDesc=External websites for more add-on (non-core) modules...
|
WebSiteDesc=External websites for more add-on (non-core) modules...
|
||||||
DevelopYourModuleDesc=Some solutions to develop your own module...
|
DevelopYourModuleDesc=Some solutions to develop your own module...
|
||||||
URL=URL
|
URL=URL
|
||||||
@ -446,12 +446,13 @@ LinkToTestClickToDial=Enter a phone number to call to show a link to test the Cl
|
|||||||
RefreshPhoneLink=Refresh link
|
RefreshPhoneLink=Refresh link
|
||||||
LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
|
LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
|
||||||
KeepEmptyToUseDefault=Keep empty to use default value
|
KeepEmptyToUseDefault=Keep empty to use default value
|
||||||
|
KeepThisEmptyInMostCases=In most cases, you can keep this field empy.
|
||||||
DefaultLink=Default link
|
DefaultLink=Default link
|
||||||
SetAsDefault=Set as default
|
SetAsDefault=Set as default
|
||||||
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
|
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
|
||||||
ExternalModule=External module
|
ExternalModule=External module
|
||||||
InstalledInto=Installed into directory %s
|
InstalledInto=Installed into directory %s
|
||||||
BarcodeInitForthird-parties=Mass barcode init for third-parties
|
BarcodeInitForThirdparties=Mass barcode init for third-parties
|
||||||
BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
|
BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
|
||||||
CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
|
CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
|
||||||
InitEmptyBarCode=Init value for next %s empty records
|
InitEmptyBarCode=Init value for next %s empty records
|
||||||
@ -541,8 +542,8 @@ Module54Name=Contracts/Subscriptions
|
|||||||
Module54Desc=Management of contracts (services or recurring subscriptions)
|
Module54Desc=Management of contracts (services or recurring subscriptions)
|
||||||
Module55Name=Barcodes
|
Module55Name=Barcodes
|
||||||
Module55Desc=Barcode management
|
Module55Desc=Barcode management
|
||||||
Module56Name=Telephony
|
Module56Name=Payment by credit transfer
|
||||||
Module56Desc=Telephony integration
|
Module56Desc=Management of payment by credit transfer orders. It includes generation of SEPA file for European countries.
|
||||||
Module57Name=Bank Direct Debit payments
|
Module57Name=Bank Direct Debit payments
|
||||||
Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
|
Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
|
||||||
Module58Name=ClickToDial
|
Module58Name=ClickToDial
|
||||||
@ -1145,6 +1146,7 @@ AvailableModules=Available app/modules
|
|||||||
ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
|
ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
|
||||||
SessionTimeOut=Time out for session
|
SessionTimeOut=Time out for session
|
||||||
SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
|
SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
|
||||||
|
SessionsPurgedByExternalSystem=Sessions on this server seems to be cleaned by an external mechanism (cron under debian, ubuntu ...), probably every <b>%s</b> seconds (= value of parameter <b>session.gc_maxlifetime</b>), so changing the value here has no effect. You must ask the server administrator to change session delay.
|
||||||
TriggersAvailable=Available triggers
|
TriggersAvailable=Available triggers
|
||||||
TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
|
TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
|
||||||
TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
|
TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
|
||||||
@ -1262,6 +1264,7 @@ FieldEdition=Edition of field %s
|
|||||||
FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
|
FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
|
||||||
GetBarCode=Get barcode
|
GetBarCode=Get barcode
|
||||||
NumberingModules=Numbering models
|
NumberingModules=Numbering models
|
||||||
|
DocumentModules=Document models
|
||||||
##### Module password generation
|
##### Module password generation
|
||||||
PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
|
PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
|
||||||
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
||||||
@ -1844,6 +1847,7 @@ MailToThirdparty=Third parties
|
|||||||
MailToMember=Members
|
MailToMember=Members
|
||||||
MailToUser=Users
|
MailToUser=Users
|
||||||
MailToProject=Projects page
|
MailToProject=Projects page
|
||||||
|
MailToTicket=Tickets
|
||||||
ByDefaultInList=Show by default on list view
|
ByDefaultInList=Show by default on list view
|
||||||
YouUseLastStableVersion=You use the latest stable version
|
YouUseLastStableVersion=You use the latest stable version
|
||||||
TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
|
TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
|
||||||
@ -1996,6 +2000,7 @@ EmailTemplate=Template for email
|
|||||||
EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax
|
EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax
|
||||||
PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF.
|
PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF.
|
||||||
FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book.
|
FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book.
|
||||||
|
FeatureNotAvailableWithReceptionModule=Feature not available when module Reception is enabled
|
||||||
RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard
|
RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard
|
||||||
JumpToBoxes=Jump to Setup -> Widgets
|
JumpToBoxes=Jump to Setup -> Widgets
|
||||||
MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time"
|
MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time"
|
||||||
|
|||||||
@ -112,8 +112,10 @@ BOM_CLOSEInDolibarr=BOM disabled
|
|||||||
BOM_REOPENInDolibarr=BOM reopen
|
BOM_REOPENInDolibarr=BOM reopen
|
||||||
BOM_DELETEInDolibarr=BOM deleted
|
BOM_DELETEInDolibarr=BOM deleted
|
||||||
MRP_MO_VALIDATEInDolibarr=MO validated
|
MRP_MO_VALIDATEInDolibarr=MO validated
|
||||||
|
MRP_MO_UNVALIDATEInDolibarr=MO set to draft status
|
||||||
MRP_MO_PRODUCEDInDolibarr=MO produced
|
MRP_MO_PRODUCEDInDolibarr=MO produced
|
||||||
MRP_MO_DELETEInDolibarr=MO deleted
|
MRP_MO_DELETEInDolibarr=MO deleted
|
||||||
|
MRP_MO_CANCELInDolibarr=MO canceled
|
||||||
##### End agenda events #####
|
##### End agenda events #####
|
||||||
AgendaModelModule=Document templates for event
|
AgendaModelModule=Document templates for event
|
||||||
DateActionStart=Start date
|
DateActionStart=Start date
|
||||||
@ -152,3 +154,6 @@ EveryMonth=Every month
|
|||||||
DayOfMonth=Day of month
|
DayOfMonth=Day of month
|
||||||
DayOfWeek=Day of week
|
DayOfWeek=Day of week
|
||||||
DateStartPlusOne=Date start + 1 hour
|
DateStartPlusOne=Date start + 1 hour
|
||||||
|
SetAllEventsToTodo=Set all events to todo
|
||||||
|
SetAllEventsToInProgress=Set all events to in progress
|
||||||
|
SetAllEventsToFinished=Set all events to finished
|
||||||
|
|||||||
@ -35,8 +35,10 @@ SwiftValid=BIC/SWIFT valid
|
|||||||
SwiftVNotalid=BIC/SWIFT not valid
|
SwiftVNotalid=BIC/SWIFT not valid
|
||||||
IbanValid=BAN valid
|
IbanValid=BAN valid
|
||||||
IbanNotValid=BAN not valid
|
IbanNotValid=BAN not valid
|
||||||
StandingOrders=Direct Debit orders
|
StandingOrders=Direct debit orders
|
||||||
StandingOrder=Direct debit order
|
StandingOrder=Direct debit order
|
||||||
|
PaymentByBankTransfers=Payments by credit transfer
|
||||||
|
PaymentByBankTransfer=Payment by credit transfer
|
||||||
AccountStatement=Account statement
|
AccountStatement=Account statement
|
||||||
AccountStatementShort=Statement
|
AccountStatementShort=Statement
|
||||||
AccountStatements=Account statements
|
AccountStatements=Account statements
|
||||||
|
|||||||
@ -241,8 +241,6 @@ EscompteOffered=Discount offered (payment before term)
|
|||||||
EscompteOfferedShort=Discount
|
EscompteOfferedShort=Discount
|
||||||
SendBillRef=Submission of invoice %s
|
SendBillRef=Submission of invoice %s
|
||||||
SendReminderBillRef=Submission of invoice %s (reminder)
|
SendReminderBillRef=Submission of invoice %s (reminder)
|
||||||
StandingOrders=Direct debit orders
|
|
||||||
StandingOrder=Direct debit order
|
|
||||||
NoDraftBills=No draft invoices
|
NoDraftBills=No draft invoices
|
||||||
NoOtherDraftBills=No other draft invoices
|
NoOtherDraftBills=No other draft invoices
|
||||||
NoDraftInvoices=No draft invoices
|
NoDraftInvoices=No draft invoices
|
||||||
@ -572,3 +570,6 @@ AutoFillDateToShort=Set end date
|
|||||||
MaxNumberOfGenerationReached=Max number of gen. reached
|
MaxNumberOfGenerationReached=Max number of gen. reached
|
||||||
BILL_DELETEInDolibarr=Invoice deleted
|
BILL_DELETEInDolibarr=Invoice deleted
|
||||||
BILL_SUPPLIER_DELETEInDolibarr=Supplier invoice deleted
|
BILL_SUPPLIER_DELETEInDolibarr=Supplier invoice deleted
|
||||||
|
UnitPriceXQtyLessDiscount=Unit price x Qty - Discount
|
||||||
|
CustomersInvoicesArea=Customer billing area
|
||||||
|
SupplierInvoicesArea=Supplier billing area
|
||||||
|
|||||||
@ -108,3 +108,5 @@ MainTemplateToUse=Main template to use
|
|||||||
OrderTemplateToUse=Order template to use
|
OrderTemplateToUse=Order template to use
|
||||||
BarRestaurant=Bar Restaurant
|
BarRestaurant=Bar Restaurant
|
||||||
AutoOrder=Customer auto order
|
AutoOrder=Customer auto order
|
||||||
|
RestaurantMenu=Menu
|
||||||
|
CustomerMenu=Customer menu
|
||||||
|
|||||||
@ -86,4 +86,5 @@ ByDefaultInList=By default in list
|
|||||||
ChooseCategory=Choose category
|
ChooseCategory=Choose category
|
||||||
StocksCategoriesArea=Warehouses Categories Area
|
StocksCategoriesArea=Warehouses Categories Area
|
||||||
ActionCommCategoriesArea=Events Categories Area
|
ActionCommCategoriesArea=Events Categories Area
|
||||||
|
WebsitePagesCategoriesArea=Page-Container Categories Area
|
||||||
UseOrOperatorForCategories=Use or operator for categories
|
UseOrOperatorForCategories=Use or operator for categories
|
||||||
|
|||||||
@ -19,7 +19,6 @@ ProspectionArea=Prospection area
|
|||||||
IdThirdParty=Id third party
|
IdThirdParty=Id third party
|
||||||
IdCompany=Company Id
|
IdCompany=Company Id
|
||||||
IdContact=Contact Id
|
IdContact=Contact Id
|
||||||
Contacts=Contacts/Addresses
|
|
||||||
ThirdPartyContacts=Third-party contacts
|
ThirdPartyContacts=Third-party contacts
|
||||||
ThirdPartyContact=Third-party contact/address
|
ThirdPartyContact=Third-party contact/address
|
||||||
Company=Company
|
Company=Company
|
||||||
@ -298,7 +297,8 @@ AddContact=Create contact
|
|||||||
AddContactAddress=Create contact/address
|
AddContactAddress=Create contact/address
|
||||||
EditContact=Edit contact
|
EditContact=Edit contact
|
||||||
EditContactAddress=Edit contact/address
|
EditContactAddress=Edit contact/address
|
||||||
Contact=Contact
|
Contact=Contact/Address
|
||||||
|
Contacts=Contacts/Addresses
|
||||||
ContactId=Contact id
|
ContactId=Contact id
|
||||||
ContactsAddresses=Contacts/Addresses
|
ContactsAddresses=Contacts/Addresses
|
||||||
FromContactName=Name:
|
FromContactName=Name:
|
||||||
@ -425,7 +425,7 @@ ListSuppliersShort=List of Vendors
|
|||||||
ListProspectsShort=List of Prospects
|
ListProspectsShort=List of Prospects
|
||||||
ListCustomersShort=List of Customers
|
ListCustomersShort=List of Customers
|
||||||
ThirdPartiesArea=Third Parties/Contacts
|
ThirdPartiesArea=Third Parties/Contacts
|
||||||
LastModifiedThirdParties=Last %s modified Third Parties
|
LastModifiedThirdParties=Latest %s modified Third Parties
|
||||||
UniqueThirdParties=Total of Third Parties
|
UniqueThirdParties=Total of Third Parties
|
||||||
InActivity=Open
|
InActivity=Open
|
||||||
ActivityCeased=Closed
|
ActivityCeased=Closed
|
||||||
|
|||||||
@ -263,3 +263,4 @@ WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different re
|
|||||||
WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
|
WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
|
||||||
WarningProjectClosed=Project is closed. You must re-open it first.
|
WarningProjectClosed=Project is closed. You must re-open it first.
|
||||||
WarningSomeBankTransactionByChequeWereRemovedAfter=Some bank transaction were removed after that the receipt including them were generated. So nb of cheques and total of receipt may differ from number and total in list.
|
WarningSomeBankTransactionByChequeWereRemovedAfter=Some bank transaction were removed after that the receipt including them were generated. So nb of cheques and total of receipt may differ from number and total in list.
|
||||||
|
WarningFailedToAddFileIntoDatabaseIndex=Warnin, failed to add file entry into ECM database index table
|
||||||
|
|||||||
@ -11,7 +11,7 @@ CloseEtablishment=Close establishment
|
|||||||
# Dictionary
|
# Dictionary
|
||||||
DictionaryPublicHolidays=HRM - Public holidays
|
DictionaryPublicHolidays=HRM - Public holidays
|
||||||
DictionaryDepartment=HRM - Department list
|
DictionaryDepartment=HRM - Department list
|
||||||
DictionaryFunction=HRM - Function list
|
DictionaryFunction=HRM - Job positions
|
||||||
# Module
|
# Module
|
||||||
Employees=Employees
|
Employees=Employees
|
||||||
Employee=Employee
|
Employee=Employee
|
||||||
|
|||||||
@ -218,6 +218,6 @@ ErrorFoundDuringMigration=Error(s) were reported during the migration process so
|
|||||||
YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
|
YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
|
||||||
YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
|
YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
|
||||||
ClickHereToGoToApp=Click here to go to your application
|
ClickHereToGoToApp=Click here to go to your application
|
||||||
ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
|
ClickOnLinkOrRemoveManualy=If an upgrade is in progress, please wait. If not, click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
|
||||||
Loaded=Loaded
|
Loaded=Loaded
|
||||||
FunctionTest=Function test
|
FunctionTest=Function test
|
||||||
|
|||||||
@ -28,7 +28,7 @@ NoTemplateDefined=No template available for this email type
|
|||||||
AvailableVariables=Available substitution variables
|
AvailableVariables=Available substitution variables
|
||||||
NoTranslation=No translation
|
NoTranslation=No translation
|
||||||
Translation=Translation
|
Translation=Translation
|
||||||
EmptySearchString=Enter a non empty search string
|
EmptySearchString=Enter non empty search criterias
|
||||||
NoRecordFound=No record found
|
NoRecordFound=No record found
|
||||||
NoRecordDeleted=No record deleted
|
NoRecordDeleted=No record deleted
|
||||||
NotEnoughDataYet=Not enough data
|
NotEnoughDataYet=Not enough data
|
||||||
@ -187,6 +187,8 @@ ShowCardHere=Show card
|
|||||||
Search=Search
|
Search=Search
|
||||||
SearchOf=Search
|
SearchOf=Search
|
||||||
SearchMenuShortCut=Ctrl + shift + f
|
SearchMenuShortCut=Ctrl + shift + f
|
||||||
|
QuickAdd=Quick add
|
||||||
|
QuickAddMenuShortCut=Ctrl + shift + l
|
||||||
Valid=Valid
|
Valid=Valid
|
||||||
Approve=Approve
|
Approve=Approve
|
||||||
Disapprove=Disapprove
|
Disapprove=Disapprove
|
||||||
@ -664,6 +666,7 @@ Owner=Owner
|
|||||||
FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
|
FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
|
||||||
Refresh=Refresh
|
Refresh=Refresh
|
||||||
BackToList=Back to list
|
BackToList=Back to list
|
||||||
|
BackToTree=Back to tree
|
||||||
GoBack=Go back
|
GoBack=Go back
|
||||||
CanBeModifiedIfOk=Can be modified if valid
|
CanBeModifiedIfOk=Can be modified if valid
|
||||||
CanBeModifiedIfKo=Can be modified if not valid
|
CanBeModifiedIfKo=Can be modified if not valid
|
||||||
@ -840,6 +843,7 @@ Sincerely=Sincerely
|
|||||||
ConfirmDeleteObject=Are you sure you want to delete this object?
|
ConfirmDeleteObject=Are you sure you want to delete this object?
|
||||||
DeleteLine=Delete line
|
DeleteLine=Delete line
|
||||||
ConfirmDeleteLine=Are you sure you want to delete this line?
|
ConfirmDeleteLine=Are you sure you want to delete this line?
|
||||||
|
ErrorPDFTkOutputFileNotFound=Error: the file was not generated. Please check that the 'pdftk' command is installed in a directory included in the $PATH environment variable (linux/unix only) or contact your system administrator.
|
||||||
NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
|
NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
|
||||||
TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
|
TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
|
||||||
NoRecordSelected=No record selected
|
NoRecordSelected=No record selected
|
||||||
@ -1033,3 +1037,5 @@ DeleteFileText=Do you really want delete this file?
|
|||||||
ShowOtherLanguages=Show other languages
|
ShowOtherLanguages=Show other languages
|
||||||
SwitchInEditModeToAddTranslation=Switch in edit mode to add translations for this language
|
SwitchInEditModeToAddTranslation=Switch in edit mode to add translations for this language
|
||||||
NotUsedForThisCustomer=Not used for this customer
|
NotUsedForThisCustomer=Not used for this customer
|
||||||
|
AmountMustBePositive=Amount must be positive
|
||||||
|
ByStatus=By status
|
||||||
|
|||||||
@ -27,7 +27,7 @@ DangerZone=Danger zone
|
|||||||
BuildPackage=Build package
|
BuildPackage=Build package
|
||||||
BuildPackageDesc=You can generate a zip package of your application so your are ready to distribute it on any Dolibarr. You can also distribute it or sell it on marketplace like <a href="https://www.dolistore.com">DoliStore.com</a>.
|
BuildPackageDesc=You can generate a zip package of your application so your are ready to distribute it on any Dolibarr. You can also distribute it or sell it on marketplace like <a href="https://www.dolistore.com">DoliStore.com</a>.
|
||||||
BuildDocumentation=Build documentation
|
BuildDocumentation=Build documentation
|
||||||
ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here:
|
ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here
|
||||||
ModuleIsLive=This module has been activated. Any change may break a current live feature.
|
ModuleIsLive=This module has been activated. Any change may break a current live feature.
|
||||||
DescriptionLong=Long description
|
DescriptionLong=Long description
|
||||||
EditorName=Name of editor
|
EditorName=Name of editor
|
||||||
@ -139,3 +139,4 @@ ForeignKey=Foreign key
|
|||||||
TypeOfFieldsHelp=Type of fields:<br>varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' means we add a + button after the combo to create the record, 'filter' can be 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' for example)
|
TypeOfFieldsHelp=Type of fields:<br>varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' means we add a + button after the combo to create the record, 'filter' can be 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' for example)
|
||||||
AsciiToHtmlConverter=Ascii to HTML converter
|
AsciiToHtmlConverter=Ascii to HTML converter
|
||||||
AsciiToPdfConverter=Ascii to PDF converter
|
AsciiToPdfConverter=Ascii to PDF converter
|
||||||
|
TableNotEmptyDropCanceled=Table not empty. Drop has been canceled.
|
||||||
|
|||||||
@ -74,3 +74,4 @@ ProductsToConsume=Products to consume
|
|||||||
ProductsToProduce=Products to produce
|
ProductsToProduce=Products to produce
|
||||||
UnitCost=Unit cost
|
UnitCost=Unit cost
|
||||||
TotalCost=Total cost
|
TotalCost=Total cost
|
||||||
|
BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price)
|
||||||
|
|||||||
@ -85,8 +85,8 @@ MaxSize=Maximum size
|
|||||||
AttachANewFile=Attach a new file/document
|
AttachANewFile=Attach a new file/document
|
||||||
LinkedObject=Linked object
|
LinkedObject=Linked object
|
||||||
NbOfActiveNotifications=Number of notifications (no. of recipient emails)
|
NbOfActiveNotifications=Number of notifications (no. of recipient emails)
|
||||||
PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
|
PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe lines are separated by a carriage return.\n\n__USER_SIGNATURE__
|
||||||
PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
|
PredefinedMailTestHtml=__(Hello)__<br>This is a <b>test</b> mail sent to __EMAIL__ (the word test must be in bold).<br>The lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
|
||||||
PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
||||||
PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
||||||
PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
||||||
|
|||||||
@ -43,7 +43,7 @@ ServicesOnSaleOnly=Services for sale only
|
|||||||
ServicesOnPurchaseOnly=Services for purchase only
|
ServicesOnPurchaseOnly=Services for purchase only
|
||||||
ServicesNotOnSell=Services not for sale and not for purchase
|
ServicesNotOnSell=Services not for sale and not for purchase
|
||||||
ServicesOnSellAndOnBuy=Services for sale and for purchase
|
ServicesOnSellAndOnBuy=Services for sale and for purchase
|
||||||
LastModifiedProductsAndServices=Last %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
|
CardProduct0=Product
|
||||||
@ -106,6 +106,7 @@ 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=Multiple price segments per product/service (each customer is in one price segment)
|
MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment)
|
||||||
MultiPricesNumPrices=Number of prices
|
MultiPricesNumPrices=Number of prices
|
||||||
|
DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices
|
||||||
AssociatedProductsAbility=Activate virtual products (kits)
|
AssociatedProductsAbility=Activate virtual products (kits)
|
||||||
AssociatedProducts=Virtual products
|
AssociatedProducts=Virtual products
|
||||||
AssociatedProductsNumber=Number of products composing this virtual product
|
AssociatedProductsNumber=Number of products composing this virtual product
|
||||||
|
|||||||
@ -115,7 +115,7 @@ ChildOfTask=Child of task
|
|||||||
TaskHasChild=Task has child
|
TaskHasChild=Task has child
|
||||||
NotOwnerOfProject=Not owner of this private project
|
NotOwnerOfProject=Not owner of this private project
|
||||||
AffectedTo=Allocated to
|
AffectedTo=Allocated to
|
||||||
CantRemoveProject=This project can't be removed as it is referenced by some other objects (invoice, orders or other). See referers tab.
|
CantRemoveProject=This project can't be removed as it is referenced by some other objects (invoice, orders or other). See tab '%s'.
|
||||||
ValidateProject=Validate projet
|
ValidateProject=Validate projet
|
||||||
ConfirmValidateProject=Are you sure you want to validate this project?
|
ConfirmValidateProject=Are you sure you want to validate this project?
|
||||||
CloseAProject=Close project
|
CloseAProject=Close project
|
||||||
@ -265,3 +265,4 @@ NewInvoice=New invoice
|
|||||||
OneLinePerTask=One line per task
|
OneLinePerTask=One line per task
|
||||||
OneLinePerPeriod=One line per period
|
OneLinePerPeriod=One line per period
|
||||||
RefTaskParent=Ref. Parent Task
|
RefTaskParent=Ref. Parent Task
|
||||||
|
ProfitIsCalculatedWith=Profit is calculated using
|
||||||
|
|||||||
@ -43,3 +43,5 @@ ProductQtyInSuppliersReceptionAlreadyRecevied=Product quantity from open supplie
|
|||||||
ValidateOrderFirstBeforeReception=You must first validate the order before being able to make receptions.
|
ValidateOrderFirstBeforeReception=You must first validate the order before being able to make receptions.
|
||||||
ReceptionsNumberingModules=Numbering module for receptions
|
ReceptionsNumberingModules=Numbering module for receptions
|
||||||
ReceptionsReceiptModel=Document templates for receptions
|
ReceptionsReceiptModel=Document templates for receptions
|
||||||
|
NoMorePredefinedProductToDispatch=No more predefined products to dispatch
|
||||||
|
|
||||||
|
|||||||
@ -56,6 +56,13 @@ PMPValueShort=WAP
|
|||||||
EnhancedValueOfWarehouses=Warehouses value
|
EnhancedValueOfWarehouses=Warehouses value
|
||||||
UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
|
UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
|
||||||
AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product
|
AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product
|
||||||
|
RuleForWarehouse=Rule for warehouses
|
||||||
|
WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders
|
||||||
|
UserDefaultWarehouse=Set a warehouse on Users
|
||||||
|
DefaultWarehouseActive=Default warehouse active
|
||||||
|
MainDefaultWarehouse=Default warehouse
|
||||||
|
MainDefaultWarehouseUser=Use user warehouse asign default
|
||||||
|
MainDefaultWarehouseUserDesc=/!\\ By activating this option the gold of the creation of an article, the warehouse assigned to the user will be defined on this one. If no warehouse is defined on the user, the default warehouse is defined.
|
||||||
IndependantSubProductStock=Product stock and subproduct stock are independent
|
IndependantSubProductStock=Product stock and subproduct stock are independent
|
||||||
QtyDispatched=Quantity dispatched
|
QtyDispatched=Quantity dispatched
|
||||||
QtyDispatchedShort=Qty dispatched
|
QtyDispatchedShort=Qty dispatched
|
||||||
@ -123,6 +130,7 @@ WarehouseForStockDecrease=The warehouse <b>%s</b> will be used for stock decreas
|
|||||||
WarehouseForStockIncrease=The warehouse <b>%s</b> will be used for stock increase
|
WarehouseForStockIncrease=The warehouse <b>%s</b> will be used for stock increase
|
||||||
ForThisWarehouse=For this warehouse
|
ForThisWarehouse=For this warehouse
|
||||||
ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create purchase orders to fill the difference.
|
ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create purchase orders to fill the difference.
|
||||||
|
ReplenishmentStatusDescPerWarehouse=If you want a replenishment based on desired quantity defined per warehouse, you must add a filter on the warehouse.
|
||||||
ReplenishmentOrdersDesc=This is a list of all open purchase orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here.
|
ReplenishmentOrdersDesc=This is a list of all open purchase orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here.
|
||||||
Replenishments=Replenishments
|
Replenishments=Replenishments
|
||||||
NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s)
|
NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s)
|
||||||
@ -218,3 +226,4 @@ InventoryForASpecificWarehouse=Inventory for a specific warehouse
|
|||||||
InventoryForASpecificProduct=Inventory for a specific product
|
InventoryForASpecificProduct=Inventory for a specific product
|
||||||
StockIsRequiredToChooseWhichLotToUse=Stock is required to choose which lot to use
|
StockIsRequiredToChooseWhichLotToUse=Stock is required to choose which lot to use
|
||||||
ForceTo=Force to
|
ForceTo=Force to
|
||||||
|
AlwaysShowFullArbo=Display full tree of warehouse on popup of warehouse links (Warning: This may decrease dramatically performances)
|
||||||
|
|||||||
@ -130,6 +130,10 @@ TicketNumberingModules=Tickets numbering module
|
|||||||
TicketNotifyTiersAtCreation=Notify third party at creation
|
TicketNotifyTiersAtCreation=Notify third party at creation
|
||||||
TicketGroup=Group
|
TicketGroup=Group
|
||||||
TicketsDisableCustomerEmail=Always disable emails when a ticket is created from public interface
|
TicketsDisableCustomerEmail=Always disable emails when a ticket is created from public interface
|
||||||
|
TicketsPublicNotificationNewMessage=Send email(s) when a new message is added
|
||||||
|
TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to)
|
||||||
|
TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update)
|
||||||
|
TicketPublicNotificationNewMessageDefaultEmailHelp=Send email new message notifications to this address if the ticket don't have a user assigned or the user don't have a email.
|
||||||
#
|
#
|
||||||
# Index & list page
|
# Index & list page
|
||||||
#
|
#
|
||||||
|
|||||||
@ -16,6 +16,7 @@ WEBSITE_ROBOT=Robot file (robots.txt)
|
|||||||
WEBSITE_HTACCESS=Website .htaccess file
|
WEBSITE_HTACCESS=Website .htaccess file
|
||||||
WEBSITE_MANIFEST_JSON=Website manifest.json file
|
WEBSITE_MANIFEST_JSON=Website manifest.json file
|
||||||
WEBSITE_README=README.md file
|
WEBSITE_README=README.md file
|
||||||
|
WEBSITE_KEYWORDSDesc=Use a comma to separate values
|
||||||
EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package.
|
EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package.
|
||||||
HtmlHeaderPage=HTML header (specific to this page only)
|
HtmlHeaderPage=HTML header (specific to this page only)
|
||||||
PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
|
PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
|
||||||
@ -120,7 +121,7 @@ ShowSubContainersOnOff=Mode to execute 'dynamic content' is %s
|
|||||||
GlobalCSSorJS=Global CSS/JS/Header file of web site
|
GlobalCSSorJS=Global CSS/JS/Header file of web site
|
||||||
BackToHomePage=Back to home page...
|
BackToHomePage=Back to home page...
|
||||||
TranslationLinks=Translation links
|
TranslationLinks=Translation links
|
||||||
YouTryToAccessToAFileThatIsNotAWebsitePage=You try to access to a page that is not a website page
|
YouTryToAccessToAFileThatIsNotAWebsitePage=You try to access to a page that is not available.<br>(ref=%s, type=%s, status=%s)
|
||||||
UseTextBetween5And70Chars=For good SEO practices, use a text between 5 and 70 characters
|
UseTextBetween5And70Chars=For good SEO practices, use a text between 5 and 70 characters
|
||||||
MainLanguage=Main language
|
MainLanguage=Main language
|
||||||
OtherLanguages=Other languages
|
OtherLanguages=Other languages
|
||||||
@ -128,3 +129,6 @@ UseManifest=Provide a manifest.json file
|
|||||||
PublicAuthorAlias=Public author alias
|
PublicAuthorAlias=Public author alias
|
||||||
AvailableLanguagesAreDefinedIntoWebsiteProperties=Available languages are defined into website properties
|
AvailableLanguagesAreDefinedIntoWebsiteProperties=Available languages are defined into website properties
|
||||||
ReplacementDoneInXPages=Replacement done in %s pages or containers
|
ReplacementDoneInXPages=Replacement done in %s pages or containers
|
||||||
|
RSSFeed=RSS Feed
|
||||||
|
RSSFeedDesc=You can get a RSS feed of latest articles with type 'blogpost' using this URL
|
||||||
|
PagesRegenerated=%s page(s)/container(s) regenerated
|
||||||
|
|||||||
@ -1,27 +1,43 @@
|
|||||||
# Dolibarr language file - Source file is en_US - withdrawals
|
# Dolibarr language file - Source file is en_US - withdrawals
|
||||||
CustomersStandingOrdersArea=Direct debit payment orders area
|
CustomersStandingOrdersArea=Payments by Direct debit orders
|
||||||
SuppliersStandingOrdersArea=Direct credit payment orders area
|
SuppliersStandingOrdersArea=Payments by Credit transfer
|
||||||
StandingOrdersPayment=Direct debit payment orders
|
StandingOrdersPayment=Direct debit payment orders
|
||||||
StandingOrderPayment=Direct debit payment order
|
StandingOrderPayment=Direct debit payment order
|
||||||
NewStandingOrder=New direct debit order
|
NewStandingOrder=New direct debit order
|
||||||
|
NewPaymentByBankTransfer=New payment by credit transfer
|
||||||
StandingOrderToProcess=To process
|
StandingOrderToProcess=To process
|
||||||
|
PaymentByBankTransferReceipts=Credit transfer orders
|
||||||
|
PaymentByBankTransferLines=Credit transfer order lines
|
||||||
WithdrawalsReceipts=Direct debit orders
|
WithdrawalsReceipts=Direct debit orders
|
||||||
WithdrawalReceipt=Direct debit order
|
WithdrawalReceipt=Direct debit order
|
||||||
|
BankTransferReceipts=Credit transfer receipts
|
||||||
|
BankTransferReceipt=Credit transfer receipt
|
||||||
|
LatestBankTransferReceipts=Latest %s credit transfer orders
|
||||||
LastWithdrawalReceipts=Latest %s direct debit files
|
LastWithdrawalReceipts=Latest %s direct debit files
|
||||||
|
WithdrawalsLine=Direct debit order line
|
||||||
|
CreditTransferLine=Credit transfer line
|
||||||
WithdrawalsLines=Direct debit order lines
|
WithdrawalsLines=Direct debit order lines
|
||||||
RequestStandingOrderToTreat=Request for direct debit payment order to process
|
CreditTransferLines=Credit transfer lines
|
||||||
RequestStandingOrderTreated=Request for direct debit payment order processed
|
RequestStandingOrderToTreat=Requests for direct debit payment order to process
|
||||||
|
RequestStandingOrderTreated=Requests for direct debit payment order processed
|
||||||
|
RequestPaymentsByBankTransferToTreat=Requests for credit transfer to process
|
||||||
|
RequestPaymentsByBankTransferTreated=Requests for credit transfer processed
|
||||||
NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Withdraw status must be set to 'credited' before declaring reject on specific lines.
|
NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Withdraw status must be set to 'credited' before declaring reject on specific lines.
|
||||||
NbOfInvoiceToWithdraw=No. of qualified invoice with waiting direct debit order
|
NbOfInvoiceToWithdraw=No. of qualified customer invoices with waiting direct debit order
|
||||||
NbOfInvoiceToWithdrawWithInfo=No. of customer invoice with direct debit payment orders having defined bank account information
|
NbOfInvoiceToWithdrawWithInfo=No. of customer invoice with direct debit payment orders having defined bank account information
|
||||||
|
NbOfInvoiceToPayByBankTransfer=No. of qualified supplier invoices waiting for a payment by credit transfer
|
||||||
|
SupplierInvoiceWaitingWithdraw=Vendor invoice waiting for payment by credit transfer
|
||||||
InvoiceWaitingWithdraw=Invoice waiting for direct debit
|
InvoiceWaitingWithdraw=Invoice waiting for direct debit
|
||||||
|
InvoiceWaitingPaymentByBankTransfer=Invoice waiting for credit transfer
|
||||||
AmountToWithdraw=Amount to withdraw
|
AmountToWithdraw=Amount to withdraw
|
||||||
WithdrawsRefused=Direct debit refused
|
NoInvoiceToWithdraw=No invoice open for '%s' is waiting. Go on tab '%s' on invoice card to make a request.
|
||||||
NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request.
|
NoSupplierInvoiceToWithdraw=No supplier invoice with open 'Direct credit requests' is waiting. Go on tab '%s' on invoice card to make a request.
|
||||||
ResponsibleUser=User Responsible
|
ResponsibleUser=User Responsible
|
||||||
WithdrawalsSetup=Direct debit payment setup
|
WithdrawalsSetup=Direct debit payment setup
|
||||||
|
CreditTransferSetup=Crebit transfer setup
|
||||||
WithdrawStatistics=Direct debit payment statistics
|
WithdrawStatistics=Direct debit payment statistics
|
||||||
WithdrawRejectStatistics=Direct debit payment reject statistics
|
CreditTransferStatistics=Credit transfer statistics
|
||||||
|
Rejects=Rejects
|
||||||
LastWithdrawalReceipt=Latest %s direct debit receipts
|
LastWithdrawalReceipt=Latest %s direct debit receipts
|
||||||
MakeWithdrawRequest=Make a direct debit payment request
|
MakeWithdrawRequest=Make a direct debit payment request
|
||||||
WithdrawRequestsDone=%s direct debit payment requests recorded
|
WithdrawRequestsDone=%s direct debit payment requests recorded
|
||||||
@ -34,7 +50,9 @@ TransMetod=Transmission method
|
|||||||
Send=Send
|
Send=Send
|
||||||
Lines=Lines
|
Lines=Lines
|
||||||
StandingOrderReject=Issue a rejection
|
StandingOrderReject=Issue a rejection
|
||||||
|
WithdrawsRefused=Direct debit refused
|
||||||
WithdrawalRefused=Withdrawal refused
|
WithdrawalRefused=Withdrawal refused
|
||||||
|
CreditTransfersRefused=Credit transfers refused
|
||||||
WithdrawalRefusedConfirm=Are you sure you want to enter a withdrawal rejection for society
|
WithdrawalRefusedConfirm=Are you sure you want to enter a withdrawal rejection for society
|
||||||
RefusedData=Date of rejection
|
RefusedData=Date of rejection
|
||||||
RefusedReason=Reason for rejection
|
RefusedReason=Reason for rejection
|
||||||
@ -58,6 +76,8 @@ StatusMotif8=Other reason
|
|||||||
CreateForSepaFRST=Create direct debit file (SEPA FRST)
|
CreateForSepaFRST=Create direct debit file (SEPA FRST)
|
||||||
CreateForSepaRCUR=Create direct debit file (SEPA RCUR)
|
CreateForSepaRCUR=Create direct debit file (SEPA RCUR)
|
||||||
CreateAll=Create direct debit file (all)
|
CreateAll=Create direct debit file (all)
|
||||||
|
CreateFileForPaymentByBankTransfer=Create credit transfer (all)
|
||||||
|
CreateSepaFileForPaymentByBankTransfer=Create credit transfer file (SEPA)
|
||||||
CreateGuichet=Only office
|
CreateGuichet=Only office
|
||||||
CreateBanque=Only bank
|
CreateBanque=Only bank
|
||||||
OrderWaiting=Waiting for treatment
|
OrderWaiting=Waiting for treatment
|
||||||
@ -67,6 +87,7 @@ NumeroNationalEmetter=National Transmitter Number
|
|||||||
WithBankUsingRIB=For bank accounts using RIB
|
WithBankUsingRIB=For bank accounts using RIB
|
||||||
WithBankUsingBANBIC=For bank accounts using IBAN/BIC/SWIFT
|
WithBankUsingBANBIC=For bank accounts using IBAN/BIC/SWIFT
|
||||||
BankToReceiveWithdraw=Receiving Bank Account
|
BankToReceiveWithdraw=Receiving Bank Account
|
||||||
|
BankToPayCreditTransfer=Bank Account used as source of payments
|
||||||
CreditDate=Credit on
|
CreditDate=Credit on
|
||||||
WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported)
|
WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported)
|
||||||
ShowWithdraw=Show Direct Debit Order
|
ShowWithdraw=Show Direct Debit Order
|
||||||
@ -74,7 +95,7 @@ IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one
|
|||||||
DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Direct Debit orders to manage the direct debit payment order. When payment order is closed, payment on invoice will be automatically recorded, and invoice closed if remainder to pay is null.
|
DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Direct Debit orders to manage the direct debit payment order. When payment order is closed, payment on invoice will be automatically recorded, and invoice closed if remainder to pay is null.
|
||||||
WithdrawalFile=Withdrawal file
|
WithdrawalFile=Withdrawal file
|
||||||
SetToStatusSent=Set to status "File Sent"
|
SetToStatusSent=Set to status "File Sent"
|
||||||
ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null
|
ThisWillAlsoAddPaymentOnInvoice=This will also record payments on invoices and will classify them as "Paid" if remain to pay is null
|
||||||
StatisticsByLineStatus=Statistics by status of lines
|
StatisticsByLineStatus=Statistics by status of lines
|
||||||
RUM=UMR
|
RUM=UMR
|
||||||
DateRUM=Mandate signature date
|
DateRUM=Mandate signature date
|
||||||
|
|||||||
@ -2,18 +2,42 @@
|
|||||||
Foundation=مؤسسة
|
Foundation=مؤسسة
|
||||||
Version=إصدار
|
Version=إصدار
|
||||||
Publisher=الناشر
|
Publisher=الناشر
|
||||||
|
VersionLastInstall=أول إصدار ثبت
|
||||||
|
VersionLastUpgrade=أخر تحديث
|
||||||
VersionExperimental=تجريبي
|
VersionExperimental=تجريبي
|
||||||
VersionDevelopment=تطوير
|
VersionDevelopment=تطوير
|
||||||
VersionRecommanded=موصى به
|
VersionRecommanded=موصى به
|
||||||
|
FileCheck=تدقيق سلامة مجموعة الملفات
|
||||||
|
FileCheckDesc=تتيح لك هذه الأداة التحقق من سلامة الملفات وإعدادات التطبيق الخاص بك ، مقارنة كل ملف بالملف الرسمي. يمكن أيضًا التحقق من قيمة بعض ثوابت الإعدادات. يمكنك استخدام هذه الأداة لتحديد ما إذا تم تعديل أي ملفات (على سبيل المثال بواسطة مخترق).
|
||||||
|
FileIntegrityIsStrictlyConformedWithReference=يجب ان تتوافق سلامة الملفات تمامًا مع المرجع.
|
||||||
|
FileIntegrityIsOkButFilesWereAdded=اجتاز فحص تكامل الملفات ، ولكن تمت إضافة بعض الملفات الجديدة.
|
||||||
|
FileIntegritySomeFilesWereRemovedOrModified=فشل التحقق من تكامل الملفات. تم تعديل بعض الملفات أو إزالتها أو إضافتها.
|
||||||
|
MakeIntegrityAnalysisFrom=عمل تحليل سلامة ملفات التطبيق من
|
||||||
|
LocalSignature=توقيع محلي مضمن (أقل موثوقية)
|
||||||
|
RemoteSignature=التوقيع عن بعد (أكثر موثوقية)
|
||||||
|
FilesUpdated=الملفات المحدثة
|
||||||
|
FilesModified=الملفات المعدلة
|
||||||
|
FilesAdded=الملفات المضافة
|
||||||
|
FileCheckDolibarr=تحقق من سلامة ملفات التطبيق
|
||||||
|
AvailableOnlyOnPackagedVersions=لا يتوفر الملف المحلي لفحص السلامة إلا عندما يتم تثبيت التطبيق من حزمة رسمية
|
||||||
|
XmlNotFound=لم يتم العثور على ملف تكامل Xml للتطبيق
|
||||||
SessionId=هوية المتصل
|
SessionId=هوية المتصل
|
||||||
SessionSaveHandler=معالج لتوفير دورات
|
SessionSaveHandler=معالج لتوفير دورات
|
||||||
PurgeSessions=انهاء الجلسات
|
SessionSavePath=مكان حفظ الجلسة
|
||||||
|
PurgeSessions=مسح الجلسات
|
||||||
|
ConfirmPurgeSessions=هل تريد حقًا تطهير جميع الجلسات؟ سيؤدي هذا إلى فصل كل مستخدم (باستثناء نفسك).
|
||||||
|
NoSessionListWithThisHandler=لا يسمح معالج حفظ الجلسة الذي تم تكوينه في PHP بإدراج جميع الجلسات الجارية.
|
||||||
LockNewSessions=اغلاق الدخول للمتصلين الجدد
|
LockNewSessions=اغلاق الدخول للمتصلين الجدد
|
||||||
|
ConfirmLockNewSessions=هل أنت متأكد من أنك تريد تقييد أي اتصال Dolibarr جديد لنفسك؟ سيتمكن المستخدم <b> %s </b> فقط من الاتصال بعد ذلك.
|
||||||
UnlockNewSessions=الغاء حظر الاتصال
|
UnlockNewSessions=الغاء حظر الاتصال
|
||||||
YourSession=جلستك
|
YourSession=جلستك
|
||||||
|
Sessions=جلسات المستخدمين
|
||||||
WebUserGroup=مستخدم\\مجموعة خادم الويب
|
WebUserGroup=مستخدم\\مجموعة خادم الويب
|
||||||
|
NoSessionFound=يبدو أن تكوين PHP الخاص بك لا يسمح بإدراج الجلسات النشطة. قد يتم حماية الدليل المستخدم لحفظ الجلسات (<b> %s </b>) (على سبيل المثال عن طريق أذونات نظام التشغيل أو عن طريق توجيه PHP open_basedir).
|
||||||
DBStoringCharset=ضبط الحروف في قاعدة البيانات لحفظ المعلومات
|
DBStoringCharset=ضبط الحروف في قاعدة البيانات لحفظ المعلومات
|
||||||
DBSortingCharset=ضبط الحروف في قاعدة البيانات لحفظ المعلومات
|
DBSortingCharset=ضبط الحروف في قاعدة البيانات لحفظ المعلومات
|
||||||
|
ClientCharset=مجموع حروف العميل
|
||||||
|
ClientSortingCharset=ترتيب العميل
|
||||||
WarningModuleNotActive=إن الوحدة <b>%s</b> لابد أن تكون مفعلة
|
WarningModuleNotActive=إن الوحدة <b>%s</b> لابد أن تكون مفعلة
|
||||||
WarningOnlyPermissionOfActivatedModules=أن الصلاحيات المرتبطة بالوحدات المفعلة فقط تظهر هنا. تستطيع تفعيل وحدات أخرى من: الرئيسية ثم التنصيب ثم صفحة الوحدات
|
WarningOnlyPermissionOfActivatedModules=أن الصلاحيات المرتبطة بالوحدات المفعلة فقط تظهر هنا. تستطيع تفعيل وحدات أخرى من: الرئيسية ثم التنصيب ثم صفحة الوحدات
|
||||||
DolibarrSetup=تثبيت أو ترقية البرنامج
|
DolibarrSetup=تثبيت أو ترقية البرنامج
|
||||||
@ -21,8 +45,10 @@ InternalUsers=مستخدمون داخليون
|
|||||||
ExternalUsers=مستخدمون خارجيون
|
ExternalUsers=مستخدمون خارجيون
|
||||||
FormToTestFileUploadForm=نموذج تجربة رفع الملفات (تبعا للتنصيب)
|
FormToTestFileUploadForm=نموذج تجربة رفع الملفات (تبعا للتنصيب)
|
||||||
FeatureAvailableOnlyOnStable=الميزة متوفرة فقط في الإصدارات الثابتة الرسمية
|
FeatureAvailableOnlyOnStable=الميزة متوفرة فقط في الإصدارات الثابتة الرسمية
|
||||||
|
Module40Name=موردين
|
||||||
Module700Name=تبرعات
|
Module700Name=تبرعات
|
||||||
Module1780Name=الأوسمة/التصنيفات
|
Module1780Name=الأوسمة/التصنيفات
|
||||||
Permission81=قراءة أوامر الشراء
|
Permission81=قراءة أوامر الشراء
|
||||||
MailToSendInvoice=فواتير العميل
|
MailToSendInvoice=فواتير العميل
|
||||||
|
MailToSendSupplierOrder=أوامر الشراء
|
||||||
MailToSendSupplierInvoice=فواتير المورد
|
MailToSendSupplierInvoice=فواتير المورد
|
||||||
|
|||||||
@ -7,6 +7,5 @@ ThirdPartySuppliers=موردين
|
|||||||
OverAllOrders=الطلبات
|
OverAllOrders=الطلبات
|
||||||
OverAllSupplierProposals=طلبات عروض اسعار
|
OverAllSupplierProposals=طلبات عروض اسعار
|
||||||
Customer=عميل
|
Customer=عميل
|
||||||
Contact=Contact
|
|
||||||
InActivity=افتح
|
InActivity=افتح
|
||||||
ActivityCeased=مقفول
|
ActivityCeased=مقفول
|
||||||
|
|||||||
@ -19,5 +19,18 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p
|
|||||||
FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p
|
FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p
|
||||||
FormatDateHourTextShort=%b %d, %Y, %I:%M %p
|
FormatDateHourTextShort=%b %d, %Y, %I:%M %p
|
||||||
FormatDateHourText=%B %d, %Y, %I:%M %p
|
FormatDateHourText=%B %d, %Y, %I:%M %p
|
||||||
|
Closed2=مقفول
|
||||||
|
NumberByMonth=الرقم بالشهر
|
||||||
|
RefSupplier=المرجع. مورد
|
||||||
|
CommercialProposalsShort=عروض تجارية
|
||||||
|
Refused=مرفوض
|
||||||
|
Drafts=المسودات
|
||||||
|
Validated=معتمد
|
||||||
|
Opened=افتح
|
||||||
SearchIntoCustomerInvoices=فواتير العميل
|
SearchIntoCustomerInvoices=فواتير العميل
|
||||||
SearchIntoSupplierInvoices=فواتير المورد
|
SearchIntoSupplierInvoices=فواتير المورد
|
||||||
|
SearchIntoSupplierOrders=أوامر الشراء
|
||||||
|
SearchIntoCustomerProposals=عروض تجارية
|
||||||
|
SearchIntoSupplierProposals=عرود الموردين
|
||||||
|
ContactDefault_commande=طلب
|
||||||
|
ContactDefault_propal=عرض
|
||||||
|
|||||||
@ -1,3 +1,2 @@
|
|||||||
# Dolibarr language file - Source file is en_US - projects
|
# Dolibarr language file - Source file is en_US - projects
|
||||||
CantRemoveProject=This project can't be removed as it is referenced by some other objects (invoice, orders or other). See referers tab.
|
|
||||||
OppStatusPROPO=عرض
|
OppStatusPROPO=عرض
|
||||||
|
|||||||
@ -58,8 +58,8 @@ AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in f
|
|||||||
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
|
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
|
||||||
|
|
||||||
AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s
|
AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s
|
||||||
AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s
|
AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s
|
||||||
AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s
|
AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s
|
||||||
|
|
||||||
AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
|
AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
|
||||||
AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
|
AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
|
||||||
|
|||||||
@ -95,7 +95,7 @@ NextValueForInvoices=القيمة التالية (الفواتير)
|
|||||||
NextValueForCreditNotes=القيمة التالية (ملاحظات دائن)
|
NextValueForCreditNotes=القيمة التالية (ملاحظات دائن)
|
||||||
NextValueForDeposit=Next value (down payment)
|
NextValueForDeposit=Next value (down payment)
|
||||||
NextValueForReplacements=القيمة التالية (استبدال)
|
NextValueForReplacements=القيمة التالية (استبدال)
|
||||||
MustBeLowerThanPHPLimit=Note: <b>your</b> PHP configuration currently limits the maximum filesize for upload to <b>%s</b> %s, irrespective of the value of this parameter
|
MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to <b>%s</b> %s, irrespective of the value of this parameter
|
||||||
NoMaxSizeByPHPLimit=ملاحظة : لم يتم وضح حد في إعدادات الـ PHP الخاص بك
|
NoMaxSizeByPHPLimit=ملاحظة : لم يتم وضح حد في إعدادات الـ PHP الخاص بك
|
||||||
MaxSizeForUploadedFiles=الحجم الأقصى لتحميل الملفات (0 لمنع أي تحميل)
|
MaxSizeForUploadedFiles=الحجم الأقصى لتحميل الملفات (0 لمنع أي تحميل)
|
||||||
UseCaptchaCode=إستخدم الرسوم كرمز (كابتشا) في صفحة الدخول
|
UseCaptchaCode=إستخدم الرسوم كرمز (كابتشا) في صفحة الدخول
|
||||||
@ -207,7 +207,7 @@ ModulesMarketPlaces=Find external app/modules
|
|||||||
ModulesDevelopYourModule=Develop your own app/modules
|
ModulesDevelopYourModule=Develop your own app/modules
|
||||||
ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
|
ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
|
||||||
DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
|
DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
|
||||||
NewModule=جديد
|
NewModule=New module
|
||||||
FreeModule=Free
|
FreeModule=Free
|
||||||
CompatibleUpTo=Compatible with version %s
|
CompatibleUpTo=Compatible with version %s
|
||||||
NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
|
NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
|
||||||
@ -219,7 +219,7 @@ Nouveauté=Novelty
|
|||||||
AchatTelechargement=Buy / Download
|
AchatTelechargement=Buy / Download
|
||||||
GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: <a href="%s">%s</a>.
|
GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: <a href="%s">%s</a>.
|
||||||
DoliStoreDesc=DoliStore ، في السوق الرسمي لتخطيط موارد المؤسسات وحدات Dolibarr / خارجي إدارة علاقات العملاء
|
DoliStoreDesc=DoliStore ، في السوق الرسمي لتخطيط موارد المؤسسات وحدات Dolibarr / خارجي إدارة علاقات العملاء
|
||||||
DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
|
DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming should be able to develop a module.
|
||||||
WebSiteDesc=External websites for more add-on (non-core) modules...
|
WebSiteDesc=External websites for more add-on (non-core) modules...
|
||||||
DevelopYourModuleDesc=Some solutions to develop your own module...
|
DevelopYourModuleDesc=Some solutions to develop your own module...
|
||||||
URL=العنوان
|
URL=العنوان
|
||||||
@ -446,12 +446,13 @@ LinkToTestClickToDial=Enter a phone number to call to show a link to test the Cl
|
|||||||
RefreshPhoneLink=Refresh link
|
RefreshPhoneLink=Refresh link
|
||||||
LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
|
LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
|
||||||
KeepEmptyToUseDefault=Keep empty to use default value
|
KeepEmptyToUseDefault=Keep empty to use default value
|
||||||
|
KeepThisEmptyInMostCases=In most cases, you can keep this field empy.
|
||||||
DefaultLink=Default link
|
DefaultLink=Default link
|
||||||
SetAsDefault=Set as default
|
SetAsDefault=Set as default
|
||||||
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
|
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
|
||||||
ExternalModule=External module
|
ExternalModule=External module
|
||||||
InstalledInto=Installed into directory %s
|
InstalledInto=Installed into directory %s
|
||||||
BarcodeInitForthird-parties=Mass barcode init for third-parties
|
BarcodeInitForThirdparties=Mass barcode init for third-parties
|
||||||
BarcodeInitForProductsOrServices=الحرف الأول الباركود الشامل أو إعادة للمنتجات أو الخدمات
|
BarcodeInitForProductsOrServices=الحرف الأول الباركود الشامل أو إعادة للمنتجات أو الخدمات
|
||||||
CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
|
CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
|
||||||
InitEmptyBarCode=قيمة الحرف الأول للسجلات فارغة الصورة٪ المقبلة
|
InitEmptyBarCode=قيمة الحرف الأول للسجلات فارغة الصورة٪ المقبلة
|
||||||
@ -541,8 +542,8 @@ Module54Name=Contracts/Subscriptions
|
|||||||
Module54Desc=Management of contracts (services or recurring subscriptions)
|
Module54Desc=Management of contracts (services or recurring subscriptions)
|
||||||
Module55Name=Barcodes
|
Module55Name=Barcodes
|
||||||
Module55Desc=Barcodes إدارة
|
Module55Desc=Barcodes إدارة
|
||||||
Module56Name=الخدمات الهاتفية
|
Module56Name=Payment by credit transfer
|
||||||
Module56Desc=تكامل الخدمات الهاتفية
|
Module56Desc=Management of payment by credit transfer orders. It includes generation of SEPA file for European countries.
|
||||||
Module57Name=Bank Direct Debit payments
|
Module57Name=Bank Direct Debit payments
|
||||||
Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
|
Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
|
||||||
Module58Name=انقر للاتصال
|
Module58Name=انقر للاتصال
|
||||||
@ -1145,6 +1146,7 @@ AvailableModules=Available app/modules
|
|||||||
ToActivateModule=لتفعيل وحدات ، على الإعداد منطقة الصفحة الرئيسية> الإعداد -> الوحدات).
|
ToActivateModule=لتفعيل وحدات ، على الإعداد منطقة الصفحة الرئيسية> الإعداد -> الوحدات).
|
||||||
SessionTimeOut=للمرة الخمسين
|
SessionTimeOut=للمرة الخمسين
|
||||||
SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
|
SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
|
||||||
|
SessionsPurgedByExternalSystem=Sessions on this server seems to be cleaned by an external mechanism (cron under debian, ubuntu ...), probably every <b>%s</b> seconds (= value of parameter <b>session.gc_maxlifetime</b>), so changing the value here has no effect. You must ask the server administrator to change session delay.
|
||||||
TriggersAvailable=محفزات متاحة
|
TriggersAvailable=محفزات متاحة
|
||||||
TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
|
TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
|
||||||
TriggerDisabledByName=يطلق في هذا الملف من قبل المعوقين لاحقة بين <b>NORUN</b> باسمهم.
|
TriggerDisabledByName=يطلق في هذا الملف من قبل المعوقين لاحقة بين <b>NORUN</b> باسمهم.
|
||||||
@ -1262,6 +1264,7 @@ FieldEdition=طبعة من ميدان%s
|
|||||||
FillThisOnlyIfRequired=مثال: +2 (ملء إلا إذا تعوض توقيت المشاكل من ذوي الخبرة)
|
FillThisOnlyIfRequired=مثال: +2 (ملء إلا إذا تعوض توقيت المشاكل من ذوي الخبرة)
|
||||||
GetBarCode=الحصول على الباركود
|
GetBarCode=الحصول على الباركود
|
||||||
NumberingModules=Numbering models
|
NumberingModules=Numbering models
|
||||||
|
DocumentModules=Document models
|
||||||
##### Module password generation
|
##### Module password generation
|
||||||
PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير.
|
PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير.
|
||||||
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
||||||
@ -1844,6 +1847,7 @@ MailToThirdparty=أطراف ثالثة
|
|||||||
MailToMember=أعضاء
|
MailToMember=أعضاء
|
||||||
MailToUser=المستخدمين
|
MailToUser=المستخدمين
|
||||||
MailToProject=Projects page
|
MailToProject=Projects page
|
||||||
|
MailToTicket=Tickets
|
||||||
ByDefaultInList=تظهر بشكل افتراضي على عرض القائمة
|
ByDefaultInList=تظهر بشكل افتراضي على عرض القائمة
|
||||||
YouUseLastStableVersion=You use the latest stable version
|
YouUseLastStableVersion=You use the latest stable version
|
||||||
TitleExampleForMajorRelease=مثال على رسالة يمكنك استخدامها ليعلن هذا الإصدار الرئيسي (لا تتردد في استخدامها على مواقع الويب الخاص بك)
|
TitleExampleForMajorRelease=مثال على رسالة يمكنك استخدامها ليعلن هذا الإصدار الرئيسي (لا تتردد في استخدامها على مواقع الويب الخاص بك)
|
||||||
@ -1996,6 +2000,7 @@ EmailTemplate=Template for email
|
|||||||
EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax
|
EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax
|
||||||
PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF.
|
PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF.
|
||||||
FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book.
|
FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book.
|
||||||
|
FeatureNotAvailableWithReceptionModule=Feature not available when module Reception is enabled
|
||||||
RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard
|
RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard
|
||||||
JumpToBoxes=Jump to Setup -> Widgets
|
JumpToBoxes=Jump to Setup -> Widgets
|
||||||
MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time"
|
MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time"
|
||||||
|
|||||||
@ -84,13 +84,14 @@ InterventionSentByEMail=Intervention %s sent by email
|
|||||||
ProposalDeleted=تم حذف العرض
|
ProposalDeleted=تم حذف العرض
|
||||||
OrderDeleted=تم حذف الطلب
|
OrderDeleted=تم حذف الطلب
|
||||||
InvoiceDeleted=تم حذف الفاتورة
|
InvoiceDeleted=تم حذف الفاتورة
|
||||||
|
DraftInvoiceDeleted=Draft invoice deleted
|
||||||
PRODUCT_CREATEInDolibarr=المنتج %s تم انشاؤه
|
PRODUCT_CREATEInDolibarr=المنتج %s تم انشاؤه
|
||||||
PRODUCT_MODIFYInDolibarr=المنتج %sتم تعديلة
|
PRODUCT_MODIFYInDolibarr=المنتج %sتم تعديلة
|
||||||
PRODUCT_DELETEInDolibarr=المنتج%s تم حذفة
|
PRODUCT_DELETEInDolibarr=المنتج%s تم حذفة
|
||||||
HOLIDAY_CREATEInDolibarr=Request for leave %s created
|
HOLIDAY_CREATEInDolibarr=Request for leave %s created
|
||||||
HOLIDAY_MODIFYInDolibarr=Request for leave %s modified
|
HOLIDAY_MODIFYInDolibarr=Request for leave %s modified
|
||||||
HOLIDAY_APPROVEInDolibarr=Request for leave %s approved
|
HOLIDAY_APPROVEInDolibarr=Request for leave %s approved
|
||||||
HOLIDAY_VALIDATEDInDolibarr=Request for leave %s validated
|
HOLIDAY_VALIDATEInDolibarr=Request for leave %s validated
|
||||||
HOLIDAY_DELETEInDolibarr=Request for leave %s deleted
|
HOLIDAY_DELETEInDolibarr=Request for leave %s deleted
|
||||||
EXPENSE_REPORT_CREATEInDolibarr=تقرير المصروفات %sتم إنشاؤة
|
EXPENSE_REPORT_CREATEInDolibarr=تقرير المصروفات %sتم إنشاؤة
|
||||||
EXPENSE_REPORT_VALIDATEInDolibarr=تقرير المصروفات %s تم التحقق من صحتة
|
EXPENSE_REPORT_VALIDATEInDolibarr=تقرير المصروفات %s تم التحقق من صحتة
|
||||||
@ -111,8 +112,10 @@ BOM_CLOSEInDolibarr=BOM disabled
|
|||||||
BOM_REOPENInDolibarr=BOM reopen
|
BOM_REOPENInDolibarr=BOM reopen
|
||||||
BOM_DELETEInDolibarr=BOM deleted
|
BOM_DELETEInDolibarr=BOM deleted
|
||||||
MRP_MO_VALIDATEInDolibarr=MO validated
|
MRP_MO_VALIDATEInDolibarr=MO validated
|
||||||
|
MRP_MO_UNVALIDATEInDolibarr=MO set to draft status
|
||||||
MRP_MO_PRODUCEDInDolibarr=MO produced
|
MRP_MO_PRODUCEDInDolibarr=MO produced
|
||||||
MRP_MO_DELETEInDolibarr=MO deleted
|
MRP_MO_DELETEInDolibarr=MO deleted
|
||||||
|
MRP_MO_CANCELInDolibarr=MO canceled
|
||||||
##### End agenda events #####
|
##### End agenda events #####
|
||||||
AgendaModelModule=نماذج المستندات للحدث
|
AgendaModelModule=نماذج المستندات للحدث
|
||||||
DateActionStart=تاريخ البدء
|
DateActionStart=تاريخ البدء
|
||||||
@ -151,3 +154,6 @@ EveryMonth=كل شهر
|
|||||||
DayOfMonth=يوم من الشهر
|
DayOfMonth=يوم من الشهر
|
||||||
DayOfWeek=يوم من الأسبوع
|
DayOfWeek=يوم من الأسبوع
|
||||||
DateStartPlusOne=تاريخ بدء + 1 ساعة
|
DateStartPlusOne=تاريخ بدء + 1 ساعة
|
||||||
|
SetAllEventsToTodo=Set all events to todo
|
||||||
|
SetAllEventsToInProgress=Set all events to in progress
|
||||||
|
SetAllEventsToFinished=Set all events to finished
|
||||||
|
|||||||
@ -35,8 +35,10 @@ SwiftValid=بيك / سويفت صالحة
|
|||||||
SwiftVNotalid=بيك / سويفت غير صالح
|
SwiftVNotalid=بيك / سويفت غير صالح
|
||||||
IbanValid=بان صالحة
|
IbanValid=بان صالحة
|
||||||
IbanNotValid=بان غير صالح
|
IbanNotValid=بان غير صالح
|
||||||
StandingOrders=أوامر الخصم المباشر
|
StandingOrders=Direct debit orders
|
||||||
StandingOrder=أمر الخصم المباشر
|
StandingOrder=أمر الخصم المباشر
|
||||||
|
PaymentByBankTransfers=Payments by credit transfer
|
||||||
|
PaymentByBankTransfer=Payment by credit transfer
|
||||||
AccountStatement=كشف الحساب
|
AccountStatement=كشف الحساب
|
||||||
AccountStatementShort=بيان
|
AccountStatementShort=بيان
|
||||||
AccountStatements=كشوفات الحساب
|
AccountStatements=كشوفات الحساب
|
||||||
|
|||||||
@ -241,8 +241,6 @@ EscompteOffered=عرض الخصم (الدفع قبل الأجل)
|
|||||||
EscompteOfferedShort=تخفيض السعر
|
EscompteOfferedShort=تخفيض السعر
|
||||||
SendBillRef=تقديم فاتورة%s
|
SendBillRef=تقديم فاتورة%s
|
||||||
SendReminderBillRef=تقديم فاتورة%s (تذكير)
|
SendReminderBillRef=تقديم فاتورة%s (تذكير)
|
||||||
StandingOrders=Direct debit orders
|
|
||||||
StandingOrder=Direct debit order
|
|
||||||
NoDraftBills=أي مشروع الفواتير
|
NoDraftBills=أي مشروع الفواتير
|
||||||
NoOtherDraftBills=أي مشروع الفواتير
|
NoOtherDraftBills=أي مشروع الفواتير
|
||||||
NoDraftInvoices=لا يوجد مسودة فواتير
|
NoDraftInvoices=لا يوجد مسودة فواتير
|
||||||
@ -572,3 +570,6 @@ AutoFillDateToShort=Set end date
|
|||||||
MaxNumberOfGenerationReached=Max number of gen. reached
|
MaxNumberOfGenerationReached=Max number of gen. reached
|
||||||
BILL_DELETEInDolibarr=تم حذف الفاتورة
|
BILL_DELETEInDolibarr=تم حذف الفاتورة
|
||||||
BILL_SUPPLIER_DELETEInDolibarr=Supplier invoice deleted
|
BILL_SUPPLIER_DELETEInDolibarr=Supplier invoice deleted
|
||||||
|
UnitPriceXQtyLessDiscount=Unit price x Qty - Discount
|
||||||
|
CustomersInvoicesArea=Customer billing area
|
||||||
|
SupplierInvoicesArea=Supplier billing area
|
||||||
|
|||||||
@ -95,7 +95,7 @@ PrintMethod=Print method
|
|||||||
ReceiptPrinterMethodDescription=Powerful method with a lot of parameters. Full customizable with templates. Cannot print from the cloud.
|
ReceiptPrinterMethodDescription=Powerful method with a lot of parameters. Full customizable with templates. Cannot print from the cloud.
|
||||||
ByTerminal=By terminal
|
ByTerminal=By terminal
|
||||||
TakeposNumpadUsePaymentIcon=Use payment icon on numpad
|
TakeposNumpadUsePaymentIcon=Use payment icon on numpad
|
||||||
CashDeskRefNumberingModules=Numbering module for cash desk
|
CashDeskRefNumberingModules=Numbering module for POS sales
|
||||||
CashDeskGenericMaskCodes6 = <br><b>{TN}</b> tag is used to add the terminal number
|
CashDeskGenericMaskCodes6 = <br><b>{TN}</b> tag is used to add the terminal number
|
||||||
TakeposGroupSameProduct=Group same products lines
|
TakeposGroupSameProduct=Group same products lines
|
||||||
StartAParallelSale=Start a new parallel sale
|
StartAParallelSale=Start a new parallel sale
|
||||||
@ -106,3 +106,7 @@ MainPrinterToUse=Main printer to use
|
|||||||
OrderPrinterToUse=Order printer to use
|
OrderPrinterToUse=Order printer to use
|
||||||
MainTemplateToUse=Main template to use
|
MainTemplateToUse=Main template to use
|
||||||
OrderTemplateToUse=Order template to use
|
OrderTemplateToUse=Order template to use
|
||||||
|
BarRestaurant=Bar Restaurant
|
||||||
|
AutoOrder=Customer auto order
|
||||||
|
RestaurantMenu=Menu
|
||||||
|
CustomerMenu=Customer menu
|
||||||
|
|||||||
@ -63,13 +63,7 @@ AccountsCategoriesShort=علامات / فئات الحسابات
|
|||||||
ProjectsCategoriesShort=علامات / فئات المشاريع
|
ProjectsCategoriesShort=علامات / فئات المشاريع
|
||||||
UsersCategoriesShort=Users tags/categories
|
UsersCategoriesShort=Users tags/categories
|
||||||
StockCategoriesShort=Warehouse tags/categories
|
StockCategoriesShort=Warehouse tags/categories
|
||||||
ThisCategoryHasNoProduct=لا تحتوي هذه الفئة على أي منتج.
|
ThisCategoryHasNoItems=This category does not contain any items.
|
||||||
ThisCategoryHasNoSupplier=This category does not contain any vendor.
|
|
||||||
ThisCategoryHasNoCustomer=لا تحتوي هذه الفئة على أي عميل.
|
|
||||||
ThisCategoryHasNoMember=لا تحتوي هذه الفئة على أي عضو.
|
|
||||||
ThisCategoryHasNoContact=لا تحتوي هذه الفئة على أي جهة اتصال.
|
|
||||||
ThisCategoryHasNoAccount=لا تحتوي هذه الفئة على أي حساب.
|
|
||||||
ThisCategoryHasNoProject=لا تحتوي هذه الفئة على أي مشروع.
|
|
||||||
CategId=معرف العلامة / الفئة
|
CategId=معرف العلامة / الفئة
|
||||||
CatSupList=List of vendor tags/categories
|
CatSupList=List of vendor tags/categories
|
||||||
CatCusList=قائمة علامات / فئات العملاء / احتمال
|
CatCusList=قائمة علامات / فئات العملاء / احتمال
|
||||||
@ -92,4 +86,5 @@ ByDefaultInList=افتراضيا في القائمة
|
|||||||
ChooseCategory=Choose category
|
ChooseCategory=Choose category
|
||||||
StocksCategoriesArea=Warehouses Categories Area
|
StocksCategoriesArea=Warehouses Categories Area
|
||||||
ActionCommCategoriesArea=Events Categories Area
|
ActionCommCategoriesArea=Events Categories Area
|
||||||
|
WebsitePagesCategoriesArea=Page-Container Categories Area
|
||||||
UseOrOperatorForCategories=Use or operator for categories
|
UseOrOperatorForCategories=Use or operator for categories
|
||||||
|
|||||||
@ -19,7 +19,6 @@ ProspectionArea=مجال التنقيب
|
|||||||
IdThirdParty=هوية الطرف الثالث
|
IdThirdParty=هوية الطرف الثالث
|
||||||
IdCompany=رقم تعريف الشركة
|
IdCompany=رقم تعريف الشركة
|
||||||
IdContact=رقم تعريف الاتصال
|
IdContact=رقم تعريف الاتصال
|
||||||
Contacts=اتصالات
|
|
||||||
ThirdPartyContacts=Third-party contacts
|
ThirdPartyContacts=Third-party contacts
|
||||||
ThirdPartyContact=Third-party contact/address
|
ThirdPartyContact=Third-party contact/address
|
||||||
Company=شركة
|
Company=شركة
|
||||||
@ -298,7 +297,8 @@ AddContact=إنشاء اتصال
|
|||||||
AddContactAddress=إنشاء الاتصال / عنوان
|
AddContactAddress=إنشاء الاتصال / عنوان
|
||||||
EditContact=تحرير الاتصال / عنوان
|
EditContact=تحرير الاتصال / عنوان
|
||||||
EditContactAddress=تحرير الاتصال / عنوان
|
EditContactAddress=تحرير الاتصال / عنوان
|
||||||
Contact=جهة اتصال
|
Contact=Contact/Address
|
||||||
|
Contacts=اتصالات
|
||||||
ContactId=Contact id
|
ContactId=Contact id
|
||||||
ContactsAddresses=اتصالات / عناوين
|
ContactsAddresses=اتصالات / عناوين
|
||||||
FromContactName=Name:
|
FromContactName=Name:
|
||||||
@ -325,7 +325,8 @@ CompanyDeleted=شركة "٪ ل" حذفها من قاعدة البيانات.
|
|||||||
ListOfContacts=قائمة الاتصالات
|
ListOfContacts=قائمة الاتصالات
|
||||||
ListOfContactsAddresses=قائمة الاتصالات
|
ListOfContactsAddresses=قائمة الاتصالات
|
||||||
ListOfThirdParties=List of Third Parties
|
ListOfThirdParties=List of Third Parties
|
||||||
ShowContact=وتظهر الاتصال
|
ShowCompany=Third Party
|
||||||
|
ShowContact=Contact-Address
|
||||||
ContactsAllShort=جميع (بدون فلتر)
|
ContactsAllShort=جميع (بدون فلتر)
|
||||||
ContactType=نوع الاتصال
|
ContactType=نوع الاتصال
|
||||||
ContactForOrders=أوامر اتصال
|
ContactForOrders=أوامر اتصال
|
||||||
@ -424,7 +425,7 @@ ListSuppliersShort=List of Vendors
|
|||||||
ListProspectsShort=List of Prospects
|
ListProspectsShort=List of Prospects
|
||||||
ListCustomersShort=List of Customers
|
ListCustomersShort=List of Customers
|
||||||
ThirdPartiesArea=Third Parties/Contacts
|
ThirdPartiesArea=Third Parties/Contacts
|
||||||
LastModifiedThirdParties=Last %s modified Third Parties
|
LastModifiedThirdParties=Latest %s modified Third Parties
|
||||||
UniqueThirdParties=Total of Third Parties
|
UniqueThirdParties=Total of Third Parties
|
||||||
InActivity=فتح
|
InActivity=فتح
|
||||||
ActivityCeased=مغلق
|
ActivityCeased=مغلق
|
||||||
|
|||||||
@ -263,3 +263,4 @@ WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different re
|
|||||||
WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
|
WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
|
||||||
WarningProjectClosed=Project is closed. You must re-open it first.
|
WarningProjectClosed=Project is closed. You must re-open it first.
|
||||||
WarningSomeBankTransactionByChequeWereRemovedAfter=Some bank transaction were removed after that the receipt including them were generated. So nb of cheques and total of receipt may differ from number and total in list.
|
WarningSomeBankTransactionByChequeWereRemovedAfter=Some bank transaction were removed after that the receipt including them were generated. So nb of cheques and total of receipt may differ from number and total in list.
|
||||||
|
WarningFailedToAddFileIntoDatabaseIndex=Warnin, failed to add file entry into ECM database index table
|
||||||
|
|||||||
@ -1,16 +1,17 @@
|
|||||||
# Dolibarr language file - en_US - hrm
|
# Dolibarr language file - en_US - hrm
|
||||||
# Admin
|
# Admin
|
||||||
HRM_EMAIL_EXTERNAL_SERVICE=البريد الإلكتروني لإيقاف شؤون الموظفين الخدمة الخارجية
|
HRM_EMAIL_EXTERNAL_SERVICE=البريد الإلكتروني لمنع خدمة إدارة الموارد البشرية الخارجية
|
||||||
Establishments=مؤسسات
|
Establishments=مؤسسات
|
||||||
Establishment=مؤسسة
|
Establishment=مؤسسة
|
||||||
NewEstablishment=مؤسسة جديدة
|
NewEstablishment=مؤسسة جديدة
|
||||||
DeleteEstablishment=حذف المؤسسة
|
DeleteEstablishment=حذف المؤسسة
|
||||||
ConfirmDeleteEstablishment=هل انت متأكد أنك تريد حذف هذة المؤسسة ؟
|
ConfirmDeleteEstablishment=Are you sure you wish to delete this establishment?
|
||||||
OpenEtablishment=فتح المؤسسة
|
OpenEtablishment=فتح المؤسسة
|
||||||
CloseEtablishment=إغلاق المؤسسة
|
CloseEtablishment=إغلاق المؤسسة
|
||||||
# Dictionary
|
# Dictionary
|
||||||
DictionaryDepartment=شؤون الموظفين - الأقسام
|
DictionaryPublicHolidays=HRM - Public holidays
|
||||||
DictionaryFunction=شؤون الموظفين - الوظائف
|
DictionaryDepartment=إدارة الموارد البشرية - قائمة القسم
|
||||||
|
DictionaryFunction=HRM - Job positions
|
||||||
# Module
|
# Module
|
||||||
Employees=الموظفين
|
Employees=الموظفين
|
||||||
Employee=الموظف
|
Employee=الموظف
|
||||||
|
|||||||
@ -218,6 +218,6 @@ ErrorFoundDuringMigration=Error(s) were reported during the migration process so
|
|||||||
YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
|
YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
|
||||||
YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
|
YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
|
||||||
ClickHereToGoToApp=Click here to go to your application
|
ClickHereToGoToApp=Click here to go to your application
|
||||||
ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
|
ClickOnLinkOrRemoveManualy=If an upgrade is in progress, please wait. If not, click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
|
||||||
Loaded=Loaded
|
Loaded=Loaded
|
||||||
FunctionTest=Function test
|
FunctionTest=Function test
|
||||||
|
|||||||
@ -28,7 +28,7 @@ NoTemplateDefined=No template available for this email type
|
|||||||
AvailableVariables=Available substitution variables
|
AvailableVariables=Available substitution variables
|
||||||
NoTranslation=لا يوجد ترجمة
|
NoTranslation=لا يوجد ترجمة
|
||||||
Translation=الترجمة
|
Translation=الترجمة
|
||||||
EmptySearchString=Enter a non empty search string
|
EmptySearchString=Enter non empty search criterias
|
||||||
NoRecordFound=لا يوجد سجلات
|
NoRecordFound=لا يوجد سجلات
|
||||||
NoRecordDeleted=No record deleted
|
NoRecordDeleted=No record deleted
|
||||||
NotEnoughDataYet=Not enough data
|
NotEnoughDataYet=Not enough data
|
||||||
@ -187,6 +187,8 @@ ShowCardHere=مشاهدة بطاقة
|
|||||||
Search=البحث عن
|
Search=البحث عن
|
||||||
SearchOf=البحث عن
|
SearchOf=البحث عن
|
||||||
SearchMenuShortCut=Ctrl + shift + f
|
SearchMenuShortCut=Ctrl + shift + f
|
||||||
|
QuickAdd=Quick add
|
||||||
|
QuickAddMenuShortCut=Ctrl + shift + l
|
||||||
Valid=سارية المفعول
|
Valid=سارية المفعول
|
||||||
Approve=الموافقة
|
Approve=الموافقة
|
||||||
Disapprove=رفض
|
Disapprove=رفض
|
||||||
@ -426,6 +428,7 @@ Modules=Modules/Applications
|
|||||||
Option=خيار
|
Option=خيار
|
||||||
List=قائمة
|
List=قائمة
|
||||||
FullList=القائمة الكاملة
|
FullList=القائمة الكاملة
|
||||||
|
FullConversation=Full conversation
|
||||||
Statistics=إحصائيات
|
Statistics=إحصائيات
|
||||||
OtherStatistics=الإحصاءات الأخرى
|
OtherStatistics=الإحصاءات الأخرى
|
||||||
Status=الحالة
|
Status=الحالة
|
||||||
@ -663,6 +666,7 @@ Owner=مالك
|
|||||||
FollowingConstantsWillBeSubstituted=الثوابت التالية ستكون بديلا المقابلة القيمة.
|
FollowingConstantsWillBeSubstituted=الثوابت التالية ستكون بديلا المقابلة القيمة.
|
||||||
Refresh=تجديد
|
Refresh=تجديد
|
||||||
BackToList=العودة إلى قائمة
|
BackToList=العودة إلى قائمة
|
||||||
|
BackToTree=Back to tree
|
||||||
GoBack=العودة
|
GoBack=العودة
|
||||||
CanBeModifiedIfOk=يمكن تعديلها إذا كان صحيحا
|
CanBeModifiedIfOk=يمكن تعديلها إذا كان صحيحا
|
||||||
CanBeModifiedIfKo=يمكن تعديلها إذا لم يكن صحيحا
|
CanBeModifiedIfKo=يمكن تعديلها إذا لم يكن صحيحا
|
||||||
@ -839,6 +843,7 @@ Sincerely=بإخلاص
|
|||||||
ConfirmDeleteObject=Are you sure you want to delete this object?
|
ConfirmDeleteObject=Are you sure you want to delete this object?
|
||||||
DeleteLine=حذف الخط
|
DeleteLine=حذف الخط
|
||||||
ConfirmDeleteLine=Are you sure you want to delete this line?
|
ConfirmDeleteLine=Are you sure you want to delete this line?
|
||||||
|
ErrorPDFTkOutputFileNotFound=Error: the file was not generated. Please check that the 'pdftk' command is installed in a directory included in the $PATH environment variable (linux/unix only) or contact your system administrator.
|
||||||
NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
|
NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
|
||||||
TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
|
TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
|
||||||
NoRecordSelected=No record selected
|
NoRecordSelected=No record selected
|
||||||
@ -953,12 +958,13 @@ SearchIntoMembers=أعضاء
|
|||||||
SearchIntoUsers=المستخدمين
|
SearchIntoUsers=المستخدمين
|
||||||
SearchIntoProductsOrServices=المنتجات أو الخدمات
|
SearchIntoProductsOrServices=المنتجات أو الخدمات
|
||||||
SearchIntoProjects=مشاريع
|
SearchIntoProjects=مشاريع
|
||||||
|
SearchIntoMO=Manufacturing Orders
|
||||||
SearchIntoTasks=المهام
|
SearchIntoTasks=المهام
|
||||||
SearchIntoCustomerInvoices=فواتير العملاء
|
SearchIntoCustomerInvoices=فواتير العملاء
|
||||||
SearchIntoSupplierInvoices=Vendor invoices
|
SearchIntoSupplierInvoices=Vendor invoices
|
||||||
SearchIntoCustomerOrders=Sales orders
|
SearchIntoCustomerOrders=Sales orders
|
||||||
SearchIntoSupplierOrders=Purchase orders
|
SearchIntoSupplierOrders=Purchase orders
|
||||||
SearchIntoCustomerProposals=مقترحات العملاء
|
SearchIntoCustomerProposals=مقترحات تجارية
|
||||||
SearchIntoSupplierProposals=Vendor proposals
|
SearchIntoSupplierProposals=Vendor proposals
|
||||||
SearchIntoInterventions=التدخلات
|
SearchIntoInterventions=التدخلات
|
||||||
SearchIntoContracts=عقود
|
SearchIntoContracts=عقود
|
||||||
@ -1028,3 +1034,8 @@ YAxis=Y-Axis
|
|||||||
StatusOfRefMustBe=Status of %s must be %s
|
StatusOfRefMustBe=Status of %s must be %s
|
||||||
DeleteFileHeader=Confirm file delete
|
DeleteFileHeader=Confirm file delete
|
||||||
DeleteFileText=Do you really want delete this file?
|
DeleteFileText=Do you really want delete this file?
|
||||||
|
ShowOtherLanguages=Show other languages
|
||||||
|
SwitchInEditModeToAddTranslation=Switch in edit mode to add translations for this language
|
||||||
|
NotUsedForThisCustomer=Not used for this customer
|
||||||
|
AmountMustBePositive=Amount must be positive
|
||||||
|
ByStatus=By status
|
||||||
|
|||||||
@ -27,7 +27,7 @@ DangerZone=Danger zone
|
|||||||
BuildPackage=Build package
|
BuildPackage=Build package
|
||||||
BuildPackageDesc=You can generate a zip package of your application so your are ready to distribute it on any Dolibarr. You can also distribute it or sell it on marketplace like <a href="https://www.dolistore.com">DoliStore.com</a>.
|
BuildPackageDesc=You can generate a zip package of your application so your are ready to distribute it on any Dolibarr. You can also distribute it or sell it on marketplace like <a href="https://www.dolistore.com">DoliStore.com</a>.
|
||||||
BuildDocumentation=Build documentation
|
BuildDocumentation=Build documentation
|
||||||
ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here:
|
ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here
|
||||||
ModuleIsLive=This module has been activated. Any change may break a current live feature.
|
ModuleIsLive=This module has been activated. Any change may break a current live feature.
|
||||||
DescriptionLong=Long description
|
DescriptionLong=Long description
|
||||||
EditorName=Name of editor
|
EditorName=Name of editor
|
||||||
@ -139,3 +139,4 @@ ForeignKey=Foreign key
|
|||||||
TypeOfFieldsHelp=Type of fields:<br>varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' means we add a + button after the combo to create the record, 'filter' can be 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' for example)
|
TypeOfFieldsHelp=Type of fields:<br>varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' means we add a + button after the combo to create the record, 'filter' can be 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' for example)
|
||||||
AsciiToHtmlConverter=Ascii to HTML converter
|
AsciiToHtmlConverter=Ascii to HTML converter
|
||||||
AsciiToPdfConverter=Ascii to PDF converter
|
AsciiToPdfConverter=Ascii to PDF converter
|
||||||
|
TableNotEmptyDropCanceled=Table not empty. Drop has been canceled.
|
||||||
|
|||||||
@ -56,11 +56,12 @@ ToConsume=To consume
|
|||||||
ToProduce=To produce
|
ToProduce=To produce
|
||||||
QtyAlreadyConsumed=Qty already consumed
|
QtyAlreadyConsumed=Qty already consumed
|
||||||
QtyAlreadyProduced=Qty already produced
|
QtyAlreadyProduced=Qty already produced
|
||||||
|
QtyRequiredIfNoLoss=Qty required if there is no loss (Manufacturing efficiency is 100%%)
|
||||||
ConsumeOrProduce=Consume or Produce
|
ConsumeOrProduce=Consume or Produce
|
||||||
ConsumeAndProduceAll=Consume and Produce All
|
ConsumeAndProduceAll=Consume and Produce All
|
||||||
Manufactured=Manufactured
|
Manufactured=Manufactured
|
||||||
TheProductXIsAlreadyTheProductToProduce=The product to add is already the product to produce.
|
TheProductXIsAlreadyTheProductToProduce=The product to add is already the product to produce.
|
||||||
ForAQuantityOf1=For a quantity to produce of 1
|
ForAQuantityOf=For a quantity to produce of %s
|
||||||
ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order?
|
ConfirmValidateMo=Are you sure you want to validate this Manufacturing Order?
|
||||||
ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements.
|
ConfirmProductionDesc=By clicking on '%s', you will validate the consumption and/or production for the quantities set. This will also update the stock and record stock movements.
|
||||||
ProductionForRef=Production of %s
|
ProductionForRef=Production of %s
|
||||||
@ -71,3 +72,6 @@ ProductQtyToProduceByMO=Product quentity still to produce by open MO
|
|||||||
AddNewConsumeLines=Add new line to consume
|
AddNewConsumeLines=Add new line to consume
|
||||||
ProductsToConsume=Products to consume
|
ProductsToConsume=Products to consume
|
||||||
ProductsToProduce=Products to produce
|
ProductsToProduce=Products to produce
|
||||||
|
UnitCost=Unit cost
|
||||||
|
TotalCost=Total cost
|
||||||
|
BOMTotalCost=The cost to produce this BOM based on cost of each quantity and product to consume (use Cost price if defined, else Average Weighted Price if defined, else the Best purchase price)
|
||||||
|
|||||||
@ -85,8 +85,8 @@ MaxSize=الحجم الأقصى
|
|||||||
AttachANewFile=إرفاق ملف جديد / وثيقة
|
AttachANewFile=إرفاق ملف جديد / وثيقة
|
||||||
LinkedObject=ربط وجوه
|
LinkedObject=ربط وجوه
|
||||||
NbOfActiveNotifications=Number of notifications (no. of recipient emails)
|
NbOfActiveNotifications=Number of notifications (no. of recipient emails)
|
||||||
PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
|
PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe lines are separated by a carriage return.\n\n__USER_SIGNATURE__
|
||||||
PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
|
PredefinedMailTestHtml=__(Hello)__<br>This is a <b>test</b> mail sent to __EMAIL__ (the word test must be in bold).<br>The lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
|
||||||
PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
||||||
PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
||||||
PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
|
||||||
|
|||||||
@ -43,7 +43,7 @@ ServicesOnSaleOnly=Services for sale only
|
|||||||
ServicesOnPurchaseOnly=Services for purchase only
|
ServicesOnPurchaseOnly=Services for purchase only
|
||||||
ServicesNotOnSell=خدمات ليست للبيع ولا الشراء
|
ServicesNotOnSell=خدمات ليست للبيع ولا الشراء
|
||||||
ServicesOnSellAndOnBuy=خدمات للبيع والشراء
|
ServicesOnSellAndOnBuy=خدمات للبيع والشراء
|
||||||
LastModifiedProductsAndServices=أخر %s تعديلات على المنتجات / الخدمات
|
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=المنتج
|
CardProduct0=المنتج
|
||||||
@ -106,6 +106,7 @@ NoteNotVisibleOnBill=ملحوظة(غيرمرئية على الفواتير وا
|
|||||||
ServiceLimitedDuration=إذا كان المنتج هو خدمة لفترة محدودة :
|
ServiceLimitedDuration=إذا كان المنتج هو خدمة لفترة محدودة :
|
||||||
MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment)
|
MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment)
|
||||||
MultiPricesNumPrices=عدد من السعر
|
MultiPricesNumPrices=عدد من السعر
|
||||||
|
DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices
|
||||||
AssociatedProductsAbility=Activate virtual products (kits)
|
AssociatedProductsAbility=Activate virtual products (kits)
|
||||||
AssociatedProducts=Virtual products
|
AssociatedProducts=Virtual products
|
||||||
AssociatedProductsNumber=عدد المنتجات التي تنتج هذا المنتج الإفتراضي
|
AssociatedProductsNumber=عدد المنتجات التي تنتج هذا المنتج الإفتراضي
|
||||||
|
|||||||
@ -115,7 +115,7 @@ ChildOfTask=Child of task
|
|||||||
TaskHasChild=Task has child
|
TaskHasChild=Task has child
|
||||||
NotOwnerOfProject=لا صاحب هذا المشروع من القطاع الخاص
|
NotOwnerOfProject=لا صاحب هذا المشروع من القطاع الخاص
|
||||||
AffectedTo=إلى المتضررين
|
AffectedTo=إلى المتضررين
|
||||||
CantRemoveProject=هذا المشروع لا يمكن إزالتها كما هي المرجعية بعض أشياء أخرى (الفاتورة ، أو غيرها من الأوامر). انظر referers تبويبة.
|
CantRemoveProject=This project can't be removed as it is referenced by some other objects (invoice, orders or other). See tab '%s'.
|
||||||
ValidateProject=تحقق من مشروع غابة
|
ValidateProject=تحقق من مشروع غابة
|
||||||
ConfirmValidateProject=Are you sure you want to validate this project?
|
ConfirmValidateProject=Are you sure you want to validate this project?
|
||||||
CloseAProject=وثيقة المشروع
|
CloseAProject=وثيقة المشروع
|
||||||
@ -265,3 +265,4 @@ NewInvoice=فاتورة جديدة
|
|||||||
OneLinePerTask=One line per task
|
OneLinePerTask=One line per task
|
||||||
OneLinePerPeriod=One line per period
|
OneLinePerPeriod=One line per period
|
||||||
RefTaskParent=Ref. Parent Task
|
RefTaskParent=Ref. Parent Task
|
||||||
|
ProfitIsCalculatedWith=Profit is calculated using
|
||||||
|
|||||||
@ -43,3 +43,5 @@ ProductQtyInSuppliersReceptionAlreadyRecevied=Product quantity from open supplie
|
|||||||
ValidateOrderFirstBeforeReception=You must first validate the order before being able to make receptions.
|
ValidateOrderFirstBeforeReception=You must first validate the order before being able to make receptions.
|
||||||
ReceptionsNumberingModules=Numbering module for receptions
|
ReceptionsNumberingModules=Numbering module for receptions
|
||||||
ReceptionsReceiptModel=Document templates for receptions
|
ReceptionsReceiptModel=Document templates for receptions
|
||||||
|
NoMorePredefinedProductToDispatch=No more predefined products to dispatch
|
||||||
|
|
||||||
|
|||||||
@ -56,6 +56,13 @@ PMPValueShort=الواب
|
|||||||
EnhancedValueOfWarehouses=قيمة المستودعات
|
EnhancedValueOfWarehouses=قيمة المستودعات
|
||||||
UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
|
UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
|
||||||
AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product
|
AllowAddLimitStockByWarehouse=Manage also value for minimum and desired stock per pairing (product-warehouse) in addition to the value for minimum and desired stock per product
|
||||||
|
RuleForWarehouse=Rule for warehouses
|
||||||
|
WarehouseAskWarehouseDuringOrder=Set a warehouse on Sale orders
|
||||||
|
UserDefaultWarehouse=Set a warehouse on Users
|
||||||
|
DefaultWarehouseActive=Default warehouse active
|
||||||
|
MainDefaultWarehouse=Default warehouse
|
||||||
|
MainDefaultWarehouseUser=Use user warehouse asign default
|
||||||
|
MainDefaultWarehouseUserDesc=/!\\ By activating this option the gold of the creation of an article, the warehouse assigned to the user will be defined on this one. If no warehouse is defined on the user, the default warehouse is defined.
|
||||||
IndependantSubProductStock=Product stock and subproduct stock are independent
|
IndependantSubProductStock=Product stock and subproduct stock are independent
|
||||||
QtyDispatched=ارسال كمية
|
QtyDispatched=ارسال كمية
|
||||||
QtyDispatchedShort=أرسل الكمية
|
QtyDispatchedShort=أرسل الكمية
|
||||||
@ -123,6 +130,7 @@ WarehouseForStockDecrease=سيتم استخدام <b>مستودع٪ الصورة
|
|||||||
WarehouseForStockIncrease=سيتم استخدام <b>مستودع٪ s للزيادة</b> المخزون
|
WarehouseForStockIncrease=سيتم استخدام <b>مستودع٪ s للزيادة</b> المخزون
|
||||||
ForThisWarehouse=لهذا المستودع
|
ForThisWarehouse=لهذا المستودع
|
||||||
ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create purchase orders to fill the difference.
|
ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create purchase orders to fill the difference.
|
||||||
|
ReplenishmentStatusDescPerWarehouse=If you want a replenishment based on desired quantity defined per warehouse, you must add a filter on the warehouse.
|
||||||
ReplenishmentOrdersDesc=This is a list of all open purchase orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here.
|
ReplenishmentOrdersDesc=This is a list of all open purchase orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here.
|
||||||
Replenishments=التجديد
|
Replenishments=التجديد
|
||||||
NbOfProductBeforePeriod=كمية من الناتج٪ الصورة في الأوراق المالية قبل الفترة المختارة (<٪ ق)
|
NbOfProductBeforePeriod=كمية من الناتج٪ الصورة في الأوراق المالية قبل الفترة المختارة (<٪ ق)
|
||||||
@ -218,3 +226,4 @@ InventoryForASpecificWarehouse=Inventory for a specific warehouse
|
|||||||
InventoryForASpecificProduct=Inventory for a specific product
|
InventoryForASpecificProduct=Inventory for a specific product
|
||||||
StockIsRequiredToChooseWhichLotToUse=Stock is required to choose which lot to use
|
StockIsRequiredToChooseWhichLotToUse=Stock is required to choose which lot to use
|
||||||
ForceTo=Force to
|
ForceTo=Force to
|
||||||
|
AlwaysShowFullArbo=Display full tree of warehouse on popup of warehouse links (Warning: This may decrease dramatically performances)
|
||||||
|
|||||||
@ -130,10 +130,14 @@ TicketNumberingModules=Tickets numbering module
|
|||||||
TicketNotifyTiersAtCreation=Notify third party at creation
|
TicketNotifyTiersAtCreation=Notify third party at creation
|
||||||
TicketGroup=مجموعة
|
TicketGroup=مجموعة
|
||||||
TicketsDisableCustomerEmail=Always disable emails when a ticket is created from public interface
|
TicketsDisableCustomerEmail=Always disable emails when a ticket is created from public interface
|
||||||
|
TicketsPublicNotificationNewMessage=Send email(s) when a new message is added
|
||||||
|
TicketsPublicNotificationNewMessageHelp=Send email(s) when a new message is added from public interface (to assigned user or the notifications email to (update) and/or the notifications email to)
|
||||||
|
TicketPublicNotificationNewMessageDefaultEmail=Notifications email to (update)
|
||||||
|
TicketPublicNotificationNewMessageDefaultEmailHelp=Send email new message notifications to this address if the ticket don't have a user assigned or the user don't have a email.
|
||||||
#
|
#
|
||||||
# Index & list page
|
# Index & list page
|
||||||
#
|
#
|
||||||
TicketsIndex=Ticket - home
|
TicketsIndex=Tickets area
|
||||||
TicketList=List of tickets
|
TicketList=List of tickets
|
||||||
TicketAssignedToMeInfos=This page display ticket list created by or assigned to current user
|
TicketAssignedToMeInfos=This page display ticket list created by or assigned to current user
|
||||||
NoTicketsFound=No ticket found
|
NoTicketsFound=No ticket found
|
||||||
|
|||||||
@ -16,6 +16,7 @@ WEBSITE_ROBOT=Robot file (robots.txt)
|
|||||||
WEBSITE_HTACCESS=Website .htaccess file
|
WEBSITE_HTACCESS=Website .htaccess file
|
||||||
WEBSITE_MANIFEST_JSON=Website manifest.json file
|
WEBSITE_MANIFEST_JSON=Website manifest.json file
|
||||||
WEBSITE_README=README.md file
|
WEBSITE_README=README.md file
|
||||||
|
WEBSITE_KEYWORDSDesc=Use a comma to separate values
|
||||||
EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package.
|
EnterHereLicenseInformation=Enter here meta data or license information to fille a README.md file. if you distribute your website as a template, the file will be included into the temptate package.
|
||||||
HtmlHeaderPage=HTML header (specific to this page only)
|
HtmlHeaderPage=HTML header (specific to this page only)
|
||||||
PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
|
PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
|
||||||
@ -120,7 +121,7 @@ ShowSubContainersOnOff=Mode to execute 'dynamic content' is %s
|
|||||||
GlobalCSSorJS=Global CSS/JS/Header file of web site
|
GlobalCSSorJS=Global CSS/JS/Header file of web site
|
||||||
BackToHomePage=Back to home page...
|
BackToHomePage=Back to home page...
|
||||||
TranslationLinks=Translation links
|
TranslationLinks=Translation links
|
||||||
YouTryToAccessToAFileThatIsNotAWebsitePage=You try to access to a page that is not a website page
|
YouTryToAccessToAFileThatIsNotAWebsitePage=You try to access to a page that is not available.<br>(ref=%s, type=%s, status=%s)
|
||||||
UseTextBetween5And70Chars=For good SEO practices, use a text between 5 and 70 characters
|
UseTextBetween5And70Chars=For good SEO practices, use a text between 5 and 70 characters
|
||||||
MainLanguage=Main language
|
MainLanguage=Main language
|
||||||
OtherLanguages=Other languages
|
OtherLanguages=Other languages
|
||||||
@ -128,3 +129,6 @@ UseManifest=Provide a manifest.json file
|
|||||||
PublicAuthorAlias=Public author alias
|
PublicAuthorAlias=Public author alias
|
||||||
AvailableLanguagesAreDefinedIntoWebsiteProperties=Available languages are defined into website properties
|
AvailableLanguagesAreDefinedIntoWebsiteProperties=Available languages are defined into website properties
|
||||||
ReplacementDoneInXPages=Replacement done in %s pages or containers
|
ReplacementDoneInXPages=Replacement done in %s pages or containers
|
||||||
|
RSSFeed=تغذية RSS
|
||||||
|
RSSFeedDesc=You can get a RSS feed of latest articles with type 'blogpost' using this URL
|
||||||
|
PagesRegenerated=%s page(s)/container(s) regenerated
|
||||||
|
|||||||
@ -1,27 +1,43 @@
|
|||||||
# Dolibarr language file - Source file is en_US - withdrawals
|
# Dolibarr language file - Source file is en_US - withdrawals
|
||||||
CustomersStandingOrdersArea=Direct debit payment orders area
|
CustomersStandingOrdersArea=Payments by Direct debit orders
|
||||||
SuppliersStandingOrdersArea=Direct credit payment orders area
|
SuppliersStandingOrdersArea=Payments by Credit transfer
|
||||||
StandingOrdersPayment=Direct debit payment orders
|
StandingOrdersPayment=Direct debit payment orders
|
||||||
StandingOrderPayment=Direct debit payment order
|
StandingOrderPayment=Direct debit payment order
|
||||||
NewStandingOrder=New direct debit order
|
NewStandingOrder=New direct debit order
|
||||||
|
NewPaymentByBankTransfer=New payment by credit transfer
|
||||||
StandingOrderToProcess=لعملية
|
StandingOrderToProcess=لعملية
|
||||||
|
PaymentByBankTransferReceipts=Credit transfer orders
|
||||||
|
PaymentByBankTransferLines=Credit transfer order lines
|
||||||
WithdrawalsReceipts=Direct debit orders
|
WithdrawalsReceipts=Direct debit orders
|
||||||
WithdrawalReceipt=Direct debit order
|
WithdrawalReceipt=Direct debit order
|
||||||
|
BankTransferReceipts=Credit transfer receipts
|
||||||
|
BankTransferReceipt=Credit transfer receipt
|
||||||
|
LatestBankTransferReceipts=Latest %s credit transfer orders
|
||||||
LastWithdrawalReceipts=Latest %s direct debit files
|
LastWithdrawalReceipts=Latest %s direct debit files
|
||||||
|
WithdrawalsLine=Direct debit order line
|
||||||
|
CreditTransferLine=Credit transfer line
|
||||||
WithdrawalsLines=Direct debit order lines
|
WithdrawalsLines=Direct debit order lines
|
||||||
RequestStandingOrderToTreat=Request for direct debit payment order to process
|
CreditTransferLines=Credit transfer lines
|
||||||
RequestStandingOrderTreated=Request for direct debit payment order processed
|
RequestStandingOrderToTreat=Requests for direct debit payment order to process
|
||||||
|
RequestStandingOrderTreated=Requests for direct debit payment order processed
|
||||||
|
RequestPaymentsByBankTransferToTreat=Requests for credit transfer to process
|
||||||
|
RequestPaymentsByBankTransferTreated=Requests for credit transfer processed
|
||||||
NotPossibleForThisStatusOfWithdrawReceiptORLine=لم يكن ممكنا حتى الآن. سحب يجب أن يتم تعيين الحالة إلى "الفضل" قبل أن يعلن رفض على خطوط محددة.
|
NotPossibleForThisStatusOfWithdrawReceiptORLine=لم يكن ممكنا حتى الآن. سحب يجب أن يتم تعيين الحالة إلى "الفضل" قبل أن يعلن رفض على خطوط محددة.
|
||||||
NbOfInvoiceToWithdraw=No. of qualified invoice with waiting direct debit order
|
NbOfInvoiceToWithdraw=No. of qualified customer invoices with waiting direct debit order
|
||||||
NbOfInvoiceToWithdrawWithInfo=No. of customer invoice with direct debit payment orders having defined bank account information
|
NbOfInvoiceToWithdrawWithInfo=No. of customer invoice with direct debit payment orders having defined bank account information
|
||||||
|
NbOfInvoiceToPayByBankTransfer=No. of qualified supplier invoices waiting for a payment by credit transfer
|
||||||
|
SupplierInvoiceWaitingWithdraw=Vendor invoice waiting for payment by credit transfer
|
||||||
InvoiceWaitingWithdraw=Invoice waiting for direct debit
|
InvoiceWaitingWithdraw=Invoice waiting for direct debit
|
||||||
|
InvoiceWaitingPaymentByBankTransfer=Invoice waiting for credit transfer
|
||||||
AmountToWithdraw=سحب المبلغ
|
AmountToWithdraw=سحب المبلغ
|
||||||
WithdrawsRefused=Direct debit refused
|
NoInvoiceToWithdraw=No invoice open for '%s' is waiting. Go on tab '%s' on invoice card to make a request.
|
||||||
NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request.
|
NoSupplierInvoiceToWithdraw=No supplier invoice with open 'Direct credit requests' is waiting. Go on tab '%s' on invoice card to make a request.
|
||||||
ResponsibleUser=User Responsible
|
ResponsibleUser=User Responsible
|
||||||
WithdrawalsSetup=Direct debit payment setup
|
WithdrawalsSetup=Direct debit payment setup
|
||||||
|
CreditTransferSetup=Crebit transfer setup
|
||||||
WithdrawStatistics=Direct debit payment statistics
|
WithdrawStatistics=Direct debit payment statistics
|
||||||
WithdrawRejectStatistics=Direct debit payment reject statistics
|
CreditTransferStatistics=Credit transfer statistics
|
||||||
|
Rejects=ترفض
|
||||||
LastWithdrawalReceipt=Latest %s direct debit receipts
|
LastWithdrawalReceipt=Latest %s direct debit receipts
|
||||||
MakeWithdrawRequest=Make a direct debit payment request
|
MakeWithdrawRequest=Make a direct debit payment request
|
||||||
WithdrawRequestsDone=%s direct debit payment requests recorded
|
WithdrawRequestsDone=%s direct debit payment requests recorded
|
||||||
@ -34,7 +50,9 @@ TransMetod=طريقة البث
|
|||||||
Send=إرسال
|
Send=إرسال
|
||||||
Lines=خطوط
|
Lines=خطوط
|
||||||
StandingOrderReject=رفض إصدار
|
StandingOrderReject=رفض إصدار
|
||||||
|
WithdrawsRefused=Direct debit refused
|
||||||
WithdrawalRefused=سحب Refuseds
|
WithdrawalRefused=سحب Refuseds
|
||||||
|
CreditTransfersRefused=Credit transfers refused
|
||||||
WithdrawalRefusedConfirm=هل أنت متأكد أنك تريد الدخول في رفض الانسحاب للمجتمع
|
WithdrawalRefusedConfirm=هل أنت متأكد أنك تريد الدخول في رفض الانسحاب للمجتمع
|
||||||
RefusedData=تاريخ الرفض
|
RefusedData=تاريخ الرفض
|
||||||
RefusedReason=أسباب الرفض
|
RefusedReason=أسباب الرفض
|
||||||
@ -58,6 +76,8 @@ StatusMotif8=سبب آخر
|
|||||||
CreateForSepaFRST=Create direct debit file (SEPA FRST)
|
CreateForSepaFRST=Create direct debit file (SEPA FRST)
|
||||||
CreateForSepaRCUR=Create direct debit file (SEPA RCUR)
|
CreateForSepaRCUR=Create direct debit file (SEPA RCUR)
|
||||||
CreateAll=Create direct debit file (all)
|
CreateAll=Create direct debit file (all)
|
||||||
|
CreateFileForPaymentByBankTransfer=Create credit transfer (all)
|
||||||
|
CreateSepaFileForPaymentByBankTransfer=Create credit transfer file (SEPA)
|
||||||
CreateGuichet=مكتب فقط
|
CreateGuichet=مكتب فقط
|
||||||
CreateBanque=البنك الوحيد
|
CreateBanque=البنك الوحيد
|
||||||
OrderWaiting=الانتظار لتلقي العلاج
|
OrderWaiting=الانتظار لتلقي العلاج
|
||||||
@ -67,6 +87,7 @@ NumeroNationalEmetter=رقم المرسل وطنية
|
|||||||
WithBankUsingRIB=عن الحسابات المصرفية باستخدام RIB
|
WithBankUsingRIB=عن الحسابات المصرفية باستخدام RIB
|
||||||
WithBankUsingBANBIC=عن الحسابات المصرفية باستخدام IBAN / BIC / SWIFT
|
WithBankUsingBANBIC=عن الحسابات المصرفية باستخدام IBAN / BIC / SWIFT
|
||||||
BankToReceiveWithdraw=Receiving Bank Account
|
BankToReceiveWithdraw=Receiving Bank Account
|
||||||
|
BankToPayCreditTransfer=Bank Account used as source of payments
|
||||||
CreditDate=الائتمان على
|
CreditDate=الائتمان على
|
||||||
WithdrawalFileNotCapable=غير قادر على توليد ملف استلام الانسحاب لبلدكم٪ الصورة (لا يتم اعتماد البلد)
|
WithdrawalFileNotCapable=غير قادر على توليد ملف استلام الانسحاب لبلدكم٪ الصورة (لا يتم اعتماد البلد)
|
||||||
ShowWithdraw=Show Direct Debit Order
|
ShowWithdraw=Show Direct Debit Order
|
||||||
@ -74,9 +95,9 @@ IfInvoiceNeedOnWithdrawPaymentWontBeClosed=However, if invoice has at least one
|
|||||||
DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Direct Debit orders to manage the direct debit payment order. When payment order is closed, payment on invoice will be automatically recorded, and invoice closed if remainder to pay is null.
|
DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Direct Debit orders to manage the direct debit payment order. When payment order is closed, payment on invoice will be automatically recorded, and invoice closed if remainder to pay is null.
|
||||||
WithdrawalFile=ملف الانسحاب
|
WithdrawalFile=ملف الانسحاب
|
||||||
SetToStatusSent=تعيين إلى حالة "المرسلة ملف"
|
SetToStatusSent=تعيين إلى حالة "المرسلة ملف"
|
||||||
ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null
|
ThisWillAlsoAddPaymentOnInvoice=This will also record payments on invoices and will classify them as "Paid" if remain to pay is null
|
||||||
StatisticsByLineStatus=إحصاءات عن طريق وضع خطوط
|
StatisticsByLineStatus=إحصاءات عن طريق وضع خطوط
|
||||||
RUM=Unique Mandate Reference (UMR)
|
RUM=UMR
|
||||||
DateRUM=Mandate signature date
|
DateRUM=Mandate signature date
|
||||||
RUMLong=Unique Mandate Reference
|
RUMLong=Unique Mandate Reference
|
||||||
RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved.
|
RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved.
|
||||||
|
|||||||
@ -58,8 +58,8 @@ AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in f
|
|||||||
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
|
AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
|
||||||
|
|
||||||
AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s
|
AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s
|
||||||
AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s
|
AccountancyAreaDescChartModel=STEP %s: Check that a model of chart of account exists or create one from menu %s
|
||||||
AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s
|
AccountancyAreaDescChart=STEP %s: Select and|or complete your chart of account from menu %s
|
||||||
|
|
||||||
AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
|
AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
|
||||||
AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
|
AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
|
||||||
|
|||||||
@ -95,7 +95,7 @@ NextValueForInvoices=Next value (invoices)
|
|||||||
NextValueForCreditNotes=Next value (credit notes)
|
NextValueForCreditNotes=Next value (credit notes)
|
||||||
NextValueForDeposit=Next value (down payment)
|
NextValueForDeposit=Next value (down payment)
|
||||||
NextValueForReplacements=Next value (replacements)
|
NextValueForReplacements=Next value (replacements)
|
||||||
MustBeLowerThanPHPLimit=Note: <b>your</b> PHP configuration currently limits the maximum filesize for upload to <b>%s</b> %s, irrespective of the value of this parameter
|
MustBeLowerThanPHPLimit=Note: your PHP configuration currently limits the maximum filesize for upload to <b>%s</b> %s, irrespective of the value of this parameter
|
||||||
NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration
|
NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration
|
||||||
MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload)
|
MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload)
|
||||||
UseCaptchaCode=Use graphical code (CAPTCHA) on login page
|
UseCaptchaCode=Use graphical code (CAPTCHA) on login page
|
||||||
@ -207,7 +207,7 @@ ModulesMarketPlaces=Find external app/modules
|
|||||||
ModulesDevelopYourModule=Develop your own app/modules
|
ModulesDevelopYourModule=Develop your own app/modules
|
||||||
ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
|
ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
|
||||||
DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
|
DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
|
||||||
NewModule=New
|
NewModule=New module
|
||||||
FreeModule=Free
|
FreeModule=Free
|
||||||
CompatibleUpTo=Compatible with version %s
|
CompatibleUpTo=Compatible with version %s
|
||||||
NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
|
NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
|
||||||
@ -219,7 +219,7 @@ Nouveauté=Novelty
|
|||||||
AchatTelechargement=Buy / Download
|
AchatTelechargement=Buy / Download
|
||||||
GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: <a href="%s">%s</a>.
|
GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: <a href="%s">%s</a>.
|
||||||
DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
|
DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
|
||||||
DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
|
DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming should be able to develop a module.
|
||||||
WebSiteDesc=External websites for more add-on (non-core) modules...
|
WebSiteDesc=External websites for more add-on (non-core) modules...
|
||||||
DevelopYourModuleDesc=Some solutions to develop your own module...
|
DevelopYourModuleDesc=Some solutions to develop your own module...
|
||||||
URL=URL
|
URL=URL
|
||||||
@ -446,12 +446,13 @@ LinkToTestClickToDial=Enter a phone number to call to show a link to test the Cl
|
|||||||
RefreshPhoneLink=Refresh link
|
RefreshPhoneLink=Refresh link
|
||||||
LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
|
LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
|
||||||
KeepEmptyToUseDefault=Keep empty to use default value
|
KeepEmptyToUseDefault=Keep empty to use default value
|
||||||
|
KeepThisEmptyInMostCases=In most cases, you can keep this field empy.
|
||||||
DefaultLink=Default link
|
DefaultLink=Default link
|
||||||
SetAsDefault=Set as default
|
SetAsDefault=Set as default
|
||||||
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
|
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
|
||||||
ExternalModule=External module
|
ExternalModule=External module
|
||||||
InstalledInto=Installed into directory %s
|
InstalledInto=Installed into directory %s
|
||||||
BarcodeInitForthird-parties=Mass barcode init for third-parties
|
BarcodeInitForThirdparties=Mass barcode init for third-parties
|
||||||
BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
|
BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
|
||||||
CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
|
CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
|
||||||
InitEmptyBarCode=Init value for next %s empty records
|
InitEmptyBarCode=Init value for next %s empty records
|
||||||
@ -541,8 +542,8 @@ Module54Name=Contracts/Subscriptions
|
|||||||
Module54Desc=Management of contracts (services or recurring subscriptions)
|
Module54Desc=Management of contracts (services or recurring subscriptions)
|
||||||
Module55Name=Barcodes
|
Module55Name=Barcodes
|
||||||
Module55Desc=Barcode management
|
Module55Desc=Barcode management
|
||||||
Module56Name=Telephony
|
Module56Name=Payment by credit transfer
|
||||||
Module56Desc=Telephony integration
|
Module56Desc=Management of payment by credit transfer orders. It includes generation of SEPA file for European countries.
|
||||||
Module57Name=Bank Direct Debit payments
|
Module57Name=Bank Direct Debit payments
|
||||||
Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
|
Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
|
||||||
Module58Name=ClickToDial
|
Module58Name=ClickToDial
|
||||||
@ -1145,6 +1146,7 @@ AvailableModules=Available app/modules
|
|||||||
ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
|
ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
|
||||||
SessionTimeOut=Time out for session
|
SessionTimeOut=Time out for session
|
||||||
SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
|
SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
|
||||||
|
SessionsPurgedByExternalSystem=Sessions on this server seems to be cleaned by an external mechanism (cron under debian, ubuntu ...), probably every <b>%s</b> seconds (= value of parameter <b>session.gc_maxlifetime</b>), so changing the value here has no effect. You must ask the server administrator to change session delay.
|
||||||
TriggersAvailable=Available triggers
|
TriggersAvailable=Available triggers
|
||||||
TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
|
TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
|
||||||
TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
|
TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
|
||||||
@ -1262,6 +1264,7 @@ FieldEdition=Edition of field %s
|
|||||||
FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
|
FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
|
||||||
GetBarCode=Get barcode
|
GetBarCode=Get barcode
|
||||||
NumberingModules=Numbering models
|
NumberingModules=Numbering models
|
||||||
|
DocumentModules=Document models
|
||||||
##### Module password generation
|
##### Module password generation
|
||||||
PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
|
PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
|
||||||
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
||||||
@ -1844,6 +1847,7 @@ MailToThirdparty=Third parties
|
|||||||
MailToMember=Members
|
MailToMember=Members
|
||||||
MailToUser=Users
|
MailToUser=Users
|
||||||
MailToProject=Projects page
|
MailToProject=Projects page
|
||||||
|
MailToTicket=Tickets
|
||||||
ByDefaultInList=Show by default on list view
|
ByDefaultInList=Show by default on list view
|
||||||
YouUseLastStableVersion=You use the latest stable version
|
YouUseLastStableVersion=You use the latest stable version
|
||||||
TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
|
TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
|
||||||
@ -1996,6 +2000,7 @@ EmailTemplate=Template for email
|
|||||||
EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax
|
EMailsWillHaveMessageID=Emails will have a tag 'References' matching this syntax
|
||||||
PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF.
|
PDF_USE_ALSO_LANGUAGE_CODE=If you want to have some texts in your PDF duplicated in 2 different languages in the same generated PDF, you must set here this second language so generated PDF will contains 2 different languages in same page, the one chosen when generating PDF and this one (only few PDF templates support this). Keep empty for 1 language per PDF.
|
||||||
FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book.
|
FafaIconSocialNetworksDesc=Enter here the code of a FontAwesome icon. If you don't know what is FontAwesome, you can use the generic value fa-address-book.
|
||||||
|
FeatureNotAvailableWithReceptionModule=Feature not available when module Reception is enabled
|
||||||
RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard
|
RssNote=Note: Each RSS feed definition provides a widget that you must enable to have it available in dashboard
|
||||||
JumpToBoxes=Jump to Setup -> Widgets
|
JumpToBoxes=Jump to Setup -> Widgets
|
||||||
MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time"
|
MeasuringUnitTypeDesc=Use here a value like "size", "surface", "volume", "weight", "time"
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user