Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop Conflicts: htdocs/install/mysql/migration/3.5.0-3.6.0.sql
This commit is contained in:
commit
df9f153142
18
ChangeLog
18
ChangeLog
@ -65,6 +65,7 @@ For users:
|
|||||||
- Fix: Add actions events not implemented.
|
- Fix: Add actions events not implemented.
|
||||||
- Fix: Price min of composition is not supplier price min by quantity.
|
- Fix: Price min of composition is not supplier price min by quantity.
|
||||||
- Fix: [ bug #1356 ] Bank accountancy number is limited to 8 numbers.
|
- Fix: [ bug #1356 ] Bank accountancy number is limited to 8 numbers.
|
||||||
|
- Fix: [ bug #1439 ] impossible to remove a a translation (multilanguage-feature)
|
||||||
|
|
||||||
TODO
|
TODO
|
||||||
- New: Predefined product and free product use same form.
|
- New: Predefined product and free product use same form.
|
||||||
@ -105,6 +106,15 @@ removed. You must now use the 6 parameters way. See file modMyModule.class.php f
|
|||||||
- Properties "civilite_id" were renamed into "civility_id".
|
- Properties "civilite_id" were renamed into "civility_id".
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
***** ChangeLog for 3.5.4 compared to 3.5.3 *****
|
||||||
|
Fix: [ bug #1415 ] Intervention document model name and suppliers model names is not shown
|
||||||
|
properly in module configuration
|
||||||
|
Fix: [ bug #1416 ] Supplier order does not list document models in the select box of the
|
||||||
|
supplier order card
|
||||||
|
Fix: [ bug #1443 ] Payment conditions is erased after editing supplier invoice label or
|
||||||
|
limit date for payment
|
||||||
|
|
||||||
***** ChangeLog for 3.5.3 compared to 3.5.2 *****
|
***** ChangeLog for 3.5.3 compared to 3.5.2 *****
|
||||||
Fix: Error on field accountancy code for export profile of invoices.
|
Fix: Error on field accountancy code for export profile of invoices.
|
||||||
Fix: [ bug #1351 ] VIES verification link broken.
|
Fix: [ bug #1351 ] VIES verification link broken.
|
||||||
@ -133,6 +143,13 @@ Fix: [ bug #1393 ] PHP Warning when creating a supplier invoice.
|
|||||||
Fix: [ bug #1399 ] [pgsql] Silent warning when setting a propal as "facturée" in propal.php
|
Fix: [ bug #1399 ] [pgsql] Silent warning when setting a propal as "facturée" in propal.php
|
||||||
Fix: When number reach 9999 with default numbering module, next number
|
Fix: When number reach 9999 with default numbering module, next number
|
||||||
will be 10000 instead of 0000 and error.
|
will be 10000 instead of 0000 and error.
|
||||||
|
Fix: element page on project give wrong href link.
|
||||||
|
Fix: [ bug #1397 ] Filter by supplier orders with status Draft does not filter.
|
||||||
|
Fix: [ bug #1388 ] Wrong date when invoicing several orders.
|
||||||
|
Fix: [ bug #1411 ] Unable to set an expedition note if invoices module is not enabled.
|
||||||
|
Fix: [ bug #1407 ] Rouget pdf overlapped when using tracking number and public notes.
|
||||||
|
Fix: [ bug #1405 ] Rouget PDF expedition incorrect when two expeditions under the same commande
|
||||||
|
Fix: [ bug #1434 ] Muscadet supplier order document model linked objects overlap the text
|
||||||
|
|
||||||
***** ChangeLog for 3.5.2 compared to 3.5.1 *****
|
***** ChangeLog for 3.5.2 compared to 3.5.1 *****
|
||||||
Fix: Can't add user for a task.
|
Fix: Can't add user for a task.
|
||||||
@ -220,6 +237,7 @@ Fix: [ bug #1306 ] Fatal error when adding an external calendar.
|
|||||||
New: Added es_CL language
|
New: Added es_CL language
|
||||||
Fix: Margin tabs bad data show
|
Fix: Margin tabs bad data show
|
||||||
Fix: [ bug #1318 ] Problem with enter key when adding an existing product to a customer invoice.
|
Fix: [ bug #1318 ] Problem with enter key when adding an existing product to a customer invoice.
|
||||||
|
Fix: [ bug #1410 ] Add customer order line asks for required Unit Price but doesn't interrupt the creation of the line
|
||||||
|
|
||||||
***** ChangeLog for 3.5 compared to 3.4.* *****
|
***** ChangeLog for 3.5 compared to 3.4.* *****
|
||||||
For users:
|
For users:
|
||||||
|
|||||||
@ -5,6 +5,13 @@ dolibarr (3.6.0-1) unstable; urgency=low
|
|||||||
|
|
||||||
-- Laurent Destailleur (eldy) <eldy@users.sourceforge.net> Sat, 9 May 2014 12:00:00 +0100
|
-- Laurent Destailleur (eldy) <eldy@users.sourceforge.net> Sat, 9 May 2014 12:00:00 +0100
|
||||||
|
|
||||||
|
dolibarr (3.5.4-3) unstable; urgency=low
|
||||||
|
|
||||||
|
[ Laurent Destailleur (eldy) ]
|
||||||
|
* New upstream release.
|
||||||
|
|
||||||
|
-- Laurent Destailleur (eldy) <eldy@users.sourceforge.net> Tue, 1 July 2014 12:00:00 +0100
|
||||||
|
|
||||||
dolibarr (3.5.3-3) unstable; urgency=low
|
dolibarr (3.5.3-3) unstable; urgency=low
|
||||||
|
|
||||||
[ Laurent Destailleur (eldy) ]
|
[ Laurent Destailleur (eldy) ]
|
||||||
|
|||||||
@ -39,10 +39,10 @@ Description: Web based software to manage a company or foundation
|
|||||||
It's a web software you can install as a standalone program or on any web
|
It's a web software you can install as a standalone program or on any web
|
||||||
hosting provider to use it from anywhere with any web browser.
|
hosting provider to use it from anywhere with any web browser.
|
||||||
.
|
.
|
||||||
Dolibarr was designed to be easy to use. Only the features that you need are
|
Dolibarr was designed to be easy to use. Only the features that you need
|
||||||
visible, depending on which modules were activated.
|
are visible, depending on which modules were activated.
|
||||||
.
|
.
|
||||||
Most common used modules are:
|
This is an example of most common used modules:
|
||||||
.
|
.
|
||||||
Customers, Suppliers or Prospects directory,
|
Customers, Suppliers or Prospects directory,
|
||||||
Contacts directory,
|
Contacts directory,
|
||||||
@ -66,6 +66,6 @@ Description: Web based software to manage a company or foundation
|
|||||||
Wizards to export and import data,
|
Wizards to export and import data,
|
||||||
LDAP connectivity,
|
LDAP connectivity,
|
||||||
PDF exports,
|
PDF exports,
|
||||||
And a lot of more modules...
|
And a lot more modules...
|
||||||
.
|
.
|
||||||
You can also add third parties external modules or develop yours.
|
You can also add third parties external modules or develop yours.
|
||||||
|
|||||||
@ -336,6 +336,9 @@ fi
|
|||||||
* Fri May 9 2014 Laurent Destailleur 3.6.0-0.2.b
|
* Fri May 9 2014 Laurent Destailleur 3.6.0-0.2.b
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
* Tue July 1 2014 Laurent Destailleur 3.5.4-0.3
|
||||||
|
- Upstream release
|
||||||
|
|
||||||
* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
|
* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
|||||||
@ -572,6 +572,9 @@ fi
|
|||||||
* Fri May 9 2014 Laurent Destailleur 3.6.0-0.2.b
|
* Fri May 9 2014 Laurent Destailleur 3.6.0-0.2.b
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
* Tue July 1 2014 Laurent Destailleur 3.5.4-0.3
|
||||||
|
- Upstream release
|
||||||
|
|
||||||
* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
|
* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
|||||||
@ -341,6 +341,9 @@ fi
|
|||||||
* Fri May 9 2014 Laurent Destailleur 3.6.0-0.2.b
|
* Fri May 9 2014 Laurent Destailleur 3.6.0-0.2.b
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
* Tue July 1 2014 Laurent Destailleur 3.5.4-0.3
|
||||||
|
- Upstream release
|
||||||
|
|
||||||
* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
|
* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
|||||||
@ -352,6 +352,9 @@ fi
|
|||||||
* Fri May 9 2014 Laurent Destailleur 3.6.0-0.2.b
|
* Fri May 9 2014 Laurent Destailleur 3.6.0-0.2.b
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
* Tue July 1 2014 Laurent Destailleur 3.5.4-0.3
|
||||||
|
- Upstream release
|
||||||
|
|
||||||
* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
|
* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
|
||||||
- Upstream release
|
- Upstream release
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@ fi
|
|||||||
# To detect
|
# To detect
|
||||||
if [ "x$1" = "xlist" ]
|
if [ "x$1" = "xlist" ]
|
||||||
then
|
then
|
||||||
for file in `find . -type f`
|
for file in `find . -type f -name *.lang`
|
||||||
do
|
do
|
||||||
if [ `sort "$file" | uniq -d | wc -l` -gt 0 ]
|
if [ `sort "$file" | uniq -d | wc -l` -gt 0 ]
|
||||||
then
|
then
|
||||||
@ -27,7 +27,7 @@ fi
|
|||||||
# To fix
|
# To fix
|
||||||
if [ "x$1" = "xfix" ]
|
if [ "x$1" = "xfix" ]
|
||||||
then
|
then
|
||||||
for file in `find . -type f`
|
for file in `find . -type f -name *.lang`
|
||||||
do
|
do
|
||||||
awk -i inplace ' !x[$0]++' "$file"
|
awk -i inplace ' !x[$0]++' "$file"
|
||||||
done;
|
done;
|
||||||
|
|||||||
@ -30,8 +30,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
if (!$user->admin)
|
if (!$user->admin) accessforbidden();
|
||||||
accessforbidden();
|
|
||||||
|
|
||||||
$langs->load("agenda");
|
$langs->load("agenda");
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
@ -63,7 +62,7 @@ if ($actionsave)
|
|||||||
// Save agendas
|
// Save agendas
|
||||||
while ($i <= $MAXAGENDA)
|
while ($i <= $MAXAGENDA)
|
||||||
{
|
{
|
||||||
$name=trim(GETPOST('agenda_ext_name'.$i),'alpha');
|
$name=trim(GETPOST('agenda_ext_name'.$i,'alpha'));
|
||||||
$src=trim(GETPOST('agenda_ext_src'.$i,'alpha'));
|
$src=trim(GETPOST('agenda_ext_src'.$i,'alpha'));
|
||||||
$color=trim(GETPOST('agenda_ext_color'.$i,'alpha'));
|
$color=trim(GETPOST('agenda_ext_color'.$i,'alpha'));
|
||||||
if ($color=='-1') $color='';
|
if ($color=='-1') $color='';
|
||||||
@ -76,7 +75,7 @@ if ($actionsave)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//print 'color='.$color;
|
//print '-name='.$name.'-color='.$color;
|
||||||
$res=dolibarr_set_const($db,'AGENDA_EXT_NAME'.$i,$name,'chaine',0,'',$conf->entity);
|
$res=dolibarr_set_const($db,'AGENDA_EXT_NAME'.$i,$name,'chaine',0,'',$conf->entity);
|
||||||
if (! $res > 0) $error++;
|
if (! $res > 0) $error++;
|
||||||
$res=dolibarr_set_const($db,'AGENDA_EXT_SRC'.$i,$src,'chaine',0,'',$conf->entity);
|
$res=dolibarr_set_const($db,'AGENDA_EXT_SRC'.$i,$src,'chaine',0,'',$conf->entity);
|
||||||
@ -218,8 +217,7 @@ print '</table>';
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<center>';
|
print '<center>';
|
||||||
|
print "<input type=\"submit\" id=\"save\" name=\"save\" class=\"button hideifnotset\" value=\"".$langs->trans("Save")."\">";
|
||||||
print "<input type=\"submit\" name=\"save\" class=\"button\" value=\"".$langs->trans("Save")."\">";
|
|
||||||
print "</center>";
|
print "</center>";
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|||||||
@ -500,7 +500,7 @@ print "</tr>\n";
|
|||||||
clearstatcache();
|
clearstatcache();
|
||||||
|
|
||||||
$var=true;
|
$var=true;
|
||||||
foreach ($dirmodels as $reldir)
|
foreach ($def as $reldir)
|
||||||
{
|
{
|
||||||
foreach (array('','/doc') as $valdir)
|
foreach (array('','/doc') as $valdir)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -376,13 +376,16 @@ foreach ($dirmodels as $reldir)
|
|||||||
{
|
{
|
||||||
if (substr($file, dol_strlen($file) -12) == '.modules.php' && substr($file,0,4) == 'pdf_')
|
if (substr($file, dol_strlen($file) -12) == '.modules.php' && substr($file,0,4) == 'pdf_')
|
||||||
{
|
{
|
||||||
|
$var=!$var;
|
||||||
|
|
||||||
$name = substr($file, 4, dol_strlen($file) -16);
|
$name = substr($file, 4, dol_strlen($file) -16);
|
||||||
$classname = substr($file, 0, dol_strlen($file) -12);
|
$classname = substr($file, 0, dol_strlen($file) -12);
|
||||||
|
|
||||||
$var=!$var;
|
require_once $dir.'/'.$file;
|
||||||
|
$module = new $classname($db);
|
||||||
|
|
||||||
print '<tr '.$bc[$var].'><td>';
|
print '<tr '.$bc[$var].'><td>';
|
||||||
echo "$name";
|
print (empty($module->name)?$name:$module->name);
|
||||||
print "</td><td>\n";
|
print "</td><td>\n";
|
||||||
require_once $dir.$file;
|
require_once $dir.$file;
|
||||||
$module = new $classname($db);
|
$module = new $classname($db);
|
||||||
|
|||||||
@ -372,9 +372,14 @@ foreach ($dirmodels as $reldir)
|
|||||||
$name = substr($file, 4, dol_strlen($file) -16);
|
$name = substr($file, 4, dol_strlen($file) -16);
|
||||||
$classname = substr($file, 0, dol_strlen($file) -12);
|
$classname = substr($file, 0, dol_strlen($file) -12);
|
||||||
|
|
||||||
|
require_once $dir.'/'.$file;
|
||||||
|
$module = new $classname($db, new FactureFournisseur($db));
|
||||||
|
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print "<tr ".$bc[$var].">\n";
|
print "<tr ".$bc[$var].">\n";
|
||||||
print "<td>".$name."</td>\n";
|
print "<td>";
|
||||||
|
print (empty($module->name)?$name:$module->name);
|
||||||
|
print "</td>\n";
|
||||||
print "<td>\n";
|
print "<td>\n";
|
||||||
require_once $dir.$file;
|
require_once $dir.$file;
|
||||||
$module = new $classname($db,$specimenthirdparty);
|
$module = new $classname($db,$specimenthirdparty);
|
||||||
|
|||||||
@ -42,6 +42,7 @@ accessforbidden();
|
|||||||
|
|
||||||
$type=GETPOST('type', 'alpha');
|
$type=GETPOST('type', 'alpha');
|
||||||
$value=GETPOST('value', 'alpha');
|
$value=GETPOST('value', 'alpha');
|
||||||
|
$label = GETPOST('label','alpha');
|
||||||
$action=GETPOST('action', 'alpha');
|
$action=GETPOST('action', 'alpha');
|
||||||
|
|
||||||
$specimenthirdparty=new Societe($db);
|
$specimenthirdparty=new Societe($db);
|
||||||
@ -367,9 +368,14 @@ foreach ($dirmodels as $reldir)
|
|||||||
$name = substr($file, 4, dol_strlen($file) -16);
|
$name = substr($file, 4, dol_strlen($file) -16);
|
||||||
$classname = substr($file, 0, dol_strlen($file) -12);
|
$classname = substr($file, 0, dol_strlen($file) -12);
|
||||||
|
|
||||||
|
require_once $dir.'/'.$file;
|
||||||
|
$module = new $classname($db, new CommandeFournisseur($db));
|
||||||
|
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print "<tr ".$bc[$var].">\n";
|
print "<tr ".$bc[$var].">\n";
|
||||||
print "<td>".$name."</td>\n";
|
print "<td>";
|
||||||
|
print (empty($module->name)?$name:$module->name);
|
||||||
|
print "</td>\n";
|
||||||
print "<td>\n";
|
print "<td>\n";
|
||||||
require_once $dir.$file;
|
require_once $dir.$file;
|
||||||
$module = new $classname($db,$specimenthirdparty);
|
$module = new $classname($db,$specimenthirdparty);
|
||||||
|
|||||||
@ -86,18 +86,35 @@ print '</br>';
|
|||||||
// OPCode cache
|
// OPCode cache
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<strong>'.$langs->trans("OPCodeCache").'</strong>: ';
|
print '<strong>'.$langs->trans("OPCodeCache").'</strong>: ';
|
||||||
$test1=function_exists('xcache_info');
|
$foundcache=0;
|
||||||
if ($test1)
|
$test=function_exists('xcache_info');
|
||||||
|
if (! $foundcache && $test)
|
||||||
{
|
{
|
||||||
|
$foundcache++;
|
||||||
print img_picto('','tick.png').' '.$langs->trans("XCacheInstalled");
|
print img_picto('','tick.png').' '.$langs->trans("XCacheInstalled");
|
||||||
print ' '.$langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/system/xcache.php'.'">Xcache admin page</a>';
|
print ' '.$langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/system/xcache.php'.'">Xcache admin page</a>';
|
||||||
}
|
}
|
||||||
else
|
$test=function_exists('eaccelerator_info');
|
||||||
|
if (! $foundcache && $test)
|
||||||
{
|
{
|
||||||
$test2=function_exists('eaccelerator_info');
|
$foundcache++;
|
||||||
if ($test2) print img_picto('','tick.png').' '.$langs->trans("EAcceleratorInstalled");
|
print img_picto('','tick.png').' '.$langs->trans("EAcceleratorInstalled");
|
||||||
else print $langs->trans("NoOPCodeCacheFound");
|
|
||||||
}
|
}
|
||||||
|
$test=function_exists('apc_cache_info');
|
||||||
|
if (! $foundcache && $test)
|
||||||
|
{
|
||||||
|
//var_dump(apc_cache_info());
|
||||||
|
if (ini_get('apc.enabled'))
|
||||||
|
{
|
||||||
|
$foundcache++;
|
||||||
|
print img_picto('','tick.png').' '.$langs->trans("APCInstalled");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print img_picto('','warning').' '.$langs->trans("APCCacheInstalledButDisabled");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (! $foundcache) print $langs->trans("NoOPCodeCacheFound");
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
// HTTPCacheStaticResources
|
// HTTPCacheStaticResources
|
||||||
|
|||||||
@ -54,16 +54,23 @@ print '</div>';
|
|||||||
|
|
||||||
print '<div class="principal">';
|
print '<div class="principal">';
|
||||||
|
|
||||||
if ( $_GET['menu'] )
|
$page=GETPOST('menu','alpha');
|
||||||
|
if (in_array(
|
||||||
|
$page,
|
||||||
|
array(
|
||||||
|
'deconnexion',
|
||||||
|
'index','index_verif','facturation','facturation_verif','facturation_dhtml',
|
||||||
|
'validation','validation_ok','validation_ticket','validation_verif',
|
||||||
|
)
|
||||||
|
))
|
||||||
{
|
{
|
||||||
include $_GET['menu'].'.php';
|
include $page.'.php';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
include 'facturation.php';
|
dol_print_error('','menu param '.$page.' is not inside allowed list');
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
$_SESSION['serObjFacturation'] = serialize($obj_facturation);
|
$_SESSION['serObjFacturation'] = serialize($obj_facturation);
|
||||||
|
|
||||||
|
|||||||
@ -56,14 +56,13 @@ class ICal
|
|||||||
{
|
{
|
||||||
$this->file = $file;
|
$this->file = $file;
|
||||||
$file_text='';
|
$file_text='';
|
||||||
|
|
||||||
$tmparray=file($file);
|
$tmparray=file($file);
|
||||||
if (is_array($tmparray))
|
if (is_array($tmparray))
|
||||||
{
|
{
|
||||||
$file_text = join("", $tmparray); //load file
|
$file_text = join("", $tmparray); //load file
|
||||||
$file_text = preg_replace("/[\r\n]{1,} ([:;])/","\\1",$file_text);
|
$file_text = preg_replace("/[\r\n]{1,} /","",$file_text);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $file_text; // return all text
|
return $file_text; // return all text
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,6 +114,7 @@ class ICal
|
|||||||
{
|
{
|
||||||
// get Key and Value VCALENDAR:Begin -> Key = VCALENDAR, Value = begin
|
// get Key and Value VCALENDAR:Begin -> Key = VCALENDAR, Value = begin
|
||||||
list($key, $value) = $this->retun_key_value($text);
|
list($key, $value) = $this->retun_key_value($text);
|
||||||
|
//var_dump($text.' -> '.$key.' - '.$value);
|
||||||
|
|
||||||
switch ($text) // search special string
|
switch ($text) // search special string
|
||||||
{
|
{
|
||||||
@ -165,6 +165,8 @@ class ICal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//var_dump($this->cal);
|
||||||
return $this->cal;
|
return $this->cal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -236,6 +238,7 @@ class ICal
|
|||||||
*/
|
*/
|
||||||
function retun_key_value($text)
|
function retun_key_value($text)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
preg_match("/([^:]+)[:]([\w\W]+)/", $text, $matches);
|
preg_match("/([^:]+)[:]([\w\W]+)/", $text, $matches);
|
||||||
|
|
||||||
if (empty($matches))
|
if (empty($matches))
|
||||||
@ -246,8 +249,8 @@ class ICal
|
|||||||
{
|
{
|
||||||
$matches = array_splice($matches, 1, 2);
|
$matches = array_splice($matches, 1, 2);
|
||||||
return $matches;
|
return $matches;
|
||||||
}
|
}*/
|
||||||
|
return explode(':',$text,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -203,12 +203,6 @@ if ($action == 'add_action')
|
|||||||
$action = 'create';
|
$action = 'create';
|
||||||
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DateEnd")).'</div>';
|
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DateEnd")).'</div>';
|
||||||
}
|
}
|
||||||
if (! empty($datep) && GETPOST('percentage') == 0)
|
|
||||||
{
|
|
||||||
$error++;
|
|
||||||
$action = 'create';
|
|
||||||
$mesg='<div class="error">'.$langs->trans("ErrorStatusCantBeZeroIfStarted").'</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! GETPOST('apyear') && ! GETPOST('adyear'))
|
if (! GETPOST('apyear') && ! GETPOST('adyear'))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -146,9 +146,11 @@ if (empty($conf->global->AGENDA_DISABLE_EXT) && $conf->global->AGENDA_EXT_NB > 0
|
|||||||
$source='AGENDA_EXT_SRC'.$i;
|
$source='AGENDA_EXT_SRC'.$i;
|
||||||
$name='AGENDA_EXT_NAME'.$i;
|
$name='AGENDA_EXT_NAME'.$i;
|
||||||
$color='AGENDA_EXT_COLOR'.$i;
|
$color='AGENDA_EXT_COLOR'.$i;
|
||||||
|
$buggedfile='AGENDA_EXT_BUGGEDFILE'.$i;
|
||||||
if (! empty($conf->global->$source) && ! empty($conf->global->$name))
|
if (! empty($conf->global->$source) && ! empty($conf->global->$name))
|
||||||
{
|
{
|
||||||
$listofextcals[]=array('src'=>$conf->global->$source,'name'=>$conf->global->$name,'color'=>$conf->global->$color);
|
// Note: $conf->global->buggedfile can be empty or 'uselocalandtznodaylight' or 'uselocalandtzdaylight'
|
||||||
|
$listofextcals[]=array('src'=>$conf->global->$source,'name'=>$conf->global->$name,'color'=>$conf->global->$color,'buggedfile'=>(isset($conf->global->buggedfile)?$conf->global->buggedfile:0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -527,9 +529,11 @@ if (count($listofextcals))
|
|||||||
$url=$extcal['src']; // Example: https://www.google.com/calendar/ical/eldy10%40gmail.com/private-cde92aa7d7e0ef6110010a821a2aaeb/basic.ics
|
$url=$extcal['src']; // Example: https://www.google.com/calendar/ical/eldy10%40gmail.com/private-cde92aa7d7e0ef6110010a821a2aaeb/basic.ics
|
||||||
$namecal = $extcal['name'];
|
$namecal = $extcal['name'];
|
||||||
$colorcal = $extcal['color'];
|
$colorcal = $extcal['color'];
|
||||||
//print "url=".$url." namecal=".$namecal." colorcal=".$colorcal;
|
$buggedfile = $extcal['buggedfile'];
|
||||||
|
//print "url=".$url." namecal=".$namecal." colorcal=".$colorcal." buggedfile=".$buggedfile;
|
||||||
$ical=new ICal();
|
$ical=new ICal();
|
||||||
$ical->parse($url);
|
$ical->parse($url);
|
||||||
|
|
||||||
// After this $ical->cal['VEVENT'] contains array of events, $ical->cal['DAYLIGHT'] contains daylight info, $ical->cal['STANDARD'] contains non daylight info, ...
|
// After this $ical->cal['VEVENT'] contains array of events, $ical->cal['DAYLIGHT'] contains daylight info, $ical->cal['STANDARD'] contains non daylight info, ...
|
||||||
//var_dump($ical->cal); exit;
|
//var_dump($ical->cal); exit;
|
||||||
$icalevents=array();
|
$icalevents=array();
|
||||||
@ -643,6 +647,8 @@ if (count($listofextcals))
|
|||||||
// Loop on each entry into cal file to know if entry is qualified and add an ActionComm into $eventarray
|
// Loop on each entry into cal file to know if entry is qualified and add an ActionComm into $eventarray
|
||||||
foreach($icalevents as $icalevent)
|
foreach($icalevents as $icalevent)
|
||||||
{
|
{
|
||||||
|
//var_dump($icalevent);
|
||||||
|
|
||||||
//print $icalevent['SUMMARY'].'->'.var_dump($icalevent).'<br>';exit;
|
//print $icalevent['SUMMARY'].'->'.var_dump($icalevent).'<br>';exit;
|
||||||
if (! empty($icalevent['RRULE'])) continue; // We found a repeatable event. It was already split into unitary events, so we discard general rule.
|
if (! empty($icalevent['RRULE'])) continue; // We found a repeatable event. It was already split into unitary events, so we discard general rule.
|
||||||
|
|
||||||
@ -659,12 +665,36 @@ if (count($listofextcals))
|
|||||||
$event->fulldayevent=true;
|
$event->fulldayevent=true;
|
||||||
$addevent=true;
|
$addevent=true;
|
||||||
}
|
}
|
||||||
elseif (!is_array($icalevent['DTSTART'])) // not fullday event (DTSTART is not array)
|
elseif (!is_array($icalevent['DTSTART'])) // not fullday event (DTSTART is not array. It is a value like '19700101T000000Z' for 00:00 in greenwitch)
|
||||||
{
|
{
|
||||||
$datestart=$icalevent['DTSTART'];
|
$datestart=$icalevent['DTSTART'];
|
||||||
$dateend=$icalevent['DTEND'];
|
$dateend=$icalevent['DTEND'];
|
||||||
$addevent=true;
|
$addevent=true;
|
||||||
}
|
}
|
||||||
|
elseif (isset($icalevent['DTSTART']['unixtime'])) // File contains a local timezone + a TZ (for example when using bluemind)
|
||||||
|
{
|
||||||
|
$datestart=$icalevent['DTSTART']['unixtime'];
|
||||||
|
$dateend=$icalevent['DTEND']['unixtime'];
|
||||||
|
// $buggedfile is set to uselocalandtznodaylight if conf->global->AGENDA_EXT_BUGGEDFILEx = 'uselocalandtznodaylight'
|
||||||
|
if ($buggedfile === 'uselocalandtznodaylight') // unixtime is a local date that does not take daylight into account, TZID is +1 for example for 'Europe/Paris' in summer instead of 2
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
// $buggedfile is set to uselocalandtzdaylight if conf->global->AGENDA_EXT_BUGGEDFILEx = 'uselocalandtzdaylight' (for example with bluemind)
|
||||||
|
if ($buggedfile === 'uselocalandtzdaylight') // unixtime is a local date that does take daylight into account, TZID is +2 for example for 'Europe/Paris' in summer
|
||||||
|
{
|
||||||
|
$localtzs = new DateTimeZone(preg_replace('/"/','',$icalevent['DTSTART']['TZID']));
|
||||||
|
$localtze = new DateTimeZone(preg_replace('/"/','',$icalevent['DTEND']['TZID']));
|
||||||
|
$localdts = new DateTime(dol_print_date($datestart,'dayrfc','gmt'), $localtzs);
|
||||||
|
$localdte = new DateTime(dol_print_date($dateend,'dayrfc','gmt'), $localtze);
|
||||||
|
$tmps=-1*$localtzs->getOffset($localdts);
|
||||||
|
$tmpe=-1*$localtze->getOffset($localdte);
|
||||||
|
$datestart+=$tmps;
|
||||||
|
$dateend+=$tmpe;
|
||||||
|
//var_dump($datestart);
|
||||||
|
}
|
||||||
|
$addevent=true;
|
||||||
|
}
|
||||||
|
|
||||||
if ($addevent)
|
if ($addevent)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -473,7 +473,7 @@ if ($action == 'send' && ! GETPOST('addfile') && ! GETPOST('removedfile') && ! G
|
|||||||
$result = $interface->run_triggers('PROPAL_SENTBYMAIL', $object, $user, $langs, $conf);
|
$result = $interface->run_triggers('PROPAL_SENTBYMAIL', $object, $user, $langs, $conf);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
$this->errors = $interface->errors;
|
$object->errors = $interface->errors;
|
||||||
}
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
@ -1157,7 +1157,7 @@ if ($action == 'create') {
|
|||||||
|
|
||||||
// Date
|
// Date
|
||||||
print '<tr><td class="fieldrequired">' . $langs->trans('Date') . '</td><td colspan="2">';
|
print '<tr><td class="fieldrequired">' . $langs->trans('Date') . '</td><td colspan="2">';
|
||||||
$form->select_date('', '', '', '', '', "addprop");
|
$form->select_date('', '', '', '', '', "addprop", 1, 1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Validaty duration
|
// Validaty duration
|
||||||
@ -1191,10 +1191,9 @@ if ($action == 'create') {
|
|||||||
$syear = date("Y", $tmpdte);
|
$syear = date("Y", $tmpdte);
|
||||||
$smonth = date("m", $tmpdte);
|
$smonth = date("m", $tmpdte);
|
||||||
$sday = date("d", $tmpdte);
|
$sday = date("d", $tmpdte);
|
||||||
$form->select_date($syear . "-" . $smonth . "-" . $sday, 'liv_', '', '', '', "addprop");
|
$form->select_date($syear."-".$smonth."-".$sday, 'liv_', '', '', '', "addprop");
|
||||||
} else {
|
} else {
|
||||||
$datepropal = empty($conf->global->MAIN_AUTOFILL_DATE) ? - 1 : 0;
|
$form->select_date(-1, 'liv_', '', '', '', "addprop", 1, 1);
|
||||||
$form->select_date($datepropal, 'liv_', '', '', '', "addprop");
|
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@ -1247,8 +1246,9 @@ if ($action == 'create') {
|
|||||||
print '<input type="hidden" name="createmode" value="empty">';
|
print '<input type="hidden" name="createmode" value="empty">';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<table>';
|
if (! empty($conf->global->PROPAL_CLONE_ON_CREATE_PAGE) || ! empty($conf->global->PRODUCT_SHOW_WHEN_CREATE)) print '<table>';
|
||||||
if (! empty($conf->global->PROPAL_CLONE_ON_CREATE_PAGE)) {
|
if (! empty($conf->global->PROPAL_CLONE_ON_CREATE_PAGE))
|
||||||
|
{
|
||||||
// For backward compatibility
|
// For backward compatibility
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td><input type="radio" name="createmode" value="copy"></td>';
|
print '<td><input type="radio" name="createmode" value="copy"></td>';
|
||||||
@ -1311,13 +1311,11 @@ if ($action == 'create') {
|
|||||||
print '<td><input type="text" size="2" name="remise' . $i . '" value="' . $soc->remise_percent . '">%</td>';
|
print '<td><input type="text" size="2" name="remise' . $i . '" value="' . $soc->remise_percent . '">%</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
print '</table>';
|
if (! empty($conf->global->PROPAL_CLONE_ON_CREATE_PAGE) || ! empty($conf->global->PRODUCT_SHOW_WHEN_CREATE)) print '</table><br>';
|
||||||
print '<br>';
|
|
||||||
|
|
||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
print '<center>';
|
print '<center>';
|
||||||
|
|||||||
@ -546,6 +546,7 @@ class Propal extends CommonObject
|
|||||||
$this->line->label = $label;
|
$this->line->label = $label;
|
||||||
$this->line->desc = $desc;
|
$this->line->desc = $desc;
|
||||||
$this->line->qty = $qty;
|
$this->line->qty = $qty;
|
||||||
|
$this->line->product_type = $type;
|
||||||
$this->line->tva_tx = $txtva;
|
$this->line->tva_tx = $txtva;
|
||||||
$this->line->localtax1_tx = $txlocaltax1;
|
$this->line->localtax1_tx = $txlocaltax1;
|
||||||
$this->line->localtax2_tx = $txlocaltax2;
|
$this->line->localtax2_tx = $txlocaltax2;
|
||||||
@ -1348,10 +1349,10 @@ class Propal extends CommonObject
|
|||||||
{
|
{
|
||||||
// Rename of propal directory ($this->ref = old ref, $num = new ref)
|
// Rename of propal directory ($this->ref = old ref, $num = new ref)
|
||||||
// to not lose the linked files
|
// to not lose the linked files
|
||||||
$facref = dol_sanitizeFileName($this->ref);
|
$oldref = dol_sanitizeFileName($this->ref);
|
||||||
$snumfa = dol_sanitizeFileName($num);
|
$newref = dol_sanitizeFileName($num);
|
||||||
$dirsource = $conf->propal->dir_output.'/'.$facref;
|
$dirsource = $conf->propal->dir_output.'/'.$oldref;
|
||||||
$dirdest = $conf->propal->dir_output.'/'.$snumfa;
|
$dirdest = $conf->propal->dir_output.'/'.$newref;
|
||||||
if (file_exists($dirsource))
|
if (file_exists($dirsource))
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest);
|
dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest);
|
||||||
@ -1361,15 +1362,17 @@ class Propal extends CommonObject
|
|||||||
|
|
||||||
dol_syslog("Rename ok");
|
dol_syslog("Rename ok");
|
||||||
// Deleting old PDF in new rep
|
// Deleting old PDF in new rep
|
||||||
dol_delete_file($conf->propal->dir_output.'/'.$snumfa.'/'.$facref.'*.*');
|
dol_delete_file($conf->propal->dir_output.'/'.$newref.'/'.$oldref.'*.*');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->ref=$num;
|
||||||
$this->brouillon=0;
|
$this->brouillon=0;
|
||||||
$this->statut = 1;
|
$this->statut = 1;
|
||||||
$this->user_valid_id=$user->id;
|
$this->user_valid_id=$user->id;
|
||||||
$this->datev=$now;
|
$this->datev=$now;
|
||||||
|
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -2783,7 +2786,7 @@ class PropaleLigne extends CommonObject
|
|||||||
$sql.= ' pd.info_bits, pd.total_ht, pd.total_tva, pd.total_ttc, pd.fk_product_fournisseur_price as fk_fournprice, pd.buy_price_ht as pa_ht, pd.special_code, pd.rang,';
|
$sql.= ' pd.info_bits, pd.total_ht, pd.total_tva, pd.total_ttc, pd.fk_product_fournisseur_price as fk_fournprice, pd.buy_price_ht as pa_ht, pd.special_code, pd.rang,';
|
||||||
$sql.= ' pd.localtax1_tx, pd.localtax2_tx, pd.total_localtax1, pd.total_localtax2,';
|
$sql.= ' pd.localtax1_tx, pd.localtax2_tx, pd.total_localtax1, pd.total_localtax2,';
|
||||||
$sql.= ' p.ref as product_ref, p.label as product_label, p.description as product_desc,';
|
$sql.= ' p.ref as product_ref, p.label as product_label, p.description as product_desc,';
|
||||||
$sql.= ' pd.date_start, pd.date_end';
|
$sql.= ' pd.date_start, pd.date_end, pd.product_type';
|
||||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pd';
|
$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pd';
|
||||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pd.fk_product = p.rowid';
|
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pd.fk_product = p.rowid';
|
||||||
$sql.= ' WHERE pd.rowid = '.$rowid;
|
$sql.= ' WHERE pd.rowid = '.$rowid;
|
||||||
@ -2820,6 +2823,7 @@ class PropaleLigne extends CommonObject
|
|||||||
$this->marque_tx = $marginInfos[2];
|
$this->marque_tx = $marginInfos[2];
|
||||||
|
|
||||||
$this->special_code = $objp->special_code;
|
$this->special_code = $objp->special_code;
|
||||||
|
$this->product_type = $objp->product_type;
|
||||||
$this->rang = $objp->rang;
|
$this->rang = $objp->rang;
|
||||||
|
|
||||||
$this->ref = $objp->product_ref; // deprecated
|
$this->ref = $objp->product_ref; // deprecated
|
||||||
@ -3054,6 +3058,7 @@ class PropaleLigne extends CommonObject
|
|||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."propaldet SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."propaldet SET";
|
||||||
$sql.= " description='".$this->db->escape($this->desc)."'";
|
$sql.= " description='".$this->db->escape($this->desc)."'";
|
||||||
$sql.= " , label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
|
$sql.= " , label=".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
|
||||||
|
$sql.= " , product_type=".$this->product_type;
|
||||||
$sql.= " , tva_tx='".price2num($this->tva_tx)."'";
|
$sql.= " , tva_tx='".price2num($this->tva_tx)."'";
|
||||||
$sql.= " , localtax1_tx=".price2num($this->localtax1_tx);
|
$sql.= " , localtax1_tx=".price2num($this->localtax1_tx);
|
||||||
$sql.= " , localtax2_tx=".price2num($this->localtax2_tx);
|
$sql.= " , localtax2_tx=".price2num($this->localtax2_tx);
|
||||||
|
|||||||
@ -285,7 +285,7 @@ if ($result)
|
|||||||
print_liste_field_titre($langs->trans('Date'),$_SERVER["PHP_SELF"],'p.datep','',$param, 'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('Date'),$_SERVER["PHP_SELF"],'p.datep','',$param, 'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans('DateEndPropalShort'),$_SERVER["PHP_SELF"],'dfv','',$param, 'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('DateEndPropalShort'),$_SERVER["PHP_SELF"],'dfv','',$param, 'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'p.total_ht','',$param, 'align="right"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'p.total_ht','',$param, 'align="right"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans('Author'),$_SERVER["PHP_SELF"],'u.login','',$param,'align="right"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('Author'),$_SERVER["PHP_SELF"],'u.login','',$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans('Status'),$_SERVER["PHP_SELF"],'p.fk_statut','',$param,'align="right"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans('Status'),$_SERVER["PHP_SELF"],'p.fk_statut','',$param,'align="right"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre('');
|
print_liste_field_titre('');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
@ -301,6 +301,7 @@ if ($result)
|
|||||||
print '<input class="flat" type="text" size="12" name="search_societe" value="'.$search_societe.'">';
|
print '<input class="flat" type="text" size="12" name="search_societe" value="'.$search_societe.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre"><input class="flat" type="text" size="10" name="search_town" value="'.$search_town.'"></td>';
|
print '<td class="liste_titre"><input class="flat" type="text" size="10" name="search_town" value="'.$search_town.'"></td>';
|
||||||
|
// Date
|
||||||
print '<td class="liste_titre" colspan="1" align="center">';
|
print '<td class="liste_titre" colspan="1" align="center">';
|
||||||
//print $langs->trans('Month').': ';
|
//print $langs->trans('Month').': ';
|
||||||
print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
|
print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
|
||||||
@ -309,11 +310,12 @@ if ($result)
|
|||||||
$formother->select_year($syear,'year',1, 20, 5);
|
$formother->select_year($syear,'year',1, 20, 5);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre" colspan="1"> </td>';
|
print '<td class="liste_titre" colspan="1"> </td>';
|
||||||
|
// Amount
|
||||||
print '<td class="liste_titre" align="center">';
|
print '<td class="liste_titre" align="center">';
|
||||||
print '<input class="flat" type="text" size="10" name="search_montant_ht" value="'.$search_montant_ht.'">';
|
print '<input class="flat" type="text" size="10" name="search_montant_ht" value="'.$search_montant_ht.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
// Author
|
||||||
print '<td class="liste_titre" align="right">';
|
print '<td class="liste_titre" align="center">';
|
||||||
print '<input class="flat" size="10" type="text" name="search_author" value="'.$search_author.'">';
|
print '<input class="flat" size="10" type="text" name="search_author" value="'.$search_author.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre" align="right">';
|
print '<td class="liste_titre" align="right">';
|
||||||
|
|||||||
@ -130,7 +130,7 @@ if ($socid > 0)
|
|||||||
|
|
||||||
// Nouvelle valeur
|
// Nouvelle valeur
|
||||||
print '<tr><td colspan="2">';
|
print '<tr><td colspan="2">';
|
||||||
print $langs->trans("NewValue").'</td><td colspan="2"><input type="text" size="5" name="remise" value="'.($_POST["remise"]?$_POST["remise"]:$objsoc->remise_percent).'">%</td></tr>';
|
print $langs->trans("NewValue").'</td><td colspan="2"><input type="text" size="5" name="remise" value="'.($_POST["remise"]?$_POST["remise"]:'').'">%</td></tr>';
|
||||||
|
|
||||||
// Motif/Note
|
// Motif/Note
|
||||||
print '<tr><td colspan="2" width="25%">';
|
print '<tr><td colspan="2" width="25%">';
|
||||||
@ -155,9 +155,9 @@ if ($socid > 0)
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Liste de l'historique des avoirs
|
* List log of all percent discounts
|
||||||
*/
|
*/
|
||||||
$sql = "SELECT rc.rowid,rc.remise_client,rc.note, rc.datec as dc,";
|
$sql = "SELECT rc.rowid, rc.remise_client as remise_percent, rc.note, rc.datec as dc,";
|
||||||
$sql.= " u.login, u.rowid as user_id";
|
$sql.= " u.login, u.rowid as user_id";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."societe_remise as rc, ".MAIN_DB_PREFIX."user as u";
|
$sql.= " FROM ".MAIN_DB_PREFIX."societe_remise as rc, ".MAIN_DB_PREFIX."user as u";
|
||||||
$sql.= " WHERE rc.fk_soc =". $objsoc->id;
|
$sql.= " WHERE rc.fk_soc =". $objsoc->id;
|
||||||
|
|||||||
@ -1387,7 +1387,7 @@ class Commande extends CommonOrder
|
|||||||
$extralabels=$extrafields->fetch_name_optionals_label($this->table_element,true);
|
$extralabels=$extrafields->fetch_name_optionals_label($this->table_element,true);
|
||||||
$this->fetch_optionals($this->id,$extralabels);
|
$this->fetch_optionals($this->id,$extralabels);
|
||||||
|
|
||||||
$this->db->free();
|
$this->db->free($result);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lines
|
* Lines
|
||||||
|
|||||||
@ -476,7 +476,7 @@ else if ($action == 'setremiseabsolue' && $user->rights->commande->creer) {
|
|||||||
// Add a new line
|
// Add a new line
|
||||||
else if ($action == 'addline' && $user->rights->commande->creer) {
|
else if ($action == 'addline' && $user->rights->commande->creer) {
|
||||||
$langs->load('errors');
|
$langs->load('errors');
|
||||||
$error = false;
|
$error = 0;
|
||||||
|
|
||||||
// Set if we used free entry or predefined product
|
// Set if we used free entry or predefined product
|
||||||
$predef='';
|
$predef='';
|
||||||
@ -1319,13 +1319,13 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
|||||||
$ref_client = (! empty($objectsrc->ref_client) ? $objectsrc->ref_client : '');
|
$ref_client = (! empty($objectsrc->ref_client) ? $objectsrc->ref_client : '');
|
||||||
|
|
||||||
$soc = $objectsrc->client;
|
$soc = $objectsrc->client;
|
||||||
$cond_reglement_id = (! empty($objectsrc->cond_reglement_id) ? $objectsrc->cond_reglement_id : (! empty($soc->cond_reglement_id) ? $soc->cond_reglement_id : 1));
|
$cond_reglement_id = (!empty($objectsrc->cond_reglement_id)?$objectsrc->cond_reglement_id:(!empty($soc->cond_reglement_id)?$soc->cond_reglement_id:1));
|
||||||
$mode_reglement_id = (! empty($objectsrc->mode_reglement_id) ? $objectsrc->mode_reglement_id : (! empty($soc->mode_reglement_id) ? $soc->mode_reglement_id : 0));
|
$mode_reglement_id = (!empty($objectsrc->mode_reglement_id)?$objectsrc->mode_reglement_id:(!empty($soc->mode_reglement_id)?$soc->mode_reglement_id:0));
|
||||||
$availability_id = (! empty($objectsrc->availability_id) ? $objectsrc->availability_id : (! empty($soc->availability_id) ? $soc->availability_id : 0));
|
$availability_id = (!empty($objectsrc->availability_id)?$objectsrc->availability_id:(!empty($soc->availability_id)?$soc->availability_id:0));
|
||||||
$demand_reason_id = (! empty($objectsrc->demand_reason_id) ? $objectsrc->demand_reason_id : (! empty($soc->demand_reason_id) ? $soc->demand_reason_id : 0));
|
$demand_reason_id = (!empty($objectsrc->demand_reason_id)?$objectsrc->demand_reason_id:(!empty($soc->demand_reason_id)?$soc->demand_reason_id:0));
|
||||||
$remise_percent = (! empty($objectsrc->remise_percent) ? $objectsrc->remise_percent : (! empty($soc->remise_percent) ? $soc->remise_percent : 0));
|
$remise_percent = (!empty($objectsrc->remise_percent)?$objectsrc->remise_percent:(!empty($soc->remise_percent)?$soc->remise_percent:0));
|
||||||
$remise_absolue = (! empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (! empty($soc->remise_absolue) ? $soc->remise_absolue : 0));
|
$remise_absolue = (!empty($objectsrc->remise_absolue)?$objectsrc->remise_absolue:(!empty($soc->remise_absolue)?$soc->remise_absolue:0));
|
||||||
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ? - 1 : 0;
|
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:'';
|
||||||
|
|
||||||
$datedelivery = (! empty($objectsrc->date_livraison) ? $objectsrc->date_livraison : '');
|
$datedelivery = (! empty($objectsrc->date_livraison) ? $objectsrc->date_livraison : '');
|
||||||
|
|
||||||
@ -1335,17 +1335,19 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
|||||||
// Object source contacts list
|
// Object source contacts list
|
||||||
$srccontactslist = $objectsrc->liste_contact(- 1, 'external', 1);
|
$srccontactslist = $objectsrc->liste_contact(- 1, 'external', 1);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$cond_reglement_id = $soc->cond_reglement_id;
|
|
||||||
$mode_reglement_id = $soc->mode_reglement_id;
|
|
||||||
$availability_id = $soc->availability_id;
|
|
||||||
$demand_reason_id = $soc->demand_reason_id;
|
|
||||||
$remise_percent = $soc->remise_percent;
|
|
||||||
$remise_absolue = 0;
|
|
||||||
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ? - 1 : 0;
|
|
||||||
$projectid = 0;
|
|
||||||
}
|
}
|
||||||
$absolute_discount = $soc->getAvailableDiscounts();
|
else
|
||||||
|
{
|
||||||
|
$cond_reglement_id = $soc->cond_reglement_id;
|
||||||
|
$mode_reglement_id = $soc->mode_reglement_id;
|
||||||
|
$availability_id = $soc->availability_id;
|
||||||
|
$demand_reason_id = $soc->demand_reason_id;
|
||||||
|
$remise_percent = $soc->remise_percent;
|
||||||
|
$remise_absolue = 0;
|
||||||
|
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:'';
|
||||||
|
$projectid = 0;
|
||||||
|
}
|
||||||
|
$absolute_discount=$soc->getAvailableDiscounts();
|
||||||
|
|
||||||
$nbrow = 10;
|
$nbrow = 10;
|
||||||
|
|
||||||
@ -1414,12 +1416,11 @@ if ($action == 'create' && $user->rights->commande->creer) {
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Date de livraison
|
// Date de livraison
|
||||||
print "<tr><td>" . $langs->trans("DeliveryDate") . '</td><td colspan="2">';
|
print "<tr><td>".$langs->trans("DeliveryDate").'</td><td colspan="2">';
|
||||||
if (empty($datedelivery)) {
|
if (empty($datedelivery))
|
||||||
if (! empty($conf->global->DATE_LIVRAISON_WEEK_DELAY))
|
{
|
||||||
$datedelivery = time() + ((7 * $conf->global->DATE_LIVRAISON_WEEK_DELAY) * 24 * 60 * 60);
|
if (! empty($conf->global->DATE_LIVRAISON_WEEK_DELAY)) $datedelivery = time() + ((7*$conf->global->DATE_LIVRAISON_WEEK_DELAY) * 24 * 60 * 60);
|
||||||
else
|
else $datedelivery=empty($conf->global->MAIN_AUTOFILL_DATE)?-1:'';
|
||||||
$datedelivery = empty($conf->global->MAIN_AUTOFILL_DATE) ? - 1 : 0;
|
|
||||||
}
|
}
|
||||||
$form->select_date($datedelivery, 'liv_', '', '', '', "crea_commande", 1, 1);
|
$form->select_date($datedelivery, 'liv_', '', '', '', "crea_commande", 1, 1);
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
|||||||
@ -373,7 +373,7 @@ if ($action == 'create' && empty($mesgs))
|
|||||||
$remise_percent = $soc->remise_percent;
|
$remise_percent = $soc->remise_percent;
|
||||||
}
|
}
|
||||||
$remise_absolue = 0;
|
$remise_absolue = 0;
|
||||||
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0;
|
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:'';
|
||||||
|
|
||||||
$absolute_discount=$soc->getAvailableDiscounts();
|
$absolute_discount=$soc->getAvailableDiscounts();
|
||||||
print '<form name="add" action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
print '<form name="add" action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
@ -413,7 +413,7 @@ if ($action == 'create' && empty($mesgs))
|
|||||||
|
|
||||||
// Date invoice
|
// Date invoice
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('Date').'</td><td colspan="2">';
|
print '<tr><td class="fieldrequired">'.$langs->trans('Date').'</td><td colspan="2">';
|
||||||
$html->select_date(0,'','','','',"add",1,1);
|
$html->select_date('','','','','',"add",1,1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
// Payment term
|
// Payment term
|
||||||
print '<tr><td class="nowrap">'.$langs->trans('PaymentConditionsShort').'</td><td colspan="2">';
|
print '<tr><td class="nowrap">'.$langs->trans('PaymentConditionsShort').'</td><td colspan="2">';
|
||||||
|
|||||||
@ -784,8 +784,8 @@ if ($id > 0 || ! empty($ref))
|
|||||||
print '<tr class="liste_total"><td align="left" colspan="8">';
|
print '<tr class="liste_total"><td align="left" colspan="8">';
|
||||||
if ($sep > 0) print ' '; // If we had at least one line in future
|
if ($sep > 0) print ' '; // If we had at least one line in future
|
||||||
else print $langs->trans("CurrentBalance");
|
else print $langs->trans("CurrentBalance");
|
||||||
print '</td>';
|
print ' '.$object->currency_code.'</td>';
|
||||||
print '<td align="right" nowrap><b>'.price($total).'</b></td>';
|
print '<td align="right" nowrap><b>'.price($total, 0, $langs, 0, 0, -1, $object->currency_code).'</b></td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -90,7 +90,7 @@ print '<td align="center" width="70">'.$langs->trans("Status").'</td>';
|
|||||||
print '<td align="right" width="100">'.$langs->trans("BankBalance").'</td>';
|
print '<td align="right" width="100">'.$langs->trans("BankBalance").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$total = 0; $found = 0;
|
$total = array(); $found = 0;
|
||||||
$var=true;
|
$var=true;
|
||||||
foreach ($accounts as $key=>$type)
|
foreach ($accounts as $key=>$type)
|
||||||
{
|
{
|
||||||
@ -119,17 +119,19 @@ foreach ($accounts as $key=>$type)
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td align="center">'.$acc->getLibStatut(2).'</td>';
|
print '<td align="center">'.$acc->getLibStatut(2).'</td>';
|
||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
print '<a href="account.php?account='.$acc->id.'">'.price($solde).'</a>';
|
print '<a href="account.php?account='.$acc->id.'">'.price($solde, 0, $langs, 0, 0, -1, $acc->currency_code).'</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
$total += $solde;
|
$total[$acc->currency_code] += $solde;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $found) print '<tr '.$bc[$var].'><td colspan="6">'.$langs->trans("None").'</td></tr>';
|
if (! $found) print '<tr '.$bc[$var].'><td colspan="6">'.$langs->trans("None").'</td></tr>';
|
||||||
// Total
|
// Total
|
||||||
print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").'</td><td align="right" class="liste_total">'.price($total).'</td></tr>';
|
foreach ($total as $key=>$solde)
|
||||||
|
{
|
||||||
|
print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total ").$key.'</td><td align="right" class="liste_total">'.price($solde, 0, $langs, 0, 0, -1, $key).'</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
//print '<tr><td colspan="5"> </td></tr>';
|
//print '<tr><td colspan="5"> </td></tr>';
|
||||||
|
|
||||||
@ -144,7 +146,7 @@ print '<td align="center" width="70">'.$langs->trans("Status").'</td>';
|
|||||||
print '<td align="right" width="100">'.$langs->trans("BankBalance").'</td>';
|
print '<td align="right" width="100">'.$langs->trans("BankBalance").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$total = 0; $found = 0;
|
$total = array(); $found = 0;
|
||||||
$var=true;
|
$var=true;
|
||||||
foreach ($accounts as $key=>$type)
|
foreach ($accounts as $key=>$type)
|
||||||
{
|
{
|
||||||
@ -165,16 +167,19 @@ foreach ($accounts as $key=>$type)
|
|||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '<td align="center">'.$acc->getLibStatut(2).'</td>';
|
print '<td align="center">'.$acc->getLibStatut(2).'</td>';
|
||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
print '<a href="account.php?account='.$acc->id.'">'.price($solde).'</a>';
|
print '<a href="account.php?account='.$acc->id.'">'.price($solde, 0, $langs, 0, 0, -1, $acc->currency_code).'</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
$total += $solde;
|
$total[$acc->currency_code] += $solde;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $found) print '<tr '.$bc[$var].'><td colspan="6">'.$langs->trans("None").'</td></tr>';
|
if (! $found) print '<tr '.$bc[$var].'><td colspan="6">'.$langs->trans("None").'</td></tr>';
|
||||||
// Total
|
// Total
|
||||||
print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").'</td><td align="right" class="liste_total">'.price($total).'</td></tr>';
|
foreach ($total as $key=>$solde)
|
||||||
|
{
|
||||||
|
print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total ").$key.'</td><td align="right" class="liste_total">'.price($solde, 0, $langs, 0, 0, -1, $key).'</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -193,7 +198,7 @@ print '<td align="center" width="70">'.$langs->trans("Status").'</td>';
|
|||||||
print '<td align="right" width="100">'.$langs->trans("BankBalance").'</td>';
|
print '<td align="right" width="100">'.$langs->trans("BankBalance").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$total = 0; $found = 0;
|
$total = array(); $found = 0;
|
||||||
$var=true;
|
$var=true;
|
||||||
foreach ($accounts as $key=>$type)
|
foreach ($accounts as $key=>$type)
|
||||||
{
|
{
|
||||||
@ -222,16 +227,19 @@ foreach ($accounts as $key=>$type)
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td align="center">'.$acc->getLibStatut(2).'</td>';
|
print '<td align="center">'.$acc->getLibStatut(2).'</td>';
|
||||||
print '<td align="right">';
|
print '<td align="right">';
|
||||||
print '<a href="account.php?account='.$acc->id.'">'.price($solde).'</a>';
|
print '<a href="account.php?account='.$acc->id.'">'.price($solde, 0, $langs, 0, 0, -1, $acc->currency_code).'</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
$total += $solde;
|
$total[$acc->currency_code] += $solde;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $found) print '<tr '.$bc[$var].'><td colspan="6">'.$langs->trans("None").'</td></tr>';
|
if (! $found) print '<tr '.$bc[$var].'><td colspan="6">'.$langs->trans("None").'</td></tr>';
|
||||||
// Total
|
// Total
|
||||||
print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").'</td><td align="right" class="liste_total">'.price($total).'</td></tr>';
|
foreach ($total as $key=>$solde)
|
||||||
|
{
|
||||||
|
print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total ").$key.'</td><td align="right" class="liste_total">'.price($solde, 0, $langs, 0, 0, -1, $key).'</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
|
|||||||
@ -1607,7 +1607,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
$result = $interface->run_triggers('BILL_SENTBYMAIL', $object, $user, $langs, $conf);
|
$result = $interface->run_triggers('BILL_SENTBYMAIL', $object, $user, $langs, $conf);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error ++;
|
$error ++;
|
||||||
$this->errors = $interface->errors;
|
$object->errors = $interface->errors;
|
||||||
}
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
@ -1666,7 +1666,7 @@ else if ($action == 'builddoc') // En get ou en post
|
|||||||
// Save last template used to generate document
|
// Save last template used to generate document
|
||||||
if (GETPOST('model'))
|
if (GETPOST('model'))
|
||||||
$object->setDocModel($user, GETPOST('model', 'alpha'));
|
$object->setDocModel($user, GETPOST('model', 'alpha'));
|
||||||
if (GETPOST('fk_bank'))
|
if (GETPOST('fk_bank')) // this field may come from an external module
|
||||||
$object->fk_bank = GETPOST('fk_bank');
|
$object->fk_bank = GETPOST('fk_bank');
|
||||||
|
|
||||||
// Define output language
|
// Define output language
|
||||||
@ -1871,10 +1871,12 @@ if ($action == 'create')
|
|||||||
$ref_int = (! empty($objectsrc->ref_int) ? $objectsrc->ref_int : '');
|
$ref_int = (! empty($objectsrc->ref_int) ? $objectsrc->ref_int : '');
|
||||||
|
|
||||||
$soc = $objectsrc->thirdparty;
|
$soc = $objectsrc->thirdparty;
|
||||||
$cond_reglement_id = (! empty($objectsrc->cond_reglement_id) ? $objectsrc->cond_reglement_id : (! empty($soc->cond_reglement_id) ? $soc->cond_reglement_id : 1));
|
|
||||||
$mode_reglement_id = (! empty($objectsrc->mode_reglement_id) ? $objectsrc->mode_reglement_id : (! empty($soc->mode_reglement_id) ? $soc->mode_reglement_id : 0));
|
$cond_reglement_id = (! empty($objectsrc->cond_reglement_id)?$objectsrc->cond_reglement_id:(! empty($soc->cond_reglement_id)?$soc->cond_reglement_id:1));
|
||||||
$remise_percent = (! empty($objectsrc->remise_percent) ? $objectsrc->remise_percent : (! empty($soc->remise_percent) ? $soc->remise_percent : 0));
|
$mode_reglement_id = (! empty($objectsrc->mode_reglement_id)?$objectsrc->mode_reglement_id:(! empty($soc->mode_reglement_id)?$soc->mode_reglement_id:0));
|
||||||
$remise_absolue = (! empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (! empty($soc->remise_absolue) ? $soc->remise_absolue : 0));
|
$remise_percent = (! empty($objectsrc->remise_percent)?$objectsrc->remise_percent:(! empty($soc->remise_percent)?$soc->remise_percent:0));
|
||||||
|
$remise_absolue = (! empty($objectsrc->remise_absolue)?$objectsrc->remise_absolue:(! empty($soc->remise_absolue)?$soc->remise_absolue:0));
|
||||||
|
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:'';
|
||||||
|
|
||||||
// Replicate extrafields
|
// Replicate extrafields
|
||||||
$objectsrc->fetch_optionals($originid);
|
$objectsrc->fetch_optionals($originid);
|
||||||
@ -1884,11 +1886,11 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$cond_reglement_id = $soc->cond_reglement_id;
|
$cond_reglement_id = $soc->cond_reglement_id;
|
||||||
$mode_reglement_id = $soc->mode_reglement_id;
|
$mode_reglement_id = $soc->mode_reglement_id;
|
||||||
$remise_percent = $soc->remise_percent;
|
$remise_percent = $soc->remise_percent;
|
||||||
$remise_absolue = 0;
|
$remise_absolue = 0;
|
||||||
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ? -1 : ''; // Do not set 0 here (0 for a date is 1970)
|
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:''; // Do not set 0 here (0 for a date is 1970)
|
||||||
}
|
}
|
||||||
$absolute_discount = $soc->getAvailableDiscounts();
|
$absolute_discount = $soc->getAvailableDiscounts();
|
||||||
|
|
||||||
|
|||||||
@ -651,7 +651,7 @@ class BonPrelevement extends CommonObject
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$sql = "SELECT sum(f.total_ttc)";
|
$sql = "SELECT sum(f.total_ttc) as nb";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."facture as f,";
|
$sql.= " FROM ".MAIN_DB_PREFIX."facture as f,";
|
||||||
$sql.= " ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
$sql.= " ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
||||||
//$sql.= " ,".MAIN_DB_PREFIX."c_paiement as cp";
|
//$sql.= " ,".MAIN_DB_PREFIX."c_paiement as cp";
|
||||||
@ -1410,6 +1410,34 @@ class BonPrelevement extends CommonObject
|
|||||||
fputs($this->file, ' </PmtInf>'.$CrLf);
|
fputs($this->file, ' </PmtInf>'.$CrLf);
|
||||||
fputs($this->file, ' </CstmrDrctDbtInitn>'.$CrLf);
|
fputs($this->file, ' </CstmrDrctDbtInitn>'.$CrLf);
|
||||||
fputs($this->file, '</Document>'.$CrLf);
|
fputs($this->file, '</Document>'.$CrLf);
|
||||||
|
|
||||||
|
$sql = "SELECT pl.amount";
|
||||||
|
$sql.= " FROM";
|
||||||
|
$sql.= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,";
|
||||||
|
$sql.= " ".MAIN_DB_PREFIX."facture as f,";
|
||||||
|
$sql.= " ".MAIN_DB_PREFIX."prelevement_facture as pf";
|
||||||
|
$sql.= " WHERE pl.fk_prelevement_bons = ".$this->id;
|
||||||
|
$sql.= " AND pl.rowid = pf.fk_prelevement_lignes";
|
||||||
|
$sql.= " AND pf.fk_facture = f.rowid";
|
||||||
|
|
||||||
|
//Lines
|
||||||
|
$i = 0;
|
||||||
|
$resql=$this->db->query($sql);
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$num = $this->db->num_rows($resql);
|
||||||
|
|
||||||
|
while ($i < $num)
|
||||||
|
{
|
||||||
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
$this->total = $this->total + $obj->amount;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$result = -2;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -258,14 +258,14 @@ abstract class CommonDocGenerator
|
|||||||
$extrafields = new ExtraFields($this->db);
|
$extrafields = new ExtraFields($this->db);
|
||||||
$extralabels = $extrafields->fetch_name_optionals_label('socpeople', true);
|
$extralabels = $extrafields->fetch_name_optionals_label('socpeople', true);
|
||||||
$object->fetch_optionals($object->id, $extralabels);
|
$object->fetch_optionals($object->id, $extralabels);
|
||||||
|
|
||||||
foreach($extrafields->attribute_label as $key => $label)
|
foreach($extrafields->attribute_label as $key => $label)
|
||||||
{
|
{
|
||||||
if ($extrafields->attribute_type[$key] == 'price')
|
if ($extrafields->attribute_type[$key] == 'price')
|
||||||
{
|
{
|
||||||
$object->array_options['options_' . $key] = price($object->array_options ['options_' . $key], 0, $outputlangs, 0, 0, - 1, $conf->currency);
|
$object->array_options['options_' . $key] = price($object->array_options ['options_' . $key], 0, $outputlangs, 0, 0, - 1, $conf->currency);
|
||||||
}
|
}
|
||||||
elseif($extrafields->attribute_type[$key] == 'select')
|
elseif($extrafields->attribute_type[$key] == 'select')
|
||||||
{
|
{
|
||||||
$object->array_options['options_' . $key] = $extrafields->attribute_param[$key]['options'][$object->array_options['options_' . $key]];
|
$object->array_options['options_' . $key] = $extrafields->attribute_param[$key]['options'][$object->array_options['options_' . $key]];
|
||||||
}
|
}
|
||||||
@ -377,12 +377,11 @@ abstract class CommonDocGenerator
|
|||||||
// Retrieve extrafields
|
// Retrieve extrafields
|
||||||
if (is_array($object->array_options) && count($object->array_options))
|
if (is_array($object->array_options) && count($object->array_options))
|
||||||
{
|
{
|
||||||
$extrafieldkey=$this->element;
|
$extrafieldkey=$object->element;
|
||||||
'facture';
|
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||||
$extrafields = new ExtraFields($this->db);
|
$extrafields = new ExtraFields($this->db);
|
||||||
$extralabels = $extrafields->fetch_name_optionals_label('facture',true);
|
$extralabels = $extrafields->fetch_name_optionals_label($extrafieldkey,true);
|
||||||
$object->fetch_optionals($object->id,$extralabels);
|
$object->fetch_optionals($object->id,$extralabels);
|
||||||
|
|
||||||
$resarray = $this->fill_substitutionarray_with_extrafields($object,$resarray,$extrafields,$array_key=$array_key,$outputlangs);
|
$resarray = $this->fill_substitutionarray_with_extrafields($object,$resarray,$extrafields,$array_key=$array_key,$outputlangs);
|
||||||
|
|||||||
@ -637,7 +637,7 @@ abstract class CommonObject
|
|||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
dol_syslog(get_class($this).'::fetch_barcode this->element='.$this->element.' this->barcode_type='.$this->barcode_type);
|
dol_syslog(get_class($this).'::fetch_barcode this->element='.$this->element.' this->barcode_type='.$this->barcode_type);
|
||||||
|
|
||||||
$idtype=$this->barcode_type;
|
$idtype=$this->barcode_type;
|
||||||
if (empty($idtype) && $idtype != '0') // If type of barcode no set, we try to guess. If set to '0' it means we forced to have type remain not defined
|
if (empty($idtype) && $idtype != '0') // If type of barcode no set, we try to guess. If set to '0' it means we forced to have type remain not defined
|
||||||
{
|
{
|
||||||
@ -645,7 +645,7 @@ abstract class CommonObject
|
|||||||
else if ($this->element == 'societe') $idtype = $conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY;
|
else if ($this->element == 'societe') $idtype = $conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY;
|
||||||
else dol_syslog('Call fetch_barcode with barcode_type not defined and cant be guessed', LOG_WARNING);
|
else dol_syslog('Call fetch_barcode with barcode_type not defined and cant be guessed', LOG_WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($idtype > 0)
|
if ($idtype > 0)
|
||||||
{
|
{
|
||||||
if (empty($this->barcode_type) || empty($this->barcode_type_code) || empty($this->barcode_type_label) || empty($this->barcode_type_coder)) // If data not already loaded
|
if (empty($this->barcode_type) || empty($this->barcode_type_code) || empty($this->barcode_type_label) || empty($this->barcode_type_coder)) // If data not already loaded
|
||||||
@ -2121,7 +2121,7 @@ abstract class CommonObject
|
|||||||
|
|
||||||
foreach ($tab as $key => $value)
|
foreach ($tab as $key => $value)
|
||||||
{
|
{
|
||||||
//Test fetch_array ! is_int($key) because fetch_array seult is a mix table with Key as alpha and Key as int (depend db engine)
|
// Test fetch_array ! is_int($key) because fetch_array seult is a mix table with Key as alpha and Key as int (depend db engine)
|
||||||
if ($key != 'rowid' && $key != 'tms' && $key != 'fk_member' && ! is_int($key))
|
if ($key != 'rowid' && $key != 'tms' && $key != 'fk_member' && ! is_int($key))
|
||||||
{
|
{
|
||||||
// we can add this attribute to adherent object
|
// we can add this attribute to adherent object
|
||||||
@ -3237,6 +3237,7 @@ abstract class CommonObject
|
|||||||
$marginInfo = $this->getMarginInfos($force_price);
|
$marginInfo = $this->getMarginInfos($force_price);
|
||||||
|
|
||||||
print '<table class="nobordernopadding" width="100%">';
|
print '<table class="nobordernopadding" width="100%">';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td width="30%">'.$langs->trans('Margins').'</td>';
|
print '<td width="30%">'.$langs->trans('Margins').'</td>';
|
||||||
print '<td width="20%" align="right">'.$langs->trans('SellingPrice').'</td>';
|
print '<td width="20%" align="right">'.$langs->trans('SellingPrice').'</td>';
|
||||||
@ -3250,38 +3251,49 @@ abstract class CommonObject
|
|||||||
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
||||||
print '<td align="right">'.$langs->trans('MarkRate').'</td>';
|
print '<td align="right">'.$langs->trans('MarkRate').'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
//if ($marginInfo['margin_on_products'] != 0 && $marginInfo['margin_on_services'] != 0) {
|
|
||||||
print '<tr class="impair">';
|
if (! empty($conf->product->enabled))
|
||||||
print '<td>'.$langs->trans('MarginOnProducts').'</td>';
|
{
|
||||||
print '<td align="right">'.price($marginInfo['pv_products'], null, null, null, null, $rounding).'</td>';
|
//if ($marginInfo['margin_on_products'] != 0 && $marginInfo['margin_on_services'] != 0) {
|
||||||
print '<td align="right">'.price($marginInfo['pa_products'], null, null, null, null, $rounding).'</td>';
|
print '<tr class="impair">';
|
||||||
print '<td align="right">'.price($marginInfo['margin_on_products'], null, null, null, null, $rounding).'</td>';
|
print '<td>'.$langs->trans('MarginOnProducts').'</td>';
|
||||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
print '<td align="right">'.price($marginInfo['pv_products'], null, null, null, null, $rounding).'</td>';
|
||||||
print '<td align="right">'.(($marginInfo['margin_rate_products'] == '')?'':price($marginInfo['margin_rate_products'], null, null, null, null, $rounding).'%').'</td>';
|
print '<td align="right">'.price($marginInfo['pa_products'], null, null, null, null, $rounding).'</td>';
|
||||||
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
print '<td align="right">'.price($marginInfo['margin_on_products'], null, null, null, null, $rounding).'</td>';
|
||||||
print '<td align="right">'.(($marginInfo['mark_rate_products'] == '')?'':price($marginInfo['mark_rate_products'], null, null, null, null, $rounding).'%').'</td>';
|
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
||||||
print '</tr>';
|
print '<td align="right">'.(($marginInfo['margin_rate_products'] == '')?'':price($marginInfo['margin_rate_products'], null, null, null, null, $rounding).'%').'</td>';
|
||||||
print '<tr class="pair">';
|
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
||||||
print '<td>'.$langs->trans('MarginOnServices').'</td>';
|
print '<td align="right">'.(($marginInfo['mark_rate_products'] == '')?'':price($marginInfo['mark_rate_products'], null, null, null, null, $rounding).'%').'</td>';
|
||||||
print '<td align="right">'.price($marginInfo['pv_services'], null, null, null, null, $rounding).'</td>';
|
print '</tr>';
|
||||||
print '<td align="right">'.price($marginInfo['pa_services'], null, null, null, null, $rounding).'</td>';
|
}
|
||||||
print '<td align="right">'.price($marginInfo['margin_on_services'], null, null, null, null, $rounding).'</td>';
|
|
||||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
if (! empty($conf->service->enabled))
|
||||||
print '<td align="right">'.(($marginInfo['margin_rate_services'] == '')?'':price($marginInfo['margin_rate_services'], null, null, null, null, $rounding).'%').'</td>';
|
{
|
||||||
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
print '<tr class="pair">';
|
||||||
print '<td align="right">'.(($marginInfo['mark_rate_services'] == '')?'':price($marginInfo['mark_rate_services'], null, null, null, null, $rounding).'%').'</td>';
|
print '<td>'.$langs->trans('MarginOnServices').'</td>';
|
||||||
print '</tr>';
|
print '<td align="right">'.price($marginInfo['pv_services'], null, null, null, null, $rounding).'</td>';
|
||||||
//}
|
print '<td align="right">'.price($marginInfo['pa_services'], null, null, null, null, $rounding).'</td>';
|
||||||
print '<tr class="impair">';
|
print '<td align="right">'.price($marginInfo['margin_on_services'], null, null, null, null, $rounding).'</td>';
|
||||||
print '<td>'.$langs->trans('TotalMargin').'</td>';
|
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
||||||
print '<td align="right">'.price($marginInfo['pv_total'], null, null, null, null, $rounding).'</td>';
|
print '<td align="right">'.(($marginInfo['margin_rate_services'] == '')?'':price($marginInfo['margin_rate_services'], null, null, null, null, $rounding).'%').'</td>';
|
||||||
print '<td align="right">'.price($marginInfo['pa_total'], null, null, null, null, $rounding).'</td>';
|
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
||||||
print '<td align="right">'.price($marginInfo['total_margin'], null, null, null, null, $rounding).'</td>';
|
print '<td align="right">'.(($marginInfo['mark_rate_services'] == '')?'':price($marginInfo['mark_rate_services'], null, null, null, null, $rounding).'%').'</td>';
|
||||||
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
print '</tr>';
|
||||||
print '<td align="right">'.(($marginInfo['total_margin_rate'] == '')?'':price($marginInfo['total_margin_rate'], null, null, null, null, $rounding).'%').'</td>';
|
}
|
||||||
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
|
||||||
print '<td align="right">'.(($marginInfo['total_mark_rate'] == '')?'':price($marginInfo['total_mark_rate'], null, null, null, null, $rounding).'%').'</td>';
|
if (! empty($conf->product->enabled) && ! empty($conf->service->enabled))
|
||||||
print '</tr>';
|
{
|
||||||
|
print '<tr class="impair">';
|
||||||
|
print '<td>'.$langs->trans('TotalMargin').'</td>';
|
||||||
|
print '<td align="right">'.price($marginInfo['pv_total'], null, null, null, null, $rounding).'</td>';
|
||||||
|
print '<td align="right">'.price($marginInfo['pa_total'], null, null, null, null, $rounding).'</td>';
|
||||||
|
print '<td align="right">'.price($marginInfo['total_margin'], null, null, null, null, $rounding).'</td>';
|
||||||
|
if (! empty($conf->global->DISPLAY_MARGIN_RATES))
|
||||||
|
print '<td align="right">'.(($marginInfo['total_margin_rate'] == '')?'':price($marginInfo['total_margin_rate'], null, null, null, null, $rounding).'%').'</td>';
|
||||||
|
if (! empty($conf->global->DISPLAY_MARK_RATES))
|
||||||
|
print '<td align="right">'.(($marginInfo['total_mark_rate'] == '')?'':price($marginInfo['total_mark_rate'], null, null, null, null, $rounding).'%').'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -329,14 +329,14 @@ class FileUpload
|
|||||||
$file->error = 'minFileSize';
|
$file->error = 'minFileSize';
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (is_int($this->options['max_number_of_files']) && (
|
if (is_numeric($this->options['max_number_of_files']) && (
|
||||||
count($this->getFileObjects()) >= $this->options['max_number_of_files'])
|
count($this->getFileObjects()) >= $this->options['max_number_of_files'])
|
||||||
) {
|
) {
|
||||||
$file->error = 'maxNumberOfFiles';
|
$file->error = 'maxNumberOfFiles';
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
list($img_width, $img_height) = @getimagesize($uploaded_file);
|
list($img_width, $img_height) = @getimagesize($uploaded_file);
|
||||||
if (is_int($img_width)) {
|
if (is_numeric($img_width)) {
|
||||||
if ($this->options['max_width'] && $img_width > $this->options['max_width'] ||
|
if ($this->options['max_width'] && $img_width > $this->options['max_width'] ||
|
||||||
$this->options['max_height'] && $img_height > $this->options['max_height']) {
|
$this->options['max_height'] && $img_height > $this->options['max_height']) {
|
||||||
$file->error = 'maxResolution';
|
$file->error = 'maxResolution';
|
||||||
|
|||||||
@ -191,8 +191,9 @@ class Form
|
|||||||
$ret.='</td>';
|
$ret.='</td>';
|
||||||
if ($typeofdata != 'day' && $typeofdata != 'datepicker' && $typeofdata != 'datehourpicker')
|
if ($typeofdata != 'day' && $typeofdata != 'datepicker' && $typeofdata != 'datehourpicker')
|
||||||
{
|
{
|
||||||
$ret.='<td align="left"><input type="submit" class="button" name="modify" value="'.$langs->trans("Modify").'">';
|
$ret.='<td align="left">';
|
||||||
$ret.='<br><br>'."\n";
|
$ret.='<input type="submit" class="button" name="modify" value="'.$langs->trans("Modify").'">';
|
||||||
|
$ret.='<br>'."\n";
|
||||||
$ret.='<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
$ret.='<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
$ret.='</td>';
|
$ret.='</td>';
|
||||||
}
|
}
|
||||||
@ -1258,7 +1259,7 @@ class Form
|
|||||||
* Return list of products for customer in Ajax if Ajax activated or go to select_produits_list
|
* Return list of products for customer in Ajax if Ajax activated or go to select_produits_list
|
||||||
*
|
*
|
||||||
* @param int $selected Preselected products
|
* @param int $selected Preselected products
|
||||||
* @param string $htmlname Name of HTML seletc field (must be unique in page)
|
* @param string $htmlname Name of HTML select field (must be unique in page)
|
||||||
* @param int $filtertype Filter on product type (''=nofilter, 0=product, 1=service)
|
* @param int $filtertype Filter on product type (''=nofilter, 0=product, 1=service)
|
||||||
* @param int $limit Limit on number of returned lines
|
* @param int $limit Limit on number of returned lines
|
||||||
* @param int $price_level Level of price to show
|
* @param int $price_level Level of price to show
|
||||||
@ -1267,7 +1268,7 @@ class Form
|
|||||||
* @param string $selected_input_value Value of preselected input text (with ajax)
|
* @param string $selected_input_value Value of preselected input text (with ajax)
|
||||||
* @param int $hidelabel Hide label (0=no, 1=yes, 2=show search icon (before) and placeholder, 3 search icon after)
|
* @param int $hidelabel Hide label (0=no, 1=yes, 2=show search icon (before) and placeholder, 3 search icon after)
|
||||||
* @param array $ajaxoptions Options for ajax_autocompleter
|
* @param array $ajaxoptions Options for ajax_autocompleter
|
||||||
* @param int $socid Thridparty Id
|
* @param int $socid Thirdparty Id
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function select_produits($selected='', $htmlname='productid', $filtertype='', $limit=20, $price_level=0, $status=1, $finished=2, $selected_input_value='', $hidelabel=0, $ajaxoptions=array(),$socid=0)
|
function select_produits($selected='', $htmlname='productid', $filtertype='', $limit=20, $price_level=0, $status=1, $finished=2, $selected_input_value='', $hidelabel=0, $ajaxoptions=array(),$socid=0)
|
||||||
@ -1319,13 +1320,13 @@ class Form
|
|||||||
* @param int $selected Preselected product
|
* @param int $selected Preselected product
|
||||||
* @param string $htmlname Name of select html
|
* @param string $htmlname Name of select html
|
||||||
* @param string $filtertype Filter on product type (''=nofilter, 0=product, 1=service)
|
* @param string $filtertype Filter on product type (''=nofilter, 0=product, 1=service)
|
||||||
* @param int $limit Limite sur le nombre de lignes retournees
|
* @param int $limit Limit on number of returned lines
|
||||||
* @param int $price_level Level of price to show
|
* @param int $price_level Level of price to show
|
||||||
* @param string $filterkey Filter on product
|
* @param string $filterkey Filter on product
|
||||||
* @param int $status -1=Return all products, 0=Products not on sell, 1=Products on sell
|
* @param int $status -1=Return all products, 0=Products not on sell, 1=Products on sell
|
||||||
* @param int $finished Filter on finished field: 2=No filter
|
* @param int $finished Filter on finished field: 2=No filter
|
||||||
* @param int $outputmode 0=HTML select string, 1=Array
|
* @param int $outputmode 0=HTML select string, 1=Array
|
||||||
* @param int $socid Thridparty Id
|
* @param int $socid Thirdparty Id
|
||||||
* @return array Array of keys for json
|
* @return array Array of keys for json
|
||||||
*/
|
*/
|
||||||
function select_produits_list($selected='',$htmlname='productid',$filtertype='',$limit=20,$price_level=0,$filterkey='',$status=1,$finished=2,$outputmode=0,$socid=0)
|
function select_produits_list($selected='',$htmlname='productid',$filtertype='',$limit=20,$price_level=0,$filterkey='',$status=1,$finished=2,$outputmode=0,$socid=0)
|
||||||
@ -2667,7 +2668,7 @@ class Form
|
|||||||
$autoOpen=true;
|
$autoOpen=true;
|
||||||
$dialogconfirm='dialog-confirm';
|
$dialogconfirm='dialog-confirm';
|
||||||
$button='';
|
$button='';
|
||||||
if (! is_int($useajax))
|
if (! is_numeric($useajax))
|
||||||
{
|
{
|
||||||
$button=$useajax;
|
$button=$useajax;
|
||||||
$useajax=1;
|
$useajax=1;
|
||||||
@ -4091,7 +4092,7 @@ class Form
|
|||||||
//Check if fetch_barcode() failed
|
//Check if fetch_barcode() failed
|
||||||
if ($result < 1) return '<!-- ErrorFetchBarcode -->';
|
if ($result < 1) return '<!-- ErrorFetchBarcode -->';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Barcode image
|
// Barcode image
|
||||||
$url=DOL_URL_ROOT.'/viewimage.php?modulepart=barcode&generator='.urlencode($object->barcode_type_coder).'&code='.urlencode($object->barcode).'&encoding='.urlencode($object->barcode_type_code);
|
$url=DOL_URL_ROOT.'/viewimage.php?modulepart=barcode&generator='.urlencode($object->barcode_type_coder).'&code='.urlencode($object->barcode).'&encoding='.urlencode($object->barcode_type_code);
|
||||||
$out ='<!-- url barcode = '.$url.' -->';
|
$out ='<!-- url barcode = '.$url.' -->';
|
||||||
|
|||||||
@ -257,10 +257,11 @@ class FormFile
|
|||||||
*/
|
*/
|
||||||
function showdocuments($modulepart,$modulesubdir,$filedir,$urlsource,$genallowed,$delallowed=0,$modelselected='',$allowgenifempty=1,$forcenomultilang=0,$iconPDF=0,$maxfilenamelength=28,$noform=0,$param='',$title='',$buttonlabel='',$codelang='',$morepicto='')
|
function showdocuments($modulepart,$modulesubdir,$filedir,$urlsource,$genallowed,$delallowed=0,$modelselected='',$allowgenifempty=1,$forcenomultilang=0,$iconPDF=0,$maxfilenamelength=28,$noform=0,$param='',$title='',$buttonlabel='',$codelang='',$morepicto='')
|
||||||
{
|
{
|
||||||
global $langs,$conf,$hookmanager,$user,$form,$bc;
|
global $langs, $conf, $user, $hookmanager;
|
||||||
|
global $form, $bc;
|
||||||
|
|
||||||
if (! is_object($form)) $form=new Form($this->db);
|
if (! is_object($form)) $form=new Form($this->db);
|
||||||
|
|
||||||
// filedir = $conf->...->dir_ouput."/".get_exdir(id)
|
// filedir = $conf->...->dir_ouput."/".get_exdir(id)
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
@ -554,9 +555,12 @@ class FormFile
|
|||||||
|
|
||||||
$out.= "<tr ".$bc[$var].">";
|
$out.= "<tr ".$bc[$var].">";
|
||||||
|
|
||||||
|
$documenturl = DOL_URL_ROOT.'/document.php';
|
||||||
|
if (isset($conf->global->DOL_URL_ROOT_DOCUMENT_PHP)) $documenturl=$conf->global->DOL_URL_ROOT_DOCUMENT_PHP;
|
||||||
|
|
||||||
// Show file name with link to download
|
// Show file name with link to download
|
||||||
$out.= '<td class="nowrap">';
|
$out.= '<td class="nowrap">';
|
||||||
$out.= '<a data-ajax="false" href="'.DOL_URL_ROOT . '/document.php?modulepart='.$modulepart.'&file='.urlencode($relativepath).'"';
|
$out.= '<a data-ajax="false" href="'.$documenturl.'?modulepart='.$modulepart.'&file='.urlencode($relativepath).'"';
|
||||||
$mime=dol_mimetype($relativepath,'',0);
|
$mime=dol_mimetype($relativepath,'',0);
|
||||||
if (preg_match('/text/',$mime)) $out.= ' target="_blank"';
|
if (preg_match('/text/',$mime)) $out.= ' target="_blank"';
|
||||||
$out.= ' target="_blank">';
|
$out.= ' target="_blank">';
|
||||||
|
|||||||
@ -363,7 +363,8 @@ class FormOther
|
|||||||
$sql_usr = "SELECT u.rowid, u.lastname, u.firstname, u.statut, u.login";
|
$sql_usr = "SELECT u.rowid, u.lastname, u.firstname, u.statut, u.login";
|
||||||
$sql_usr.= " FROM ".MAIN_DB_PREFIX."user as u";
|
$sql_usr.= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||||
$sql_usr.= " WHERE u.entity IN (0,".$conf->entity.")";
|
$sql_usr.= " WHERE u.entity IN (0,".$conf->entity.")";
|
||||||
if (empty($user->rights->user->user->lire)) $sql_usr.=" AND u.fk_societe = ".($user->societe_id?$user->societe_id:0);
|
if (empty($user->rights->user->user->lire)) $sql_usr.=" AND u.rowid = ".$user->id;
|
||||||
|
if (! empty($user->societe_id)) $sql_usr.=" AND u.fk_societe = ".$user->societe_id;
|
||||||
// Add existing sales representatives of thirdparty of external user
|
// Add existing sales representatives of thirdparty of external user
|
||||||
if (empty($user->rights->user->user->lire) && $user->societe_id)
|
if (empty($user->rights->user->user->lire) && $user->societe_id)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -194,6 +194,7 @@ class FormProjets
|
|||||||
if (!empty($this->societe->id)) {
|
if (!empty($this->societe->id)) {
|
||||||
$sql.= " AND fk_soc=".$this->societe->id;
|
$sql.= " AND fk_soc=".$this->societe->id;
|
||||||
}
|
}
|
||||||
|
$sql.= ' AND entity='.$conf->entity;
|
||||||
$sql.= " ORDER BY ref DESC";
|
$sql.= " ORDER BY ref DESC";
|
||||||
|
|
||||||
dol_syslog(get_class($this).'::select_element sql='.$sql,LOG_DEBUG);
|
dol_syslog(get_class($this).'::select_element sql='.$sql,LOG_DEBUG);
|
||||||
|
|||||||
@ -825,8 +825,16 @@ class DoliDBMysql extends DoliDB
|
|||||||
$resql=$this->query($sql);
|
$resql=$this->query($sql);
|
||||||
if (! $resql)
|
if (! $resql)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_ERR);
|
if ($this->lasterrno != 'DB_ERROR_USER_ALREADY_EXISTS')
|
||||||
return -1;
|
{
|
||||||
|
dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_ERR);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// If user already exists, we continue to set permissions
|
||||||
|
dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$sql = "GRANT ALL PRIVILEGES ON ".$this->escape($dolibarr_main_db_name).".* TO '".$this->escape($dolibarr_main_db_user)."'@'".$this->escape($dolibarr_main_db_host)."' IDENTIFIED BY '".$this->escape($dolibarr_main_db_pass)."'";
|
$sql = "GRANT ALL PRIVILEGES ON ".$this->escape($dolibarr_main_db_name).".* TO '".$this->escape($dolibarr_main_db_user)."'@'".$this->escape($dolibarr_main_db_host)."' IDENTIFIED BY '".$this->escape($dolibarr_main_db_pass)."'";
|
||||||
dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG); // No sql to avoid password in log
|
dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG); // No sql to avoid password in log
|
||||||
|
|||||||
@ -829,8 +829,16 @@ class DoliDBMysqli extends DoliDB
|
|||||||
$resql=$this->query($sql);
|
$resql=$this->query($sql);
|
||||||
if (! $resql)
|
if (! $resql)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_ERR);
|
if ($this->lasterrno != 'DB_ERROR_USER_ALREADY_EXISTS')
|
||||||
return -1;
|
{
|
||||||
|
dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_ERR);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// If user already exists, we continue to set permissions
|
||||||
|
dol_syslog(get_class($this)."::DDLCreateUser sql=".$sql, LOG_WARNING);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$sql = "GRANT ALL PRIVILEGES ON ".$this->escape($dolibarr_main_db_name).".* TO '".$this->escape($dolibarr_main_db_user)."'@'".$this->escape($dolibarr_main_db_host)."' IDENTIFIED BY '".$this->escape($dolibarr_main_db_pass)."'";
|
$sql = "GRANT ALL PRIVILEGES ON ".$this->escape($dolibarr_main_db_name).".* TO '".$this->escape($dolibarr_main_db_user)."'@'".$this->escape($dolibarr_main_db_host)."' IDENTIFIED BY '".$this->escape($dolibarr_main_db_pass)."'";
|
||||||
dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG); // No sql to avoid password in log
|
dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG); // No sql to avoid password in log
|
||||||
|
|||||||
@ -46,7 +46,7 @@ class DoliDBPgsql extends DoliDB
|
|||||||
static $versionmin=array(8,4,0); // Version min database
|
static $versionmin=array(8,4,0); // Version min database
|
||||||
//! Resultset of last query
|
//! Resultset of last query
|
||||||
private $_results;
|
private $_results;
|
||||||
|
|
||||||
public $unescapeslashquot;
|
public $unescapeslashquot;
|
||||||
public $standard_conforming_strings;
|
public $standard_conforming_strings;
|
||||||
|
|
||||||
@ -172,6 +172,8 @@ class DoliDBPgsql extends DoliDB
|
|||||||
else if (preg_match('/DROP TABLE/i',$line)) $type='dml';
|
else if (preg_match('/DROP TABLE/i',$line)) $type='dml';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$line=preg_replace('/ as signed\)/i',' as integer)',$line);
|
||||||
|
|
||||||
if ($type == 'dml')
|
if ($type == 'dml')
|
||||||
{
|
{
|
||||||
$line=preg_replace('/\s/',' ',$line); // Replace tabulation with space
|
$line=preg_replace('/\s/',' ',$line); // Replace tabulation with space
|
||||||
@ -196,8 +198,7 @@ class DoliDBPgsql extends DoliDB
|
|||||||
|
|
||||||
// nuke unsigned
|
// nuke unsigned
|
||||||
$line=preg_replace('/(int\w+|smallint)\s+unsigned/i','\\1',$line);
|
$line=preg_replace('/(int\w+|smallint)\s+unsigned/i','\\1',$line);
|
||||||
$line=preg_replace('/as signed/i','as integer',$line);
|
|
||||||
|
|
||||||
// blob -> text
|
// blob -> text
|
||||||
$line=preg_replace('/\w*blob/i','text',$line);
|
$line=preg_replace('/\w*blob/i','text',$line);
|
||||||
|
|
||||||
@ -463,7 +464,7 @@ class DoliDBPgsql extends DoliDB
|
|||||||
function query($query,$usesavepoint=0,$type='auto')
|
function query($query,$usesavepoint=0,$type='auto')
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$query = trim($query);
|
$query = trim($query);
|
||||||
|
|
||||||
// Convert MySQL syntax to PostgresSQL syntax
|
// Convert MySQL syntax to PostgresSQL syntax
|
||||||
@ -484,7 +485,7 @@ class DoliDBPgsql extends DoliDB
|
|||||||
else $loop=false;
|
else $loop=false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($usesavepoint && $this->transaction_opened)
|
if ($usesavepoint && $this->transaction_opened)
|
||||||
{
|
{
|
||||||
@pg_query($this->db, 'SAVEPOINT mysavepoint');
|
@pg_query($this->db, 'SAVEPOINT mysavepoint');
|
||||||
|
|||||||
@ -39,7 +39,7 @@
|
|||||||
* @param string $filterd Filter of done by user
|
* @param string $filterd Filter of done by user
|
||||||
* @param int $pid Product id
|
* @param int $pid Product id
|
||||||
* @param int $socid Third party id
|
* @param int $socid Third party id
|
||||||
* @param array $showextcals Array with list of external calendars, or -1 to show no legend
|
* @param array $showextcals Array with list of external calendars (used to show links to select calendar), or -1 to show no legend
|
||||||
* @param string $actioncode Preselected value of actioncode for filter on type
|
* @param string $actioncode Preselected value of actioncode for filter on type
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
@ -136,7 +136,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
|
|||||||
print '});' . "\n";
|
print '});' . "\n";
|
||||||
print '</script>' . "\n";
|
print '</script>' . "\n";
|
||||||
print '<table>';
|
print '<table>';
|
||||||
if (! empty($conf->global->MAIN_JS_SWITCH_AGENDA))
|
if (! empty($conf->use_javascript_ajax))
|
||||||
{
|
{
|
||||||
if (count($showextcals) > 0)
|
if (count($showextcals) > 0)
|
||||||
{
|
{
|
||||||
@ -147,7 +147,10 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
|
|||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print '<script type="text/javascript">' . "\n";
|
print '<script type="text/javascript">' . "\n";
|
||||||
print 'jQuery(document).ready(function () {' . "\n";
|
print 'jQuery(document).ready(function () {' . "\n";
|
||||||
print 'jQuery("#check_' . $htmlname . '").click(function() { jQuery(".family_' . $htmlname . '").toggle(); });' . "\n";
|
print ' jQuery("#check_' . $htmlname . '").click(function() {';
|
||||||
|
print ' /* alert("'.$htmlname.'"); */';
|
||||||
|
print ' jQuery(".family_' . $htmlname . '").toggle();';
|
||||||
|
print ' });' . "\n";
|
||||||
print '});' . "\n";
|
print '});' . "\n";
|
||||||
print '</script>' . "\n";
|
print '</script>' . "\n";
|
||||||
print '<input type="checkbox" id="check_' . $htmlname . '" name="check_' . $htmlname . '" checked="true"> ' . $val ['name'];
|
print '<input type="checkbox" id="check_' . $htmlname . '" name="check_' . $htmlname . '" checked="true"> ' . $val ['name'];
|
||||||
@ -434,9 +437,9 @@ function actions_prepare_head($object)
|
|||||||
$head[$h][1] = $langs->trans('Info');
|
$head[$h][1] = $langs->trans('Info');
|
||||||
$head[$h][2] = 'info';
|
$head[$h][2] = 'info';
|
||||||
$h++;
|
$h++;
|
||||||
|
|
||||||
complete_head_from_modules($conf,$langs,$object,$head,$h,'action');
|
complete_head_from_modules($conf,$langs,$object,$head,$h,'action');
|
||||||
|
|
||||||
complete_head_from_modules($conf,$langs,$object,$head,$h,'action','remove');
|
complete_head_from_modules($conf,$langs,$object,$head,$h,'action','remove');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
|
|||||||
@ -3694,6 +3694,7 @@ function dol_textishtml($msg,$option=0)
|
|||||||
elseif (preg_match('/<(br|div|font|img|li|span|strong|table)>/i',$msg)) return true;
|
elseif (preg_match('/<(br|div|font|img|li|span|strong|table)>/i',$msg)) return true;
|
||||||
elseif (preg_match('/<(br|div|font|img|li|span|strong|table)\s+[^<>\/]*>/i',$msg)) return true;
|
elseif (preg_match('/<(br|div|font|img|li|span|strong|table)\s+[^<>\/]*>/i',$msg)) return true;
|
||||||
elseif (preg_match('/<(br|div|font|img|li|span|strong|table)\s+[^<>\/]*\/>/i',$msg)) return true;
|
elseif (preg_match('/<(br|div|font|img|li|span|strong|table)\s+[^<>\/]*\/>/i',$msg)) return true;
|
||||||
|
elseif (preg_match('/<h[0-9]>/i',$msg)) return true;
|
||||||
elseif (preg_match('/&[A-Z0-9]{1,6};/i',$msg)) return true; // Html entities names (http://www.w3schools.com/tags/ref_entities.asp)
|
elseif (preg_match('/&[A-Z0-9]{1,6};/i',$msg)) return true; // Html entities names (http://www.w3schools.com/tags/ref_entities.asp)
|
||||||
elseif (preg_match('/&#[0-9]{2,3};/i',$msg)) return true; // Html entities numbers (http://www.w3schools.com/tags/ref_entities.asp)
|
elseif (preg_match('/&#[0-9]{2,3};/i',$msg)) return true; // Html entities numbers (http://www.w3schools.com/tags/ref_entities.asp)
|
||||||
return false;
|
return false;
|
||||||
@ -4588,4 +4589,3 @@ function natural_search($fields, $value)
|
|||||||
}
|
}
|
||||||
return " AND " . ($end > 1? '(' : '') . $res;
|
return " AND " . ($end > 1? '(' : '') . $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -438,7 +438,9 @@ function pdf_pagehead(&$pdf,$outputlangs,$page_height)
|
|||||||
// Add a background image on document
|
// Add a background image on document
|
||||||
if (! empty($conf->global->MAIN_USE_BACKGROUND_ON_PDF))
|
if (! empty($conf->global->MAIN_USE_BACKGROUND_ON_PDF))
|
||||||
{
|
{
|
||||||
$pdf->Image($conf->mycompany->dir_output.'/logos/'.$conf->global->MAIN_USE_BACKGROUND_ON_PDF, 0, 0, 0, $page_height);
|
$pdf->SetAutoPageBreak(0,0); // Disable auto pagebreak before adding image
|
||||||
|
$pdf->Image($conf->mycompany->dir_output.'/logos/'.$conf->global->MAIN_USE_BACKGROUND_ON_PDF, (isset($conf->global->MAIN_USE_BACKGROUND_ON_PDF_X)?$conf->global->MAIN_USE_BACKGROUND_ON_PDF_X:0), (isset($conf->global->MAIN_USE_BACKGROUND_ON_PDF_Y)?$conf->global->MAIN_USE_BACKGROUND_ON_PDF_Y:0), 0, $page_height);
|
||||||
|
$pdf->SetAutoPageBreak(1,0); // Restore pagebreak
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1036,10 +1038,10 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
|
|||||||
|
|
||||||
if (empty($hideref))
|
if (empty($hideref))
|
||||||
{
|
{
|
||||||
if ($issupplierline) $ref_prodserv = $prodser->ref.' ('.$outputlangs->transnoentitiesnoconv("SupplierRef").' '.$ref_supplier.')'; // Show local ref and supplier ref
|
if ($issupplierline) $ref_prodserv = $prodser->ref.($ref_supplier ? ' ('.$outputlangs->transnoentitiesnoconv("SupplierRef").' '.$ref_supplier.')' : ''); // Show local ref and supplier ref
|
||||||
else $ref_prodserv = $prodser->ref; // Show local ref only
|
else $ref_prodserv = $prodser->ref; // Show local ref only
|
||||||
|
|
||||||
$ref_prodserv .= " - ";
|
if (! empty($libelleproduitservice)) $ref_prodserv .= " - ";
|
||||||
}
|
}
|
||||||
|
|
||||||
$libelleproduitservice=$prefix_prodserv.$ref_prodserv.$libelleproduitservice;
|
$libelleproduitservice=$prefix_prodserv.$ref_prodserv.$libelleproduitservice;
|
||||||
|
|||||||
@ -292,11 +292,11 @@ function dol_loginfunction($langs,$conf,$mysoc)
|
|||||||
if (! empty($conf->global->MAIN_USE_JQUERY_THEME)) $jquerytheme = $conf->global->MAIN_USE_JQUERY_THEME;
|
if (! empty($conf->global->MAIN_USE_JQUERY_THEME)) $jquerytheme = $conf->global->MAIN_USE_JQUERY_THEME;
|
||||||
|
|
||||||
// Set dol_hide_topmenu, dol_hide_leftmenu, dol_optimize_smallscreen, dol_nomousehover
|
// Set dol_hide_topmenu, dol_hide_leftmenu, dol_optimize_smallscreen, dol_nomousehover
|
||||||
$dol_hide_topmenu=GETPOST('dol_hide_topmenu');
|
$dol_hide_topmenu=GETPOST('dol_hide_topmenu','int');
|
||||||
$dol_hide_leftmenu=GETPOST('dol_hide_leftmenu');
|
$dol_hide_leftmenu=GETPOST('dol_hide_leftmenu','int');
|
||||||
$dol_optimize_smallscreen=GETPOST('dol_optimize_smallscreen');
|
$dol_optimize_smallscreen=GETPOST('dol_optimize_smallscreen','int');
|
||||||
$dol_no_mouse_hover=GETPOST('dol_no_mouse_hover');
|
$dol_no_mouse_hover=GETPOST('dol_no_mouse_hover','int');
|
||||||
$dol_use_jmobile=GETPOST('dol_use_jmobile');
|
$dol_use_jmobile=GETPOST('dol_use_jmobile','int');
|
||||||
|
|
||||||
// Include login page template
|
// Include login page template
|
||||||
include $template_dir.'login.tpl.php';
|
include $template_dir.'login.tpl.php';
|
||||||
|
|||||||
@ -773,16 +773,13 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
|||||||
// Suppliers
|
// Suppliers
|
||||||
if (! empty($conf->societe->enabled) && ! empty($conf->fournisseur->enabled))
|
if (! empty($conf->societe->enabled) && ! empty($conf->fournisseur->enabled))
|
||||||
{
|
{
|
||||||
if (! empty($conf->facture->enabled))
|
$langs->load("bills");
|
||||||
{
|
$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans("BillsSuppliers"),0,$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills');
|
||||||
$langs->load("bills");
|
$newmenu->add("/fourn/facture/fiche.php?action=create",$langs->trans("NewBill"),1,$user->rights->fournisseur->facture->creer);
|
||||||
$newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans("BillsSuppliers"),0,$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills');
|
$newmenu->add("/fourn/facture/impayees.php", $langs->trans("Unpaid"),1,$user->rights->fournisseur->facture->lire);
|
||||||
$newmenu->add("/fourn/facture/fiche.php?action=create",$langs->trans("NewBill"),1,$user->rights->fournisseur->facture->creer);
|
$newmenu->add("/fourn/facture/paiement.php", $langs->trans("Payments"),1,$user->rights->fournisseur->facture->lire);
|
||||||
$newmenu->add("/fourn/facture/impayees.php", $langs->trans("Unpaid"),1,$user->rights->fournisseur->facture->lire);
|
|
||||||
$newmenu->add("/fourn/facture/paiement.php", $langs->trans("Payments"),1,$user->rights->fournisseur->facture->lire);
|
|
||||||
|
|
||||||
$newmenu->add("/compta/facture/stats/index.php?leftmenu=suppliers_bills&mode=supplier", $langs->trans("Statistics"),1,$user->rights->fournisseur->facture->lire);
|
$newmenu->add("/compta/facture/stats/index.php?leftmenu=suppliers_bills&mode=supplier", $langs->trans("Statistics"),1,$user->rights->fournisseur->facture->lire);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Orders
|
// Orders
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
|
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -179,9 +180,10 @@ class pdf_rouget extends ModelePdfExpedition
|
|||||||
$tab_height = 130;
|
$tab_height = 130;
|
||||||
$tab_height_newpage = 150;
|
$tab_height_newpage = 150;
|
||||||
|
|
||||||
if (! empty($object->note_public) || ! empty($object->tracking_number))
|
if (! empty($object->note_public) || (! empty($object->tracking_number) && ! empty($object->shipping_method_id)))
|
||||||
{
|
{
|
||||||
$tab_top = 88;
|
$tab_top = 88;
|
||||||
|
$tab_top_alt = $tab_top;
|
||||||
|
|
||||||
// Tracking number
|
// Tracking number
|
||||||
if (! empty($object->tracking_number))
|
if (! empty($object->tracking_number))
|
||||||
@ -196,7 +198,9 @@ class pdf_rouget extends ModelePdfExpedition
|
|||||||
$label=$outputlangs->trans("LinkToTrackYourPackage")."<br>";
|
$label=$outputlangs->trans("LinkToTrackYourPackage")."<br>";
|
||||||
$label.=$outputlangs->trans("SendingMethod".strtoupper($code))." :";
|
$label.=$outputlangs->trans("SendingMethod".strtoupper($code))." :";
|
||||||
$pdf->SetFont('','B', $default_font_size - 2);
|
$pdf->SetFont('','B', $default_font_size - 2);
|
||||||
$pdf->writeHTMLCell(60, 4, $this->posxdesc-1, $tab_top-1, $label." ".$object->tracking_url, 0, 1, false, true, 'L');
|
$pdf->writeHTMLCell(60, 7, $this->posxdesc-1, $tab_top-1, $label." ".$object->tracking_url, 0, 1, false, true, 'L');
|
||||||
|
|
||||||
|
$tab_top_alt += 7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -205,7 +209,7 @@ class pdf_rouget extends ModelePdfExpedition
|
|||||||
if (! empty($object->note_public))
|
if (! empty($object->note_public))
|
||||||
{
|
{
|
||||||
$pdf->SetFont('','', $default_font_size - 1); // Dans boucle pour gerer multi-page
|
$pdf->SetFont('','', $default_font_size - 1); // Dans boucle pour gerer multi-page
|
||||||
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, dol_htmlentitiesbr($object->note_public), 0, 1);
|
$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top_alt, dol_htmlentitiesbr($object->note_public), 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$nexY = $pdf->GetY();
|
$nexY = $pdf->GetY();
|
||||||
|
|||||||
@ -74,10 +74,10 @@ class modSalaries extends DolibarrModules
|
|||||||
$this->conflictwith = array();
|
$this->conflictwith = array();
|
||||||
$this->langfiles = array("salaries");
|
$this->langfiles = array("salaries");
|
||||||
|
|
||||||
// Constantes
|
// Constants
|
||||||
$this->const = array();
|
$this->const = array();
|
||||||
|
|
||||||
// Boites
|
// Boxes
|
||||||
$this->boxes = array();
|
$this->boxes = array();
|
||||||
|
|
||||||
// Permissions
|
// Permissions
|
||||||
@ -151,7 +151,7 @@ class modSalaries extends DolibarrModules
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
// Nettoyage avant activation
|
// Clean before activation
|
||||||
$this->remove($options);
|
$this->remove($options);
|
||||||
|
|
||||||
$sql = array();
|
$sql = array();
|
||||||
|
|||||||
@ -329,7 +329,7 @@ class modSociete extends DolibarrModules
|
|||||||
unset($this->export_entities_array[$r]['s.code_fournisseur']);
|
unset($this->export_entities_array[$r]['s.code_fournisseur']);
|
||||||
}
|
}
|
||||||
// Add extra fields
|
// Add extra fields
|
||||||
$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'socpeople'";
|
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'socpeople'";
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql) // This can fail when class is used on old database (during migration for example)
|
if ($resql) // This can fail when class is used on old database (during migration for example)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -993,7 +993,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("OrderToProcess"), '', 'R');
|
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("OrderToProcess"), '', 'R');
|
||||||
}
|
}
|
||||||
|
|
||||||
$posy+=2;
|
$posy+=5;
|
||||||
$pdf->SetTextColor(0,0,60);
|
$pdf->SetTextColor(0,0,60);
|
||||||
|
|
||||||
// Show list of linked objects
|
// Show list of linked objects
|
||||||
|
|||||||
@ -487,7 +487,7 @@ jQuery(document).ready(function() {
|
|||||||
function setforfree() {
|
function setforfree() {
|
||||||
jQuery("#search_idprod").val('');
|
jQuery("#search_idprod").val('');
|
||||||
jQuery("#idprod").val('');
|
jQuery("#idprod").val('');
|
||||||
jQuery("#idprodfournprice").val('');
|
jQuery("#idprodfournprice").val('0'); // Set cursor on not selected product
|
||||||
jQuery("#search_idprodfournprice").val('');
|
jQuery("#search_idprodfournprice").val('');
|
||||||
jQuery("#prod_entry_mode_free").attr('checked',true);
|
jQuery("#prod_entry_mode_free").attr('checked',true);
|
||||||
jQuery("#prod_entry_mode_predef").attr('checked',false);
|
jQuery("#prod_entry_mode_predef").attr('checked',false);
|
||||||
|
|||||||
@ -1128,6 +1128,10 @@ class Expedition extends CommonObject
|
|||||||
|
|
||||||
// Eat-by date
|
// Eat-by date
|
||||||
if (! empty($conf->productbatch->enabled)) {
|
if (! empty($conf->productbatch->enabled)) {
|
||||||
|
/* test on conf at begining of file sometimes doesn't include expeditionbatch
|
||||||
|
* May be conf is not well initialized for dark reason
|
||||||
|
*/
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionbatch.class.php';
|
||||||
$line->detail_batch=ExpeditionLigneBatch::FetchAll($this->db,$obj->line_id);
|
$line->detail_batch=ExpeditionLigneBatch::FetchAll($this->db,$obj->line_id);
|
||||||
}
|
}
|
||||||
$this->lines[$i] = $line;
|
$this->lines[$i] = $line;
|
||||||
|
|||||||
@ -500,7 +500,7 @@ if ($action == 'send' && ! GETPOST('addfile','alpha') && ! GETPOST('removedfile'
|
|||||||
$interface=new Interfaces($db);
|
$interface=new Interfaces($db);
|
||||||
$result=$interface->run_triggers('SHIPPING_SENTBYMAIL',$object,$user,$langs,$conf);
|
$result=$interface->run_triggers('SHIPPING_SENTBYMAIL',$object,$user,$langs,$conf);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++; $this->errors=$interface->errors;
|
$error++; $object->errors=$interface->errors;
|
||||||
}
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
@ -863,7 +863,7 @@ if ($action == 'create')
|
|||||||
if (($line->product_type == 1 && empty($conf->global->STOCK_SUPPORTS_SERVICES)) || $defaultqty < 0) $defaultqty=0;
|
if (($line->product_type == 1 && empty($conf->global->STOCK_SUPPORTS_SERVICES)) || $defaultqty < 0) $defaultqty=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($conf->productbatch->enabled) || ! ($product->hasbatch() and is_array($product->stock_warehouse[GETPOST('entrepot_id','int')])))
|
if (empty($conf->productbatch->enabled) || ! ($product->hasbatch() and is_object($product->stock_warehouse[GETPOST('entrepot_id','int')])))
|
||||||
{
|
{
|
||||||
// Quantity to send
|
// Quantity to send
|
||||||
print '<td align="center">';
|
print '<td align="center">';
|
||||||
|
|||||||
@ -730,7 +730,7 @@ if ($action == 'send' && ! GETPOST('cancel','alpha') && (empty($conf->global->MA
|
|||||||
$interface=new Interfaces($db);
|
$interface=new Interfaces($db);
|
||||||
$result=$interface->run_triggers('FICHINTER_SENTBYMAIL',$object,$user,$langs,$conf);
|
$result=$interface->run_triggers('FICHINTER_SENTBYMAIL',$object,$user,$langs,$conf);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++; $this->errors=$interface->errors;
|
$error++; $object->errors=$interface->errors;
|
||||||
}
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
|
|||||||
@ -42,6 +42,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
public $fk_element='fk_facture_fourn';
|
public $fk_element='fk_facture_fourn';
|
||||||
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||||
|
|
||||||
|
var $rowid;
|
||||||
var $ref;
|
var $ref;
|
||||||
var $product_ref;
|
var $product_ref;
|
||||||
var $ref_supplier;
|
var $ref_supplier;
|
||||||
@ -444,7 +445,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
*/
|
*/
|
||||||
function fetch_lines()
|
function fetch_lines()
|
||||||
{
|
{
|
||||||
$sql = 'SELECT f.rowid, f.description, f.pu_ht, f.pu_ttc, f.qty, f.remise_percent, f.tva_tx, f.tva';
|
$sql = 'SELECT f.rowid, f.ref as ref_supplier, f.description, f.pu_ht, f.pu_ttc, f.qty, f.remise_percent, f.tva_tx, f.tva';
|
||||||
$sql.= ', f.localtax1_tx, f.localtax2_tx, f.total_localtax1, f.total_localtax2 ';
|
$sql.= ', f.localtax1_tx, f.localtax2_tx, f.total_localtax1, f.total_localtax2 ';
|
||||||
$sql.= ', f.total_ht, f.tva as total_tva, f.total_ttc, f.fk_product, f.product_type, f.info_bits';
|
$sql.= ', f.total_ht, f.tva as total_tva, f.total_ttc, f.fk_product, f.product_type, f.info_bits';
|
||||||
$sql.= ', p.rowid as product_id, p.ref as product_ref, p.label as label, p.description as product_desc';
|
$sql.= ', p.rowid as product_id, p.ref as product_ref, p.label as label, p.description as product_desc';
|
||||||
@ -452,7 +453,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON f.fk_product = p.rowid';
|
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON f.fk_product = p.rowid';
|
||||||
$sql.= ' WHERE fk_facture_fourn='.$this->id;
|
$sql.= ' WHERE fk_facture_fourn='.$this->id;
|
||||||
|
|
||||||
dol_syslog("FactureFournisseur::fetch_lines sql=".$sql, LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch_lines sql=".$sql, LOG_DEBUG);
|
||||||
$resql_rows = $this->db->query($sql);
|
$resql_rows = $this->db->query($sql);
|
||||||
if ($resql_rows)
|
if ($resql_rows)
|
||||||
{
|
{
|
||||||
@ -467,11 +468,11 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$this->lines[$i] = new stdClass();
|
$this->lines[$i] = new stdClass();
|
||||||
$this->lines[$i]->rowid = $obj->rowid;
|
$this->lines[$i]->rowid = $obj->rowid;
|
||||||
$this->lines[$i]->description = $obj->description;
|
$this->lines[$i]->description = $obj->description;
|
||||||
$this->lines[$i]->ref = $obj->product_ref; // TODO deprecated
|
|
||||||
$this->lines[$i]->product_ref = $obj->product_ref; // Internal reference
|
$this->lines[$i]->product_ref = $obj->product_ref; // Internal reference
|
||||||
//$this->lines[$i]->ref_fourn = $obj->ref_fourn; // Reference fournisseur du produit
|
$this->lines[$i]->ref = $obj->product_ref; // deprecated.
|
||||||
$this->lines[$i]->libelle = $obj->label; // Label du produit
|
$this->lines[$i]->ref_supplier = $obj->ref_supplier; // Reference product supplier TODO Rename field ref to ref_supplier into table llx_facture_fourn_det and llx_commande_fournisseurdet and update fields it into updateline
|
||||||
$this->lines[$i]->product_desc = $obj->product_desc; // Description du produit
|
$this->lines[$i]->libelle = $obj->label; // This field may contains label of product (when invoice create from order)
|
||||||
|
$this->lines[$i]->product_desc = $obj->product_desc; // Description du produit
|
||||||
$this->lines[$i]->pu_ht = $obj->pu_ht;
|
$this->lines[$i]->pu_ht = $obj->pu_ht;
|
||||||
$this->lines[$i]->pu_ttc = $obj->pu_ttc;
|
$this->lines[$i]->pu_ttc = $obj->pu_ttc;
|
||||||
$this->lines[$i]->tva_tx = $obj->tva_tx;
|
$this->lines[$i]->tva_tx = $obj->tva_tx;
|
||||||
@ -498,7 +499,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->error=$this->db->error();
|
$this->error=$this->db->error();
|
||||||
dol_syslog('FactureFournisseur::fetch_lines: Error '.$this->error,LOG_ERR);
|
dol_syslog(get_class($this).'::fetch_lines: Error '.$this->error,LOG_ERR);
|
||||||
return -3;
|
return -3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -542,7 +543,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
if (isset($this->fk_user_valid)) $this->fk_user_valid=trim($this->fk_user_valid);
|
if (isset($this->fk_user_valid)) $this->fk_user_valid=trim($this->fk_user_valid);
|
||||||
if (isset($this->fk_facture_source)) $this->fk_facture_source=trim($this->fk_facture_source);
|
if (isset($this->fk_facture_source)) $this->fk_facture_source=trim($this->fk_facture_source);
|
||||||
if (isset($this->fk_project)) $this->fk_project=trim($this->fk_project);
|
if (isset($this->fk_project)) $this->fk_project=trim($this->fk_project);
|
||||||
if (isset($this->fk_cond_reglement)) $this->fk_cond_reglement=trim($this->fk_cond_reglement);
|
if (isset($this->cond_reglement_id)) $this->cond_reglement_id=trim($this->cond_reglement_id);
|
||||||
if (isset($this->note_private)) $this->note=trim($this->note_private);
|
if (isset($this->note_private)) $this->note=trim($this->note_private);
|
||||||
if (isset($this->note_public)) $this->note_public=trim($this->note_public);
|
if (isset($this->note_public)) $this->note_public=trim($this->note_public);
|
||||||
if (isset($this->model_pdf)) $this->model_pdf=trim($this->model_pdf);
|
if (isset($this->model_pdf)) $this->model_pdf=trim($this->model_pdf);
|
||||||
@ -580,7 +581,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$sql.= " fk_user_valid=".(isset($this->fk_user_valid)?$this->fk_user_valid:"null").",";
|
$sql.= " fk_user_valid=".(isset($this->fk_user_valid)?$this->fk_user_valid:"null").",";
|
||||||
$sql.= " fk_facture_source=".(isset($this->fk_facture_source)?$this->fk_facture_source:"null").",";
|
$sql.= " fk_facture_source=".(isset($this->fk_facture_source)?$this->fk_facture_source:"null").",";
|
||||||
$sql.= " fk_projet=".(isset($this->fk_project)?$this->fk_project:"null").",";
|
$sql.= " fk_projet=".(isset($this->fk_project)?$this->fk_project:"null").",";
|
||||||
$sql.= " fk_cond_reglement=".(isset($this->fk_cond_reglement)?$this->fk_cond_reglement:"null").",";
|
$sql.= " fk_cond_reglement=".(isset($this->cond_reglement_id)?$this->cond_reglement_id:"null").",";
|
||||||
$sql.= " date_lim_reglement=".(dol_strlen($this->date_echeance)!=0 ? "'".$this->db->idate($this->date_echeance)."'" : 'null').",";
|
$sql.= " date_lim_reglement=".(dol_strlen($this->date_echeance)!=0 ? "'".$this->db->idate($this->date_echeance)."'" : 'null').",";
|
||||||
$sql.= " note_private=".(isset($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null").",";
|
$sql.= " note_private=".(isset($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null").",";
|
||||||
$sql.= " note_public=".(isset($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null").",";
|
$sql.= " note_public=".(isset($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null").",";
|
||||||
@ -1076,6 +1077,8 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
* @param int $rang Position of line
|
* @param int $rang Position of line
|
||||||
* @param int $notrigger Disable triggers
|
* @param int $notrigger Disable triggers
|
||||||
* @return int >0 if OK, <0 if KO
|
* @return int >0 if OK, <0 if KO
|
||||||
|
*
|
||||||
|
* FIXME Add field ref (that should be named ref_supplier) and label into update. For example can be filled when product line created from order.
|
||||||
*/
|
*/
|
||||||
function addline($desc, $pu, $txtva, $txlocaltax1, $txlocaltax2, $qty, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits='', $price_base_type='HT', $type=0, $rang=-1, $notrigger=false)
|
function addline($desc, $pu, $txtva, $txlocaltax1, $txlocaltax2, $qty, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits='', $price_base_type='HT', $type=0, $rang=-1, $notrigger=false)
|
||||||
{
|
{
|
||||||
@ -1152,7 +1155,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
* Update a line detail into database
|
* Update a line detail into database
|
||||||
*
|
*
|
||||||
* @param int $id Id of line invoice
|
* @param int $id Id of line invoice
|
||||||
* @param string $label Description of line
|
* @param string $desc Description of line
|
||||||
* @param double $pu Prix unitaire (HT ou TTC selon price_base_type)
|
* @param double $pu Prix unitaire (HT ou TTC selon price_base_type)
|
||||||
* @param double $vatrate VAT Rate
|
* @param double $vatrate VAT Rate
|
||||||
* @param double $txlocaltax1 LocalTax1 Rate
|
* @param double $txlocaltax1 LocalTax1 Rate
|
||||||
@ -1166,9 +1169,9 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
* @param int $notrigger Disable triggers
|
* @param int $notrigger Disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function updateline($id, $label, $pu, $vatrate, $txlocaltax1=0, $txlocaltax2=0, $qty=1, $idproduct=0, $price_base_type='HT', $info_bits=0, $type=0, $remise_percent=0, $notrigger=false)
|
function updateline($id, $desc, $pu, $vatrate, $txlocaltax1=0, $txlocaltax2=0, $qty=1, $idproduct=0, $price_base_type='HT', $info_bits=0, $type=0, $remise_percent=0, $notrigger=false)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::updateline $id,$label,$pu,$vatrate,$qty,$idproduct,$price_base_type,$info_bits,$type,$remise_percent", LOG_DEBUG);
|
dol_syslog(get_class($this)."::updateline $id,$desc,$pu,$vatrate,$qty,$idproduct,$price_base_type,$info_bits,$type,$remise_percent", LOG_DEBUG);
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
|
||||||
|
|
||||||
$pu = price2num($pu);
|
$pu = price2num($pu);
|
||||||
@ -1194,7 +1197,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
|
|
||||||
$localtaxes_type=getLocalTaxesFromRate($vatrate,0,$this->thirdparty);
|
$localtaxes_type=getLocalTaxesFromRate($vatrate,0,$this->thirdparty);
|
||||||
|
|
||||||
$tabprice = calcul_price_total($qty, $pu, $remise_percent, $vatrate, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $this->thirdparty,$localtaxes_type);
|
$tabprice = calcul_price_total($qty, $pu, $remise_percent, $vatrate, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $this->thirdparty, $localtaxes_type);
|
||||||
$total_ht = $tabprice[0];
|
$total_ht = $tabprice[0];
|
||||||
$total_tva = $tabprice[1];
|
$total_tva = $tabprice[1];
|
||||||
$total_ttc = $tabprice[2];
|
$total_ttc = $tabprice[2];
|
||||||
@ -1217,7 +1220,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det SET";
|
||||||
$sql.= " description ='".$this->db->escape($label)."'";
|
$sql.= " description ='".$this->db->escape($desc)."'";
|
||||||
$sql.= ", pu_ht = ".price2num($pu_ht);
|
$sql.= ", pu_ht = ".price2num($pu_ht);
|
||||||
$sql.= ", pu_ttc = ".price2num($pu_ttc);
|
$sql.= ", pu_ttc = ".price2num($pu_ttc);
|
||||||
$sql.= ", qty = ".price2num($qty);
|
$sql.= ", qty = ".price2num($qty);
|
||||||
|
|||||||
@ -40,8 +40,13 @@ class ProductFournisseur extends Product
|
|||||||
var $product_fourn_price_id; // id of ligne product-supplier
|
var $product_fourn_price_id; // id of ligne product-supplier
|
||||||
|
|
||||||
var $id; // product id
|
var $id; // product id
|
||||||
var $fourn_ref; // ref supplier
|
var $fourn_ref; // deprecated
|
||||||
var $fourn_qty; // quantity for price
|
var $ref_supplier; // ref supplier (can be set by get_buyprice)
|
||||||
|
var $vatrate_supplier; // default vat rate for this supplier/qty/product (can be set by get_buyprice)
|
||||||
|
|
||||||
|
var $fourn_qty; // quantity for price (can be set by get_buyprice)
|
||||||
|
var $fourn_pu; // unit price for quantity (can be set by get_buyprice)
|
||||||
|
|
||||||
var $fourn_price; // price for quantity
|
var $fourn_price; // price for quantity
|
||||||
var $fourn_remise_percent; // discount for quantity (percent)
|
var $fourn_remise_percent; // discount for quantity (percent)
|
||||||
var $fourn_remise; // discount for quantity (amount)
|
var $fourn_remise; // discount for quantity (amount)
|
||||||
|
|||||||
@ -1734,17 +1734,6 @@ elseif (! empty($object->id))
|
|||||||
// Form to add new line
|
// Form to add new line
|
||||||
if ($object->statut == 0 && $user->rights->fournisseur->commande->creer && $action <> 'edit_line')
|
if ($object->statut == 0 && $user->rights->fournisseur->commande->creer && $action <> 'edit_line')
|
||||||
{
|
{
|
||||||
/*print '<tr class="liste_titre">';
|
|
||||||
print '<td>';
|
|
||||||
print '<a name="add"></a>'; // ancre
|
|
||||||
print $langs->trans('AddNewLine').' - '.$langs->trans("FreeZone").'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('VAT').'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('PriceUHT').'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('Qty').'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('ReductionShort').'</td>';
|
|
||||||
print '<td colspan="4"> </td>';
|
|
||||||
print '</tr>';*/
|
|
||||||
|
|
||||||
// Add free products/services form
|
// Add free products/services form
|
||||||
global $forceall, $senderissupplier, $dateSelector;
|
global $forceall, $senderissupplier, $dateSelector;
|
||||||
$forceall=1; $senderissupplier=1; $dateSelector=0;
|
$forceall=1; $senderissupplier=1; $dateSelector=0;
|
||||||
@ -1761,97 +1750,6 @@ elseif (! empty($object->id))
|
|||||||
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
$var=true;
|
|
||||||
print '<tr '.$bc[$var].'>';
|
|
||||||
print '<td>';
|
|
||||||
|
|
||||||
$forceall=1;
|
|
||||||
print $form->select_type_of_lines(isset($_POST["type"])?$_POST["type"]:-1,'type',1,0,$forceall);
|
|
||||||
if ($forceall || (! empty($conf->product->enabled) && ! empty($conf->service->enabled))
|
|
||||||
|| (empty($conf->product->enabled) && empty($conf->service->enabled))) print '<br>';
|
|
||||||
|
|
||||||
if (is_object($hookmanager))
|
|
||||||
{
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('formCreateProductOptions',$parameters,$object,$action);
|
|
||||||
}
|
|
||||||
|
|
||||||
$nbrows=ROWS_2;
|
|
||||||
if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT;
|
|
||||||
$doleditor = new DolEditor('dp_desc', GETPOST('dp_desc'), '', 100, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, $nbrows, 70);
|
|
||||||
$doleditor->Create();
|
|
||||||
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="center">';
|
|
||||||
print $form->load_tva('tva_tx',(GETPOST('tva_tx')?GETPOST('tva_tx'):-1),$object->thirdparty,$mysoc);
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right"><input type="text" name="pu" size="5" value="'.GETPOST('pu').'"></td>';
|
|
||||||
print '<td align="right"><input type="text" name="qty" value="'.(GETPOST('qty')?GETPOST('qty'):'1').'" size="2"></td>';
|
|
||||||
print '<td align="right" class="nowrap"><input type="text" name="remise_percent" size="1" value="'.(GETPOST('remise_percent')?GETPOST('remise_percent'):$object->thirdparty->remise_percent).'"><span class="hideonsmartphone">%</span></td>';
|
|
||||||
print '<td align="center" colspan="4"><input type="submit" class="button" value="'.$langs->trans('Add').'" name="addline_libre"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
// Ajout de produits/services predefinis
|
|
||||||
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled))
|
|
||||||
{
|
|
||||||
print '<script type="text/javascript">
|
|
||||||
jQuery(document).ready(function() {
|
|
||||||
jQuery(\'#idprodfournprice\').change(function() {
|
|
||||||
if (jQuery(\'#idprodfournprice\').val() > 0) jQuery(\'#np_desc\').focus();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>';
|
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td colspan="3">';
|
|
||||||
print $langs->trans("AddNewLine").' - ';
|
|
||||||
if (! empty($conf->service->enabled))
|
|
||||||
{
|
|
||||||
print $langs->trans('RecordedProductsAndServices');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $langs->trans('RecordedProducts');
|
|
||||||
}
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('Qty').'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('ReductionShort').'</td>';
|
|
||||||
print '<td colspan="4"> </td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
$var=!$var;
|
|
||||||
print '<tr '.$bc[$var].'>';
|
|
||||||
print '<td colspan="3">';
|
|
||||||
|
|
||||||
|
|
||||||
$ajaxoptions=array(
|
|
||||||
'update' => array('qty_predef'=>'qty','remise_percent_predef' => 'discount'), // html id tag will be edited with which ajax json response key
|
|
||||||
'option_disabled' => 'addPredefinedProductButton', // html id to disable once select is done
|
|
||||||
'error' => $langs->trans("NoPriceDefinedForThisSupplier") // translation of an error saved into var 'error'
|
|
||||||
);
|
|
||||||
$form->select_produits_fournisseurs($object->fourn_id, GETPOST('idprodfournprice'), 'idprodfournprice', '', '', $ajaxoptions);
|
|
||||||
|
|
||||||
if (empty($conf->global->PRODUIT_USE_SEARCH_TO_SELECT)) print '<br>';
|
|
||||||
|
|
||||||
if (is_object($hookmanager))
|
|
||||||
{
|
|
||||||
$parameters=array('htmlname'=>'idprodfournprice');
|
|
||||||
$reshook=$hookmanager->executeHooks('formCreateProductSupplierOptions',$parameters,$object,$action);
|
|
||||||
}
|
|
||||||
|
|
||||||
$nbrows=ROWS_2;
|
|
||||||
if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT;
|
|
||||||
$doleditor = new DolEditor('np_desc', GETPOST('np_desc'), '', 100, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, $nbrows, 70);
|
|
||||||
$doleditor->Create();
|
|
||||||
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right"><input type="text" size="2" id="qty_predef" name="qty_predef" value="'.(GETPOST('qty_predef')?GETPOST('qty_predef'):'1').'"></td>';
|
|
||||||
print '<td align="right" class="nowrap"><input type="text" size="1" id="remise_percent_predef" name="remise_percent_predef" value="'.(GETPOST('remise_percent_predef')?GETPOST('remise_percent_predef'):$object->thirdparty->remise_percent).'"><span class="hideonsmartphone">%</span></td>';
|
|
||||||
print '<td align="center" colspan="4"><input type="submit" id="addPredefinedProductButton" class="button" value="'.$langs->trans('Add').'" name="addline_predefined"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||||
|
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -115,7 +116,8 @@ if ($sall)
|
|||||||
}
|
}
|
||||||
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
||||||
|
|
||||||
if (GETPOST('statut')!='')
|
//Required triple check because statut=0 means draft filter
|
||||||
|
if (GETPOST('statut', 'int') !== '')
|
||||||
{
|
{
|
||||||
$sql .= " AND fk_statut IN (".GETPOST('statut').")";
|
$sql .= " AND fk_statut IN (".GETPOST('statut').")";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -363,6 +363,7 @@ elseif ($action == 'add' && $user->rights->fournisseur->facture->creer)
|
|||||||
if ($lines[$i]->date_fin_reel) $date_end=$lines[$i]->date_fin_reel;
|
if ($lines[$i]->date_fin_reel) $date_end=$lines[$i]->date_fin_reel;
|
||||||
if ($lines[$i]->date_end) $date_end=$lines[$i]->date_end;
|
if ($lines[$i]->date_end) $date_end=$lines[$i]->date_end;
|
||||||
|
|
||||||
|
// FIXME Missing $lines[$i]->ref_supplier and $lines[$i]->label into addline and updateline methods. They are filled when coming from order for example.
|
||||||
$result = $object->addline(
|
$result = $object->addline(
|
||||||
$desc,
|
$desc,
|
||||||
$lines[$i]->subprice,
|
$lines[$i]->subprice,
|
||||||
@ -466,9 +467,10 @@ elseif ($action == 'add' && $user->rights->fournisseur->facture->creer)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Modification d'une ligne
|
// Edit line
|
||||||
elseif ($action == 'update_line' && $user->rights->fournisseur->facture->creer)
|
elseif ($action == 'update_line' && $user->rights->fournisseur->facture->creer)
|
||||||
{
|
{
|
||||||
|
// TODO Missing transaction
|
||||||
if (GETPOST('etat') == '1' && ! GETPOST('cancel')) // si on valide la modification
|
if (GETPOST('etat') == '1' && ! GETPOST('cancel')) // si on valide la modification
|
||||||
{
|
{
|
||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
@ -516,6 +518,8 @@ elseif ($action == 'update_line' && $user->rights->fournisseur->facture->creer)
|
|||||||
|
|
||||||
elseif ($action == 'addline' && $user->rights->fournisseur->facture->creer)
|
elseif ($action == 'addline' && $user->rights->fournisseur->facture->creer)
|
||||||
{
|
{
|
||||||
|
$db->begin();
|
||||||
|
|
||||||
$ret=$object->fetch($id);
|
$ret=$object->fetch($id);
|
||||||
if ($ret < 0)
|
if ($ret < 0)
|
||||||
{
|
{
|
||||||
@ -601,6 +605,7 @@ elseif ($action == 'addline' && $user->rights->fournisseur->facture->creer)
|
|||||||
|
|
||||||
$type = $productsupplier->type;
|
$type = $productsupplier->type;
|
||||||
|
|
||||||
|
// TODO Save the product supplier ref into database into field ref_supplier (must rename field ref into ref_supplier first)
|
||||||
$result=$object->addline($desc, $productsupplier->fourn_pu, $tvatx, $localtax1tx, $localtax2tx, $qty, $idprod, $remise_percent, '', '', 0, $npr);
|
$result=$object->addline($desc, $productsupplier->fourn_pu, $tvatx, $localtax1tx, $localtax2tx, $qty, $idprod, $remise_percent, '', '', 0, $npr);
|
||||||
}
|
}
|
||||||
if ($idprod == -2 || $idprod == 0)
|
if ($idprod == -2 || $idprod == 0)
|
||||||
@ -655,6 +660,8 @@ elseif ($action == 'addline' && $user->rights->fournisseur->facture->creer)
|
|||||||
//print "xx".$tva_tx; exit;
|
//print "xx".$tva_tx; exit;
|
||||||
if (! $error && $result > 0)
|
if (! $error && $result > 0)
|
||||||
{
|
{
|
||||||
|
$db->commit();
|
||||||
|
|
||||||
// Define output language
|
// Define output language
|
||||||
$outputlangs = $langs;
|
$outputlangs = $langs;
|
||||||
$newlang=GETPOST('lang_id','alpha');
|
$newlang=GETPOST('lang_id','alpha');
|
||||||
@ -704,9 +711,13 @@ elseif ($action == 'addline' && $user->rights->fournisseur->facture->creer)
|
|||||||
unset($_POST['date_endmonth']);
|
unset($_POST['date_endmonth']);
|
||||||
unset($_POST['date_endyear']);
|
unset($_POST['date_endyear']);
|
||||||
}
|
}
|
||||||
else if (empty($mesg))
|
else
|
||||||
{
|
{
|
||||||
$mesg='<div class="error">'.$object->error.'</div>';
|
$db->rollback();
|
||||||
|
if (empty($mesg))
|
||||||
|
{
|
||||||
|
$mesg='<div class="error">'.$object->error.'</div>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$action = '';
|
$action = '';
|
||||||
@ -900,7 +911,7 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P
|
|||||||
$interface=new Interfaces($db);
|
$interface=new Interfaces($db);
|
||||||
$result=$interface->run_triggers('BILL_SUPPLIER_SENTBYMAIL',$object,$user,$langs,$conf);
|
$result=$interface->run_triggers('BILL_SUPPLIER_SENTBYMAIL',$object,$user,$langs,$conf);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++; $this->errors=$interface->errors;
|
$error++; $object->errors=$interface->errors;
|
||||||
}
|
}
|
||||||
// Fin appel triggers
|
// Fin appel triggers
|
||||||
|
|
||||||
@ -1141,10 +1152,10 @@ if ($action == 'create')
|
|||||||
$mode_reglement_id = (!empty($objectsrc->mode_reglement_id)?$objectsrc->mode_reglement_id:(!empty($soc->mode_reglement_supplier_id)?$soc->mode_reglement_supplier_id:0));
|
$mode_reglement_id = (!empty($objectsrc->mode_reglement_id)?$objectsrc->mode_reglement_id:(!empty($soc->mode_reglement_supplier_id)?$soc->mode_reglement_supplier_id:0));
|
||||||
$remise_percent = (!empty($objectsrc->remise_percent)?$objectsrc->remise_percent:(!empty($soc->remise_percent)?$soc->remise_percent:0));
|
$remise_percent = (!empty($objectsrc->remise_percent)?$objectsrc->remise_percent:(!empty($soc->remise_percent)?$soc->remise_percent:0));
|
||||||
$remise_absolue = (!empty($objectsrc->remise_absolue)?$objectsrc->remise_absolue:(!empty($soc->remise_absolue)?$soc->remise_absolue:0));
|
$remise_absolue = (!empty($objectsrc->remise_absolue)?$objectsrc->remise_absolue:(!empty($soc->remise_absolue)?$soc->remise_absolue:0));
|
||||||
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0;
|
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:'';
|
||||||
|
|
||||||
$datetmp=dol_mktime(12,0,0,$_POST['remonth'],$_POST['reday'],$_POST['reyear']);
|
$datetmp=dol_mktime(12,0,0,$_POST['remonth'],$_POST['reday'],$_POST['reyear']);
|
||||||
$dateinvoice=($datetmp==''?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0):$datetmp);
|
$dateinvoice=($datetmp==''?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:''):$datetmp);
|
||||||
$datetmp=dol_mktime(12,0,0,$_POST['echmonth'],$_POST['echday'],$_POST['echyear']);
|
$datetmp=dol_mktime(12,0,0,$_POST['echmonth'],$_POST['echday'],$_POST['echyear']);
|
||||||
$datedue=($datetmp==''?-1:$datetmp);
|
$datedue=($datetmp==''?-1:$datetmp);
|
||||||
}
|
}
|
||||||
@ -1154,7 +1165,7 @@ if ($action == 'create')
|
|||||||
$cond_reglement_id = $societe->cond_reglement_supplier_id;
|
$cond_reglement_id = $societe->cond_reglement_supplier_id;
|
||||||
$mode_reglement_id = $societe->mode_reglement_supplier_id;
|
$mode_reglement_id = $societe->mode_reglement_supplier_id;
|
||||||
$datetmp=dol_mktime(12,0,0,$_POST['remonth'],$_POST['reday'],$_POST['reyear']);
|
$datetmp=dol_mktime(12,0,0,$_POST['remonth'],$_POST['reday'],$_POST['reyear']);
|
||||||
$dateinvoice=($datetmp==''?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0):$datetmp);
|
$dateinvoice=($datetmp==''?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:''):$datetmp);
|
||||||
$datetmp=dol_mktime(12,0,0,$_POST['echmonth'],$_POST['echday'],$_POST['echyear']);
|
$datetmp=dol_mktime(12,0,0,$_POST['echmonth'],$_POST['echday'],$_POST['echyear']);
|
||||||
$datedue=($datetmp==''?-1:$datetmp);
|
$datedue=($datetmp==''?-1:$datetmp);
|
||||||
}
|
}
|
||||||
@ -2056,24 +2067,9 @@ else
|
|||||||
// Form to add new line
|
// Form to add new line
|
||||||
if ($object->statut == 0 && $action != 'edit_line')
|
if ($object->statut == 0 && $action != 'edit_line')
|
||||||
{
|
{
|
||||||
/*print '<tr class="liste_titre">';
|
|
||||||
print '<td>';
|
|
||||||
print '<a name="add"></a>'; // ancre
|
|
||||||
print $langs->trans('AddNewLine').' - '.$langs->trans("FreeZone").'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('VAT').'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('PriceUHT').'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('PriceUTTC').'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('Qty').'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('ReductionShort').'</td>';
|
|
||||||
print '<td align="right"> </td>';
|
|
||||||
print '<td align="right"> </td>';
|
|
||||||
print '<td> </td>';
|
|
||||||
print '<td> </td>';
|
|
||||||
print '</tr>';*/
|
|
||||||
|
|
||||||
global $forceall, $senderissupplier, $dateSelector, $inputalsopricewithtax;
|
global $forceall, $senderissupplier, $dateSelector, $inputalsopricewithtax;
|
||||||
$forceall=1; $senderissupplier=1; $dateSelector=0; $inputalsopricewithtax=1;
|
$forceall=1; $senderissupplier=1; $dateSelector=0; $inputalsopricewithtax=1;
|
||||||
if ($object->statut == 0 && $user->rights->propal->creer)
|
if ($object->statut == 0 && $user->rights->fournisseur->facture->creer)
|
||||||
{
|
{
|
||||||
if ($action != 'editline')
|
if ($action != 'editline')
|
||||||
{
|
{
|
||||||
@ -2086,108 +2082,6 @@ else
|
|||||||
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add free products/services form
|
|
||||||
/*
|
|
||||||
$var=true;
|
|
||||||
print '<tr '.$bc[$var].'>';
|
|
||||||
print '<td>';
|
|
||||||
|
|
||||||
$forceall=1; // For suppliers, we always show all types
|
|
||||||
print $form->select_type_of_lines(isset($_POST["type"])?$_POST["type"]:-1,'type',1,0,$forceall);
|
|
||||||
if ($forceall || (! empty($conf->product->enabled) && ! empty($conf->service->enabled))
|
|
||||||
|| (empty($conf->product->enabled) && empty($conf->service->enabled))) print '<br>';
|
|
||||||
|
|
||||||
if (is_object($hookmanager))
|
|
||||||
{
|
|
||||||
$parameters=array();
|
|
||||||
$reshook=$hookmanager->executeHooks('formCreateSupplierProductOptions',$parameters,$object,$action);
|
|
||||||
}
|
|
||||||
|
|
||||||
$nbrows=ROWS_2;
|
|
||||||
if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT;
|
|
||||||
$doleditor=new DolEditor('dp_desc',GETPOST("dp_desc"),'',100,'dolibarr_details','',false,true,$conf->global->FCKEDITOR_ENABLE_DETAILS,$nbrows,70);
|
|
||||||
$doleditor->Create();
|
|
||||||
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right">';
|
|
||||||
print $form->load_tva('tauxtva',(GETPOST('tauxtva')?GETPOST('tauxtva'):-1),$societe,$mysoc);
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right">';
|
|
||||||
print '<input size="4" name="amount" type="text" value="'.GETPOST("amount").'">';
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right">';
|
|
||||||
print '<input size="4" name="amountttc" type="text" value="'.GETPOST("amountttc").'">';
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right">';
|
|
||||||
print '<input size="1" name="qty" type="text" value="1" value="'.GETPOST("qty").'">';
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right" class="nowrap"><input size="1" name="remise_percent" type="text" value="'.(GETPOST('remise_percent')?GETPOST('remise_percent'):'0').'"><span class="hideonsmartphone">%</span></td>';
|
|
||||||
print '<td> </td>';
|
|
||||||
print '<td> </td>';
|
|
||||||
print '<td align="center" valign="middle" colspan="2"><input type="submit" class="button" value="'.$langs->trans('Add').'" name="addline_libre"></td></tr>';
|
|
||||||
|
|
||||||
// Ajout de produits/services predefinis
|
|
||||||
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled))
|
|
||||||
{
|
|
||||||
print '<script type="text/javascript">
|
|
||||||
jQuery(document).ready(function() {
|
|
||||||
jQuery(\'#idprodfournprice\').change(function() {
|
|
||||||
if (jQuery(\'#idprodfournprice\').val() > 0) jQuery(\'#np_desc\').focus();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>';
|
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td colspan="4">';
|
|
||||||
print $langs->trans("AddNewLine").' - ';
|
|
||||||
if (! empty($conf->service->enabled))
|
|
||||||
{
|
|
||||||
print $langs->trans('RecordedProductsAndServices');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $langs->trans('RecordedProducts');
|
|
||||||
}
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('Qty').'</td>';
|
|
||||||
print '<td align="right">'.$langs->trans('ReductionShort').'</td>';
|
|
||||||
print '<td> </td>';
|
|
||||||
print '<td colspan="4"> </td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
$var=! $var;
|
|
||||||
print '<tr '.$bc[$var].'>';
|
|
||||||
print '<td colspan="4">';
|
|
||||||
|
|
||||||
$ajaxoptions=array(
|
|
||||||
'update' => array('qty_predef'=>'qty','remise_percent_predef' => 'discount'), // html id tag will be edited with which ajax json response key
|
|
||||||
'disabled' => 'addPredefinedProductButton', // html id to disable once select is done
|
|
||||||
'error' => $langs->trans("NoPriceDefinedForThisSupplier") // translation of an error saved into var 'error'
|
|
||||||
);
|
|
||||||
$form->select_produits_fournisseurs($object->socid, GETPOST('idprodfournprice'), 'idprodfournprice', '', '', $ajaxoptions);
|
|
||||||
|
|
||||||
if (empty($conf->global->PRODUIT_USE_SEARCH_TO_SELECT)) print '<br>';
|
|
||||||
|
|
||||||
if (is_object($hookmanager))
|
|
||||||
{
|
|
||||||
$parameters=array('htmlname'=>'idprodfournprice');
|
|
||||||
$reshook=$hookmanager->executeHooks('formCreateProductSupplierOptions',$parameters,$object,$action);
|
|
||||||
}
|
|
||||||
|
|
||||||
$nbrows=ROWS_2;
|
|
||||||
if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT;
|
|
||||||
$doleditor = new DolEditor('np_desc', GETPOST('np_desc'), '', 100, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, $nbrows, 70);
|
|
||||||
$doleditor->Create();
|
|
||||||
|
|
||||||
print '</td>';
|
|
||||||
print '<td align="right"><input type="text" id="qty_predef" name="qty_predef" value="1" size="1"></td>';
|
|
||||||
print '<td align="right" class="nowrap"><input size="1" id="remise_percent_predef" name="remise_percent_predef" type="text" value="'.(GETPOST('remise_percent_predef')?GETPOST('remise_percent_predef'):'0').'"><span class="hideonsmartphone">%</span></td>';
|
|
||||||
print '<td> </td>';
|
|
||||||
print '<td> </td>';
|
|
||||||
print '<td align="center" valign="middle" colspan="2"><input type="submit" id="addPredefinedProductButton" class="button" value="'.$langs->trans("Add").'" name="addline_predefined"></td>';
|
|
||||||
print '</tr>';
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -31,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
||||||
|
|
||||||
if (! $user->rights->facture->lire) accessforbidden();
|
if (! $user->rights->fournisseur->facture->lire) accessforbidden();
|
||||||
|
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
|
|||||||
@ -243,7 +243,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
|
|||||||
$object->fetch($facid);
|
$object->fetch($facid);
|
||||||
|
|
||||||
$datefacture=dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
|
$datefacture=dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
|
||||||
$dateinvoice=($datefacture==''?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0):$datefacture);
|
$dateinvoice=($datefacture==''?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:''):$datefacture);
|
||||||
|
|
||||||
$sql = 'SELECT s.nom, s.rowid as socid,';
|
$sql = 'SELECT s.nom, s.rowid as socid,';
|
||||||
$sql.= ' f.rowid, f.ref, f.ref_supplier, f.amount, f.total_ttc as total';
|
$sql.= ' f.rowid, f.ref, f.ref_supplier, f.amount, f.total_ttc as total';
|
||||||
|
|||||||
@ -312,6 +312,7 @@ if ($object->fetch($id))
|
|||||||
$sql = "SELECT p.rowid,p.ref, p.date_commande as dc, p.fk_statut";
|
$sql = "SELECT p.rowid,p.ref, p.date_commande as dc, p.fk_statut";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as p ";
|
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as p ";
|
||||||
$sql.= " WHERE p.fk_soc =".$object->id;
|
$sql.= " WHERE p.fk_soc =".$object->id;
|
||||||
|
$sql.= " AND p.entity =".$conf->entity;
|
||||||
$sql.= " ORDER BY p.date_commande DESC";
|
$sql.= " ORDER BY p.date_commande DESC";
|
||||||
$sql.= " ".$db->plimit($MAXLIST);
|
$sql.= " ".$db->plimit($MAXLIST);
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
@ -380,6 +381,7 @@ if ($object->fetch($id))
|
|||||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as f';
|
$sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as f';
|
||||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON f.rowid=pf.fk_facturefourn';
|
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON f.rowid=pf.fk_facturefourn';
|
||||||
$sql.= ' WHERE f.fk_soc = '.$object->id;
|
$sql.= ' WHERE f.fk_soc = '.$object->id;
|
||||||
|
$sql.= " AND f.entity =".$conf->entity;
|
||||||
$sql.= ' GROUP BY f.rowid,f.libelle,f.ref_supplier,f.fk_statut,f.datef,f.total_ttc,f.paye';
|
$sql.= ' GROUP BY f.rowid,f.libelle,f.ref_supplier,f.fk_statut,f.datef,f.total_ttc,f.paye';
|
||||||
$sql.= ' ORDER BY f.datef DESC';
|
$sql.= ' ORDER BY f.datef DESC';
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
|
|||||||
@ -103,7 +103,7 @@ if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->fournisse
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'setnum' && ! empty($_POST['num_paiement']))
|
if ($action == 'setnum_paiement' && ! empty($_POST['num_paiement']))
|
||||||
{
|
{
|
||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
$res = $object->update_num($_POST['num_paiement']);
|
$res = $object->update_num($_POST['num_paiement']);
|
||||||
|
|||||||
@ -60,18 +60,18 @@ $cp = new Holiday($db);
|
|||||||
if ($action == "add")
|
if ($action == "add")
|
||||||
{
|
{
|
||||||
$message = '';
|
$message = '';
|
||||||
$error = false;
|
$error = 0;
|
||||||
|
|
||||||
// Option du groupe de validation
|
// Option du groupe de validation
|
||||||
/*if (!$cp->updateConfCP('userGroup',$_POST['userGroup']))
|
/*if (!$cp->updateConfCP('userGroup',$_POST['userGroup']))
|
||||||
{
|
{
|
||||||
$error = true;
|
$error++;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
// Option du délai pour faire une demande de congés payés
|
// Option du délai pour faire une demande de congés payés
|
||||||
if (!$cp->updateConfCP('delayForRequest',$_POST['delayForRequest']))
|
if (!$cp->updateConfCP('delayForRequest',$_POST['delayForRequest']))
|
||||||
{
|
{
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option du nombre de jours à ajouter chaque mois
|
// Option du nombre de jours à ajouter chaque mois
|
||||||
@ -79,67 +79,69 @@ if ($action == "add")
|
|||||||
|
|
||||||
if(!$cp->updateConfCP('nbHolidayEveryMonth',$nbHolidayEveryMonth))
|
if(!$cp->updateConfCP('nbHolidayEveryMonth',$nbHolidayEveryMonth))
|
||||||
{
|
{
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option du nombre de jours pour un mariage
|
// Option du nombre de jours pour un mariage
|
||||||
$OptMariageCP = price2num($_POST['OptMariage'],5);
|
$OptMariageCP = price2num($_POST['OptMariage'],5);
|
||||||
|
|
||||||
if(!$cp->updateConfCP('OptMariage',$OptMariageCP)) {
|
if(!$cp->updateConfCP('OptMariage',$OptMariageCP)) {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option du nombre de jours pour un décés d'un proche
|
// Option du nombre de jours pour un décés d'un proche
|
||||||
$OptDecesProcheCP = price2num($_POST['OptDecesProche'],5);
|
$OptDecesProcheCP = price2num($_POST['OptDecesProche'],5);
|
||||||
|
|
||||||
if(!$cp->updateConfCP('OptDecesProche',$OptDecesProcheCP)) {
|
if(!$cp->updateConfCP('OptDecesProche',$OptDecesProcheCP)) {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option du nombre de jours pour un mariage d'un enfant
|
// Option du nombre de jours pour un mariage d'un enfant
|
||||||
$OptMariageProcheCP = price2num($_POST['OptMariageProche'],5);
|
$OptMariageProcheCP = price2num($_POST['OptMariageProche'],5);
|
||||||
|
|
||||||
if(!$cp->updateConfCP('OptMariageProche',$OptMariageProcheCP)) {
|
if(!$cp->updateConfCP('OptMariageProche',$OptMariageProcheCP)) {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option du nombre de jours pour un décés d'un parent
|
// Option du nombre de jours pour un décés d'un parent
|
||||||
$OptDecesParentsCP = price2num($_POST['OptDecesParents'],5);
|
$OptDecesParentsCP = price2num($_POST['OptDecesParents'],5);
|
||||||
|
|
||||||
if(!$cp->updateConfCP('OptDecesParents',$OptDecesParentsCP)) {
|
if(!$cp->updateConfCP('OptDecesParents',$OptDecesParentsCP)) {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option pour avertir le valideur si délai de demande incorrect
|
// Option pour avertir le valideur si délai de demande incorrect
|
||||||
if(isset($_POST['AlertValidatorDelay'])) {
|
if(isset($_POST['AlertValidatorDelay'])) {
|
||||||
if(!$cp->updateConfCP('AlertValidatorDelay','1')) {
|
if(!$cp->updateConfCP('AlertValidatorDelay','1')) {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(!$cp->updateConfCP('AlertValidatorDelay','0')) {
|
if(!$cp->updateConfCP('AlertValidatorDelay','0')) {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option pour avertir le valideur si solde des congés de l'utilisateur inccorect
|
// Option pour avertir le valideur si solde des congés de l'utilisateur inccorect
|
||||||
if(isset($_POST['AlertValidatorSolde'])) {
|
if(isset($_POST['AlertValidatorSolde'])) {
|
||||||
if(!$cp->updateConfCP('AlertValidatorSolde','1')) {
|
if(!$cp->updateConfCP('AlertValidatorSolde','1')) {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(!$cp->updateConfCP('AlertValidatorSolde','0')) {
|
if(!$cp->updateConfCP('AlertValidatorSolde','0')) {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Option du nombre de jours à déduire pour 1 jour de congés
|
// Option du nombre de jours à déduire pour 1 jour de congés
|
||||||
$nbHolidayDeducted = price2num($_POST['nbHolidayDeducted'],2);
|
$nbHolidayDeducted = price2num($_POST['nbHolidayDeducted'],2);
|
||||||
|
|
||||||
if(!$cp->updateConfCP('nbHolidayDeducted',$nbHolidayDeducted)) {
|
if(!$cp->updateConfCP('nbHolidayDeducted',$nbHolidayDeducted))
|
||||||
$error = true;
|
{
|
||||||
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error) {
|
if ($error)
|
||||||
|
{
|
||||||
$message = '<div class="error">'.$langs->trans('ErrorUpdateConfCP').'</div>';
|
$message = '<div class="error">'.$langs->trans('ErrorUpdateConfCP').'</div>';
|
||||||
} else {
|
} else {
|
||||||
$message = '<div class="ok">'.$langs->trans('UpdateConfCPOK').'</div>';
|
$message = '<div class="ok">'.$langs->trans('UpdateConfCPOK').'</div>';
|
||||||
@ -151,8 +153,8 @@ if ($action == "add")
|
|||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$num = $db->num_rows($sql);
|
$num = $db->num_rows($sql);
|
||||||
|
if($num < 1)
|
||||||
if($num < 1) {
|
{
|
||||||
$cp->createCPusers();
|
$cp->createCPusers();
|
||||||
$message.= '<br /><div class="warning">'.$langs->trans('AddCPforUsers').'</div>';
|
$message.= '<br /><div class="warning">'.$langs->trans('AddCPforUsers').'</div>';
|
||||||
}
|
}
|
||||||
@ -202,7 +204,7 @@ elseif ($action == 'create_event')
|
|||||||
}
|
}
|
||||||
elseif($action == 'event' && isset($_POST['update_event']))
|
elseif($action == 'event' && isset($_POST['update_event']))
|
||||||
{
|
{
|
||||||
$error = false;
|
$error = 0;
|
||||||
|
|
||||||
$eventId = array_keys($_POST['update_event']);
|
$eventId = array_keys($_POST['update_event']);
|
||||||
$eventId = $eventId[0];
|
$eventId = $eventId[0];
|
||||||
@ -213,19 +215,21 @@ elseif($action == 'event' && isset($_POST['update_event']))
|
|||||||
$eventValue = $optValue;
|
$eventValue = $optValue;
|
||||||
$eventValue = $eventValue[$eventId];
|
$eventValue = $eventValue[$eventId];
|
||||||
|
|
||||||
if(!empty($eventName)) {
|
if (!empty($eventName))
|
||||||
|
{
|
||||||
$eventName = trim($eventName);
|
$eventName = trim($eventName);
|
||||||
} else {
|
} else {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!empty($eventValue)) {
|
if (!empty($eventValue))
|
||||||
|
{
|
||||||
$eventValue = price2num($eventValue,2);
|
$eventValue = price2num($eventValue,2);
|
||||||
} else {
|
} else {
|
||||||
$error = true;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!$error)
|
if (!$error)
|
||||||
{
|
{
|
||||||
// Mise à jour des congés de l'utilisateur
|
// Mise à jour des congés de l'utilisateur
|
||||||
$update = $cp->updateEventCP($eventId,$eventName,$eventValue);
|
$update = $cp->updateEventCP($eventId,$eventName,$eventValue);
|
||||||
|
|||||||
@ -82,7 +82,7 @@ if ($action == 'update' && isset($_POST['update_cp']))
|
|||||||
$sql.= " value = '".dol_print_date($now,'%Y%m%d%H%M%S')."'";
|
$sql.= " value = '".dol_print_date($now,'%Y%m%d%H%M%S')."'";
|
||||||
$sql.= " WHERE name = 'lastUpdate' and value IS NULL"; // Add value IS NULL to be sure to update only at init.
|
$sql.= " WHERE name = 'lastUpdate' and value IS NULL"; // Add value IS NULL to be sure to update only at init.
|
||||||
dol_syslog('define_holiday update lastUpdate entry sql='.$sql);
|
dol_syslog('define_holiday update lastUpdate entry sql='.$sql);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
|
|
||||||
$mesg='<div class="ok">'.$langs->trans('UpdateConfCPOK').'</div>';
|
$mesg='<div class="ok">'.$langs->trans('UpdateConfCPOK').'</div>';
|
||||||
|
|
||||||
@ -91,21 +91,24 @@ if ($action == 'update' && isset($_POST['update_cp']))
|
|||||||
}
|
}
|
||||||
elseif($action == 'add_event')
|
elseif($action == 'add_event')
|
||||||
{
|
{
|
||||||
$error = false;
|
$error = 0;
|
||||||
|
|
||||||
if(!empty($_POST['list_event']) && $_POST['list_event'] > 0) {
|
if(!empty($_POST['list_event']) && $_POST['list_event'] > 0) {
|
||||||
$event = $_POST['list_event'];
|
$event = $_POST['list_event'];
|
||||||
} else { $error = true;
|
} else { $error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!empty($_POST['userCP']) && $_POST['userCP'] > 0) {
|
if(!empty($_POST['userCP']) && $_POST['userCP'] > 0) {
|
||||||
$userCP = $_POST['userCP'];
|
$userCP = $_POST['userCP'];
|
||||||
} else { $error = true;
|
} else { $erro++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($error) {
|
if ($error)
|
||||||
|
{
|
||||||
$message = '<div class="error">'.$langs->trans('ErrorAddEventToUserCP').'</div>';
|
$message = '<div class="error">'.$langs->trans('ErrorAddEventToUserCP').'</div>';
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$nb_holiday = $holiday->getCPforUser($userCP);
|
$nb_holiday = $holiday->getCPforUser($userCP);
|
||||||
$add_holiday = $holiday->getValueEventCp($event);
|
$add_holiday = $holiday->getValueEventCp($event);
|
||||||
$new_holiday = $nb_holiday + $add_holiday;
|
$new_holiday = $nb_holiday + $add_holiday;
|
||||||
|
|||||||
@ -443,7 +443,8 @@ else
|
|||||||
$choice .= '<td class="listofchoices">';
|
$choice .= '<td class="listofchoices">';
|
||||||
$choice .= $langs->trans("UpgradeDesc");
|
$choice .= $langs->trans("UpgradeDesc");
|
||||||
|
|
||||||
if ($recommended_choice) {
|
if ($recommended_choice)
|
||||||
|
{
|
||||||
$choice .= '<br>';
|
$choice .= '<br>';
|
||||||
//print $langs->trans("InstallChoiceRecommanded",DOL_VERSION,$conf->global->MAIN_VERSION_LAST_UPGRADE);
|
//print $langs->trans("InstallChoiceRecommanded",DOL_VERSION,$conf->global->MAIN_VERSION_LAST_UPGRADE);
|
||||||
$choice .= '<center><div class="ok">'.$langs->trans("InstallChoiceSuggested").'</div>';
|
$choice .= '<center><div class="ok">'.$langs->trans("InstallChoiceSuggested").'</div>';
|
||||||
@ -475,6 +476,13 @@ else
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If there is no choice at all, we show all of them.
|
||||||
|
if (empty($available_choices))
|
||||||
|
{
|
||||||
|
$available_choices=$notavailable_choices;
|
||||||
|
$notavailable_choices=array();
|
||||||
|
}
|
||||||
|
|
||||||
// Array of install choices
|
// Array of install choices
|
||||||
print '<table width="100%" class="listofchoices">';
|
print '<table width="100%" class="listofchoices">';
|
||||||
foreach ($available_choices as $choice) {
|
foreach ($available_choices as $choice) {
|
||||||
|
|||||||
@ -11,8 +11,10 @@
|
|||||||
-- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
|
-- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
|
||||||
-- To restrict request to Mysql version x.y use -- VMYSQLx.y
|
-- To restrict request to Mysql version x.y use -- VMYSQLx.y
|
||||||
-- To restrict request to Pgsql version x.y use -- VPGSQLx.y
|
-- To restrict request to Pgsql version x.y use -- VPGSQLx.y
|
||||||
-- To make pk to be auto increment (mysql): VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
|
-- To make pk to be auto increment (mysql): VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
|
||||||
-- To make pk to be auto increment (postgres) VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE
|
-- To make pk to be auto increment (postgres): VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE
|
||||||
|
-- To remove a not null status (mysql): VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN colname integer NULL;
|
||||||
|
-- To remove a not null status (postgres): VPGSQL8.2 ALTER TABLE llx_table ALTER colname DROP NOT NULL;
|
||||||
|
|
||||||
-- -- VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user);
|
-- -- VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user);
|
||||||
-- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup);
|
-- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup);
|
||||||
@ -323,6 +325,8 @@ ALTER TABLE llx_facture_fourn ADD fk_mode_reglement integer NULL AFTER fk_cond_r
|
|||||||
|
|
||||||
ALTER TABLE llx_facture_fourn MODIFY COLUMN fk_mode_reglement integer NULL;
|
ALTER TABLE llx_facture_fourn MODIFY COLUMN fk_mode_reglement integer NULL;
|
||||||
ALTER TABLE llx_facture_fourn MODIFY COLUMN fk_cond_reglement integer NULL;
|
ALTER TABLE llx_facture_fourn MODIFY COLUMN fk_cond_reglement integer NULL;
|
||||||
|
-- VPGSQL8.2 ALTER TABLE llx_facture_fourn ALTER fk_mode_reglement DROP NOT NULL;
|
||||||
|
-- VPGSQL8.2 ALTER TABLE llx_facture_fourn ALTER fk_cond_reglement DROP NOT NULL;
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (9,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1);
|
INSERT INTO llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (9,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1);
|
||||||
|
|||||||
@ -1198,4 +1198,6 @@ create table llx_c_type_resource
|
|||||||
|
|
||||||
ALTER TABLE llx_c_type_resource ADD UNIQUE INDEX uk_c_type_resource_id (label, code);
|
ALTER TABLE llx_c_type_resource ADD UNIQUE INDEX uk_c_type_resource_id (label, code);
|
||||||
|
|
||||||
ALTER TABLE llx_mailing_cibles ADD INDEX idx_mailing_cibles_fk_mailing_email (fk_mailing,email);
|
-- Fix: Missing instruction not correctly done into 3.5
|
||||||
|
-- VPGSQL8.2 ALTER TABLE llx_facture_fourn ALTER fk_mode_reglement DROP NOT NULL;
|
||||||
|
-- VPGSQL8.2 ALTER TABLE llx_facture_fourn ALTER fk_cond_reglement DROP NOT NULL;
|
||||||
@ -25,7 +25,7 @@ create table llx_commande
|
|||||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
|
||||||
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(255), -- reference into an internal system (used by dolibarr)
|
ref_int varchar(255), -- reference into an internal system (deprecated)
|
||||||
ref_client varchar(255), -- reference for customer
|
ref_client varchar(255), -- reference for customer
|
||||||
|
|
||||||
fk_soc integer NOT NULL,
|
fk_soc integer NOT NULL,
|
||||||
|
|||||||
@ -28,7 +28,7 @@ create table llx_expedition
|
|||||||
fk_soc integer NOT NULL,
|
fk_soc integer NOT NULL,
|
||||||
|
|
||||||
ref_ext varchar(30), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(30), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(30), -- reference into an internal system (used by dolibarr)
|
ref_int varchar(30), -- reference into an internal system (used by dolibarr to store extern id like paypal info)
|
||||||
ref_customer varchar(30), -- customer number
|
ref_customer varchar(30), -- customer number
|
||||||
|
|
||||||
date_creation datetime, -- date de creation
|
date_creation datetime, -- date de creation
|
||||||
|
|||||||
@ -28,7 +28,7 @@ create table llx_facture
|
|||||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
|
||||||
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(255), -- reference into an internal system (used by dolibarr)
|
ref_int varchar(255), -- reference into an internal system (used by dolibarr to store extern id like paypal info)
|
||||||
ref_client varchar(255), -- reference for customer
|
ref_client varchar(255), -- reference for customer
|
||||||
|
|
||||||
type smallint DEFAULT 0 NOT NULL, -- type of invoice
|
type smallint DEFAULT 0 NOT NULL, -- type of invoice
|
||||||
|
|||||||
@ -26,7 +26,7 @@ create table llx_livraison
|
|||||||
fk_soc integer NOT NULL,
|
fk_soc integer NOT NULL,
|
||||||
|
|
||||||
ref_ext varchar(30), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(30), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(30), -- reference into an internal system (used by dolibarr)
|
ref_int varchar(30), -- reference into an internal system (used by dolibarr to store extern id like paypal info)
|
||||||
ref_customer varchar(30), -- customer number
|
ref_customer varchar(30), -- customer number
|
||||||
|
|
||||||
date_creation datetime, -- date de creation
|
date_creation datetime, -- date de creation
|
||||||
|
|||||||
@ -26,7 +26,7 @@ create table llx_propal
|
|||||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
|
||||||
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(255), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(255), -- reference into an internal system (used by dolibarr)
|
ref_int varchar(255), -- reference into an internal system (used by dolibarr to store extern id like paypal info)
|
||||||
ref_client varchar(255), -- customer proposal number
|
ref_client varchar(255), -- customer proposal number
|
||||||
|
|
||||||
fk_soc integer,
|
fk_soc integer,
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
-- ========================================================================
|
-- ========================================================================
|
||||||
-- Copyright (C) 2000-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
-- Copyright (C) 2000-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
-- Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
-- Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
-- Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
|
-- Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
-- Copyright (C) 2010 Juanjo Menent <dolibarr@2byte.es>
|
-- Copyright (C) 2010 Juanjo Menent <dolibarr@2byte.es>
|
||||||
--
|
--
|
||||||
@ -22,11 +22,11 @@
|
|||||||
create table llx_societe
|
create table llx_societe
|
||||||
(
|
(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
nom varchar(60), -- company reference name
|
nom varchar(60), -- company reference name
|
||||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
|
||||||
ref_ext varchar(128), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(128), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(60), -- reference into an internal system (used by dolibarr)
|
ref_int varchar(60), -- reference into an internal system (deprecated)
|
||||||
|
|
||||||
statut tinyint DEFAULT 0, -- statut
|
statut tinyint DEFAULT 0, -- statut
|
||||||
parent integer,
|
parent integer,
|
||||||
|
|||||||
@ -24,7 +24,7 @@ create table llx_user
|
|||||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
|
||||||
ref_ext varchar(50), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(50), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(50), -- reference into an internal system (used by dolibarr)
|
ref_int varchar(50), -- reference into an internal system (deprecated)
|
||||||
|
|
||||||
datec datetime,
|
datec datetime,
|
||||||
tms timestamp,
|
tms timestamp,
|
||||||
|
|||||||
@ -116,7 +116,7 @@ LanguageBrowserParameter=الوحدة %s
|
|||||||
LocalisationDolibarrParameters=الوحدات المحلية
|
LocalisationDolibarrParameters=الوحدات المحلية
|
||||||
ClientTZ=Client Time Zone (user)
|
ClientTZ=Client Time Zone (user)
|
||||||
ClientHour=Client time (user)
|
ClientHour=Client time (user)
|
||||||
OSTZ=المنطقة الزمنية لنظام تشغيل الخادم
|
OSTZ=Server OS Time Zone
|
||||||
PHPTZ=المنطقة الزمنية خادم PHP
|
PHPTZ=المنطقة الزمنية خادم PHP
|
||||||
PHPServerOffsetWithGreenwich=عرض وزنية جرينتش لخادم لغة الـ PHP (ثانية)
|
PHPServerOffsetWithGreenwich=عرض وزنية جرينتش لخادم لغة الـ PHP (ثانية)
|
||||||
ClientOffsetWithGreenwich=عرض وزنية الجرينتش للعميل / المتصفح (ثانية)
|
ClientOffsetWithGreenwich=عرض وزنية الجرينتش للعميل / المتصفح (ثانية)
|
||||||
@ -233,7 +233,9 @@ OfficialWebSiteFr=الفرنسية الموقع الرسمي
|
|||||||
OfficialWiki=Dolibarr يكي
|
OfficialWiki=Dolibarr يكي
|
||||||
OfficialDemo=Dolibarr الانترنت التجريبي
|
OfficialDemo=Dolibarr الانترنت التجريبي
|
||||||
OfficialMarketPlace=المسؤول عن وحدات السوق الخارجية / أدونس
|
OfficialMarketPlace=المسؤول عن وحدات السوق الخارجية / أدونس
|
||||||
OfficialWebHostingService=Official web hosting services (Cloud hosting)
|
OfficialWebHostingService=Referenced web hosting services (Cloud hosting)
|
||||||
|
ReferencedPreferredPartners=Preferred Partners
|
||||||
|
OtherResources=Autres ressources
|
||||||
ForDocumentationSeeWiki=For user's or developer's documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target=للمستخدم أو للتطوير وثائق (مستدات ،...)، أسئلة وأجوبة <br> إلقاء نظرة على ويكي Dolibarr : <br> <a href="%s" target="_blank"><b>ق ٪</b></a>
|
ForDocumentationSeeWiki=For user's or developer's documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target=للمستخدم أو للتطوير وثائق (مستدات ،...)، أسئلة وأجوبة <br> إلقاء نظرة على ويكي Dolibarr : <br> <a href="%s" target="_blank"><b>ق ٪</b></a>
|
||||||
ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target=عن أي أسئلة أخرى / مساعدة ، يمكنك استخدام Dolibarr المنتدى : <br> <a href="%s" target="_blank"><b>ق ٪</b></a>
|
ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target=عن أي أسئلة أخرى / مساعدة ، يمكنك استخدام Dolibarr المنتدى : <br> <a href="%s" target="_blank"><b>ق ٪</b></a>
|
||||||
HelpCenterDesc1=هذا المجال يمكن أن تساعدك في الحصول على مساعدة لتقديم خدمات الدعم على Dolibarr.
|
HelpCenterDesc1=هذا المجال يمكن أن تساعدك في الحصول على مساعدة لتقديم خدمات الدعم على Dolibarr.
|
||||||
@ -369,9 +371,9 @@ ExtrafieldSelectList = Select from table
|
|||||||
ExtrafieldSeparator=Separator
|
ExtrafieldSeparator=Separator
|
||||||
ExtrafieldCheckBox=Checkbox
|
ExtrafieldCheckBox=Checkbox
|
||||||
ExtrafieldRadio=Radio button
|
ExtrafieldRadio=Radio button
|
||||||
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
|
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
|
||||||
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||||
LibraryToBuildPDF=Library used to build PDF
|
LibraryToBuildPDF=Library used to build PDF
|
||||||
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
||||||
@ -472,7 +474,7 @@ Module410Desc=Webcalendar التكامل
|
|||||||
Module500Name=Special expenses (tax, social contributions, dividends)
|
Module500Name=Special expenses (tax, social contributions, dividends)
|
||||||
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
|
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
|
||||||
Module510Name=Salaries
|
Module510Name=Salaries
|
||||||
Module510Desc=Management of empoyees salaries and payments
|
Module510Desc=Management of employees salaries and payments
|
||||||
Module600Name=الإخطارات
|
Module600Name=الإخطارات
|
||||||
Module600Desc=إرسال الإشعارات عن طريق البريد الإلكتروني على بعض الفعاليات التجارية Dolibarr لطرف ثالث اتصالات
|
Module600Desc=إرسال الإشعارات عن طريق البريد الإلكتروني على بعض الفعاليات التجارية Dolibarr لطرف ثالث اتصالات
|
||||||
Module700Name=التبرعات
|
Module700Name=التبرعات
|
||||||
@ -495,15 +497,15 @@ Module2400Name=جدول الأعمال
|
|||||||
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
|
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
|
||||||
Module2500Name=إدارة المحتوى الإلكتروني
|
Module2500Name=إدارة المحتوى الإلكتروني
|
||||||
Module2500Desc=حفظ وتبادل الوثائق
|
Module2500Desc=حفظ وتبادل الوثائق
|
||||||
Module2600Name= WebServices
|
Module2600Name=WebServices
|
||||||
Module2600Desc= تمكين خدمات الويب Dolibarr الملقم
|
Module2600Desc=تمكين خدمات الويب Dolibarr الملقم
|
||||||
Module2700Name= غرفتر
|
Module2700Name=غرفتر
|
||||||
Module2700Desc= استخدام خدمة غرفتر على الانترنت (www.gravatar.com) لإظهار الصورة من المستخدمين / أعضاء (وجدت مع رسائل البريد الإلكتروني الخاصة بهم). في حاجة الى الوصول الى شبكة الانترنت
|
Module2700Desc=استخدام خدمة غرفتر على الانترنت (www.gravatar.com) لإظهار الصورة من المستخدمين / أعضاء (وجدت مع رسائل البريد الإلكتروني الخاصة بهم). في حاجة الى الوصول الى شبكة الانترنت
|
||||||
Module2800Desc=FTP Client
|
Module2800Desc=FTP Client
|
||||||
Module2900Name= GeoIPMaxmind
|
Module2900Name=GeoIPMaxmind
|
||||||
Module2900Desc= GeoIP التحويلات Maxmind القدرات
|
Module2900Desc=GeoIP التحويلات Maxmind القدرات
|
||||||
Module3100Name= Skype
|
Module3100Name=Skype
|
||||||
Module3100Desc= Add a Skype button into card of adherents / third parties / contacts
|
Module3100Desc=Add a Skype button into card of adherents / third parties / contacts
|
||||||
Module5000Name=شركة متعددة
|
Module5000Name=شركة متعددة
|
||||||
Module5000Desc=يسمح لك لإدارة الشركات المتعددة
|
Module5000Desc=يسمح لك لإدارة الشركات المتعددة
|
||||||
Module6000Name=Workflow
|
Module6000Name=Workflow
|
||||||
@ -681,6 +683,10 @@ Permission401=قراءة خصومات
|
|||||||
Permission402=إنشاء / تعديل الخصومات
|
Permission402=إنشاء / تعديل الخصومات
|
||||||
Permission403=تحقق من الخصومات
|
Permission403=تحقق من الخصومات
|
||||||
Permission404=حذف خصومات
|
Permission404=حذف خصومات
|
||||||
|
Permission510=Read Salaries
|
||||||
|
Permission512=Create/modify salaries
|
||||||
|
Permission514=Delete salaries
|
||||||
|
Permission517=Export salaries
|
||||||
Permission531=قراءة الخدمات
|
Permission531=قراءة الخدمات
|
||||||
Permission532=إنشاء / تعديل الخدمات
|
Permission532=إنشاء / تعديل الخدمات
|
||||||
Permission534=حذف خدمات
|
Permission534=حذف خدمات
|
||||||
@ -999,7 +1005,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders)
|
|||||||
ExtraFieldsSupplierInvoices=Complementary attributes (invoices)
|
ExtraFieldsSupplierInvoices=Complementary attributes (invoices)
|
||||||
ExtraFieldsProject=Complementary attributes (projects)
|
ExtraFieldsProject=Complementary attributes (projects)
|
||||||
ExtraFieldsProjectTask=Complementary attributes (tasks)
|
ExtraFieldsProjectTask=Complementary attributes (tasks)
|
||||||
ExtraFieldHasWrongValue=قيمة الخاصية %s له قيمة خاطئة.
|
ExtraFieldHasWrongValue=Attribute %s has a wrong value.
|
||||||
AlphaNumOnlyCharsAndNoSpace=only alphanumericals characters without space
|
AlphaNumOnlyCharsAndNoSpace=only alphanumericals characters without space
|
||||||
AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
|
AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
|
||||||
SendingMailSetup=الإعداد من sendings عن طريق البريد الإلكتروني
|
SendingMailSetup=الإعداد من sendings عن طريق البريد الإلكتروني
|
||||||
@ -1018,13 +1024,13 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin
|
|||||||
ConditionIsCurrently=Condition is currently %s
|
ConditionIsCurrently=Condition is currently %s
|
||||||
TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
|
TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
|
||||||
YouUseBestDriver=You use driver %s that is best driver available currently.
|
YouUseBestDriver=You use driver %s that is best driver available currently.
|
||||||
YouDoNotUseBestDriver=You use drive %s but driver %s is recommanded.
|
YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
|
||||||
NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
|
NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
|
||||||
SearchOptim=Search optimization
|
SearchOptim=Search optimization
|
||||||
YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
|
YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
|
||||||
BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
|
BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
|
||||||
BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
|
BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
|
||||||
XDebugInstalled=XDebug est chargé.
|
XDebugInstalled=XDebug is loaded.
|
||||||
XCacheInstalled=XCache is loaded.
|
XCacheInstalled=XCache is loaded.
|
||||||
AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
|
AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
|
||||||
FieldEdition=Edition of field %s
|
FieldEdition=Edition of field %s
|
||||||
@ -1073,7 +1079,7 @@ WebCalServer=خدمة استضافة قاعدة بيانات التقويم
|
|||||||
WebCalDatabaseName=اسم قاعدة البيانات
|
WebCalDatabaseName=اسم قاعدة البيانات
|
||||||
WebCalUser=المستخدم من الوصول إلى قاعدة البيانات
|
WebCalUser=المستخدم من الوصول إلى قاعدة البيانات
|
||||||
WebCalSetupSaved=أنقذ Webcalendar الإعداد بنجاح.
|
WebCalSetupSaved=أنقذ Webcalendar الإعداد بنجاح.
|
||||||
WebCalTestOk=علاقة الخادم '٪ ق' على قاعدة البيانات '٪ ق' مستخدم '٪ ق' ناجحة.
|
WebCalTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
|
||||||
WebCalTestKo1=علاقة الخادم '٪ ق' تنجح ولكن قاعدة البيانات '٪ ق' لا يمكن التوصل إليها.
|
WebCalTestKo1=علاقة الخادم '٪ ق' تنجح ولكن قاعدة البيانات '٪ ق' لا يمكن التوصل إليها.
|
||||||
WebCalTestKo2=علاقة الخادم '٪ ق' مستخدم '٪ ق' فشلت.
|
WebCalTestKo2=علاقة الخادم '٪ ق' مستخدم '٪ ق' فشلت.
|
||||||
WebCalErrorConnectOkButWrongDatabase=نجح الصدد ولكن قاعدة البيانات لا يبدو أن Webcalendar في قاعدة البيانات.
|
WebCalErrorConnectOkButWrongDatabase=نجح الصدد ولكن قاعدة البيانات لا يبدو أن Webcalendar في قاعدة البيانات.
|
||||||
@ -1119,7 +1125,7 @@ WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty)
|
|||||||
OrdersSetup=أوامر إدارة الإعداد
|
OrdersSetup=أوامر إدارة الإعداد
|
||||||
OrdersNumberingModules=أوامر الترقيم نمائط
|
OrdersNumberingModules=أوامر الترقيم نمائط
|
||||||
OrdersModelModule=وثائق من أجل النماذج
|
OrdersModelModule=وثائق من أجل النماذج
|
||||||
HideTreadedOrders=إخفاء أو معاملة الغاء الاوامر في قائمة
|
HideTreadedOrders=Hide the treated or cancelled orders in the list
|
||||||
ValidOrderAfterPropalClosed=للمصادقة على النظام بعد اقتراح أوثق ، لا يجعل من الممكن للخطوة من جانب النظام المؤقت
|
ValidOrderAfterPropalClosed=للمصادقة على النظام بعد اقتراح أوثق ، لا يجعل من الممكن للخطوة من جانب النظام المؤقت
|
||||||
FreeLegalTextOnOrders=بناء على أوامر النص الحر
|
FreeLegalTextOnOrders=بناء على أوامر النص الحر
|
||||||
WatermarkOnDraftOrders=Watermark on draft orders (none if empty)
|
WatermarkOnDraftOrders=Watermark on draft orders (none if empty)
|
||||||
@ -1214,9 +1220,9 @@ LDAPSynchroKO=فشل تزامن الاختبار
|
|||||||
LDAPSynchroKOMayBePermissions=تزامن فشل الاختبار. تأكد من أن ارتباط لخادم تهيئتها بشكل صحيح ، ويسمح LDAP udpates
|
LDAPSynchroKOMayBePermissions=تزامن فشل الاختبار. تأكد من أن ارتباط لخادم تهيئتها بشكل صحيح ، ويسمح LDAP udpates
|
||||||
LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=ربط برنامج التعاون الفني لخادم LDAP ناجحة (٪ ق= خادم بورت= ٪)
|
LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=ربط برنامج التعاون الفني لخادم LDAP ناجحة (٪ ق= خادم بورت= ٪)
|
||||||
LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=ربط برنامج التعاون الفني لخادم LDAP فشل (خادم ق= ٪ بورت= ٪)
|
LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=ربط برنامج التعاون الفني لخادم LDAP فشل (خادم ق= ٪ بورت= ٪)
|
||||||
LDAPBindOK=Connect/Authentificate to LDAP server sucessfull (Server=%s, Port=%s, Admin=%s, Password=ربط / Authentificate ناجحة لخادم LDAP (خادم ق= ٪ بورت= ٪ ق ، ق= ٪ الادارية ، كلمة المرور= ٪)
|
LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
|
||||||
LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=ربط / Authentificate لخادم LDAP فشل (خادم ق= ٪ بورت= ٪ ق ، ق= ٪ الادارية ، كلمة المرور= ٪)
|
LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=ربط / Authentificate لخادم LDAP فشل (خادم ق= ٪ بورت= ٪ ق ، ق= ٪ الادارية ، كلمة المرور= ٪)
|
||||||
LDAPUnbindSuccessfull=فصل ناجحة
|
LDAPUnbindSuccessfull=Disconnect successful
|
||||||
LDAPUnbindFailed=قطع فشل
|
LDAPUnbindFailed=قطع فشل
|
||||||
LDAPConnectToDNSuccessfull=الاتحاد الافريقي بصدد DN (٪) ري ¿½ ussie
|
LDAPConnectToDNSuccessfull=الاتحاد الافريقي بصدد DN (٪) ري ¿½ ussie
|
||||||
LDAPConnectToDNFailed=الاتحاد الافريقي بصدد DN (٪) ¿½ ï ¿½ ه chouï
|
LDAPConnectToDNFailed=الاتحاد الافريقي بصدد DN (٪) ¿½ ï ¿½ ه chouï
|
||||||
@ -1273,7 +1279,7 @@ LDAPFieldSidExample=مثال ذلك : objectsid
|
|||||||
LDAPFieldEndLastSubscription=تاريخ انتهاء الاكتتاب
|
LDAPFieldEndLastSubscription=تاريخ انتهاء الاكتتاب
|
||||||
LDAPFieldTitle=وظيفة / وظيفة
|
LDAPFieldTitle=وظيفة / وظيفة
|
||||||
LDAPFieldTitleExample=Example: title
|
LDAPFieldTitleExample=Example: title
|
||||||
LDAPParametersAreStillHardCoded=LDAP المعايير ما زالت hardcoded (الطبقة اتصال)
|
LDAPParametersAreStillHardCoded=LDAP parameters are still hardcoded (in contact class)
|
||||||
LDAPSetupNotComplete=LDAP الإعداد غير كاملة (على آخرين علامات التبويب)
|
LDAPSetupNotComplete=LDAP الإعداد غير كاملة (على آخرين علامات التبويب)
|
||||||
LDAPNoUserOrPasswordProvidedAccessIsReadOnly=أي مدير أو كلمة السر. LDAP الوصول مجهولة وسيكون في قراءة فقط.
|
LDAPNoUserOrPasswordProvidedAccessIsReadOnly=أي مدير أو كلمة السر. LDAP الوصول مجهولة وسيكون في قراءة فقط.
|
||||||
LDAPDescContact=تسمح لك هذه الصفحة لتحديد اسم LDAP الصفات LDAP شجرة في كل البيانات التي وجدت على Dolibarr الاتصالات.
|
LDAPDescContact=تسمح لك هذه الصفحة لتحديد اسم LDAP الصفات LDAP شجرة في كل البيانات التي وجدت على Dolibarr الاتصالات.
|
||||||
@ -1429,7 +1435,7 @@ OptionVATDefault=القياسية
|
|||||||
OptionVATDebitOption=الخيار خدمات الخصم
|
OptionVATDebitOption=الخيار خدمات الخصم
|
||||||
OptionVatDefaultDesc=ومن المقرر ان ضريبة القيمة المضافة : <br> -- التسليم / الدفع للسلع <br> -- على دفع تكاليف الخدمات
|
OptionVatDefaultDesc=ومن المقرر ان ضريبة القيمة المضافة : <br> -- التسليم / الدفع للسلع <br> -- على دفع تكاليف الخدمات
|
||||||
OptionVatDebitOptionDesc=ومن المقرر ان ضريبة القيمة المضافة : <br> -- التسليم / الدفع للسلع <br> -- على الفاتورة (الخصم) للخدمات
|
OptionVatDebitOptionDesc=ومن المقرر ان ضريبة القيمة المضافة : <br> -- التسليم / الدفع للسلع <br> -- على الفاتورة (الخصم) للخدمات
|
||||||
SummaryOfVatExigibilityUsedByDefault=زمن افتراضي exigibility ضريبة القيمة المضافة وفقا لخيار choosed :
|
SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
|
||||||
OnDelivery=التسليم
|
OnDelivery=التسليم
|
||||||
OnPayment=عن الدفع
|
OnPayment=عن الدفع
|
||||||
OnInvoice=على فاتورة
|
OnInvoice=على فاتورة
|
||||||
@ -1446,7 +1452,7 @@ AccountancyCodeBuy=Purchase account. code
|
|||||||
AgendaSetup=جدول الأعمال وحدة الإعداد
|
AgendaSetup=جدول الأعمال وحدة الإعداد
|
||||||
PasswordTogetVCalExport=مفتاح ربط تصدير تأذن
|
PasswordTogetVCalExport=مفتاح ربط تصدير تأذن
|
||||||
PastDelayVCalExport=لا تصدر الحدث الأكبر من
|
PastDelayVCalExport=لا تصدر الحدث الأكبر من
|
||||||
AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionnary -> Type of agenda events)
|
AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events)
|
||||||
##### ClickToDial #####
|
##### ClickToDial #####
|
||||||
ClickToDialDesc=هذا النموذج يسمح لإضافة رمز بعد رقم هاتف Dolibarr الاتصالات. وهناك اضغط على هذه الأيقونة ، سوف يطلب من أحد serveur معينة مع تحديد عنوان لكم أدناه. ويمكن استخدام هذه الكلمة لدعوة من مركز نظام Dolibarr التي يمكن الاتصال على رقم الهاتف هذا المسبار النظام على سبيل المثال.
|
ClickToDialDesc=هذا النموذج يسمح لإضافة رمز بعد رقم هاتف Dolibarr الاتصالات. وهناك اضغط على هذه الأيقونة ، سوف يطلب من أحد serveur معينة مع تحديد عنوان لكم أدناه. ويمكن استخدام هذه الكلمة لدعوة من مركز نظام Dolibarr التي يمكن الاتصال على رقم الهاتف هذا المسبار النظام على سبيل المثال.
|
||||||
##### Point Of Sales (CashDesk) #####
|
##### Point Of Sales (CashDesk) #####
|
||||||
|
|||||||
@ -89,6 +89,8 @@ ListOfServicesToExpireWithDuration=List of Services to expire in %s days
|
|||||||
ListOfServicesToExpireWithDurationNeg=List of Services expired from more than %s days
|
ListOfServicesToExpireWithDurationNeg=List of Services expired from more than %s days
|
||||||
ListOfServicesToExpire=List of Services to expire
|
ListOfServicesToExpire=List of Services to expire
|
||||||
NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative.
|
NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative.
|
||||||
|
StandardContractsTemplate=Standard contracts template
|
||||||
|
ContactNameAndSignature=For %s, name and signature:
|
||||||
|
|
||||||
##### Types de contacts #####
|
##### Types de contacts #####
|
||||||
TypeContact_contrat_internal_SALESREPSIGN=ممثل مبيعات توقيع العقد
|
TypeContact_contrat_internal_SALESREPSIGN=ممثل مبيعات توقيع العقد
|
||||||
|
|||||||
@ -8,7 +8,7 @@ ImportableDatas=بيانات وارداتها
|
|||||||
SelectExportDataSet=اختر البيانات التي تريد تصديرها...
|
SelectExportDataSet=اختر البيانات التي تريد تصديرها...
|
||||||
SelectImportDataSet=اختر البيانات التي تريد الاستيراد...
|
SelectImportDataSet=اختر البيانات التي تريد الاستيراد...
|
||||||
SelectExportFields=اختيار الحقول التي تريد تصديرها ، أو اختيار ملف التصدير مسبقا
|
SelectExportFields=اختيار الحقول التي تريد تصديرها ، أو اختيار ملف التصدير مسبقا
|
||||||
SelectImportFields=اختيار الحقول التي تريد استيراد ، أو حدد ملف استيراد محددة سلفا ،
|
SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile:
|
||||||
NotImportedFields=حقول من الملف المصدر يتم استيراد
|
NotImportedFields=حقول من الملف المصدر يتم استيراد
|
||||||
SaveExportModel=احفظ هذا التصدير صورة لو كنت تخطط لإعادة استخدامها في وقت لاحق...
|
SaveExportModel=احفظ هذا التصدير صورة لو كنت تخطط لإعادة استخدامها في وقت لاحق...
|
||||||
SaveImportModel=إنقاذ هذه استيراد صورة لو كنت تخطط لإعادة استخدامها في وقت لاحق...
|
SaveImportModel=إنقاذ هذه استيراد صورة لو كنت تخطط لإعادة استخدامها في وقت لاحق...
|
||||||
@ -81,7 +81,7 @@ DoNotImportFirstLine=لا استيراد السطر الأول من الملف
|
|||||||
NbOfSourceLines=عدد الأسطر في الملف المصدر
|
NbOfSourceLines=عدد الأسطر في الملف المصدر
|
||||||
NowClickToTestTheImport=الاختيار المعلمات استيراد عرفتها. وإذا كانت صحيحة ، انقر على <b>%s</b> "زر" لإطلاق محاكاة لعملية الاستيراد (يمكن تغيير أية بيانات في قاعدة البيانات وسوف ، انها مجرد محاكاة لحظة)...
|
NowClickToTestTheImport=الاختيار المعلمات استيراد عرفتها. وإذا كانت صحيحة ، انقر على <b>%s</b> "زر" لإطلاق محاكاة لعملية الاستيراد (يمكن تغيير أية بيانات في قاعدة البيانات وسوف ، انها مجرد محاكاة لحظة)...
|
||||||
RunSimulateImportFile=بدء استيراد محاكاة
|
RunSimulateImportFile=بدء استيراد محاكاة
|
||||||
FieldNeedSource=هذا يشعر في قاعدة البيانات تتطلب البيانات من الملف المصدر
|
FieldNeedSource=This field requires data from the source file
|
||||||
SomeMandatoryFieldHaveNoSource=بعض الحقول إلزامية ليس لديها مصدر من ملف البيانات
|
SomeMandatoryFieldHaveNoSource=بعض الحقول إلزامية ليس لديها مصدر من ملف البيانات
|
||||||
InformationOnSourceFile=معلومات عن الملف المصدر
|
InformationOnSourceFile=معلومات عن الملف المصدر
|
||||||
InformationOnTargetTables=معلومات عن الهدف الحقول
|
InformationOnTargetTables=معلومات عن الهدف الحقول
|
||||||
|
|||||||
@ -8,7 +8,6 @@ NotActiveModCP=You must enable the module holidays to view this page.
|
|||||||
NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
NotConfigModCP=You must configure the module holidays to view this page. To do this, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> click here </ a>.
|
||||||
NoCPforUser=You don't have a demand for holidays.
|
NoCPforUser=You don't have a demand for holidays.
|
||||||
AddCP=Apply for holidays
|
AddCP=Apply for holidays
|
||||||
CPErrorSQL=An SQL error occurred:
|
|
||||||
Employe=Employee
|
Employe=Employee
|
||||||
DateDebCP=تاريخ البدء
|
DateDebCP=تاريخ البدء
|
||||||
DateFinCP=نهاية التاريخ
|
DateFinCP=نهاية التاريخ
|
||||||
|
|||||||
@ -19,6 +19,7 @@ Language_en_SA=English (Saudi Arabia)
|
|||||||
Language_en_US=الإنكليزية (الولايات المتحدة)
|
Language_en_US=الإنكليزية (الولايات المتحدة)
|
||||||
Language_en_ZA=English (South Africa)
|
Language_en_ZA=English (South Africa)
|
||||||
Language_es_ES=الأسبانية
|
Language_es_ES=الأسبانية
|
||||||
|
Language_es_DO=Spanish (Dominican Republic)
|
||||||
Language_es_AR=الأسبانية (الأرجنتين)
|
Language_es_AR=الأسبانية (الأرجنتين)
|
||||||
Language_es_CL=Spanish (Chile)
|
Language_es_CL=Spanish (Chile)
|
||||||
Language_es_HN=الأسبانية (هندوراس)
|
Language_es_HN=الأسبانية (هندوراس)
|
||||||
@ -38,6 +39,7 @@ Language_fr_NC=French (New Caledonia)
|
|||||||
Language_he_IL=Hebrew
|
Language_he_IL=Hebrew
|
||||||
Language_hr_HR=Croatian
|
Language_hr_HR=Croatian
|
||||||
Language_hu_HU=المجري
|
Language_hu_HU=المجري
|
||||||
|
Language_id_ID=Indonesian
|
||||||
Language_is_IS=الآيسلندي
|
Language_is_IS=الآيسلندي
|
||||||
Language_it_IT=الإيطالي
|
Language_it_IT=الإيطالي
|
||||||
Language_ja_JP=اليابانية
|
Language_ja_JP=اليابانية
|
||||||
|
|||||||
@ -79,6 +79,7 @@ MailtoEMail=Hyper link to email
|
|||||||
ActivateCheckRead=Allow to use the "Unsubcribe" link
|
ActivateCheckRead=Allow to use the "Unsubcribe" link
|
||||||
ActivateCheckReadKey=Key use to encrypt URL use for "Read Receipt" and "Unsubcribe" feature
|
ActivateCheckReadKey=Key use to encrypt URL use for "Read Receipt" and "Unsubcribe" feature
|
||||||
EMailSentToNRecipients=EMail sent to %s recipients.
|
EMailSentToNRecipients=EMail sent to %s recipients.
|
||||||
|
XTargetsAdded=<b>%s</b> recipients added into target list
|
||||||
EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
|
EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
|
||||||
MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
|
MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
|
||||||
SendRemind=Send reminder by EMails
|
SendRemind=Send reminder by EMails
|
||||||
|
|||||||
@ -551,6 +551,7 @@ MailSentBy=البريد الإلكتروني التي بعث بها
|
|||||||
TextUsedInTheMessageBody=هيئة البريد الإلكتروني
|
TextUsedInTheMessageBody=هيئة البريد الإلكتروني
|
||||||
SendAcknowledgementByMail=ارسال Ack. عن طريق البريد الإلكتروني
|
SendAcknowledgementByMail=ارسال Ack. عن طريق البريد الإلكتروني
|
||||||
NoEMail=أي بريد إلكتروني
|
NoEMail=أي بريد إلكتروني
|
||||||
|
NoMobilePhone=No mobile phone
|
||||||
Owner=مالك
|
Owner=مالك
|
||||||
DetectedVersion=اكتشاف نسخة
|
DetectedVersion=اكتشاف نسخة
|
||||||
FollowingConstantsWillBeSubstituted=الثوابت التالية ستكون بديلا المقابلة القيمة.
|
FollowingConstantsWillBeSubstituted=الثوابت التالية ستكون بديلا المقابلة القيمة.
|
||||||
|
|||||||
@ -28,8 +28,10 @@ ProductsAndServicesStatistics=المنتجات والخدمات والإحصاء
|
|||||||
ProductsStatistics=المنتجات إحصاءات
|
ProductsStatistics=المنتجات إحصاءات
|
||||||
ProductsOnSell=بيع المنتجات
|
ProductsOnSell=بيع المنتجات
|
||||||
ProductsNotOnSell=من بيع المنتجات
|
ProductsNotOnSell=من بيع المنتجات
|
||||||
|
ProductsOnSellAndOnBuy=Products not for sale nor purchase
|
||||||
ServicesOnSell=خدمات البيع
|
ServicesOnSell=خدمات البيع
|
||||||
ServicesNotOnSell=من بيع الخدمات
|
ServicesNotOnSell=من بيع الخدمات
|
||||||
|
ServicesOnSellAndOnBuy=Services not for sale nor purchase
|
||||||
InternalRef=إشارة الداخلية
|
InternalRef=إشارة الداخلية
|
||||||
LastRecorded=آخر المنتجات والخدمات المسجلة على بيع
|
LastRecorded=آخر المنتجات والخدمات المسجلة على بيع
|
||||||
LastRecordedProductsAndServices=٪ ق الماضي سجلت المنتجات / الخدمات
|
LastRecordedProductsAndServices=٪ ق الماضي سجلت المنتجات / الخدمات
|
||||||
@ -70,6 +72,8 @@ PublicPrice=السعر العام
|
|||||||
CurrentPrice=السعر الحالي
|
CurrentPrice=السعر الحالي
|
||||||
NewPrice=السعر الجديد
|
NewPrice=السعر الجديد
|
||||||
MinPrice=القطرة. سعر البيع
|
MinPrice=القطرة. سعر البيع
|
||||||
|
MinPriceHT=Minim. selling price (net of tax)
|
||||||
|
MinPriceTTC=Minim. selling price (inc. tax)
|
||||||
CantBeLessThanMinPrice=سعر البيع لا يمكن أن يكون أقل من الحد الأدنى المسموح لهذا المنتج (٪ ق بدون الضرائب)
|
CantBeLessThanMinPrice=سعر البيع لا يمكن أن يكون أقل من الحد الأدنى المسموح لهذا المنتج (٪ ق بدون الضرائب)
|
||||||
ContractStatus=عقد مركز
|
ContractStatus=عقد مركز
|
||||||
ContractStatusClosed=مغلقة
|
ContractStatusClosed=مغلقة
|
||||||
@ -179,6 +183,7 @@ ProductIsUsed=ويستخدم هذا المنتج
|
|||||||
NewRefForClone=المرجع. من المنتجات الجديدة / خدمة
|
NewRefForClone=المرجع. من المنتجات الجديدة / خدمة
|
||||||
CustomerPrices=أسعار العملاء
|
CustomerPrices=أسعار العملاء
|
||||||
SuppliersPrices=أسعار الموردين
|
SuppliersPrices=أسعار الموردين
|
||||||
|
SuppliersPricesOfProductsOrServices=Suppliers prices (of products or services)
|
||||||
CustomCode=قانون الجمارك
|
CustomCode=قانون الجمارك
|
||||||
CountryOrigin=بلد المنشأ
|
CountryOrigin=بلد المنشأ
|
||||||
HiddenIntoCombo=مخبأة في قوائم مختارة
|
HiddenIntoCombo=مخبأة في قوائم مختارة
|
||||||
@ -208,6 +213,7 @@ CostPmpHT=Net total VWAP
|
|||||||
ProductUsedForBuild=Auto consumed by production
|
ProductUsedForBuild=Auto consumed by production
|
||||||
ProductBuilded=Production completed
|
ProductBuilded=Production completed
|
||||||
ProductsMultiPrice=Product multi-price
|
ProductsMultiPrice=Product multi-price
|
||||||
|
ProductsOrServiceMultiPrice=Customers prices (of products or services, multi-prices)
|
||||||
ProductSellByQuarterHT=Products turnover quarterly VWAP
|
ProductSellByQuarterHT=Products turnover quarterly VWAP
|
||||||
ServiceSellByQuarterHT=Services turnover quarterly VWAP
|
ServiceSellByQuarterHT=Services turnover quarterly VWAP
|
||||||
Quarter1=1st. Quarter
|
Quarter1=1st. Quarter
|
||||||
|
|||||||
@ -112,6 +112,7 @@ ReplenishmentOrdersDesc=This is list of all opened supplier orders
|
|||||||
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)
|
||||||
NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
|
NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
|
||||||
|
MassMovement=Mass movement
|
||||||
MassStockMovement=Mass stock movement
|
MassStockMovement=Mass stock movement
|
||||||
SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s".
|
SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s".
|
||||||
RecordMovement=Record transfert
|
RecordMovement=Record transfert
|
||||||
|
|||||||
@ -116,7 +116,7 @@ LanguageBrowserParameter=Параметър %s
|
|||||||
LocalisationDolibarrParameters=Локализация параметри
|
LocalisationDolibarrParameters=Локализация параметри
|
||||||
ClientTZ=Client Time Zone (user)
|
ClientTZ=Client Time Zone (user)
|
||||||
ClientHour=Client time (user)
|
ClientHour=Client time (user)
|
||||||
OSTZ=Servre OS Time Zone
|
OSTZ=Server OS Time Zone
|
||||||
PHPTZ=PHP server Time Zone
|
PHPTZ=PHP server Time Zone
|
||||||
PHPServerOffsetWithGreenwich=PHP сървъра компенсира широчина Гринуич (секунди)
|
PHPServerOffsetWithGreenwich=PHP сървъра компенсира широчина Гринуич (секунди)
|
||||||
ClientOffsetWithGreenwich=Клиент / Browser компенсира широчина Гринуич (секунди)
|
ClientOffsetWithGreenwich=Клиент / Browser компенсира широчина Гринуич (секунди)
|
||||||
@ -233,7 +233,9 @@ OfficialWebSiteFr=Френски официален уеб сайт
|
|||||||
OfficialWiki=Dolibarr документация на Wiki
|
OfficialWiki=Dolibarr документация на Wiki
|
||||||
OfficialDemo=Dolibarr онлайн демо
|
OfficialDemo=Dolibarr онлайн демо
|
||||||
OfficialMarketPlace=Официален магазин за външни модули/добавки
|
OfficialMarketPlace=Официален магазин за външни модули/добавки
|
||||||
OfficialWebHostingService=Официален уеб хостинг услуга (Cloud хостинг)
|
OfficialWebHostingService=Referenced web hosting services (Cloud hosting)
|
||||||
|
ReferencedPreferredPartners=Preferred Partners
|
||||||
|
OtherResources=Autres ressources
|
||||||
ForDocumentationSeeWiki=Документация за потребител или разработчик (Doc, често задавани въпроси ...), <br> можете да намерите в Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
|
ForDocumentationSeeWiki=Документация за потребител или разработчик (Doc, често задавани въпроси ...), <br> можете да намерите в Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
|
||||||
ForAnswersSeeForum=За всякакви други въпроси / Помощ, можете да използвате форума Dolibarr: <br> <a href="%s" target="_blank"><b>%s</b></a>
|
ForAnswersSeeForum=За всякакви други въпроси / Помощ, можете да използвате форума Dolibarr: <br> <a href="%s" target="_blank"><b>%s</b></a>
|
||||||
HelpCenterDesc1=Тази област може да ви помогне да получите помощ и поддръжка за Dolibarr.
|
HelpCenterDesc1=Тази област може да ви помогне да получите помощ и поддръжка за Dolibarr.
|
||||||
@ -369,9 +371,9 @@ ExtrafieldSelectList = Select from table
|
|||||||
ExtrafieldSeparator=Separator
|
ExtrafieldSeparator=Separator
|
||||||
ExtrafieldCheckBox=Checkbox
|
ExtrafieldCheckBox=Checkbox
|
||||||
ExtrafieldRadio=Радио бутон
|
ExtrafieldRadio=Радио бутон
|
||||||
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
|
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
|
||||||
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||||
LibraryToBuildPDF=Library used to build PDF
|
LibraryToBuildPDF=Library used to build PDF
|
||||||
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
||||||
@ -472,7 +474,7 @@ Module410Desc=Webcalendar интеграция
|
|||||||
Module500Name=Special expenses (tax, social contributions, dividends)
|
Module500Name=Special expenses (tax, social contributions, dividends)
|
||||||
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
|
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
|
||||||
Module510Name=Salaries
|
Module510Name=Salaries
|
||||||
Module510Desc=Management of empoyees salaries and payments
|
Module510Desc=Management of employees salaries and payments
|
||||||
Module600Name=Известия
|
Module600Name=Известия
|
||||||
Module600Desc=Изпращане известия по имейл за някои бизнес събития в Dolibarr към трети лица
|
Module600Desc=Изпращане известия по имейл за някои бизнес събития в Dolibarr към трети лица
|
||||||
Module700Name=Дарения
|
Module700Name=Дарения
|
||||||
@ -495,15 +497,15 @@ Module2400Name=Дневен ред
|
|||||||
Module2400Desc=Събития/задачи и управление на дневен ред
|
Module2400Desc=Събития/задачи и управление на дневен ред
|
||||||
Module2500Name=Електронно Управление на Съдържанието
|
Module2500Name=Електронно Управление на Съдържанието
|
||||||
Module2500Desc=Запазване и споделяне на документи
|
Module2500Desc=Запазване и споделяне на документи
|
||||||
Module2600Name= WebServices
|
Module2600Name=WebServices
|
||||||
Module2600Desc= Активирайте сървъра на Dolibarr за уеб услуги
|
Module2600Desc=Активирайте сървъра на Dolibarr за уеб услуги
|
||||||
Module2700Name= Gravatar
|
Module2700Name=Gravatar
|
||||||
Module2700Desc= Използвайте онлайн Gravatar услуга (www.gravatar.com), за да покаже снимка на потребители / членове с техните имейли. Нуждаете се от интернет
|
Module2700Desc=Използвайте онлайн Gravatar услуга (www.gravatar.com), за да покаже снимка на потребители / членове с техните имейли. Нуждаете се от интернет
|
||||||
Module2800Desc=FTP Клиент
|
Module2800Desc=FTP Клиент
|
||||||
Module2900Name= GeoIPMaxmind
|
Module2900Name=GeoIPMaxmind
|
||||||
Module2900Desc= GeoIP MaxMind реализации възможности
|
Module2900Desc=GeoIP MaxMind реализации възможности
|
||||||
Module3100Name= Skype
|
Module3100Name=Skype
|
||||||
Module3100Desc= Add a Skype button into card of adherents / third parties / contacts
|
Module3100Desc=Add a Skype button into card of adherents / third parties / contacts
|
||||||
Module5000Name=Няколко фирми
|
Module5000Name=Няколко фирми
|
||||||
Module5000Desc=Позволява ви да управлявате няколко фирми
|
Module5000Desc=Позволява ви да управлявате няколко фирми
|
||||||
Module6000Name=Workflow
|
Module6000Name=Workflow
|
||||||
@ -681,6 +683,10 @@ Permission401=Прочети отстъпки
|
|||||||
Permission402=Създаване / промяна на отстъпки
|
Permission402=Създаване / промяна на отстъпки
|
||||||
Permission403=Проверка на отстъпки
|
Permission403=Проверка на отстъпки
|
||||||
Permission404=Изтриване на отстъпки
|
Permission404=Изтриване на отстъпки
|
||||||
|
Permission510=Read Salaries
|
||||||
|
Permission512=Create/modify salaries
|
||||||
|
Permission514=Delete salaries
|
||||||
|
Permission517=Export salaries
|
||||||
Permission531=Прочети услуги
|
Permission531=Прочети услуги
|
||||||
Permission532=Създаване / промяна услуги
|
Permission532=Създаване / промяна услуги
|
||||||
Permission534=Изтриване на услуги
|
Permission534=Изтриване на услуги
|
||||||
@ -999,7 +1005,7 @@ ExtraFieldsSupplierOrders=Complementary attributes (orders)
|
|||||||
ExtraFieldsSupplierInvoices=Complementary attributes (invoices)
|
ExtraFieldsSupplierInvoices=Complementary attributes (invoices)
|
||||||
ExtraFieldsProject=Complementary attributes (projects)
|
ExtraFieldsProject=Complementary attributes (projects)
|
||||||
ExtraFieldsProjectTask=Complementary attributes (tasks)
|
ExtraFieldsProjectTask=Complementary attributes (tasks)
|
||||||
ExtraFieldHasWrongValue=Attribut %s има грешна стойност.
|
ExtraFieldHasWrongValue=Attribute %s has a wrong value.
|
||||||
AlphaNumOnlyCharsAndNoSpace=само героите alphanumericals без пространство
|
AlphaNumOnlyCharsAndNoSpace=само героите alphanumericals без пространство
|
||||||
AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
|
AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
|
||||||
SendingMailSetup=Настройка на изпращане по имейл
|
SendingMailSetup=Настройка на изпращане по имейл
|
||||||
@ -1018,13 +1024,13 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin
|
|||||||
ConditionIsCurrently=Condition is currently %s
|
ConditionIsCurrently=Condition is currently %s
|
||||||
TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
|
TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
|
||||||
YouUseBestDriver=You use driver %s that is best driver available currently.
|
YouUseBestDriver=You use driver %s that is best driver available currently.
|
||||||
YouDoNotUseBestDriver=You use drive %s but driver %s is recommanded.
|
YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
|
||||||
NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
|
NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
|
||||||
SearchOptim=Search optimization
|
SearchOptim=Search optimization
|
||||||
YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
|
YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
|
||||||
BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
|
BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
|
||||||
BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
|
BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
|
||||||
XDebugInstalled=XDebug est chargé.
|
XDebugInstalled=XDebug is loaded.
|
||||||
XCacheInstalled=XCache is loaded.
|
XCacheInstalled=XCache is loaded.
|
||||||
AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
|
AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
|
||||||
FieldEdition=Edition of field %s
|
FieldEdition=Edition of field %s
|
||||||
@ -1073,7 +1079,7 @@ WebCalServer=Хостинг сървър календар база данни
|
|||||||
WebCalDatabaseName=Име на базата данни
|
WebCalDatabaseName=Име на базата данни
|
||||||
WebCalUser=Потребителя за достъп до базата данни
|
WebCalUser=Потребителя за достъп до базата данни
|
||||||
WebCalSetupSaved=Webcalendar настройка запазена успешно.
|
WebCalSetupSaved=Webcalendar настройка запазена успешно.
|
||||||
WebCalTestOk=Връзка към "%s" сървър на "%s" база данни с успешен потребителски %s.
|
WebCalTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
|
||||||
WebCalTestKo1=Свързване към сървър "%s успее, но база данни" %s "не може да бъде постигнато.
|
WebCalTestKo1=Свързване към сървър "%s успее, но база данни" %s "не може да бъде постигнато.
|
||||||
WebCalTestKo2=Връзка към сървъра "%s" с потребителя %s "се провали.
|
WebCalTestKo2=Връзка към сървъра "%s" с потребителя %s "се провали.
|
||||||
WebCalErrorConnectOkButWrongDatabase=Връзка успял, но базата данни не изглежда да е база данни Webcalendar.
|
WebCalErrorConnectOkButWrongDatabase=Връзка успял, но базата данни не изглежда да е база данни Webcalendar.
|
||||||
@ -1119,7 +1125,7 @@ WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty)
|
|||||||
OrdersSetup=Настройки за управление на поръчки
|
OrdersSetup=Настройки за управление на поръчки
|
||||||
OrdersNumberingModules=Поръчки номериране модули
|
OrdersNumberingModules=Поръчки номериране модули
|
||||||
OrdersModelModule=Поръчка документи модели
|
OrdersModelModule=Поръчка документи модели
|
||||||
HideTreadedOrders=Скриване на третираните или отказани поръчки в списъка
|
HideTreadedOrders=Hide the treated or cancelled orders in the list
|
||||||
ValidOrderAfterPropalClosed=Да се потвърди ред след предложението близо, това прави възможно да не се увеличат с временния ред
|
ValidOrderAfterPropalClosed=Да се потвърди ред след предложението близо, това прави възможно да не се увеличат с временния ред
|
||||||
FreeLegalTextOnOrders=Свободен текст на поръчки
|
FreeLegalTextOnOrders=Свободен текст на поръчки
|
||||||
WatermarkOnDraftOrders=Watermark on draft orders (none if empty)
|
WatermarkOnDraftOrders=Watermark on draft orders (none if empty)
|
||||||
@ -1214,9 +1220,9 @@ LDAPSynchroKO=Неуспешно синхронизиране тест
|
|||||||
LDAPSynchroKOMayBePermissions=Неуспешно синхронизиране тест. Уверете се, че свързването със сървъра е конфигуриран правилно и позволява LDAP udpates
|
LDAPSynchroKOMayBePermissions=Неуспешно синхронизиране тест. Уверете се, че свързването със сървъра е конфигуриран правилно и позволява LDAP udpates
|
||||||
LDAPTCPConnectOK=TCP свърже с LDAP сървъра успешни (сървър = %s, Порт = %s)
|
LDAPTCPConnectOK=TCP свърже с LDAP сървъра успешни (сървър = %s, Порт = %s)
|
||||||
LDAPTCPConnectKO=TCP се свърже с LDAP сървъра не успя (Server = %s, Port = %s)
|
LDAPTCPConnectKO=TCP се свърже с LDAP сървъра не успя (Server = %s, Port = %s)
|
||||||
LDAPBindOK=Свързване / Authentificate сървъра sucessfull LDAP (сървър = %s, Port = %s, Admin = %s, парола = %s)
|
LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
|
||||||
LDAPBindKO=Свързване / Authentificate LDAP сървъра се провали (сървър = %s, Port = %s, Admin = %s, парола = %s)
|
LDAPBindKO=Свързване / Authentificate LDAP сървъра се провали (сървър = %s, Port = %s, Admin = %s, парола = %s)
|
||||||
LDAPUnbindSuccessfull=Изключете успешно
|
LDAPUnbindSuccessfull=Disconnect successful
|
||||||
LDAPUnbindFailed=Изключете не успя
|
LDAPUnbindFailed=Изключете не успя
|
||||||
LDAPConnectToDNSuccessfull=Връзка о DN (%s) РИ ¿½ ussie
|
LDAPConnectToDNSuccessfull=Връзка о DN (%s) РИ ¿½ ussie
|
||||||
LDAPConnectToDNFailed=Връзка о DN (%s) ï ¿½ chouï ¿½ д
|
LDAPConnectToDNFailed=Връзка о DN (%s) ï ¿½ chouï ¿½ д
|
||||||
@ -1273,7 +1279,7 @@ LDAPFieldSidExample=Пример: objectsid
|
|||||||
LDAPFieldEndLastSubscription=Дата на абонамент края
|
LDAPFieldEndLastSubscription=Дата на абонамент края
|
||||||
LDAPFieldTitle=Мнение / Функция
|
LDAPFieldTitle=Мнение / Функция
|
||||||
LDAPFieldTitleExample=Example: title
|
LDAPFieldTitleExample=Example: title
|
||||||
LDAPParametersAreStillHardCoded=LDAP параметри все още кодиран (в контакт клас)
|
LDAPParametersAreStillHardCoded=LDAP parameters are still hardcoded (in contact class)
|
||||||
LDAPSetupNotComplete=LDAP настройка не е пълна (отидете на други раздели)
|
LDAPSetupNotComplete=LDAP настройка не е пълна (отидете на други раздели)
|
||||||
LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Не администратор или парола. LDAP достъп ще бъдат анонимни и в режим само за четене.
|
LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Не администратор или парола. LDAP достъп ще бъдат анонимни и в режим само за четене.
|
||||||
LDAPDescContact=Тази страница ви позволява да дефинирате LDAP атрибути име в LDAP дърво за всеки намерени данни за контактите на Dolibarr.
|
LDAPDescContact=Тази страница ви позволява да дефинирате LDAP атрибути име в LDAP дърво за всеки намерени данни за контактите на Dolibarr.
|
||||||
@ -1429,7 +1435,7 @@ OptionVATDefault=Стандарт
|
|||||||
OptionVATDebitOption=Вариант услуги по дебитни
|
OptionVATDebitOption=Вариант услуги по дебитни
|
||||||
OptionVatDefaultDesc=Се дължи ДДС: <br> - При доставка на стоки (ние използваме датата на фактурата) <br> - Плащания за услуги
|
OptionVatDefaultDesc=Се дължи ДДС: <br> - При доставка на стоки (ние използваме датата на фактурата) <br> - Плащания за услуги
|
||||||
OptionVatDebitOptionDesc=Се дължи ДДС: <br> - При доставка на стоки (ние използваме датата на фактурата) <br> - По фактура (дебитно) за услуги
|
OptionVatDebitOptionDesc=Се дължи ДДС: <br> - При доставка на стоки (ние използваме датата на фактурата) <br> - По фактура (дебитно) за услуги
|
||||||
SummaryOfVatExigibilityUsedByDefault=Време на изискуемост на ДДС по подразбиране, според няма избрана опция:
|
SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
|
||||||
OnDelivery=При доставка
|
OnDelivery=При доставка
|
||||||
OnPayment=На плащане
|
OnPayment=На плащане
|
||||||
OnInvoice=На фактура
|
OnInvoice=На фактура
|
||||||
@ -1446,7 +1452,7 @@ AccountancyCodeBuy=Purchase account. code
|
|||||||
AgendaSetup=Събития и натъкмяване на дневен ред модул
|
AgendaSetup=Събития и натъкмяване на дневен ред модул
|
||||||
PasswordTogetVCalExport=, За да разреши износ връзка
|
PasswordTogetVCalExport=, За да разреши износ връзка
|
||||||
PastDelayVCalExport=Не изнася случай по-стари от
|
PastDelayVCalExport=Не изнася случай по-стари от
|
||||||
AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionnary -> Type of agenda events)
|
AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events)
|
||||||
##### ClickToDial #####
|
##### ClickToDial #####
|
||||||
ClickToDialDesc=Този модул позволява да добавите икона след телефонни номера. Кликнете върху тази икона ще призове сървър с определен URL адрес можете да зададете по-долу. Това може да се използва, за да се обадя на кол център система от Dolibarr, че да се обаждат на телефонен номер на SIP система, например.
|
ClickToDialDesc=Този модул позволява да добавите икона след телефонни номера. Кликнете върху тази икона ще призове сървър с определен URL адрес можете да зададете по-долу. Това може да се използва, за да се обадя на кол център система от Dolibarr, че да се обаждат на телефонен номер на SIP система, например.
|
||||||
##### Point Of Sales (CashDesk) #####
|
##### Point Of Sales (CashDesk) #####
|
||||||
|
|||||||
@ -89,6 +89,8 @@ ListOfServicesToExpireWithDuration=List of Services to expire in %s days
|
|||||||
ListOfServicesToExpireWithDurationNeg=List of Services expired from more than %s days
|
ListOfServicesToExpireWithDurationNeg=List of Services expired from more than %s days
|
||||||
ListOfServicesToExpire=List of Services to expire
|
ListOfServicesToExpire=List of Services to expire
|
||||||
NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative.
|
NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative.
|
||||||
|
StandardContractsTemplate=Standard contracts template
|
||||||
|
ContactNameAndSignature=For %s, name and signature:
|
||||||
|
|
||||||
##### Types de contacts #####
|
##### Types de contacts #####
|
||||||
TypeContact_contrat_internal_SALESREPSIGN=Търговски представител подписване на договора
|
TypeContact_contrat_internal_SALESREPSIGN=Търговски представител подписване на договора
|
||||||
|
|||||||
@ -8,7 +8,7 @@ ImportableDatas=Се внасят набор от данни
|
|||||||
SelectExportDataSet=Изберете набор от данни, които искате да експортирате ...
|
SelectExportDataSet=Изберете набор от данни, които искате да експортирате ...
|
||||||
SelectImportDataSet=Изберете набор от данни, който искате да импортирате ...
|
SelectImportDataSet=Изберете набор от данни, който искате да импортирате ...
|
||||||
SelectExportFields=Изберете полетата, които искате да експортирате, или да изберете предварително дефинирана Profil износ
|
SelectExportFields=Изберете полетата, които искате да експортирате, или да изберете предварително дефинирана Profil износ
|
||||||
SelectImportFields=Изберете файла източник полета, които искате да импортирате и тяхното поле в базата данни от тях се движат нагоре и надолу с анкерни %s или изберете предварително дефинирана Profil внос:
|
SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile:
|
||||||
NotImportedFields=Области на файла източник не са внесени
|
NotImportedFields=Области на файла източник не са внесени
|
||||||
SaveExportModel=Запази този профил за износ, ако смятате да го използвате отново по-късно ...
|
SaveExportModel=Запази този профил за износ, ако смятате да го използвате отново по-късно ...
|
||||||
SaveImportModel=Запази този профил за внос, ако смятате да го използвате отново по-късно ...
|
SaveImportModel=Запази този профил за внос, ако смятате да го използвате отново по-късно ...
|
||||||
@ -81,7 +81,7 @@ DoNotImportFirstLine=Да не се внасят първия ред на изх
|
|||||||
NbOfSourceLines=Брой на линиите във файла източник
|
NbOfSourceLines=Брой на линиите във файла източник
|
||||||
NowClickToTestTheImport=Проверете внос параметрите, които сте задали. Ако те са правилни, кликнете върху бутона <b>"%s",</b> за да започне симулация на процеса на импортиране (няма данни ще се промени във вашата база данни, това е само симулация за момента) ...
|
NowClickToTestTheImport=Проверете внос параметрите, които сте задали. Ако те са правилни, кликнете върху бутона <b>"%s",</b> за да започне симулация на процеса на импортиране (няма данни ще се промени във вашата база данни, това е само симулация за момента) ...
|
||||||
RunSimulateImportFile=Стартиране на симулация внос
|
RunSimulateImportFile=Стартиране на симулация внос
|
||||||
FieldNeedSource=Това Полета в базата данни изискват данни от файла източник
|
FieldNeedSource=This field requires data from the source file
|
||||||
SomeMandatoryFieldHaveNoSource=Някои от задължителните полета не са източник от файл с данни
|
SomeMandatoryFieldHaveNoSource=Някои от задължителните полета не са източник от файл с данни
|
||||||
InformationOnSourceFile=Информация за файла източник
|
InformationOnSourceFile=Информация за файла източник
|
||||||
InformationOnTargetTables=Информация за целевите области
|
InformationOnTargetTables=Информация за целевите области
|
||||||
|
|||||||
@ -8,7 +8,6 @@ NotActiveModCP=Трябва да вкючите модула за отпуски
|
|||||||
NotConfigModCP=Необходимо е да конфигурирате модула за отпуски за да видите тази страница. За да направите това, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> щтракнете тук </ a>.
|
NotConfigModCP=Необходимо е да конфигурирате модула за отпуски за да видите тази страница. За да направите това, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;"> щтракнете тук </ a>.
|
||||||
NoCPforUser=You don't have a demand for holidays.
|
NoCPforUser=You don't have a demand for holidays.
|
||||||
AddCP=Кандидатстване за отпуск
|
AddCP=Кандидатстване за отпуск
|
||||||
CPErrorSQL=Възникна SQL грешка:
|
|
||||||
Employe=Служител
|
Employe=Служител
|
||||||
DateDebCP=Начална дата
|
DateDebCP=Начална дата
|
||||||
DateFinCP=Крайна дата
|
DateFinCP=Крайна дата
|
||||||
|
|||||||
@ -19,6 +19,7 @@ Language_en_SA=English (Саудитска Арабия)
|
|||||||
Language_en_US=English (United States)
|
Language_en_US=English (United States)
|
||||||
Language_en_ZA=English (Южна Африка)
|
Language_en_ZA=English (Южна Африка)
|
||||||
Language_es_ES=Испански
|
Language_es_ES=Испански
|
||||||
|
Language_es_DO=Spanish (Dominican Republic)
|
||||||
Language_es_AR=Испански (Аржентина)
|
Language_es_AR=Испански (Аржентина)
|
||||||
Language_es_CL=Spanish (Chile)
|
Language_es_CL=Spanish (Chile)
|
||||||
Language_es_HN=Испански (Хондурас)
|
Language_es_HN=Испански (Хондурас)
|
||||||
@ -38,6 +39,7 @@ Language_fr_NC=French (Нова Каледония)
|
|||||||
Language_he_IL=Иврит
|
Language_he_IL=Иврит
|
||||||
Language_hr_HR=Хърватски
|
Language_hr_HR=Хърватски
|
||||||
Language_hu_HU=Унгарски
|
Language_hu_HU=Унгарски
|
||||||
|
Language_id_ID=Indonesian
|
||||||
Language_is_IS=Исландски
|
Language_is_IS=Исландски
|
||||||
Language_it_IT=Италиански
|
Language_it_IT=Италиански
|
||||||
Language_ja_JP=Японски
|
Language_ja_JP=Японски
|
||||||
|
|||||||
@ -79,6 +79,7 @@ MailtoEMail=Хипер-връзка на приятел
|
|||||||
ActivateCheckRead=Оставя се да се използва за четене тракер получаване и връзката unsubcribe
|
ActivateCheckRead=Оставя се да се използва за четене тракер получаване и връзката unsubcribe
|
||||||
ActivateCheckReadKey=Key използване за криптиране на използването на URL адрес за обратна разписка и функция unsubcribe
|
ActivateCheckReadKey=Key използване за криптиране на използването на URL адрес за обратна разписка и функция unsubcribe
|
||||||
EMailSentToNRecipients=EMail sent to %s recipients.
|
EMailSentToNRecipients=EMail sent to %s recipients.
|
||||||
|
XTargetsAdded=<b>%s</b> recipients added into target list
|
||||||
EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
|
EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
|
||||||
MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
|
MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
|
||||||
SendRemind=Send reminder by EMails
|
SendRemind=Send reminder by EMails
|
||||||
|
|||||||
@ -551,6 +551,7 @@ MailSentBy=E-mail, изпратен от
|
|||||||
TextUsedInTheMessageBody=Email body
|
TextUsedInTheMessageBody=Email body
|
||||||
SendAcknowledgementByMail=Изпращане на уведомление по имейл
|
SendAcknowledgementByMail=Изпращане на уведомление по имейл
|
||||||
NoEMail=Няма имейл
|
NoEMail=Няма имейл
|
||||||
|
NoMobilePhone=No mobile phone
|
||||||
Owner=Собственик
|
Owner=Собственик
|
||||||
DetectedVersion=Открита версия
|
DetectedVersion=Открита версия
|
||||||
FollowingConstantsWillBeSubstituted=Следните константи ще бъдат заменени със съответната стойност.
|
FollowingConstantsWillBeSubstituted=Следните константи ще бъдат заменени със съответната стойност.
|
||||||
|
|||||||
@ -28,8 +28,10 @@ ProductsAndServicesStatistics=Статистика на Продукти и Ус
|
|||||||
ProductsStatistics=Статистика на продукти
|
ProductsStatistics=Статистика на продукти
|
||||||
ProductsOnSell=Налични продукти
|
ProductsOnSell=Налични продукти
|
||||||
ProductsNotOnSell=Стари продукти
|
ProductsNotOnSell=Стари продукти
|
||||||
|
ProductsOnSellAndOnBuy=Products not for sale nor purchase
|
||||||
ServicesOnSell=Налични услуги
|
ServicesOnSell=Налични услуги
|
||||||
ServicesNotOnSell=Стари услуги
|
ServicesNotOnSell=Стари услуги
|
||||||
|
ServicesOnSellAndOnBuy=Services not for sale nor purchase
|
||||||
InternalRef=Вътрешна препратка
|
InternalRef=Вътрешна препратка
|
||||||
LastRecorded=Последните записани продукти / услуги по продажба
|
LastRecorded=Последните записани продукти / услуги по продажба
|
||||||
LastRecordedProductsAndServices=Последните %s записани продукти / услуги
|
LastRecordedProductsAndServices=Последните %s записани продукти / услуги
|
||||||
@ -70,6 +72,8 @@ PublicPrice=Публична цена
|
|||||||
CurrentPrice=Текуща цена
|
CurrentPrice=Текуща цена
|
||||||
NewPrice=Нова цена
|
NewPrice=Нова цена
|
||||||
MinPrice=Миним. продажна цена
|
MinPrice=Миним. продажна цена
|
||||||
|
MinPriceHT=Minim. selling price (net of tax)
|
||||||
|
MinPriceTTC=Minim. selling price (inc. tax)
|
||||||
CantBeLessThanMinPrice=Продажната цена не може да бъде по-ниска от максимално допустимата за този продукт (%s без ДДС). Това съобщение може да се появи, ако въведете твърде важна отстъпка.
|
CantBeLessThanMinPrice=Продажната цена не може да бъде по-ниска от максимално допустимата за този продукт (%s без ДДС). Това съобщение може да се появи, ако въведете твърде важна отстъпка.
|
||||||
ContractStatus=Състояние на договор
|
ContractStatus=Състояние на договор
|
||||||
ContractStatusClosed=Затворен
|
ContractStatusClosed=Затворен
|
||||||
@ -179,6 +183,7 @@ ProductIsUsed=Този продукт е използван
|
|||||||
NewRefForClone=Реф. на нов продукт/услуга
|
NewRefForClone=Реф. на нов продукт/услуга
|
||||||
CustomerPrices=Цени за клиенти
|
CustomerPrices=Цени за клиенти
|
||||||
SuppliersPrices=Цени на доставцици
|
SuppliersPrices=Цени на доставцици
|
||||||
|
SuppliersPricesOfProductsOrServices=Suppliers prices (of products or services)
|
||||||
CustomCode=Customs code
|
CustomCode=Customs code
|
||||||
CountryOrigin=Държава на произход
|
CountryOrigin=Държава на произход
|
||||||
HiddenIntoCombo=Hidden into select lists
|
HiddenIntoCombo=Hidden into select lists
|
||||||
@ -208,6 +213,7 @@ CostPmpHT=Net total VWAP
|
|||||||
ProductUsedForBuild=Auto consumed by production
|
ProductUsedForBuild=Auto consumed by production
|
||||||
ProductBuilded=Production completed
|
ProductBuilded=Production completed
|
||||||
ProductsMultiPrice=Product multi-price
|
ProductsMultiPrice=Product multi-price
|
||||||
|
ProductsOrServiceMultiPrice=Customers prices (of products or services, multi-prices)
|
||||||
ProductSellByQuarterHT=Products turnover quarterly VWAP
|
ProductSellByQuarterHT=Products turnover quarterly VWAP
|
||||||
ServiceSellByQuarterHT=Services turnover quarterly VWAP
|
ServiceSellByQuarterHT=Services turnover quarterly VWAP
|
||||||
Quarter1=1st. Quarter
|
Quarter1=1st. Quarter
|
||||||
|
|||||||
@ -112,6 +112,7 @@ ReplenishmentOrdersDesc=This is list of all opened supplier orders
|
|||||||
Replenishments=Попълване
|
Replenishments=Попълване
|
||||||
NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s)
|
NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s)
|
||||||
NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
|
NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
|
||||||
|
MassMovement=Mass movement
|
||||||
MassStockMovement=Mass stock movement
|
MassStockMovement=Mass stock movement
|
||||||
SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s".
|
SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s".
|
||||||
RecordMovement=Record transfert
|
RecordMovement=Record transfert
|
||||||
|
|||||||
@ -116,7 +116,7 @@ LanguageBrowserParameter=Parameter %s
|
|||||||
LocalisationDolibarrParameters=Localisation parameters
|
LocalisationDolibarrParameters=Localisation parameters
|
||||||
ClientTZ=Client Time Zone (user)
|
ClientTZ=Client Time Zone (user)
|
||||||
ClientHour=Client time (user)
|
ClientHour=Client time (user)
|
||||||
OSTZ=Servre OS Time Zone
|
OSTZ=Server OS Time Zone
|
||||||
PHPTZ=PHP server Time Zone
|
PHPTZ=PHP server Time Zone
|
||||||
PHPServerOffsetWithGreenwich=PHP server offset width Greenwich (seconds)
|
PHPServerOffsetWithGreenwich=PHP server offset width Greenwich (seconds)
|
||||||
ClientOffsetWithGreenwich=Klijent/browser ofset širina Greenwich-a (sekunde)
|
ClientOffsetWithGreenwich=Klijent/browser ofset širina Greenwich-a (sekunde)
|
||||||
@ -233,7 +233,9 @@ OfficialWebSiteFr=French official web site
|
|||||||
OfficialWiki=Dolibarr documentation on Wiki
|
OfficialWiki=Dolibarr documentation on Wiki
|
||||||
OfficialDemo=Dolibarr online demo
|
OfficialDemo=Dolibarr online demo
|
||||||
OfficialMarketPlace=Official market place for external modules/addons
|
OfficialMarketPlace=Official market place for external modules/addons
|
||||||
OfficialWebHostingService=Službene web hosting usluge (Cloud hosting)
|
OfficialWebHostingService=Referenced web hosting services (Cloud hosting)
|
||||||
|
ReferencedPreferredPartners=Preferred Partners
|
||||||
|
OtherResources=Autres ressources
|
||||||
ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
|
ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
|
||||||
ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
|
ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
|
||||||
HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
|
HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
|
||||||
@ -369,9 +371,9 @@ ExtrafieldSelectList = Select from table
|
|||||||
ExtrafieldSeparator=Separator
|
ExtrafieldSeparator=Separator
|
||||||
ExtrafieldCheckBox=Checkbox
|
ExtrafieldCheckBox=Checkbox
|
||||||
ExtrafieldRadio=Radio button
|
ExtrafieldRadio=Radio button
|
||||||
ExtrafieldParamHelpselect=Lista parametara mora biti kao key,value <br><br> na primjer: <br> 1,value1 <br> 2,value2 <br> 3,value33 <br> ... <br><br> Da bi lista u zavisila od druge: <br> 1,value1|parent_list_code:parent_key <br> 2,value2|parent_list_code:parent_key
|
ExtrafieldParamHelpselect=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>In order to have the list depending on another :<br>1,value1|parent_list_code:parent_key<br>2,value2|parent_list_code:parent_key
|
||||||
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for exemple : <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpradio=Parameters list have to be like key,value<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
ExtrafieldParamHelpsellist=Parameters list comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value <br> if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
|
||||||
LibraryToBuildPDF=Library used to build PDF
|
LibraryToBuildPDF=Library used to build PDF
|
||||||
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
||||||
@ -472,7 +474,7 @@ Module410Desc=Webcalendar integration
|
|||||||
Module500Name=Special expenses (tax, social contributions, dividends)
|
Module500Name=Special expenses (tax, social contributions, dividends)
|
||||||
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
|
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
|
||||||
Module510Name=Salaries
|
Module510Name=Salaries
|
||||||
Module510Desc=Management of empoyees salaries and payments
|
Module510Desc=Management of employees salaries and payments
|
||||||
Module600Name=Notifications
|
Module600Name=Notifications
|
||||||
Module600Desc=Send notifications by email on some Dolibarr business events to third party contacts
|
Module600Desc=Send notifications by email on some Dolibarr business events to third party contacts
|
||||||
Module700Name=Donations
|
Module700Name=Donations
|
||||||
@ -495,15 +497,15 @@ Module2400Name=Agenda
|
|||||||
Module2400Desc=Events/tasks and agenda management
|
Module2400Desc=Events/tasks and agenda management
|
||||||
Module2500Name=Electronic Content Management
|
Module2500Name=Electronic Content Management
|
||||||
Module2500Desc=Save and share documents
|
Module2500Desc=Save and share documents
|
||||||
Module2600Name= WebServices
|
Module2600Name=WebServices
|
||||||
Module2600Desc= Enable the Dolibarr web services server
|
Module2600Desc=Enable the Dolibarr web services server
|
||||||
Module2700Name= Gravatar
|
Module2700Name=Gravatar
|
||||||
Module2700Desc= Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
|
Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
|
||||||
Module2800Desc=FTP Client
|
Module2800Desc=FTP Client
|
||||||
Module2900Name= GeoIPMaxmind
|
Module2900Name=GeoIPMaxmind
|
||||||
Module2900Desc= GeoIP Maxmind conversions capabilities
|
Module2900Desc=GeoIP Maxmind conversions capabilities
|
||||||
Module3100Name= Skype
|
Module3100Name=Skype
|
||||||
Module3100Desc= Dodajte Skype dugme na kartici sljedbenika / trećih strana / kontakata
|
Module3100Desc=Dodajte Skype dugme na kartici sljedbenika / trećih strana / kontakata
|
||||||
Module5000Name=Multi-company
|
Module5000Name=Multi-company
|
||||||
Module5000Desc=Allows you to manage multiple companies
|
Module5000Desc=Allows you to manage multiple companies
|
||||||
Module6000Name=Workflow - Tok rada
|
Module6000Name=Workflow - Tok rada
|
||||||
@ -681,6 +683,10 @@ Permission401=Read discounts
|
|||||||
Permission402=Create/modify discounts
|
Permission402=Create/modify discounts
|
||||||
Permission403=Validate discounts
|
Permission403=Validate discounts
|
||||||
Permission404=Delete discounts
|
Permission404=Delete discounts
|
||||||
|
Permission510=Read Salaries
|
||||||
|
Permission512=Create/modify salaries
|
||||||
|
Permission514=Delete salaries
|
||||||
|
Permission517=Export salaries
|
||||||
Permission531=Read services
|
Permission531=Read services
|
||||||
Permission532=Create/modify services
|
Permission532=Create/modify services
|
||||||
Permission534=Delete services
|
Permission534=Delete services
|
||||||
@ -999,7 +1005,7 @@ ExtraFieldsSupplierOrders=Dopunske atributa (naloga)
|
|||||||
ExtraFieldsSupplierInvoices=Dopunski atributi (fakture)
|
ExtraFieldsSupplierInvoices=Dopunski atributi (fakture)
|
||||||
ExtraFieldsProject=Dopunski atributi (projekti)
|
ExtraFieldsProject=Dopunski atributi (projekti)
|
||||||
ExtraFieldsProjectTask=Dopunski atributi (zadaci)
|
ExtraFieldsProjectTask=Dopunski atributi (zadaci)
|
||||||
ExtraFieldHasWrongValue=Attribut %s has a wrong value.
|
ExtraFieldHasWrongValue=Attribute %s has a wrong value.
|
||||||
AlphaNumOnlyCharsAndNoSpace=only alphanumericals characters without space
|
AlphaNumOnlyCharsAndNoSpace=only alphanumericals characters without space
|
||||||
AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
|
AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
|
||||||
SendingMailSetup=Setup of sendings by email
|
SendingMailSetup=Setup of sendings by email
|
||||||
@ -1018,13 +1024,13 @@ SuhosinSessionEncrypt=Session storage encrypted by Suhosin
|
|||||||
ConditionIsCurrently=Condition is currently %s
|
ConditionIsCurrently=Condition is currently %s
|
||||||
TestNotPossibleWithCurrentBrowsers=Automatska detekcija nije moguća
|
TestNotPossibleWithCurrentBrowsers=Automatska detekcija nije moguća
|
||||||
YouUseBestDriver=Možete koristiti driver %s koji je trenutno najbolji.
|
YouUseBestDriver=Možete koristiti driver %s koji je trenutno najbolji.
|
||||||
YouDoNotUseBestDriver=Možete koristiti drive %s, ali driver %s se preporučava.
|
YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
|
||||||
NbOfProductIsLowerThanNoPb=Imate samo %s proizvoda/usluga u bazu podataka. To ne zahtijeva posebne optimizacije.
|
NbOfProductIsLowerThanNoPb=Imate samo %s proizvoda/usluga u bazu podataka. To ne zahtijeva posebne optimizacije.
|
||||||
SearchOptim=Optimizacija pretraživanja
|
SearchOptim=Optimizacija pretraživanja
|
||||||
YouHaveXProductUseSearchOptim=Imate %s proizvod u bazu podataka. Trebalo bi dodati konstantu PRODUCT_DONOTSEARCH_ANYWHERE na 1 u Početna-Postavke-Ostalo, ograničavate pretragu na početak što je moguće za baze podataka za korištenje indeksa i trebali bi dobiti hitnu reakciju.
|
YouHaveXProductUseSearchOptim=Imate %s proizvod u bazu podataka. Trebalo bi dodati konstantu PRODUCT_DONOTSEARCH_ANYWHERE na 1 u Početna-Postavke-Ostalo, ograničavate pretragu na početak što je moguće za baze podataka za korištenje indeksa i trebali bi dobiti hitnu reakciju.
|
||||||
BrowserIsOK=Vi koristite web browser %s. Ovaj browser je ok za sigurnost i performanse.
|
BrowserIsOK=Vi koristite web browser %s. Ovaj browser je ok za sigurnost i performanse.
|
||||||
BrowserIsKO=Vi koristite web browser %s. Poznato je da je ovaj broswer loš izbor za sigurnost, performanse i pouzdanost. Mi preporučujemo da koristite Firefox, Chrome, Opera i Safari.
|
BrowserIsKO=Vi koristite web browser %s. Poznato je da je ovaj broswer loš izbor za sigurnost, performanse i pouzdanost. Mi preporučujemo da koristite Firefox, Chrome, Opera i Safari.
|
||||||
XDebugInstalled=XCache je učitan.
|
XDebugInstalled=XDebug is loaded.
|
||||||
XCacheInstalled=XCache je učitan.
|
XCacheInstalled=XCache je učitan.
|
||||||
AddRefInList=Prikaz kupca/dobavljača ref u listi (odaberite listu ili combobox) i većina hyperlink
|
AddRefInList=Prikaz kupca/dobavljača ref u listi (odaberite listu ili combobox) i većina hyperlink
|
||||||
FieldEdition=Edition of field %s
|
FieldEdition=Edition of field %s
|
||||||
@ -1073,7 +1079,7 @@ WebCalServer=Server hosting calendar database
|
|||||||
WebCalDatabaseName=Database name
|
WebCalDatabaseName=Database name
|
||||||
WebCalUser=User to access database
|
WebCalUser=User to access database
|
||||||
WebCalSetupSaved=Webcalendar setup saved successfully.
|
WebCalSetupSaved=Webcalendar setup saved successfully.
|
||||||
WebCalTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
|
WebCalTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
|
||||||
WebCalTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
|
WebCalTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
|
||||||
WebCalTestKo2=Connection to server '%s' with user '%s' failed.
|
WebCalTestKo2=Connection to server '%s' with user '%s' failed.
|
||||||
WebCalErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be a Webcalendar database.
|
WebCalErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be a Webcalendar database.
|
||||||
@ -1119,7 +1125,7 @@ WatermarkOnDraftProposal=Vodeni žig na nacrte komercijalnih prijedloga (ništa,
|
|||||||
OrdersSetup=Order management setup
|
OrdersSetup=Order management setup
|
||||||
OrdersNumberingModules=Orders numbering models
|
OrdersNumberingModules=Orders numbering models
|
||||||
OrdersModelModule=Order documents models
|
OrdersModelModule=Order documents models
|
||||||
HideTreadedOrders=Hide the treated or canceled orders in the list
|
HideTreadedOrders=Hide the treated or cancelled orders in the list
|
||||||
ValidOrderAfterPropalClosed=To validate the order after proposal closer, makes it possible not to step by the provisional order
|
ValidOrderAfterPropalClosed=To validate the order after proposal closer, makes it possible not to step by the provisional order
|
||||||
FreeLegalTextOnOrders=Free text on orders
|
FreeLegalTextOnOrders=Free text on orders
|
||||||
WatermarkOnDraftOrders=Vodeni žig na nacrte naloga (ništa, ako je prazno)
|
WatermarkOnDraftOrders=Vodeni žig na nacrte naloga (ništa, ako je prazno)
|
||||||
@ -1214,9 +1220,9 @@ LDAPSynchroKO=Failed synchronization test
|
|||||||
LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
|
LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
|
||||||
LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
|
LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
|
||||||
LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
|
LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
|
||||||
LDAPBindOK=Connect/Authentificate to LDAP server sucessfull (Server=%s, Port=%s, Admin=%s, Password=%s)
|
LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
|
||||||
LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
|
LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
|
||||||
LDAPUnbindSuccessfull=Disconnect successfull
|
LDAPUnbindSuccessfull=Disconnect successful
|
||||||
LDAPUnbindFailed=Disconnect failed
|
LDAPUnbindFailed=Disconnect failed
|
||||||
LDAPConnectToDNSuccessfull=Connection to DN (%s) successful
|
LDAPConnectToDNSuccessfull=Connection to DN (%s) successful
|
||||||
LDAPConnectToDNFailed=Connection to DN (%s) failed
|
LDAPConnectToDNFailed=Connection to DN (%s) failed
|
||||||
@ -1273,7 +1279,7 @@ LDAPFieldSidExample=Example : objectsid
|
|||||||
LDAPFieldEndLastSubscription=Date of subscription end
|
LDAPFieldEndLastSubscription=Date of subscription end
|
||||||
LDAPFieldTitle=Post/Function
|
LDAPFieldTitle=Post/Function
|
||||||
LDAPFieldTitleExample=Example: title
|
LDAPFieldTitleExample=Example: title
|
||||||
LDAPParametersAreStillHardCoded=LDAP parametres are still hardcoded (in contact class)
|
LDAPParametersAreStillHardCoded=LDAP parameters are still hardcoded (in contact class)
|
||||||
LDAPSetupNotComplete=LDAP setup not complete (go on others tabs)
|
LDAPSetupNotComplete=LDAP setup not complete (go on others tabs)
|
||||||
LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode.
|
LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode.
|
||||||
LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts.
|
LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts.
|
||||||
@ -1429,7 +1435,7 @@ OptionVATDefault=Standard
|
|||||||
OptionVATDebitOption=Option services on Debit
|
OptionVATDebitOption=Option services on Debit
|
||||||
OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on payments for services
|
OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on payments for services
|
||||||
OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
|
OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
|
||||||
SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to choosed option:
|
SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
|
||||||
OnDelivery=On delivery
|
OnDelivery=On delivery
|
||||||
OnPayment=On payment
|
OnPayment=On payment
|
||||||
OnInvoice=On invoice
|
OnInvoice=On invoice
|
||||||
@ -1446,7 +1452,7 @@ AccountancyCodeBuy=Purchase account. code
|
|||||||
AgendaSetup=Events and agenda module setup
|
AgendaSetup=Events and agenda module setup
|
||||||
PasswordTogetVCalExport=Key to authorize export link
|
PasswordTogetVCalExport=Key to authorize export link
|
||||||
PastDelayVCalExport=Do not export event older than
|
PastDelayVCalExport=Do not export event older than
|
||||||
AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionnary -> Type of agenda events)
|
AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events)
|
||||||
##### ClickToDial #####
|
##### ClickToDial #####
|
||||||
ClickToDialDesc=This module allows to add an icon after phone numbers. A click on this icon will call a server with a particular URL you define below. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
|
ClickToDialDesc=This module allows to add an icon after phone numbers. A click on this icon will call a server with a particular URL you define below. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
|
||||||
##### Point Of Sales (CashDesk) #####
|
##### Point Of Sales (CashDesk) #####
|
||||||
|
|||||||
@ -89,6 +89,8 @@ ListOfServicesToExpireWithDuration=Lista usluga pred isticanje za %s dana
|
|||||||
ListOfServicesToExpireWithDurationNeg=Lista isteklih usluga više od %s dana
|
ListOfServicesToExpireWithDurationNeg=Lista isteklih usluga više od %s dana
|
||||||
ListOfServicesToExpire=Lista usluga pred isticanje
|
ListOfServicesToExpire=Lista usluga pred isticanje
|
||||||
NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative.
|
NoteListOfYourExpiredServices=This list contains only services of contracts for third parties you are linked to as a sale representative.
|
||||||
|
StandardContractsTemplate=Standard contracts template
|
||||||
|
ContactNameAndSignature=For %s, name and signature:
|
||||||
|
|
||||||
##### Types de contacts #####
|
##### Types de contacts #####
|
||||||
TypeContact_contrat_internal_SALESREPSIGN=Predstavnik prodaje koji potpisuje ugovor
|
TypeContact_contrat_internal_SALESREPSIGN=Predstavnik prodaje koji potpisuje ugovor
|
||||||
|
|||||||
@ -8,7 +8,7 @@ ImportableDatas=Importable dataset
|
|||||||
SelectExportDataSet=Choose dataset you want to export...
|
SelectExportDataSet=Choose dataset you want to export...
|
||||||
SelectImportDataSet=Choose dataset you want to import...
|
SelectImportDataSet=Choose dataset you want to import...
|
||||||
SelectExportFields=Choose fields you want to export, or select a predefined export profile
|
SelectExportFields=Choose fields you want to export, or select a predefined export profile
|
||||||
SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profil:
|
SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile:
|
||||||
NotImportedFields=Fields of source file not imported
|
NotImportedFields=Fields of source file not imported
|
||||||
SaveExportModel=Save this export profile if you plan to reuse it later...
|
SaveExportModel=Save this export profile if you plan to reuse it later...
|
||||||
SaveImportModel=Save this import profile if you plan to reuse it later...
|
SaveImportModel=Save this import profile if you plan to reuse it later...
|
||||||
@ -81,7 +81,7 @@ DoNotImportFirstLine=Do not import first line of source file
|
|||||||
NbOfSourceLines=Number of lines in source file
|
NbOfSourceLines=Number of lines in source file
|
||||||
NowClickToTestTheImport=Check import parameters you have defined. If they are correct, click on button "<b>%s</b>" to launch a simulation of import process (no data will be changed in your database, it's only a simulation for the moment)...
|
NowClickToTestTheImport=Check import parameters you have defined. If they are correct, click on button "<b>%s</b>" to launch a simulation of import process (no data will be changed in your database, it's only a simulation for the moment)...
|
||||||
RunSimulateImportFile=Launch the import simulation
|
RunSimulateImportFile=Launch the import simulation
|
||||||
FieldNeedSource=This fiels in database require a data from source file
|
FieldNeedSource=This field requires data from the source file
|
||||||
SomeMandatoryFieldHaveNoSource=Some mandatory fields have no source from data file
|
SomeMandatoryFieldHaveNoSource=Some mandatory fields have no source from data file
|
||||||
InformationOnSourceFile=Information on source file
|
InformationOnSourceFile=Information on source file
|
||||||
InformationOnTargetTables=Information on target fields
|
InformationOnTargetTables=Information on target fields
|
||||||
|
|||||||
@ -8,7 +8,6 @@ NotActiveModCP=Morate omogućiti modul godišnji odmori da bi vidjeli ovu strani
|
|||||||
NotConfigModCP=Morate konfigurisati modul godišnji odmori da bi vidjeli ovu stranicu. Da bi ste uradili ovo, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">kliknite ovdje<a>.
|
NotConfigModCP=Morate konfigurisati modul godišnji odmori da bi vidjeli ovu stranicu. Da bi ste uradili ovo, <a href="./admin/holiday.php?leftmenu=setup&mainmenu=home" style="font-weight: normal; color: red; text-decoration: underline;">kliknite ovdje<a>.
|
||||||
NoCPforUser=Nema te zahtjeva za godišnje odmore.
|
NoCPforUser=Nema te zahtjeva za godišnje odmore.
|
||||||
AddCP=Prijavi se za godišnji odmor
|
AddCP=Prijavi se za godišnji odmor
|
||||||
CPErrorSQL=Desila se SQL greška:
|
|
||||||
Employe=Zaposlenik
|
Employe=Zaposlenik
|
||||||
DateDebCP=Datum početka
|
DateDebCP=Datum početka
|
||||||
DateFinCP=Datum završetka
|
DateFinCP=Datum završetka
|
||||||
|
|||||||
@ -19,6 +19,7 @@ Language_en_SA=Engleski (Saudijska Arabija)
|
|||||||
Language_en_US=Engleski (United States)
|
Language_en_US=Engleski (United States)
|
||||||
Language_en_ZA=Engleski (Južna Afrika)
|
Language_en_ZA=Engleski (Južna Afrika)
|
||||||
Language_es_ES=Španski
|
Language_es_ES=Španski
|
||||||
|
Language_es_DO=Spanish (Dominican Republic)
|
||||||
Language_es_AR=Španjolski (Argentina)
|
Language_es_AR=Španjolski (Argentina)
|
||||||
Language_es_CL=Spanish (Chile)
|
Language_es_CL=Spanish (Chile)
|
||||||
Language_es_HN=Španjolski (Honduras)
|
Language_es_HN=Španjolski (Honduras)
|
||||||
@ -38,6 +39,7 @@ Language_fr_NC=Francuski (Nova Kaledonija)
|
|||||||
Language_he_IL=Jevrejski
|
Language_he_IL=Jevrejski
|
||||||
Language_hr_HR=Hrvatski
|
Language_hr_HR=Hrvatski
|
||||||
Language_hu_HU=Mađarski
|
Language_hu_HU=Mađarski
|
||||||
|
Language_id_ID=Indonesian
|
||||||
Language_is_IS=Islandski
|
Language_is_IS=Islandski
|
||||||
Language_it_IT=Italijanski
|
Language_it_IT=Italijanski
|
||||||
Language_ja_JP=Japanski
|
Language_ja_JP=Japanski
|
||||||
|
|||||||
@ -79,6 +79,7 @@ MailtoEMail=Hyper link na e-poštu
|
|||||||
ActivateCheckRead=Dozvoli korištenje "Ispiši se" linka
|
ActivateCheckRead=Dozvoli korištenje "Ispiši se" linka
|
||||||
ActivateCheckReadKey=Kljul korišten za enkriptovanje linka koristi se za "Pročitaj potvrdu" i "Ispiši se" mogućnosti
|
ActivateCheckReadKey=Kljul korišten za enkriptovanje linka koristi se za "Pročitaj potvrdu" i "Ispiši se" mogućnosti
|
||||||
EMailSentToNRecipients=E-pošta poslana %s primaocima
|
EMailSentToNRecipients=E-pošta poslana %s primaocima
|
||||||
|
XTargetsAdded=<b>%s</b> recipients added into target list
|
||||||
EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
|
EachInvoiceWillBeAttachedToEmail=A document using default invoice document template will be created and attached to each email.
|
||||||
MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
|
MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
|
||||||
SendRemind=Send reminder by EMails
|
SendRemind=Send reminder by EMails
|
||||||
|
|||||||
@ -551,6 +551,7 @@ MailSentBy=Email sent by
|
|||||||
TextUsedInTheMessageBody=Email body
|
TextUsedInTheMessageBody=Email body
|
||||||
SendAcknowledgementByMail=Send Ack. by email
|
SendAcknowledgementByMail=Send Ack. by email
|
||||||
NoEMail=No email
|
NoEMail=No email
|
||||||
|
NoMobilePhone=No mobile phone
|
||||||
Owner=Owner
|
Owner=Owner
|
||||||
DetectedVersion=Detected version
|
DetectedVersion=Detected version
|
||||||
FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
|
FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
|
||||||
|
|||||||
@ -28,8 +28,10 @@ ProductsAndServicesStatistics=Statistika proizvoda i usluga
|
|||||||
ProductsStatistics=Statistika proizvoda
|
ProductsStatistics=Statistika proizvoda
|
||||||
ProductsOnSell=Dostupni proizvodi
|
ProductsOnSell=Dostupni proizvodi
|
||||||
ProductsNotOnSell=Zastarjeli proizvodi
|
ProductsNotOnSell=Zastarjeli proizvodi
|
||||||
|
ProductsOnSellAndOnBuy=Products not for sale nor purchase
|
||||||
ServicesOnSell=Dostupne usluge
|
ServicesOnSell=Dostupne usluge
|
||||||
ServicesNotOnSell=Zastarjele usluge
|
ServicesNotOnSell=Zastarjele usluge
|
||||||
|
ServicesOnSellAndOnBuy=Services not for sale nor purchase
|
||||||
InternalRef=Interna referenca
|
InternalRef=Interna referenca
|
||||||
LastRecorded=Last products/services on sell recorded
|
LastRecorded=Last products/services on sell recorded
|
||||||
LastRecordedProductsAndServices=Last %s recorded products/services
|
LastRecordedProductsAndServices=Last %s recorded products/services
|
||||||
@ -70,6 +72,8 @@ PublicPrice=Public price
|
|||||||
CurrentPrice=Current price
|
CurrentPrice=Current price
|
||||||
NewPrice=New price
|
NewPrice=New price
|
||||||
MinPrice=Minim. selling price
|
MinPrice=Minim. selling price
|
||||||
|
MinPriceHT=Minim. selling price (net of tax)
|
||||||
|
MinPriceTTC=Minim. selling price (inc. tax)
|
||||||
CantBeLessThanMinPrice=The selling price can't be lower than minimum allowed for this product (%s without tax). This message can also appears if you type a too important discount.
|
CantBeLessThanMinPrice=The selling price can't be lower than minimum allowed for this product (%s without tax). This message can also appears if you type a too important discount.
|
||||||
ContractStatus=Contract status
|
ContractStatus=Contract status
|
||||||
ContractStatusClosed=Closed
|
ContractStatusClosed=Closed
|
||||||
@ -179,6 +183,7 @@ ProductIsUsed=This product is used
|
|||||||
NewRefForClone=Ref. of new product/service
|
NewRefForClone=Ref. of new product/service
|
||||||
CustomerPrices=Customers prices
|
CustomerPrices=Customers prices
|
||||||
SuppliersPrices=Suppliers prices
|
SuppliersPrices=Suppliers prices
|
||||||
|
SuppliersPricesOfProductsOrServices=Suppliers prices (of products or services)
|
||||||
CustomCode=Customs code
|
CustomCode=Customs code
|
||||||
CountryOrigin=Origin country
|
CountryOrigin=Origin country
|
||||||
HiddenIntoCombo=Hidden into select lists
|
HiddenIntoCombo=Hidden into select lists
|
||||||
@ -208,6 +213,7 @@ CostPmpHT=Net total VWAP
|
|||||||
ProductUsedForBuild=Auto consumed by production
|
ProductUsedForBuild=Auto consumed by production
|
||||||
ProductBuilded=Production completed
|
ProductBuilded=Production completed
|
||||||
ProductsMultiPrice=Product multi-price
|
ProductsMultiPrice=Product multi-price
|
||||||
|
ProductsOrServiceMultiPrice=Customers prices (of products or services, multi-prices)
|
||||||
ProductSellByQuarterHT=Products turnover quarterly VWAP
|
ProductSellByQuarterHT=Products turnover quarterly VWAP
|
||||||
ServiceSellByQuarterHT=Services turnover quarterly VWAP
|
ServiceSellByQuarterHT=Services turnover quarterly VWAP
|
||||||
Quarter1=1st. Quarter
|
Quarter1=1st. Quarter
|
||||||
|
|||||||
@ -112,6 +112,7 @@ ReplenishmentOrdersDesc=Ovo je lista svih otvorenih narudžbi dobavljača
|
|||||||
Replenishments=Nadopune
|
Replenishments=Nadopune
|
||||||
NbOfProductBeforePeriod=Količina proizvoda %s u zalihi prije odabranog perioda (%s)
|
NbOfProductBeforePeriod=Količina proizvoda %s u zalihi prije odabranog perioda (%s)
|
||||||
NbOfProductAfterPeriod=Količina proizvoda %s u zalihi poslije odabranog perioda (> %s)
|
NbOfProductAfterPeriod=Količina proizvoda %s u zalihi poslije odabranog perioda (> %s)
|
||||||
|
MassMovement=Mass movement
|
||||||
MassStockMovement=Masovno kretanje zalihe
|
MassStockMovement=Masovno kretanje zalihe
|
||||||
SelectProductInAndOutWareHouse=Odaberite proizvod, kolilinu, izvordno skladište i ciljano skladište. zatim kliknite "%s". Kada je ovo završeno za sva potrebna kretanja, kliknite "%s".
|
SelectProductInAndOutWareHouse=Odaberite proizvod, kolilinu, izvordno skladište i ciljano skladište. zatim kliknite "%s". Kada je ovo završeno za sva potrebna kretanja, kliknite "%s".
|
||||||
RecordMovement=Zapiši transfer
|
RecordMovement=Zapiši transfer
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user