Merge remote-tracking branch 'Upstream/develop' into develop-adherent

This commit is contained in:
aspangaro 2015-04-06 07:53:04 +02:00
commit ca82c2f36d
886 changed files with 13314 additions and 9598 deletions

View File

@ -42,28 +42,19 @@ Please don't edit the ChangeLog file. A project manager will update it from your
Use clear commit messages with the following structure:
<pre>
KEYWORD Short description (may be the bug number #456)
FIX|Fix #456 Short description (where #456 is number of bug fix, if it exists. In upper case to appear into ChangeLog)
or
CLOSE|Close #456 Short description (where #456 is number feature request, if it exists. In upper case to appear into ChangeLog)
or
NEW|New Short description (In upper case to appear into ChangeLog)
or
Short description (when the commit is not introducing feature or closing a bug)
Long description (Can span accross multiple lines).
</pre>
Where KEYWORD is one of:
- "Fixed" for bug fixes (May be followed by the bug number i.e: #456)
- "Closed" for a commit to close a feature request issue (May be followed by the bug number i.e: #456)
- void, don't put a keyword if the commit is not introducing feature or closing a bug.
### Pull Requests
When submitting a pull request, use following syntax:
<pre>
KEYWORD Short description (may be the bug number #456)
</pre>
Where KEYWORD is one of:
- "FIXED" or "Fixed" for bug fixes. In upper case to appear into ChangeLog. (May be followed by the bug number i.e: #456)
- "NEW" or "New" for new features. In upper case to appear into ChangeLog. (May be followed by the task number i.e: #123)
When submitting a pull request, use same rule than Commits. With upper case keyword to appear into ChangeLog.
### Resources

View File

@ -164,8 +164,6 @@
<severity>0</severity>
</rule>
<rule ref="Generic.VersionControl.SubversionProperties" />
<!-- Disallow usage of tab -->
<!-- <rule ref="Generic.WhiteSpace.DisallowTabIndent" /> -->

View File

@ -20,7 +20,7 @@
*/
/**
* \file htdocs/dev/generate-commande.php
* \file dev/initdata/generate-commande.php
* \brief Script de generation de donnees aleatoires pour les commandes
*/

View File

@ -19,7 +19,7 @@
*/
/**
* \file htdocs/dev/generate-facture.php
* \file dev/intdata/generate-facture.php
* \brief Script de generation de donnees aleatoires pour les factures
*/

View File

@ -20,7 +20,7 @@
*/
/**
* \file htdocs/dev/generate-produit.php
* \file dev/initdata/generate-produit.php
* \brief Script de generation de donnees aleatoires pour les produits
*/

View File

@ -20,7 +20,7 @@
*/
/**
* \file htdocs/dev/generate-propale.php
* \file dev/initdata/generate-propale.php
* \brief Script de generation de donnees aleatoires pour les propales
*/

View File

@ -20,8 +20,8 @@
*/
/**
* \file htdocs/dev/generate-societe.php
* \brief Script de generation de donnees aleatoires pour les societes
* \file dev/initdata/generate-societe.php
* \brief Script de generation de donnees aleatoires pour les societes
*/
// Test si mode batch
@ -89,7 +89,7 @@ for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++)
{
print "Company $s\n";
$soc = new Societe($db);
$soc->nom = "Company num ".time()."$s";
$soc->name = "Company num ".time()."$s";
$soc->town = $listoftown[rand(0, count($listoftown)-1)];
$soc->client = rand(1,2); // Une societe sur 2 est prospect, l'autre client
$soc->fournisseur = rand(0,1); // Une societe sur 2 est fournisseur
@ -101,7 +101,7 @@ for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++)
// Un client sur 3 a une remise de 5%
$user_remise=rand(1,3); if ($user_remise==3) $soc->remise_percent=5;
print "> client=".$soc->client.", fournisseur=".$soc->fournisseur.", remise=".$soc->remise_percent."\n";
$soc->note='Company created by the script generate-societe.php';
$soc->note_private = 'Company created by the script generate-societe.php';
$socid = $soc->create();
if ($socid >= 0)
@ -120,7 +120,7 @@ for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++)
}
}
print "Company ".$s." created nom=".$soc->nom."\n";
print "Company ".$s." created nom=".$soc->name."\n";
}
else
{

View File

@ -7427,7 +7427,7 @@ CREATE TABLE `llx_user` (
LOCK TABLES `llx_user` WRITE;
/*!40000 ALTER TABLE `llx_user` DISABLE KEYS */;
INSERT INTO `llx_user` VALUES (1,'2010-07-08 13:20:11','2012-12-12 16:54:10',NULL,NULL,'admin',0,NULL,NULL,NULL,'admin','21232f297a57a5a743894a0e4a801fc3',NULL,'SuperAdminName','Firstname','',NULL,'','','','bidon@destailleur.fr','',1,'','','',1,1,NULL,NULL,NULL,'','2014-12-21 20:52:09','2014-12-21 13:51:38',NULL,'',1,'01.jpg',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(2,'2010-07-08 13:54:48','2010-07-08 09:54:48',NULL,NULL,'demo',1,NULL,NULL,NULL,'demo','fe01ce2a7fbac8fafaed7c982a04e229',NULL,'John','Doe',NULL,NULL,'09123123','','','johndoe@mycompany.com',NULL,0,'','','',1,1,NULL,NULL,NULL,'','2013-03-24 16:30:29','2010-07-08 14:12:02',NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(3,'2010-07-11 16:18:59','2013-02-20 18:07:21',NULL,NULL,'adupont',1,NULL,NULL,NULL,'adupont','00856ab2bbb748aa29aa335a6e3a2407',NULL,'Dupont','Alain','',NULL,'','','','toto@aa.com','',0,'','','',1,1,NULL,NULL,2,'','2012-12-21 17:38:55',NULL,NULL,'',1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(4,'2013-01-23 17:52:27','2013-02-20 18:48:01',NULL,NULL,'aaa',1,NULL,NULL,NULL,'aaa','47bce5c74f589f4867dbd57e9ca9f808',NULL,'aaa','','',NULL,'','','','','',0,'','','',1,1,17,6,NULL,'','2013-02-25 10:18:41','2013-01-23 17:53:20',NULL,'',1,NULL,NULL,NULL,5,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(5,'2013-01-23 17:52:37','2013-01-23 15:52:37',NULL,NULL,'bbb',0,NULL,NULL,NULL,'bbb','08f8e0260c64418510cefb2b06eee5cd',NULL,'bbb','','',NULL,'','','','','',1,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(6,'2013-02-16 20:22:40','2013-02-16 18:22:40',NULL,NULL,'aaab',2,NULL,NULL,NULL,'aaab','4c189b020ceb022e0ecc42482802e2b8',NULL,'aaab','','',NULL,'','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(7,'2013-02-16 20:48:15','2013-02-16 18:48:15',NULL,NULL,'zzz',2,NULL,NULL,NULL,'zzz','f3abb86bd34cf4d52698f14c0da1dc60',NULL,'zzz','','',NULL,'','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(9,'2013-02-16 20:50:07','2013-03-24 15:10:14',NULL,NULL,'zzzg',2,NULL,NULL,NULL,'jc28fg4h','93d789524fd223cf05eecea3f59cbe86',NULL,'zzzg','','',NULL,'','','','','fsdkkfsdf<br />\r\nfsdfsd<br />\r\n<strong>fsdfs</strong>',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,5,NULL,'','','',NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `llx_user` VALUES (1,'2010-07-08 13:20:11','2012-12-12 16:54:10',NULL,NULL,'admin',0,NULL,NULL,NULL,'admin','21232f297a57a5a743894a0e4a801fc3',NULL,'SuperAdminName','Firstname','',NULL,'','','','bidon@destailleur.fr','',1,'','','',1,1,NULL,NULL,NULL,'','2014-12-21 20:52:09','2014-12-21 13:51:38',NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(2,'2010-07-08 13:54:48','2010-07-08 09:54:48',NULL,NULL,'demo',1,NULL,NULL,NULL,'demo','fe01ce2a7fbac8fafaed7c982a04e229',NULL,'John','Doe',NULL,NULL,'09123123','','','johndoe@mycompany.com',NULL,0,'','','',1,1,NULL,NULL,NULL,'','2013-03-24 16:30:29','2010-07-08 14:12:02',NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(3,'2010-07-11 16:18:59','2013-02-20 18:07:21',NULL,NULL,'adupont',1,NULL,NULL,NULL,'adupont','00856ab2bbb748aa29aa335a6e3a2407',NULL,'Dupont','Alain','',NULL,'','','','toto@aa.com','',0,'','','',1,1,NULL,NULL,2,'','2012-12-21 17:38:55',NULL,NULL,'',1,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(4,'2013-01-23 17:52:27','2013-02-20 18:48:01',NULL,NULL,'aaa',1,NULL,NULL,NULL,'aaa','47bce5c74f589f4867dbd57e9ca9f808',NULL,'aaa','','',NULL,'','','','','',0,'','','',1,1,17,6,NULL,'','2013-02-25 10:18:41','2013-01-23 17:53:20',NULL,'',1,NULL,NULL,NULL,5,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(5,'2013-01-23 17:52:37','2013-01-23 15:52:37',NULL,NULL,'bbb',0,NULL,NULL,NULL,'bbb','08f8e0260c64418510cefb2b06eee5cd',NULL,'bbb','','',NULL,'','','','','',1,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(6,'2013-02-16 20:22:40','2013-02-16 18:22:40',NULL,NULL,'aaab',2,NULL,NULL,NULL,'aaab','4c189b020ceb022e0ecc42482802e2b8',NULL,'aaab','','',NULL,'','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(7,'2013-02-16 20:48:15','2013-02-16 18:48:15',NULL,NULL,'zzz',2,NULL,NULL,NULL,'zzz','f3abb86bd34cf4d52698f14c0da1dc60',NULL,'zzz','','',NULL,'','','','','',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL),(9,'2013-02-16 20:50:07','2013-03-24 15:10:14',NULL,NULL,'zzzg',2,NULL,NULL,NULL,'jc28fg4h','93d789524fd223cf05eecea3f59cbe86',NULL,'zzzg','','',NULL,'','','','','fsdkkfsdf<br />\r\nfsdfsd<br />\r\n<strong>fsdfs</strong>',0,'','','',1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,5,NULL,'','','',NULL,NULL,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL);
/*!40000 ALTER TABLE `llx_user` ENABLE KEYS */;
UNLOCK TABLES;

View File

@ -26,7 +26,6 @@ fi
if [ "x$1" = "xall" ]
then
cd htdocs/lang
for dir in `find htdocs/langs/* -type d`
do
fic=`basename $dir`

View File

@ -323,8 +323,6 @@ else // Show
$var=true;
// Language
print_fiche_titre($langs->trans("Language"),'','');
print '<br>';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td><td>&nbsp;</td></tr>';

View File

@ -185,7 +185,7 @@ else if ($action == 'set_SUPPLIER_ORDER_OTHER')
// TODO We add/delete permission until permission can have a condition on a global var
$r_id = 1190;
$entity = $conf->entity;
$r_desc='Permission for second approval';
$r_desc=$langs->trans("Permission1190");
$r_modul='fournisseur';
$r_type='w';
$r_perms='commande';

View File

@ -111,11 +111,6 @@ jQuery(document).ready(function() {
print_fiche_titre($langs->trans("Backup"),'','setup');
print $langs->trans("BackupDesc",DOL_DATA_ROOT).'<br><br>';
print $langs->trans("BackupDesc2",DOL_DATA_ROOT).'<br>';
print $langs->trans("BackupDescX").'<br><br>';
print $langs->trans("BackupDesc3",DOL_DATA_ROOT).'<br>';
print $langs->trans("BackupDescY").'<br><br>';
?>
@ -124,9 +119,29 @@ print $langs->trans("BackupDescY").'<br><br>';
name="token" value="<?php echo $_SESSION['newtoken']; ?>" /> <input
type="hidden" name="export_type" value="server" />
<fieldset id="fieldsetexport">
<?php print '<legend>'.$langs->trans("DatabaseName").' : <b>'.$dolibarr_main_db_name.'</b></legend>'; ?>
<table>
<fieldset id="fieldsetexport"><legend style="font-size: 3em">1</legend>
<?php
print $langs->trans("BackupDesc3",$dolibarr_main_db_name).'<br>';
//print $langs->trans("BackupDescY").'<br>';
print '<br>';
?>
<div id="backupdatabaseleft" class="fichehalfleft" >
<?php
print_titre($title?$title:$langs->trans("BackupDumpWizard"));
print '<table width="100%" class="'.($useinecm?'nobordernopadding':'liste').'">';
print '<tr class="liste_titre">';
print '<td class="liste_titre">';
print $langs->trans("DatabaseName").' : <b>'.$dolibarr_main_db_name.'</b><br>';
print '</td>';
print '</tr>';
print '<tr '.$bc[false].'><td style="padding-left: 8px">';
?>
<table class="centpercent">
<tr>
<td valign="top">
@ -182,7 +197,7 @@ print $langs->trans("BackupDescY").'<br><br>';
$fullpathofmysqldump=$conf->global->SYSTEMTOOLS_MYSQLDUMP;
}
?><br>
<input type="text" name="mysqldump" size="80"
<input type="text" name="mysqldump" style="width: 80%"
value="<?php echo $fullpathofmysqldump; ?>" /></div>
<br>
@ -317,7 +332,7 @@ print $langs->trans("BackupDescY").'<br><br>';
$fullpathofpgdump=$conf->global->SYSTEMTOOLS_POSTGRESQLDUMP;
}
?><br>
<input type="text" name="postgresqldump" size="80"
<input type="text" name="postgresqldump" style="width: 80%"
value="<?php echo $fullpathofpgdump; ?>" /></div>
@ -357,12 +372,12 @@ print $langs->trans("BackupDescY").'<br><br>';
</tr>
</table>
</fieldset>
<fieldset>
<legend><?php echo $langs->trans("Destination"); ?></legend>
<label for="filename_template"> <?php echo $langs->trans("FileNameToGenerate"); ?></label>:
<input type="text" name="filename_template" size="60"
<!--<fieldset>
<legend><?php echo $langs->trans("Destination"); ?></legend> -->
<br>
<label for="filename_template"> <?php echo $langs->trans("FileNameToGenerate"); ?></label><br>
<input type="text" name="filename_template" style="width: 90%"
id="filename_template"
value="<?php
$prefix='dump';
@ -417,7 +432,8 @@ foreach($compression as $key => $val)
print '</div>';
print "\n";
?></fieldset>
?><!--</fieldset>--> <!-- End destination -->
<br>
<div align="center"><input type="submit" class="button"
@ -425,15 +441,38 @@ print "\n";
<br>
</div>
<?php
print '</td></tr></table>';
?>
</form>
</div>
<div id="backupdatabaseright" class="fichehalfright" style="height:400px; overflow: auto;">
<div class="ficheaddleft">
<?php
$filearray=dol_dir_list($conf->admin->dir_output.'/backup','files',0,'','',$sortfield,(strtolower($sortorder)=='asc'?SORT_ASC:SORT_DESC),1);
$result=$formfile->list_of_documents($filearray,null,'systemtools','',1,'backup/',1,0,$langs->trans("NoBackupFileAvailable"),0,$langs->trans("PreviousDumpFiles"));
print '<br>';
?>
</div>
</div>
</fieldset>
<br>
<fieldset><legend style="font-size: 3em">2</legend>
<?php
print $langs->trans("BackupDesc2",DOL_DATA_ROOT).'<br>';
print $langs->trans("BackupDescX").'<br><br>';
?>
</fieldset>
</form>
<?php
llxFooter();

View File

@ -66,13 +66,24 @@ jQuery(document).ready(function() {
print_fiche_titre($langs->trans("Restore"),'','setup');
print $langs->trans("RestoreDesc",DOL_DATA_ROOT).'<br><br>';
?>
<fieldset>
<legend style="font-size: 3em">1</legend>
<?php
print $langs->trans("RestoreDesc2",DOL_DATA_ROOT).'<br><br>';
print $langs->trans("RestoreDesc3",DOL_DATA_ROOT).'<br><br>';
?>
</fieldset>
<br>
<fieldset>
<legend style="font-size: 3em">2</legend>
<?php
print $langs->trans("RestoreDesc3",$dolibarr_main_db_name).'<br><br>';
?>
<fieldset id="fieldsetexport">
<?php print '<legend>'.$langs->trans("DatabaseName").' : <b>'.$dolibarr_main_db_name.'</b></legend>'; ?>
<?php print $langs->trans("DatabaseName").' : <b>'.$dolibarr_main_db_name.'</b>'; ?><br><br>
<table><tr><td valign="top">
<?php if ($conf->use_javascript_ajax) { ?>

View File

@ -88,10 +88,10 @@ if (!empty($MemoryLimit))
$form=new Form($db);
$formfile = new FormFile($db);
$help_url='EN:Backups|FR:Sauvegardes|ES:Copias_de_seguridad';
llxHeader('','',$help_url);
//$help_url='EN:Backups|FR:Sauvegardes|ES:Copias_de_seguridad';
//llxHeader('','',$help_url);
print_fiche_titre($langs->trans("Backup"),'','setup');
//print_fiche_titre($langs->trans("Backup"),'','setup');
// Start with empty buffer
@ -165,13 +165,18 @@ if ($what == 'mysql')
$paramclear.=' -p"'.str_replace(array('"','`'),array('\"','\`'),$dolibarr_main_db_pass).'"';
}
$_SESSION["commandbackuplastdone"]=$command." ".$paramcrypted;
$_SESSION["commandbackuptorun"]="";
/*
print '<b>'.$langs->trans("RunCommandSummary").':</b><br>'."\n";
print '<textarea rows="'.ROWS_2.'" cols="120">'.$command." ".$paramcrypted.'</textarea><br>'."\n";
print '<br>';
//print $paramclear;
// Now run command and show result
print '<b>'.$langs->trans("BackupResult").':</b> ';
*/
$errormsg='';
@ -264,6 +269,9 @@ if ($what == 'mysqlnobin')
{
backup_tables($outputfile);
}
$_SESSION["commandbackuplastdone"]="";
$_SESSION["commandbackuptorun"]="";
}
// POSTGRESQL
@ -320,7 +328,9 @@ if ($what == 'postgresql')
$paramcrypted.=" -w ".$dolibarr_main_db_name;
$paramclear.=" -w ".$dolibarr_main_db_name;
print $langs->trans("RunCommandSummaryToLaunch").':<br>'."\n";
$_SESSION["commandbackuplastdone"]="";
$_SESSION["commandbackuptorun"]=$command." ".$paramcrypted;
/*print $langs->trans("RunCommandSummaryToLaunch").':<br>'."\n";
print '<textarea rows="'.ROWS_3.'" cols="120">'.$command." ".$paramcrypted.'</textarea><br>'."\n";
print '<br>';
@ -330,7 +340,7 @@ if ($what == 'postgresql')
print $langs->trans("YouMustRunCommandFromCommandLineAfterLoginToUser",$dolibarr_main_db_user,$dolibarr_main_db_user);
print '<br>';
print '<br>';
print '<br>';*/
$what='';
}
@ -339,34 +349,46 @@ if ($what == 'postgresql')
// Si on a demande une generation
if ($what)
{
//if ($what)
//{
if ($errormsg)
{
setEventMessage($langs->trans("Error")." : ".$errormsg, 'errors');
/*
print '<div class="error">'.$langs->trans("Error")." : ".$errormsg.'</div>';
// print '<a href="'.DOL_URL_ROOT.$relativepatherr.'">'.$langs->trans("DownloadErrorFile").'</a><br>';
print '<br>';
print '<br>';
print '<br>';*/
}
else
{
print '<div class="ok">';
print $langs->trans("BackupFileSuccessfullyCreated").'.<br>';
print $langs->trans("YouCanDownloadBackupFile");
print '</div>';
print '<br>';
{
if ($what)
{
setEventMessage($langs->trans("BackupFileSuccessfullyCreated").'.<br>'.$langs->trans("YouCanDownloadBackupFile"));
/*print '<div class="ok">';
print $langs->trans("BackupFileSuccessfullyCreated").'.<br>';
print $langs->trans("YouCanDownloadBackupFile");
print '</div>';
print '<br>';*/
}
else
{
setEventMessage($langs->trans("YouMustRunCommandFromCommandLineAfterLoginToUser",$dolibarr_main_db_user,$dolibarr_main_db_user));
}
}
}
//}
/*
$filearray=dol_dir_list($conf->admin->dir_output.'/backup','files',0,'','',$sortfield,(strtolower($sortorder)=='asc'?SORT_ASC:SORT_DESC),1);
$result=$formfile->list_of_documents($filearray,null,'systemtools','',1,'backup/',1,0,($langs->trans("NoBackupFileAvailable").'<br>'.$langs->trans("ToBuildBackupFileClickHere",DOL_URL_ROOT.'/admin/tools/dolibarr_export.php')),0,$langs->trans("PreviousDumpFiles"));
print '<br>';
*/
// Redirect t backup page
header("Location: dolibarr_export.php");
$time_end = time();
llxFooter();
$db->close();

View File

@ -29,6 +29,8 @@ include_once DOL_DOCUMENT_ROOT . '/core/lib/geturl.lib.php';
$langs->load("admin");
$langs->load("other");
$action=GETPOST('action','alpha');
if (! $user->admin) accessforbidden();
if (GETPOST('msg','alpha')) {
@ -43,14 +45,18 @@ $dolibarrroot=preg_replace('/([\\/]+)$/i','',DOL_DOCUMENT_ROOT);
$dolibarrroot=preg_replace('/([^\\/]+)$/i','',$dolibarrroot);
$dolibarrdataroot=preg_replace('/([\\/]+)$/i','',DOL_DATA_ROOT);
$dirins=DOL_DOCUMENT_ROOT.'/custom';
/*
* Actions
*/
if (GETPOST('action','alpha')=='install')
if ($action=='install')
{
$error=0;
// $original_file should match format module_modulename-x.y[.z].zip
$original_file=basename($_FILES["fileinstall"]["name"]);
$newfile=$conf->admin->dir_temp.'/'.$original_file.'/'.$original_file;
@ -72,33 +78,87 @@ if (GETPOST('action','alpha')=='install')
if (! $error)
{
@dol_delete_dir_recursive($conf->admin->dir_temp.'/'.$original_file);
dol_mkdir($conf->admin->dir_temp.'/'.$original_file);
if ($original_file)
{
@dol_delete_dir_recursive($conf->admin->dir_temp.'/'.$original_file);
dol_mkdir($conf->admin->dir_temp.'/'.$original_file);
}
$tmpdir=preg_replace('/\.zip$/','',$original_file).'.dir';
if ($tmpdir)
{
@dol_delete_dir_recursive($conf->admin->dir_temp.'/'.$tmpdir);
dol_mkdir($conf->admin->dir_temp.'/'.$tmpdir);
}
$result=dol_move_uploaded_file($_FILES['fileinstall']['tmp_name'],$newfile,1,0,$_FILES['fileinstall']['error']);
if ($result > 0)
{
$documentrootalt=DOL_DOCUMENT_ROOT.'/extensions';
$result=dol_uncompress($newfile,$documentrootalt);
$result=dol_uncompress($newfile,$conf->admin->dir_temp.'/'.$tmpdir);
if (! empty($result['error']))
{
$langs->load("errors");
setEventMessage($langs->trans($result['error'],$original_file), 'errors');
$error++;
}
else
{
setEventMessage($langs->trans("SetupIsReadyForUse"));
// Now we move the dir of the module
$modulename=preg_replace('/module_/', '', $original_file);
$modulename=preg_replace('/\-[\d]+\.[\d]+.*$/', '', $modulename);
// Search dir $modulename
$modulenamedir=$conf->admin->dir_temp.'/'.$tmpdir.'/'.$modulename;
//var_dump($modulenamedir);
if (! dol_is_dir($modulenamedir))
{
$modulenamedir=$conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulename;
//var_dump($modulenamedir);
if (! dol_is_dir($modulenamedir))
{
setEventMessage($langs->trans("ErrorModuleFileSeemsToHaveAWrongFormat"), 'errors');
$error++;
}
}
if (! $error)
{
//var_dump($dirins);
@dol_delete_dir_recursive($dirins.'/'.$modulename);
$result=dolCopyDir($modulenamedir, $dirins.'/'.$modulename, '0444', 1);
if ($result <= 0)
{
setEventMessage($langs->trans("ErrorFailedToCopy"), 'errors');
$error++;
}
}
}
}
else
{
$error++;
}
}
if (! $error)
{
setEventMessage($langs->trans("SetupIsReadyForUse"));
}
}
/*
* View
*/
$dirins=DOL_DOCUMENT_ROOT.'/extensions';
$dirins_ok=(is_dir($dirins));
// Set dir where external modules are installed
if (! dol_is_dir($dirins))
{
dol_mkdir($dirins);
}
$dirins_ok=(dol_is_dir($dirins));
$wikihelp='EN:Installation_-_Upgrade|FR:Installation_-_Mise_à_jour|ES:Instalación_-_Actualización';
llxHeader('',$langs->trans("Upgrade"),$wikihelp);
@ -143,6 +203,8 @@ else
}
print '<br>';
// Upgrade
print $langs->trans("Upgrade").'<br>';
print '<hr>';
print $langs->trans("ThisIsProcessToFollow").'<br>';
@ -162,20 +224,76 @@ print $langs->trans("RestoreLock",$dolibarrdataroot.'/install.lock').'<br>';
print '<br>';
print '<br>';
// Install external module
$allowonlineinstall=true;
$allowfromweb=1;
if (dol_is_file($dolibarrdataroot.'/installmodules.lock')) $allowonlineinstall=false;
$fullurl='<a href="'.$urldolibarrmodules.'" target="_blank">'.$urldolibarrmodules.'</a>';
$message='';
if (! empty($allowonlineinstall))
{
if (! in_array('/custom',explode(',',$dolibarr_main_url_root_alt)))
{
$message=info_admin($langs->trans("ConfFileMuseContainCustom", DOL_DOCUMENT_ROOT.'/custom', DOL_DOCUMENT_ROOT));
$allowfromweb=-1;
}
else
{
if ($dirins_ok)
{
if (! is_writable(dol_osencode($dirins)))
{
$langs->load("errors");
$message=info_admin($langs->trans("ErrorFailedToWriteInDir",$dirins));
$allowfromweb=0;
}
}
else
{
$message=info_admin($langs->trans("NotExistsDirect",$dirins).$langs->trans("InfDirAlt").$langs->trans("InfDirExample"));
$allowfromweb=0;
}
}
}
else
{
$message=info_admin($langs->trans("InstallModuleFromWebHasBeenDisabledByFile",$dolibarrdataroot.'/installmodules.lock'));
$allowfromweb=0;
}
print $langs->trans("AddExtensionThemeModuleOrOther").'<br>';
print '<hr>';
print $langs->trans("ThisIsProcessToFollow").'<br>';
print '<b>'.$langs->trans("StepNb",1).'</b>: ';
print $langs->trans("FindPackageFromWebSite",$fullurl).'<br>';
print '<b>'.$langs->trans("StepNb",2).'</b>: ';
print $langs->trans("DownloadPackageFromWebSite",$fullurl).'<br>';
print '<b>'.$langs->trans("StepNb",3).'</b>: ';
print $langs->trans("UnpackPackageInDolibarrRoot",$dolibarrroot).'<br>';
if (! empty($conf->global->MAIN_ONLINE_INSTALL_MODULE))
if ($allowfromweb < 1)
{
if ($dirins_ok)
print $langs->trans("SomethingMakeInstallFromWebNotPossible");
print $message;
//print $langs->trans("SomethingMakeInstallFromWebNotPossible2");
print '<br>';
}
if ($allowfromweb >= 0)
{
if ($allowfromweb == 1) print $langs->trans("ThisIsProcessToFollow").'<br>';
else print $langs->trans("ThisIsAlternativeProcessToFollow").'<br>';
print '<b>'.$langs->trans("StepNb",1).'</b>: ';
print $langs->trans("FindPackageFromWebSite",$fullurl).'<br>';
print '<b>'.$langs->trans("StepNb",2).'</b>: ';
print $langs->trans("DownloadPackageFromWebSite",$fullurl).'<br>';
print '<b>'.$langs->trans("StepNb",3).'</b>: ';
if ($allowfromweb == 1)
{
print $langs->trans("UnpackPackageInDolibarrRoot",$dirins).'<br>';
print '<form enctype="multipart/form-data" method="POST" class="noborder" action="'.$_SERVER["PHP_SELF"].'" name="forminstall">';
print '<input type="hidden" name="action" value="install">';
print $langs->trans("YouCanSubmitFile").' <input type="file" name="fileinstall"> ';
@ -184,16 +302,12 @@ if (! empty($conf->global->MAIN_ONLINE_INSTALL_MODULE))
}
else
{
$message=info_admin($langs->trans("NotExistsDirect",$dirins).$langs->trans("InfDirAlt").$langs->trans("InfDirExample"));
setEventMessage($message, 'warnings');
print $langs->trans("UnpackPackageInDolibarrRoot",$dirins).'<br>';
print '<b>'.$langs->trans("StepNb",4).'</b>: ';
print $langs->trans("SetupIsReadyForUse").'<br>';
}
}
else
{
print '<b>'.$langs->trans("StepNb",4).'</b>: ';
print $langs->trans("SetupIsReadyForUse").'<br>';
}
print '</form>';
if (! empty($result['return']))
{

View File

@ -2415,7 +2415,7 @@ class Propal extends CommonObject
}
$response = new WorkboardResponse();
$response->warning_delay = $delay_warning;
$response->warning_delay = $delay_warning/60/60/24;
$response->label = $label;
$response->url = DOL_URL_ROOT.'/comm/propal/list.php?viewstatut='.$statut;
$response->img = img_object($langs->trans("Propals"),"propal");

View File

@ -790,7 +790,7 @@ class Commande extends CommonOrder
$this->lines[$i]->fk_fournprice,
$this->lines[$i]->pa_ht,
$this->lines[$i]->label,
$this->lines[$i]->array_options
$this->lines[$i]->array_options
);
if ($result < 0)
{
@ -862,28 +862,25 @@ class Commande extends CommonOrder
if (! $error)
{
$action='create';
//$action='create';
// Actions on extra fields (by external module or standard code)
// FIXME le hook fait double emploi avec le trigger !!
$hookmanager->initHooks(array('orderdao'));
/*$hookmanager->initHooks(array('orderdao'));
$parameters=array('socid'=>$this->id);
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
if (empty($reshook))
{
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
{
{*/
$result=$this->insertExtraFields();
if ($result < 0)
{
$error++;
}
}
if ($result < 0) $error++;
/* }
}
else if ($reshook < 0) $error++;
else if ($reshook < 0) $error++;*/
}
if (! $notrigger)
if (! $error && ! $notrigger)
{
// Call trigger
$result=$this->call_trigger('ORDER_CREATE',$user);
@ -891,29 +888,27 @@ class Commande extends CommonOrder
// End call triggers
}
if (!$error) {
if (! $error)
{
$this->db->commit();
return $this->id;
}
foreach($this->errors as $errmsg)
{
dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
$this->error.=($this->error?', '.$errmsg:$errmsg);
}
$this->db->rollback();
return -1*$error;
else
{
$this->db->rollback();
return -1*$error;
}
}
else
{
{
$this->error=$this->db->lasterror();
$this->db->rollback();
return -1;
}
}
}
else
{
{
dol_print_error($this->db);
$this->db->rollback();
return -1;

View File

@ -78,6 +78,16 @@ if ($negpage)
$object = new Account($db);
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
{
$paiementtype="";
$req_nb="";
$thirdparty="";
$req_desc="";
$req_debit="";
$req_credit="";
}
/*
* Action
*/
@ -446,7 +456,10 @@ if ($id > 0 || ! empty($ref))
print '<td align="right"><input type="text" class="flat" name="req_debit" value="'.$req_debit.'" size="4"></td>';
print '<td align="right"><input type="text" class="flat" name="req_credit" value="'.$req_credit.'" size="4"></td>';
print '<td align="center">&nbsp;</td>';
print '<td align="center" width="40"><input type="image" class="liste_titre" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'"></td>';
print '<td class="liste_titre" align="right">';
print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
print '</td>';
print "</tr>\n";

View File

@ -111,8 +111,12 @@ foreach ($accounts as $key=>$type)
if ($acc->rappro)
{
$result=$acc->load_board($user,$acc->id);
print $acc->nbtodo;
if ($acc->nbtodolate) print ' ('.$acc->nbtodolate.img_warning($langs->trans("Late")).')';
if ($result<0) {
setEventMessage($acc->error, 'errors');
} else {
print $result->nbtodo;
if ($result->nbtodolate) print ' ('.$result->nbtodolate.img_warning($langs->trans("Late")).')';
}
}
else print $langs->trans("FeatureDisabled");
print '</td>';
@ -223,8 +227,12 @@ foreach ($accounts as $key=>$type)
if ($acc->rappro)
{
$result=$acc->load_board($user,$acc->id);
print $acc->nbtodo;
if ($acc->nbtodolate) print ' ('.$acc->nbtodolate.img_warning($langs->trans("Late")).')';
if ($result<0) {
setEventMessage($acc->error, 'errors');
} else {
print $result->nbtodo;
if ($result->nbtodolate) print ' ('.$result->nbtodolate.img_warning($langs->trans("Late")).')';
}
}
else print $langs->trans("FeatureDisabled");
print '</td>';

View File

@ -1,5 +0,0 @@
<a href="index.php">Go back to index</a>
| <a href="<?php echo $_SERVER["REQUEST_URI"];?>">Refresh</a>
<br><br>
<?php phpinfo(); ?>

123
htdocs/contact/document.php Normal file
View File

@ -0,0 +1,123 @@
<?php
/* Copyright (C) 2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2015 Frederic France <frederic.france@free.fr>
*
* 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
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* \file htdocs/contact/document.php
* \ingroup contact
* \brief Page with attached files on contact
*/
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/contact.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
$langs->load("other");
$langs->load("companies");
$langs->load("contact");
$id = GETPOST('id','int');
$action = GETPOST("action");
$confirm = GETPOST('confirm', 'alpha');
// Security check
if ($user->societe_id) $socid=$user->societe_id;
$result = restrictedArea($user, 'contact', $id, '','');
// Get parameters
$sortfield = GETPOST("sortfield",'alpha');
$sortorder = GETPOST("sortorder",'alpha');
$page = GETPOST("page",'int');
if ($page == -1) {
$page = 0;
}
$offset = $conf->liste_limit * $page;
$pageprev = $page - 1;
$pagenext = $page + 1;
if (! $sortorder) $sortorder="ASC";
if (! $sortfield) $sortfield="name";
$object = new Contact($db);
if ($id > 0) $object->fetch($id);
$upload_dir = $conf->societe->dir_output.'/contact/'.dol_sanitizeFileName($object->ref);
$modulepart='contact';
/*
* Actions
*/
include DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_pre_headers.tpl.php';
/*
* View
*/
$form = new Form($db);
$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
llxHeader("",$langs->trans("Contact"), $helpurl);
if ($object->id)
{
$head = contact_prepare_head($object, $user);
dol_fiche_head($head, 'documents', $langs->trans("Contact"), 0, 'contact');
// Construit liste des fichiers
$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$totalsize=0;
foreach($filearray as $key => $file)
{
$totalsize+=$file['size'];
}
print '<table class="border" width="100%">';
// Ref
print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td colspan="3">';
print $form->showrefnav($object, 'id', $linkback);
print '</td></tr>';
// Name
print '<tr><td width="20%">'.$langs->trans("Lastname").' / '.$langs->trans("Label").'</td><td width="30%">'.$object->lastname.'</td>';
print '<td width="20%">'.$langs->trans("Firstname").'</td><td width="30%">'.$object->firstname.'</td></tr>';
print '<tr><td>'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.$totalsize.' '.$langs->trans("bytes").'</td></tr>';
print '</table>';
print '</div>';
$modulepart = 'contact';
$permission = $user->rights->societe->contact->creer;
$param = '&id=' . $object->id;
include DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
} else {
print $langs->trans("ErrorUnknown");
}
llxFooter();
$db->close();

View File

@ -95,6 +95,7 @@ class box_actions extends ModeleBoxes
$late = '';
$objp = $db->fetch_object($result);
$datelimite = $db->jdate($objp->dp);
$actionstatic->id = $objp->id;
$actionstatic->label = $objp->label;
$actionstatic->type_label = $objp->type_label;
$actionstatic->code = $objp->code;
@ -108,7 +109,6 @@ class box_actions extends ModeleBoxes
//($langs->transnoentities("Action".$objp->code)!=("Action".$objp->code) ? $langs->transnoentities("Action".$objp->code) : $objp->label)
$label = empty($objp->label)?$objp->type_label:$objp->label;
$tooltip = $langs->trans('Action'.$objp->code).': '.$label;
$this->info_box_contents[$line][] = array(
'td' => 'align="left"',
'text' => $actionstatic->getNomUrl(1),

View File

@ -2871,7 +2871,7 @@ class Form
{
print '<option value="'.$obj->rowid.'">';
}
print $obj->label;
print trim($obj->label);
if ($statut == 2 && $obj->status == 1) print ' ('.$langs->trans("Closed").')';
print '</option>';
$i++;

View File

@ -1,6 +1,7 @@
<?php
/* Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2015 Frederic France <frederic.france@free.fr>
*
* 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
@ -32,62 +33,75 @@ function contact_prepare_head(Contact $object)
{
global $langs, $conf, $user;
$h = 0;
$tab = 0;
$head = array();
$head[$h][0] = DOL_URL_ROOT.'/contact/card.php?id='.$object->id;
$head[$h][1] = $langs->trans("Card");
$head[$h][2] = 'card';
$h++;
$head[$tab][0] = DOL_URL_ROOT.'/contact/card.php?id='.$object->id;
$head[$tab][1] = $langs->trans("Card");
$head[$tab][2] = 'card';
$tab++;
if (! empty($conf->ldap->enabled) && ! empty($conf->global->LDAP_CONTACT_ACTIVE))
{
$langs->load("ldap");
$head[$h][0] = DOL_URL_ROOT.'/contact/ldap.php?id='.$object->id;
$head[$h][1] = $langs->trans("LDAPCard");
$head[$h][2] = 'ldap';
$h++;
$head[$tab][0] = DOL_URL_ROOT.'/contact/ldap.php?id='.$object->id;
$head[$tab][1] = $langs->trans("LDAPCard");
$head[$tab][2] = 'ldap';
$tab++;
}
$head[$h][0] = DOL_URL_ROOT.'/contact/perso.php?id='.$object->id;
$head[$h][1] = $langs->trans("PersonalInformations");
$head[$h][2] = 'perso';
$h++;
$head[$tab][0] = DOL_URL_ROOT.'/contact/perso.php?id='.$object->id;
$head[$tab][1] = $langs->trans("PersonalInformations");
$head[$tab][2] = 'perso';
$tab++;
$head[$h][0] = DOL_URL_ROOT.'/contact/exportimport.php?id='.$object->id;
$head[$h][1] = $langs->trans("ExportImport");
$head[$h][2] = 'exportimport';
$h++;
$head[$tab][0] = DOL_URL_ROOT.'/contact/exportimport.php?id='.$object->id;
$head[$tab][1] = $langs->trans("ExportImport");
$head[$tab][2] = 'exportimport';
$tab++;
// Show more tabs from modules
// Entries must be declared in modules descriptor with line
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
// $this->tabs = array('entity:-tabname); to remove a tab
complete_head_from_modules($conf,$langs,$object,$head,$h,'contact');
complete_head_from_modules($conf,$langs,$object,$head,$tab,'contact');
// Notes
$head[$h][0] = DOL_URL_ROOT.'/contact/note.php?id='.$object->id;
$head[$h][1] = $langs->trans("Note");
$head[$h][2] = 'note';
$h++;
if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) {
$nbNote = (empty($object->note_private)?0:1)+(empty($object->note_public)?0:1);
$head[$tab][0] = DOL_URL_ROOT.'/contact/note.php?id='.$object->id;
$head[$tab][1] = $langs->trans("Note");
if($nbNote > 0) $head[$tab][1].= ' <span class="badge">'.$nbNote.'</span>';
$head[$tab][2] = 'note';
$tab++;
}
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$upload_dir = $conf->societe->dir_output . "/contact/" . dol_sanitizeFileName($object->ref);
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$tab][0] = DOL_URL_ROOT.'/contact/document.php?id='.$object->id;
$head[$tab][1] = $langs->trans("Documents");
if($nbFiles > 0) $head[$tab][1].= ' <span class="badge">'.$nbFiles.'</span>';
$head[$tab][2] = 'documents';
$tab++;
if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire))
{
$type = 4;
$head[$h][0] = DOL_URL_ROOT.'/categories/categorie.php?id='.$object->id."&type=".$type;
$head[$h][1] = $langs->trans('Categories');
$head[$h][2] = 'category';
$h++;
$head[$tab][0] = DOL_URL_ROOT.'/categories/categorie.php?id='.$object->id."&type=".$type;
$head[$tab][1] = $langs->trans('Categories');
$head[$tab][2] = 'category';
$tab++;
}
// Info
$head[$h][0] = DOL_URL_ROOT.'/contact/info.php?id='.$object->id;
$head[$h][1] = $langs->trans("Info");
$head[$h][2] = 'info';
$h++;
$head[$tab][0] = DOL_URL_ROOT.'/contact/info.php?id='.$object->id;
$head[$tab][1] = $langs->trans("Info");
$head[$tab][2] = 'info';
$tab++;
complete_head_from_modules($conf,$langs,$object,$head,$h,'contact','remove');
complete_head_from_modules($conf,$langs,$object,$head,$tab,'contact','remove');
return $head;
}

View File

@ -477,15 +477,19 @@ function dol_filemtime($pathoffile)
*
* @param string $srcfile Source file (can't be a directory)
* @param string $destfile Destination file (can't be a directory)
* @param int $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK)
* @param int $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666'
* @param int $overwriteifexists Overwrite file if exists (1 by default)
* @return int <0 if error, 0 if nothing done (dest file already exists and overwriteifexists=0), >0 if OK
* @see dolCopyr
*/
function dol_copy($srcfile, $destfile, $newmask=0, $overwriteifexists=1)
{
global $conf;
dol_syslog("files.lib.php::dol_copy srcfile=".$srcfile." destfile=".$destfile." newmask=".$newmask." overwriteifexists=".$overwriteifexists);
if (empty($srcfile) || empty($destfile)) return -1;
$destexists=dol_is_file($destfile);
if (! $overwriteifexists && $destexists) return 0;
@ -523,12 +527,77 @@ function dol_copy($srcfile, $destfile, $newmask=0, $overwriteifexists=1)
return 1;
}
/**
* Copy a dir to another dir.
*
* @param string $srcfile Source file (a directory)
* @param string $destfile Destination file (a directory)
* @param int $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666'
* @param int $overwriteifexists Overwrite file if exists (1 by default)
* @return int <0 if error, 0 if nothing done (dest dir already exists and overwriteifexists=0), >0 if OK
* @see dol_copy
*/
function dolCopyDir($srcfile, $destfile, $newmask, $overwriteifexists)
{
global $conf;
$result=0;
dol_syslog("files.lib.php::dolCopyr srcfile=".$srcfile." destfile=".$destfile." newmask=".$newmask." overwriteifexists=".$overwriteifexists);
if (empty($srcfile) || empty($destfile)) return -1;
$destexists=dol_is_dir($destfile);
if (! $overwriteifexists && $destexists) return 0;
$srcfile=dol_osencode($srcfile);
$destfile=dol_osencode($destfile);
// recursive function to copy
// all subdirectories and contents:
if (is_dir($srcfile))
{
$dir_handle=opendir($srcfile);
while ($file=readdir($dir_handle))
{
if ($file!="." && $file!="..")
{
if (is_dir($srcfile."/".$file))
{
if (!is_dir($destfile."/".$file))
{
umask(0);
$dirmaskdec=octdec($newmask);
if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $dirmaskdec=octdec($conf->global->MAIN_UMASK);
$dirmaskdec |= octdec('0200'); // Set w bit required to be able to create content for recursive subdirs files
dol_mkdir($destfile."/".$file, '', decoct($dirmaskdec));
}
$result=dolCopyDir($srcfile."/".$file, $destfile."/".$file, $newmask, $overwriteifexists);
}
else
{
$result=dol_copy($srcfile."/".$file, $destfile."/".$file, $newmask, $overwriteifexists);
}
if ($result < 0) break;
}
}
closedir($dir_handle);
}
else
{
$result=dol_copy($srcfile, $destfile, $newmask, $overwriteifexists);
}
return $result;
}
/**
* Move a file into another name.
* This function differs from dol_move_uploaded_file, because it can be called in any context.
*
* @param string $srcfile Source file (can't be a directory)
* @param string $destfile Destination file (can't be a directory)
* @param string $srcfile Source file (can't be a directory. use native php @rename() to move a directory)
* @param string $destfile Destination file (can't be a directory. use native php @rename() to move a directory)
* @param string $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK)
* @param int $overwriteifexists Overwrite file if exists (1 by default)
* @return boolean True if OK, false if KO
@ -1261,19 +1330,40 @@ function dol_compress_file($inputfile, $outputfile, $mode="gz")
*/
function dol_uncompress($inputfile,$outputdir)
{
global $conf;
global $conf, $langs;
if (defined('ODTPHP_PATHTOPCLZIP'))
{
dol_syslog("Constant ODTPHP_PATHTOPCLZIP for pclzip library is set to ".constant('ODTPHP_PATHTOPCLZIP').", so we use Pclzip to unzip into ".$outputdir);
include_once ODTPHP_PATHTOPCLZIP.'/pclzip.lib.php';
$archive = new PclZip($inputfile);
if ($archive->extract(PCLZIP_OPT_PATH, $outputdir) == 0) return array('error'=>$archive->errorInfo(true));
else return array();
$result=$archive->extract(PCLZIP_OPT_PATH, $outputdir);
//var_dump($result);
if (! is_array($result) && $result <= 0) return array('error'=>$archive->errorInfo(true));
else
{
$ok=1; $errmsg='';
// Loop on each file to check result for unzipping file
foreach($result as $key => $val)
{
if ($val['status'] == 'path_creation_fail')
{
$langs->load("errors");
$ok=0;
$errmsg=$langs->trans("ErrorFailToCreateDir", $val['filename']);
break;
}
}
if ($ok) return array();
else return array('error'=>$errmsg);
}
}
if (class_exists('ZipArchive'))
{
$zip = new ZipArchive;
dol_syslog("Class ZipArchive is set so we unzip using ZipArchive to unzip into ".$outputdir);
$zip = new ZipArchive;
$res = $zip->open($inputfile);
if ($res === TRUE)
{

View File

@ -3728,9 +3728,10 @@ function get_exdir($num,$level=3,$alpha=0,$withoutslash=0)
*
* @param string $dir Directory to create (Separator must be '/'. Example: '/mydir/mysubdir')
* @param string $dataroot Data root directory (To avoid having the data root in the loop. Using this will also lost the warning on first dir PHP has no permission when open_basedir is used)
* @param int $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0444'
* @return int < 0 if KO, 0 = already exists, > 0 if OK
*/
function dol_mkdir($dir, $dataroot='')
function dol_mkdir($dir, $dataroot='', $newmask=0)
{
global $conf;
@ -3767,8 +3768,8 @@ function dol_mkdir($dir, $dataroot='')
dol_syslog("functions.lib::dol_mkdir: Directory '".$ccdir."' does not exists or is outside open_basedir PHP setting.",LOG_DEBUG);
umask(0);
$dirmaskdec=octdec('0755');
if (! empty($conf->global->MAIN_UMASK)) $dirmaskdec=octdec($conf->global->MAIN_UMASK);
$dirmaskdec=octdec($newmask);
if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $dirmaskdec=octdec($conf->global->MAIN_UMASK);
$dirmaskdec |= octdec('0111'); // Set x bit required for directories
if (! @mkdir($ccdir_osencoded, $dirmaskdec))
{

View File

@ -57,7 +57,7 @@ function tax_prepare_head(ChargeSociales $object)
$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview\.png)$'));
$head[$h][0] = DOL_URL_ROOT.'/compta/sociales/document.php?id='.$object->id;
$head[$h][1] = $langs->trans("Documents");
if($nbFiles > 0) $head[$h][1].= ' ('.$nbFiles.')';
if($nbFiles > 0) $head[$h][1].= ' <span class="badge">'.$nbFiles.'</span>';
$head[$h][2] = 'documents';
$h++;

View File

@ -209,8 +209,11 @@ class modFacture extends DolibarrModules
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
@ -265,7 +268,10 @@ class modFacture extends DolibarrModules
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;

View File

@ -67,425 +67,446 @@ class modFournisseur extends DolibarrModules
"/fournisseur/facture/temp"
);
// Dependances
$this->depends = array("modSociete");
$this->requiredby = array();
$this->langfiles = array('bills', 'companies', 'suppliers', 'orders');
// Dependances
$this->depends = array("modSociete");
$this->requiredby = array();
$this->langfiles = array('bills', 'companies', 'suppliers', 'orders');
// Config pages
$this->config_page_url = array("supplier_order.php");
// Config pages
$this->config_page_url = array("supplier_order.php");
// Constantes
$this->const = array();
$r=0;
// Constantes
$this->const = array();
$r=0;
$this->const[$r][0] = "COMMANDE_SUPPLIER_ADDON_PDF";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "muscadet";
$this->const[$r][3] = 'Nom du gestionnaire de generation des bons de commande en PDF';
$this->const[$r][4] = 0;
$r++;
$this->const[$r][0] = "COMMANDE_SUPPLIER_ADDON_PDF";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "muscadet";
$this->const[$r][3] = 'Nom du gestionnaire de generation des bons de commande en PDF';
$this->const[$r][4] = 0;
$r++;
$this->const[$r][0] = "COMMANDE_SUPPLIER_ADDON_NUMBER";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "mod_commande_fournisseur_muguet";
$this->const[$r][3] = 'Nom du gestionnaire de numerotation des commandes fournisseur';
$this->const[$r][4] = 0;
$r++;
$this->const[$r][0] = "COMMANDE_SUPPLIER_ADDON_NUMBER";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "mod_commande_fournisseur_muguet";
$this->const[$r][3] = 'Nom du gestionnaire de numerotation des commandes fournisseur';
$this->const[$r][4] = 0;
$r++;
$this->const[$r][0] = "INVOICE_SUPPLIER_ADDON_PDF";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "canelle";
$this->const[$r][3] = 'Nom du gestionnaire de generation des factures fournisseur en PDF';
$this->const[$r][4] = 0;
$r++;
$this->const[$r][0] = "INVOICE_SUPPLIER_ADDON_PDF";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "canelle";
$this->const[$r][3] = 'Nom du gestionnaire de generation des factures fournisseur en PDF';
$this->const[$r][4] = 0;
$r++;
$this->const[$r][0] = "INVOICE_SUPPLIER_ADDON_NUMBER";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "mod_facture_fournisseur_cactus";
$this->const[$r][3] = 'Nom du gestionnaire de numerotation des factures fournisseur';
$this->const[$r][4] = 0;
$r++;
$this->const[$r][0] = "INVOICE_SUPPLIER_ADDON_NUMBER";
$this->const[$r][1] = "chaine";
$this->const[$r][2] = "mod_facture_fournisseur_cactus";
$this->const[$r][3] = 'Nom du gestionnaire de numerotation des factures fournisseur';
$this->const[$r][4] = 0;
$r++;
// Boxes
$this->boxes = array(
0=>array('file'=>'box_graph_invoices_supplier_permonth.php','enabledbydefaulton'=>'Home'),
1=>array('file'=>'box_graph_orders_supplier_permonth.php','enabledbydefaulton'=>'Home'),
2=>array('file'=>'box_fournisseurs.php','enabledbydefaulton'=>'Home'),
3=>array('file'=>'box_factures_fourn_imp.php','enabledbydefaulton'=>'Home'),
4=>array('file'=>'box_factures_fourn.php','enabledbydefaulton'=>'Home'),
5=>array('file'=>'box_supplier_orders.php','enabledbydefaulton'=>'Home'),
);
// Boxes
$this->boxes = array(
0=>array('file'=>'box_graph_invoices_supplier_permonth.php','enabledbydefaulton'=>'Home'),
1=>array('file'=>'box_graph_orders_supplier_permonth.php','enabledbydefaulton'=>'Home'),
2=>array('file'=>'box_fournisseurs.php','enabledbydefaulton'=>'Home'),
3=>array('file'=>'box_factures_fourn_imp.php','enabledbydefaulton'=>'Home'),
4=>array('file'=>'box_factures_fourn.php','enabledbydefaulton'=>'Home'),
5=>array('file'=>'box_supplier_orders.php','enabledbydefaulton'=>'Home'),
);
// Permissions
$this->rights = array();
$this->rights_class = 'fournisseur';
$r=0;
// Permissions
$this->rights = array();
$this->rights_class = 'fournisseur';
$r=0;
$r++;
$this->rights[$r][0] = 1181;
$this->rights[$r][1] = 'Consulter les fournisseurs';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'lire';
$r++;
$this->rights[$r][0] = 1181;
$this->rights[$r][1] = 'Consulter les fournisseurs';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'lire';
$r++;
$this->rights[$r][0] = 1182;
$this->rights[$r][1] = 'Consulter les commandes fournisseur';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'lire';
$r++;
$this->rights[$r][0] = 1182;
$this->rights[$r][1] = 'Consulter les commandes fournisseur';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'lire';
$r++;
$this->rights[$r][0] = 1183;
$this->rights[$r][1] = 'Creer une commande fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'creer';
$r++;
$this->rights[$r][0] = 1183;
$this->rights[$r][1] = 'Creer une commande fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'creer';
$r++;
$this->rights[$r][0] = 1184;
$this->rights[$r][1] = 'Valider une commande fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'supplier_order_advance';
$this->rights[$r][5] = 'validate';
$r++;
$this->rights[$r][0] = 1184;
$this->rights[$r][1] = 'Valider une commande fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'supplier_order_advance';
$this->rights[$r][5] = 'validate';
$r++;
$this->rights[$r][0] = 1185;
$this->rights[$r][1] = 'Approuver une commande fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'approuver';
$r++;
$this->rights[$r][0] = 1185;
$this->rights[$r][1] = 'Approuver une commande fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'approuver';
$r++;
$this->rights[$r][0] = 1186;
$this->rights[$r][1] = 'Commander une commande fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'commander';
$r++;
$this->rights[$r][0] = 1186;
$this->rights[$r][1] = 'Commander une commande fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'commander';
$r++;
$this->rights[$r][0] = 1187;
$this->rights[$r][1] = 'Receptionner une commande fournisseur';
$this->rights[$r][2] = 'd';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'receptionner';
$r++;
$this->rights[$r][0] = 1187;
$this->rights[$r][1] = 'Receptionner une commande fournisseur';
$this->rights[$r][2] = 'd';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'receptionner';
$r++;
$this->rights[$r][0] = 1189;
$this->rights[$r][1] = 'Check/Uncheck a supplier order reception';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande_advance';
$this->rights[$r][5] = 'check';
$r++;
$this->rights[$r][0] = 1189;
$this->rights[$r][1] = 'Check/Uncheck a supplier order reception';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande_advance';
$this->rights[$r][5] = 'check';
$r++;
$this->rights[$r][0] = 1188;
$this->rights[$r][1] = 'Supprimer une commande fournisseur';
$this->rights[$r][2] = 'd';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'supprimer';
$r++;
$this->rights[$r][0] = 1188;
$this->rights[$r][1] = 'Supprimer une commande fournisseur';
$this->rights[$r][2] = 'd';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'supprimer';
$r++;
$this->rights[$r][0] = 1231;
$this->rights[$r][1] = 'Consulter les factures fournisseur';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'facture';
$this->rights[$r][5] = 'lire';
$r++;
$this->rights[$r][0] = 1232;
$this->rights[$r][1] = 'Creer une facture fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'facture';
$this->rights[$r][5] = 'creer';
$r++;
$this->rights[$r][0] = 1231;
$this->rights[$r][1] = 'Consulter les factures fournisseur';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 1;
$this->rights[$r][4] = 'facture';
$this->rights[$r][5] = 'lire';
$r++;
$this->rights[$r][0] = 1233;
$this->rights[$r][1] = 'Valider une facture fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'supplier_invoice_advance';
$this->rights[$r][5] = 'validate';
$r++;
$this->rights[$r][0] = 1232;
$this->rights[$r][1] = 'Creer une facture fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'facture';
$this->rights[$r][5] = 'creer';
$r++;
$this->rights[$r][0] = 1234;
$this->rights[$r][1] = 'Supprimer une facture fournisseur';
$this->rights[$r][2] = 'd';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'facture';
$this->rights[$r][5] = 'supprimer';
$r++;
$this->rights[$r][0] = 1233;
$this->rights[$r][1] = 'Valider une facture fournisseur';
$this->rights[$r][2] = 'w';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'supplier_invoice_advance';
$this->rights[$r][5] = 'validate';
$r++;
$this->rights[$r][0] = 1235;
$this->rights[$r][1] = 'Envoyer les factures par mail';
$this->rights[$r][2] = 'a';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'supplier_invoice_advance';
$this->rights[$r][5] = 'send';
$r++;
$this->rights[$r][0] = 1234;
$this->rights[$r][1] = 'Supprimer une facture fournisseur';
$this->rights[$r][2] = 'd';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'facture';
$this->rights[$r][5] = 'supprimer';
$r++;
$this->rights[$r][0] = 1236;
$this->rights[$r][1] = 'Exporter les factures fournisseurs, attributs et reglements';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'facture';
$this->rights[$r][5] = 'export';
$r++;
$this->rights[$r][0] = 1235;
$this->rights[$r][1] = 'Envoyer les factures par mail';
$this->rights[$r][2] = 'a';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'supplier_invoice_advance';
$this->rights[$r][5] = 'send';
$r++;
$this->rights[$r][0] = 1237;
$this->rights[$r][1] = 'Exporter les commande fournisseurs, attributs';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'export';
$r++;
$this->rights[$r][0] = 1236;
$this->rights[$r][1] = 'Exporter les factures fournisseurs, attributs et reglements';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'facture';
$this->rights[$r][5] = 'export';
// Exports
//--------
$r=0;
$r++;
$this->rights[$r][0] = 1237;
$this->rights[$r][1] = 'Exporter les commande fournisseurs, attributs';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'export';
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Factures fournisseurs et lignes de facture';
$this->export_icon[$r]='bill';
$this->export_permission[$r]=array(array("fournisseur","facture","export"));
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.ref_supplier'=>"RefSupplier",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note_public'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.remise_percent'=>"Discount",'fd.total_ht'=>"LineTotalHT",'fd.total_ttc'=>"LineTotalTTC",'fd.tva'=>"LineTotalVAT",'fd.product_type'=>'TypeOfLineServiceOrProduct','fd.fk_product'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel','p.accountancy_code_buy'=>'ProductAccountancyBuyCode');
//$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Text",'fd.qty'=>"Number",'fd.total_ht'=>"Number",'fd.total_ttc'=>"Number",'fd.tva'=>"Number",'fd.product_type'=>'Number','fd.fk_product'=>'List:Product:label','p.ref'=>'Text','p.label'=>'Text');
$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Text",'fd.qty'=>"Number",'fd.total_ht'=>"Number",'fd.total_ttc'=>"Number",'fd.tva'=>"Number",'fd.product_type'=>'Number','fd.fk_product'=>'List:Product:label','p.ref'=>'Text','p.label'=>'Text');
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.ref'=>"invoice",'f.ref_supplier'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_public'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.remise_percent'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva'=>"invoice_line",'fd.product_type'=>'invoice_line','fd.fk_product'=>'product','p.ref'=>'product','p.label'=>'product','p.accountancy_code_buy'=>'product');
$this->export_dependencies_array[$r]=array('invoice_line'=>'fd.rowid','product'=>'fd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
// Add extra fields object
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture_fourn'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
// Exports
//--------
$r=0;
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Factures fournisseurs et lignes de facture';
$this->export_icon[$r]='bill';
$this->export_permission[$r]=array(array("fournisseur","facture","export"));
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.ref_supplier'=>"RefSupplier",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note_public'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.remise_percent'=>"Discount",'fd.total_ht'=>"LineTotalHT",'fd.total_ttc'=>"LineTotalTTC",'fd.tva'=>"LineTotalVAT",'fd.product_type'=>'TypeOfLineServiceOrProduct','fd.fk_product'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel','p.accountancy_code_buy'=>'ProductAccountancyBuyCode');
//$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Text",'fd.qty'=>"Number",'fd.total_ht'=>"Number",'fd.total_ttc'=>"Number",'fd.tva'=>"Number",'fd.product_type'=>'Number','fd.fk_product'=>'List:Product:label','p.ref'=>'Text','p.label'=>'Text');
$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Text",'fd.qty'=>"Number",'fd.total_ht'=>"Number",'fd.total_ttc'=>"Number",'fd.tva'=>"Number",'fd.product_type'=>'Number','fd.fk_product'=>'List:Product:label','p.ref'=>'Text','p.label'=>'Text');
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.ref'=>"invoice",'f.ref_supplier'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_public'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.remise_percent'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva'=>"invoice_line",'fd.product_type'=>'invoice_line','fd.fk_product'=>'product','p.ref'=>'product','p.label'=>'product','p.accountancy_code_buy'=>'product');
$this->export_dependencies_array[$r]=array('invoice_line'=>'fd.rowid','product'=>'fd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
// Add extra fields object
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture_fourn'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{
while ($obj=$this->db->fetch_object($resql))
{
while ($obj=$this->db->fetch_object($resql))
$fieldname='extra.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
$fieldname='extra.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='invoice';
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='invoice';
}
// End add extra fields
// Add extra fields line
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture_fourn_det'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
}
// End add extra fields
// Add extra fields line
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture_fourn_det'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{
while ($obj=$this->db->fetch_object($resql))
{
while ($obj=$this->db->fetch_object($resql))
$fieldname='extraline.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
$fieldname='extraline.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='invoice_line';
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='invoice_line';
}
// End add extra fields line
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON s.fk_pays = c.rowid,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'facture_fourn as f';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_extrafields as extra ON f.rowid = extra.fk_object';
$this->export_sql_end[$r] .=' , '.MAIN_DB_PREFIX.'facture_fourn_det as fd';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_det_extrafields as extraline ON fd.rowid = extraline.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)';
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_facture_fourn';
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('supplier_invoice',1).')';
}
// End add extra fields line
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON s.fk_pays = c.rowid,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'facture_fourn as f';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_extrafields as extra ON f.rowid = extra.fk_object';
$this->export_sql_end[$r] .=' , '.MAIN_DB_PREFIX.'facture_fourn_det as fd';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_det_extrafields as extraline ON fd.rowid = extraline.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)';
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_facture_fourn';
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('supplier_invoice',1).')';
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Factures fournisseurs et reglements';
$this->export_icon[$r]='bill';
$this->export_permission[$r]=array(array("fournisseur","facture","export"));
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.ref_supplier'=>"RefSupplier",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note_public'=>"InvoiceNote",'p.rowid'=>'PaymentId','pf.amount'=>'AmountPayment','p.datep'=>'DatePayment','p.num_paiement'=>'PaymentNumber');
//$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'pf.amount'=>'Number','p.datep'=>'Date','p.num_paiement'=>'Number');
$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'pf.amount'=>'Number','p.datep'=>'Date','p.num_paiement'=>'Number');
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.ref'=>"invoice",'f.ref_supplier'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_public'=>"invoice",'p.rowid'=>'payment','pf.amount'=>'payment','p.datep'=>'payment','p.num_paiement'=>'payment');
$this->export_dependencies_array[$r]=array('payment'=>'p.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
// Add extra fields object
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture_fourn'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Factures fournisseurs et reglements';
$this->export_icon[$r]='bill';
$this->export_permission[$r]=array(array("fournisseur","facture","export"));
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.ref_supplier'=>"RefSupplier",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note_public'=>"InvoiceNote",'p.rowid'=>'PaymentId','pf.amount'=>'AmountPayment','p.datep'=>'DatePayment','p.num_paiement'=>'PaymentNumber');
//$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:CompanyName",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'pf.amount'=>'Number','p.datep'=>'Date','p.num_paiement'=>'Number');
$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.total_tva'=>"Number",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_public'=>"Text",'pf.amount'=>'Number','p.datep'=>'Date','p.num_paiement'=>'Number');
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.ref'=>"invoice",'f.ref_supplier'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_public'=>"invoice",'p.rowid'=>'payment','pf.amount'=>'payment','p.datep'=>'payment','p.num_paiement'=>'payment');
$this->export_dependencies_array[$r]=array('payment'=>'p.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
// Add extra fields object
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture_fourn'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{
while ($obj=$this->db->fetch_object($resql))
{
while ($obj=$this->db->fetch_object($resql))
$fieldname='extra.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
$fieldname='extra.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='invoice';
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='invoice';
}
// End add extra fields object
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON s.fk_pays = c.rowid,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'facture_fourn as f';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_extrafields as extra ON f.rowid = extra.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON pf.fk_facturefourn = f.rowid';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn as p ON pf.fk_paiementfourn = p.rowid';
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid';
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('supplier_invoice',1).')';
}
// End add extra fields object
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON s.fk_pays = c.rowid,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'facture_fourn as f';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_fourn_extrafields as extra ON f.rowid = extra.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON pf.fk_facturefourn = f.rowid';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn as p ON pf.fk_paiementfourn = p.rowid';
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid';
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('supplier_invoice',1).')';
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Commandes fournisseurs et lignes de commandes';
$this->export_icon[$r]='order';
$this->export_permission[$r]=array(array("fournisseur","commande","export"));
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"OrderId",'f.ref'=>"Ref",'f.ref_supplier'=>"RefSupplier",'f.date_creation'=>"DateCreation",'f.date_commande'=>"OrderDate",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.fk_statut'=>'Status','f.note_public'=>"NotePublic",'f.note_private'=>"NotePrivate",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.remise_percent'=>"Discount",'fd.total_ht'=>"LineTotalHT",'fd.total_ttc'=>"LineTotalTTC",'fd.total_tva'=>"LineTotalVAT",'fd.product_type'=>'TypeOfLineServiceOrProduct','fd.fk_product'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel');
$this->export_TypeFields_array[$r]=array('s.rowid'=>"company",'s.nom'=>'Text','s.address'=>'Text','s.cp'=>'Text','s.ville'=>'Text','c.code'=>'Text','s.tel'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.idprof5'=>'Text','s.idprof6'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.date_creation'=>"Date",'f.date_commande'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.tva'=>"Number",'f.fk_statut'=>'Status','f.note_public'=>"Text",'f.note_private'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Number",'fd.qty'=>"Number",'fd.remise_percent'=>"Number",'fd.total_ht'=>"Number",'fd.total_ttc'=>"Number",'fd.total_tva'=>"Number",'fd.product_type'=>'Number','fd.fk_product'=>'List:Product:label','p.ref'=>'Text','p.label'=>'Text');
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"order",'f.ref'=>"order",'f.ref_supplier'=>"order",'f.date_creation'=>"order",'f.date_commande'=>"order",'f.total_ht'=>"order",'f.total_ttc'=>"order",'f.tva'=>"order",'f.fk_statut'=>'order','f.note_public'=>"order",'f.note_private'=>"order",'fd.rowid'=>'order_line','fd.description'=>"order_line",'fd.tva_tx'=>"order_line",'fd.qty'=>"order_line",'fd.remise_percent'=>"order_line",'fd.total_ht'=>"order_line",'fd.total_ttc'=>"order_line",'fd.total_tva'=>"order_line",'fd.product_type'=>'order_line','fd.fk_product'=>'product','p.ref'=>'product','p.label'=>'product');
$this->export_dependencies_array[$r]=array('order_line'=>'fd.rowid','product'=>'fd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
// Add extra fields object
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'commande_fournisseur'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
// Order
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Commandes fournisseurs et lignes de commandes';
$this->export_icon[$r]='order';
$this->export_permission[$r]=array(array("fournisseur","commande","export"));
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"OrderId",'f.ref'=>"Ref",'f.ref_supplier'=>"RefSupplier",'f.date_creation'=>"DateCreation",'f.date_commande'=>"OrderDate",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.fk_statut'=>'Status','f.date_approve'=>'DateApprove','f.date_approve2'=>'DateApprove2','f.note_public'=>"NotePublic",'f.note_private'=>"NotePrivate",'ua1.login'=>'ApprovedBy','ua2.login'=>'ApprovedBy2','fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.remise_percent'=>"Discount",'fd.total_ht'=>"LineTotalHT",'fd.total_ttc'=>"LineTotalTTC",'fd.total_tva'=>"LineTotalVAT",'fd.product_type'=>'TypeOfLineServiceOrProduct','fd.fk_product'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel');
if (empty($conf->global->SUPPLIER_ORDER_DOUBLE_APPROVAL))
{
unset($this->export_fields_array['f.date_approve2']);
unset($this->export_fields_array['ua2.login']);
}
$this->export_TypeFields_array[$r]=array('s.rowid'=>"company",'s.nom'=>'Text','s.address'=>'Text','s.cp'=>'Text','s.ville'=>'Text','c.code'=>'Text','s.tel'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.idprof5'=>'Text','s.idprof6'=>'Text','s.tva_intra'=>'Text','f.ref'=>"Text",'f.ref_supplier'=>"Text",'f.date_creation'=>"Date",'f.date_commande'=>"Date",'f.total_ht'=>"Number",'f.total_ttc'=>"Number",'f.tva'=>"Number",'f.fk_statut'=>'Status','f.date_approve'=>'Date','f.date_approve2'=>'Date','f.note_public'=>"Text",'f.note_private'=>"Text",'fd.description'=>"Text",'fd.tva_tx'=>"Number",'fd.qty'=>"Number",'fd.remise_percent'=>"Number",'fd.total_ht'=>"Number",'fd.total_ttc'=>"Number",'fd.total_tva'=>"Number",'fd.product_type'=>'Number','fd.fk_product'=>'List:product:label','p.ref'=>'Text','p.label'=>'Text');
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','ua1.login'=>'user','ua2.login'=>'user','fd.rowid'=>'order_line','fd.description'=>"order_line",'fd.tva_tx'=>"order_line",'fd.qty'=>"order_line",'fd.remise_percent'=>"order_line",'fd.total_ht'=>"order_line",'fd.total_ttc'=>"order_line",'fd.total_tva'=>"order_line",'fd.product_type'=>'order_line','fd.fk_product'=>'product','p.ref'=>'product','p.label'=>'product');
$this->export_dependencies_array[$r]=array('order_line'=>'fd.rowid','product'=>'fd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
// Add extra fields object
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'commande_fournisseur'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{
while ($obj=$this->db->fetch_object($resql))
{
while ($obj=$this->db->fetch_object($resql))
$fieldname='extra.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
$fieldname='extra.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='order';
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='order';
}
// End add extra fields object
// Add extra fields line
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'commande_fournisseurdet'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
}
// End add extra fields object
// Add extra fields line
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'commande_fournisseurdet'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{
while ($obj=$this->db->fetch_object($resql))
{
while ($obj=$this->db->fetch_object($resql))
$fieldname='extraline.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
$fieldname='extraline.'.$obj->name;
$fieldlabel=ucfirst($obj->label);
$typeFilter="Text";
switch($obj->type)
{
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='order_line';
case 'int':
case 'double':
case 'price':
$typeFilter="Numeric";
break;
case 'date':
case 'datetime':
$typeFilter="Date";
break;
case 'boolean':
$typeFilter="Boolean";
break;
case 'sellist':
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
$this->export_entities_array[$r][$fieldname]='order_line';
}
// End add extra fields line
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON s.fk_pays = c.rowid,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'commande_fournisseur as f';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'commande_fournisseur_extrafields as extra ON f.rowid = extra.fk_object,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'commande_fournisseurdet as fd';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'commande_fournisseurdet_extrafields as extraline ON fd.rowid = extraline.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)';
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_commande';
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('supplier_order',1).')';
}
// End add extra fields line
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON s.fk_pays = c.rowid,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'commande_fournisseur as f';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as ua1 ON ua1.rowid = f.fk_user_approve';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as ua2 ON ua2.rowid = f.fk_user_approve2';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'commande_fournisseur_extrafields as extra ON f.rowid = extra.fk_object,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'commande_fournisseurdet as fd';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'commande_fournisseurdet_extrafields as extraline ON fd.rowid = extraline.fk_object';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)';
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_commande';
$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('supplier_order',1).')';
}

View File

@ -190,7 +190,10 @@ class modProduct extends DolibarrModules
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;

View File

@ -231,8 +231,11 @@ class modProjet extends DolibarrModules
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
@ -269,8 +272,11 @@ class modProjet extends DolibarrModules
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;

View File

@ -171,7 +171,10 @@ class modService extends DolibarrModules
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;

View File

@ -294,8 +294,11 @@ class modSociete extends DolibarrModules
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
@ -353,8 +356,11 @@ class modSociete extends DolibarrModules
$typeFilter="Boolean";
break;
case 'sellist':
$typeFilter="List:".$obj->param;
break;
$tmp='';
$tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
break;
}
$this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;

View File

@ -55,7 +55,7 @@ class mod_syslog_chromephp extends LogHandler implements LogHandlerInterface
set_include_path($conf->global->SYSLOG_CHROMEPHP_INCLUDEPATH);
//print 'rrrrr'.get_include_path();
$res = include_once('ChromePhp.php');
$res = @include_once('ChromePhp.php');
if (! $res) $res=@include_once('ChromePhp.class.php');
restore_include_path();

View File

@ -48,7 +48,7 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
print '<tr><td>';
print '<table width="100%" class="nobordernopadding"><tr><td';
//var_dump($action);exit;
if ((! empty($action) && $action != 'view') && ! empty($extrafields->attribute_required[$key])) print ' class="fieldrequired"';
if ((! empty($action) && ($action == 'create' || $action == 'edit')) && ! empty($extrafields->attribute_required[$key])) print ' class="fieldrequired"';
print '>' . $label . '</td>';
//TODO Improve element and rights detection

View File

@ -119,6 +119,7 @@ class InterfaceDemo extends DolibarrTriggers
case 'ORDER_CLONE':
case 'ORDER_VALIDATE':
case 'ORDER_DELETE':
case 'ORDER_CANCEL':
case 'ORDER_SENTBYMAIL':
case 'ORDER_CLASSIFY_BILLED':
case 'LINEORDER_INSERT':
@ -134,6 +135,7 @@ class InterfaceDemo extends DolibarrTriggers
case 'ORDER_SUPPLIER_REFUSE':
case 'ORDER_SUPPLIER_CANCEL':
case 'ORDER_SUPPLIER_SENTBYMAIL':
case 'ORDER_SUPPLIER_DISPATCH':
case 'LINEORDER_SUPPLIER_DISPATCH':
case 'LINEORDER_SUPPLIER_CREATE':
case 'LINEORDER_SUPPLIER_UPDATE':

View File

@ -106,7 +106,7 @@ if ($action == 'update')
$object->email = GETPOST("email");
$object->date = $donation_date;
$object->public = GETPOST("public");
$object->fk_project = GETPOST("fk_project");
$object->fk_projet = GETPOST("fk_projet");
$object->note_private= GETPOST("note_private");
$object->note_public = GETPOST("note_public");
@ -161,7 +161,7 @@ if ($action == 'add')
$object->note_private= GETPOST("note_private");
$object->note_public = GETPOST("note_public");
$object->public = GETPOST("public");
$object->fk_project = GETPOST("fk_project");
$object->fk_projet = GETPOST("fk_projet");
// Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
@ -343,7 +343,7 @@ if ($action == 'create')
$formproject=new FormProjets($db);
print "<tr><td>".$langs->trans("Project")."</td><td>";
$formproject->select_projects(-1, GETPOST("fk_project"),'fk_project', 0, 1, 0, 1);
$formproject->select_projects(-1, GETPOST("fk_projet"),'fk_projet', 0, 1, 0, 1);
print "</td></tr>\n";
}
@ -459,7 +459,7 @@ if (! empty($id) && $action == 'edit')
$langs->load('projects');
print '<tr><td>'.$langs->trans('Project').'</td><td>';
$formproject->select_projects(-1, $object->fk_project,'fk_project', 0, 1, 0, 1);
$formproject->select_projects(-1, $object->fk_projet,'fk_projet', 0, 1, 0, 1);
print '</td></tr>';
}

View File

@ -54,7 +54,7 @@ class Don extends CommonObject
var $country;
var $email;
var $public;
var $fk_project;
var $fk_projet;
var $modepaiement;
var $modepaiementid;
var $note_private;
@ -337,7 +337,7 @@ class Don extends CommonObject
// $sql.= ", country"; -- Deprecated
$sql.= ", fk_country";
$sql.= ", public";
$sql.= ", fk_project";
$sql.= ", fk_projet";
$sql.= ", note_private";
$sql.= ", note_public";
$sql.= ", fk_user_author";
@ -359,7 +359,7 @@ class Don extends CommonObject
$sql.= ", '".$this->db->escape($this->town)."'";
$sql.= ", ".$this->country_id;
$sql.= ", ".$this->public;
$sql.= ", ".($this->fk_project > 0?$this->fk_project:"null");
$sql.= ", ".($this->fk_projet > 0?$this->fk_projet:"null");
$sql.= ", ".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL");
$sql.= ", ".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL");
$sql.= ", ".$user->id;
@ -455,7 +455,7 @@ class Don extends CommonObject
$sql .= ",town='".$this->db->escape($this->town)."'";
$sql .= ",fk_country = ".$this->country_id;
$sql .= ",public=".$this->public;
$sql .= ",fk_project=".($this->fk_project>0?$this->fk_project:'null');
$sql .= ",fk_projet=".($this->fk_projet>0?$this->fk_projet:'null');
$sql .= ",note_private=".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL");
$sql .= ",note_public=".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL");
$sql .= ",datedon='".$this->db->idate($this->date)."'";
@ -601,11 +601,11 @@ class Don extends CommonObject
$sql = "SELECT d.rowid, d.datec, d.tms as datem, d.datedon,";
$sql.= " d.firstname, d.lastname, d.societe, d.amount, d.fk_statut, d.address, d.zip, d.town, ";
$sql.= " d.fk_country, d.country as country_olddata, d.public, d.amount, d.fk_payment, d.paid, d.note_private, d.note_public, cp.libelle, d.email, d.phone, ";
$sql.= " d.phone_mobile, d.fk_project,";
$sql.= " d.phone_mobile, d.fk_projet,";
$sql.= " p.title as project_label,";
$sql.= " c.code as country_code, c.label as country";
$sql.= " FROM ".MAIN_DB_PREFIX."don as d";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = d.fk_project";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = d.fk_projet";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as cp ON cp.id = d.fk_payment";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON d.fk_country = c.rowid";
if (! empty($id))
@ -647,7 +647,7 @@ class Don extends CommonObject
$this->phone = $obj->phone;
$this->phone_mobile = $obj->phone_mobile;
$this->project = $obj->project_label;
$this->fk_project = $obj->fk_project;
$this->fk_projet = $obj->fk_projet;
$this->public = $obj->public;
$this->modepaymentid = $obj->fk_payment;
$this->modepayment = $obj->libelle;
@ -677,8 +677,8 @@ class Don extends CommonObject
/**
* Validate a promise of donation
*
* @param int $id id of donation
* @param int $userid User who validate the promise
* @param int $id id of donation
* @param int $userid User who validate the donation/promise
* @return int <0 if KO, >0 if OK
*/
function valid_promesse($id, $userid)
@ -706,16 +706,16 @@ class Don extends CommonObject
}
/**
* Classe le don comme paye, le don a ete recu
* Classify the donation as paid, the donation was received
*
* @param int $id id du don a modifier
* @param int $modepaiement mode de paiement
* @param int $id id of donation
* @param int $modepayment mode of payment
* @return int <0 if KO, >0 if OK
*/
function set_paid($id, $modepaiement='')
function set_paid($id, $modepayment='')
{
$sql = "UPDATE ".MAIN_DB_PREFIX."don SET fk_statut = 2";
if ($modepaiement)
if ($modepayment)
{
$sql .= ", fk_payment=$modepayment";
}
@ -741,7 +741,7 @@ class Don extends CommonObject
}
/**
* Set donation to status canceled
* Set donation to status cancelled
*
* @param int $id id of donation
* @return int <0 if KO, >0 if OK

View File

@ -73,7 +73,7 @@ $sql = "SELECT d.rowid, d.datedon, d.firstname, d.lastname, d.societe,";
$sql.= " d.amount, d.fk_statut as statut, ";
$sql.= " p.rowid as pid, p.ref, p.title, p.public";
$sql.= " FROM ".MAIN_DB_PREFIX."don as d LEFT JOIN ".MAIN_DB_PREFIX."projet AS p";
$sql.= " ON p.rowid = d.fk_project WHERE 1 = 1";
$sql.= " ON p.rowid = d.fk_projet WHERE 1 = 1";
if ($statut >= 0)
{
$sql .= " AND d.fk_statut = ".$statut;
@ -125,7 +125,7 @@ if ($resql)
if (! empty($conf->projet->enabled))
{
$langs->load("projects");
print_liste_field_titre($langs->trans("Project"),$_SERVER["PHP_SELF"],"fk_project","&page=$page&statut=$statut","","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Project"),$_SERVER["PHP_SELF"],"fk_projet","&page=$page&statut=$statut","","",$sortfield,$sortorder);
}
print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"d.amount","&page=$page&statut=$statut","",'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.fk_statut","&page=$page&statut=$statut","",'align="right"',$sortfield,$sortorder);

View File

@ -202,7 +202,7 @@ $sql.= ' WHERE pd.fk_donation = d.rowid';
$sql.= ' AND d.entity = '.$conf->entity;
$sql.= ' AND pd.rowid = '.$id;
dol_syslog("donations/payment/card.php", LOG_DEBUG);
dol_syslog("don/payment/card.php", LOG_DEBUG);
$resql=$db->query($sql);
if ($resql)
{

View File

@ -1075,7 +1075,7 @@ class Expedition extends CommonObject
}
if (file_exists($dir))
{
if (!dol_delete_dir($dir))
if (!dol_delete_dir_recursive($dir))
{
$this->error=$langs->trans("ErrorCanNotDeleteDir",$dir);
return 0;

View File

@ -337,15 +337,15 @@ class Export
/**
* Build an input field used to filter the query
*
* @param string $TypeField Type of Field to filter. Example: Text, List:c_country:label:rowid, List:c_stcom:label:code, Number, Boolean
* @param string $TypeField Type of Field to filter. Example: Text, Date, List:c_country:label:rowid, List:c_stcom:label:code, Numeric or Number, Boolean
* @param string $NameField Name of the field to filter
* @param string $ValueField Initial value of the field to filter
* @return string html string of the input field ex : "<input type=text name=... value=...>"
*/
function build_filterField($TypeField, $NameField, $ValueField)
{
global $langs;
global $conf,$langs;
$szFilterField='';
$InfoFieldList = explode(":", $TypeField);
@ -354,9 +354,14 @@ class Export
{
case 'Text':
case 'Date':
$szFilterField='<input type="text" name="'.$NameField.'" value="'.$ValueField.'">';
break;
case 'Duree':
case 'Numeric':
$szFilterField='<input type="text" name="'.$NameField.'" value="'.$ValueField.'">';
case 'Number':
case 'Status':
if (! empty($conf->global->MAIN_ACTIVATE_HTML5)) $szFilterField='<input type="number" size="6" name="'.$NameField.'" value="'.$ValueField.'">';
else $szFilterField='<input type="text" size="6" name="'.$NameField.'" value="'.$ValueField.'">';
break;
case 'Boolean':
$szFilterField='<select name="'.$NameField.'" class="flat">';
@ -365,12 +370,12 @@ class Export
$szFilterField.=' value="">&nbsp;</option>';
$szFilterField.='<option ';
if ($ValueField=='yes') $szFilterField.=' selected ';
$szFilterField.=' value="yes">'.yn(1).'</option>';
if ($ValueField=='yes' || $ValueField == '1') $szFilterField.=' selected ';
$szFilterField.=' value="1">'.yn(1).'</option>';
$szFilterField.='<option ';
if ($ValueField=='no') $szFilterField.=' selected ';
$szFilterField.=' value="no">'.yn(0).'</option>';
if ($ValueField=='no' || $ValueField=='0') $szFilterField.=' selected ';
$szFilterField.=' value="0">'.yn(0).'</option>';
$szFilterField.="</select>";
break;
case 'List':
@ -408,12 +413,12 @@ class Export
}
//var_dump($InfoFieldList[1]);
$labeltoshow=dol_trunc($obj->label,18);
if ($InfoFieldList[1] == 'c_stcomm')
if ($InfoFieldList[1] == 'c_stcomm')
{
$langs->load("companies");
$labeltoshow=(($langs->trans("StatusProspect".$obj->id) != "StatusProspect".$obj->id)?$langs->trans("StatusProspect".$obj->id):$obj->label);
}
if ($InfoFieldList[1] == 'c_country')
if ($InfoFieldList[1] == 'c_country')
{
//var_dump($sql);
$langs->load("dict");

View File

@ -1066,6 +1066,12 @@ class CommandeFournisseur extends CommonOrder
}
}
if (! $error)
{
$result=$this->insertExtraFields();
if ($result < 0) $error++;
}
if (! $error && ! $notrigger)
{
// Call trigger
@ -1376,9 +1382,10 @@ class CommandeFournisseur extends CommonOrder
* @param date $sellby sell-by date
* @param string $batch Lot number
* @param int $fk_commandefourndet Id of supplier order line
* @param int $notrigger 1 = notrigger
* @return int <0 if KO, >0 if OK
*/
function dispatchProduct($user, $product, $qty, $entrepot, $price=0, $comment='', $eatby='', $sellby='', $batch='', $fk_commandefourndet='')
function dispatchProduct($user, $product, $qty, $entrepot, $price=0, $comment='', $eatby='', $sellby='', $batch='', $fk_commandefourndet=0, $notrigger=0)
{
global $conf;
$error = 0;

View File

@ -180,7 +180,8 @@ if (empty($reshook))
// Set project
if ($action == 'classin' && $user->rights->fournisseur->commande->creer)
{
$object->setProject($projectid);
$result=$object->setProject($projectid);
if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
}
if ($action == 'setremisepercent' && $user->rights->fournisseur->commande->creer)
@ -223,7 +224,7 @@ if (empty($reshook))
{
$db->rollback();
setEventMessage($object->error, 'errors');
setEventMessages($object->error, $object->errors, 'errors');
}
}
}
@ -448,7 +449,7 @@ if (empty($reshook))
}
else
{
setEventMessage($object->error, 'errors');
setEventMessages($object->error, $object->errors, 'errors');
}
}
@ -619,7 +620,7 @@ if (empty($reshook))
}
// If we have permission, and if we don't need to provide the idwarehouse, we go directly on approved step
if ($user->rights->fournisseur->commande->approuver && ! (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $object->hasProductsOrServices(1)))
if (empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE) && $user->rights->fournisseur->commande->approuver && ! (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $object->hasProductsOrServices(1)))
{
$action='confirm_approve'; // can make standard or first level approval also if permission is set
}
@ -670,8 +671,8 @@ if (empty($reshook))
exit;
}
else
{
setEventMessage($object->error, 'errors');
{
setEventMessages($object->error, $object->errors, 'errors');
}
}
}
@ -686,7 +687,7 @@ if (empty($reshook))
}
else
{
setEventMessage($object->error, 'errors');
setEventMessages($object->error, $object->errors, 'errors');
}
}
@ -703,7 +704,7 @@ if (empty($reshook))
}
else
{
setEventMessage($object->error, 'errors');
setEventMessages($object->error, $object->errors, 'errors');
}
}
@ -718,7 +719,7 @@ if (empty($reshook))
}
else
{
setEventMessage($object->error, 'errors');
setEventMessages($object->error, $object->errors, 'errors');
}
}
@ -741,7 +742,7 @@ if (empty($reshook))
}
else
{
setEventMessage($object->error, 'errors');
setEventMessages($object->error, $object->errors, 'errors');
$action='';
}
}
@ -786,7 +787,7 @@ if (empty($reshook))
}
else
{
setEventMessage($object->error, 'errors');
setEventMessages($object->error, $object->errors, 'errors');
}
}
@ -917,22 +918,20 @@ if (empty($reshook))
}
$object_id = $object->create($user);
if ($object_id > 0)
{
dol_include_once('/' . $element . '/class/' . $subelement . '.class.php');
$classname = ucfirst($subelement);
$srcobject = new $classname($db);
$srcobject->fetch($object->origin_id);
$object->set_date_livraison($user, $srcobject->date_livraison);
$object->set_id_projet($user, $srcobject->fk_project);
dol_syslog("Try to find source object origin=" . $object->origin . " originid=" . $object->origin_id . " to add lines");
$result = $srcobject->fetch($object->origin_id);
if ($result > 0)
{
$object->set_date_livraison($user, $srcobject->date_livraison);
$object->set_id_projet($user, $srcobject->fk_project);
$lines = $srcobject->lines;
if (empty($lines) && method_exists($srcobject, 'fetch_lines'))
{
@ -1009,11 +1008,11 @@ if (empty($reshook))
if ($reshook < 0)
$error ++;
} else {
setEventMessage($srcobject->error, 'errors');
setEventMessages($srcobject->error, $srcobject->errors, 'errors');
$error ++;
}
} else {
setEventMessage($object->error, 'errors');
setEventMessages($object->error, $object->errors, 'errors');
$error ++;
}
}
@ -1023,7 +1022,7 @@ if (empty($reshook))
if ($id < 0)
{
$error++;
setEventMessage($langs->trans($object->error), 'errors');
setEventMessages($object->error, $object->errors, 'errors');
}
}
}
@ -1969,11 +1968,12 @@ elseif (! empty($object->id))
$cols = 3;
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
// Ligne de 3 colonnes
// Total
print '<tr><td>'.$langs->trans("AmountHT").'</td>';
print '<td colspan="2">'.price($object->total_ht,'',$langs,1,-1,-1,$conf->currency).'</td>';
print '</tr>';
// Total VAT
print '<tr><td>'.$langs->trans("AmountVAT").'</td><td colspan="2">'.price($object->total_tva,'',$langs,1,-1,-1,$conf->currency).'</td>';
print '</tr>';
@ -1991,6 +1991,7 @@ elseif (! empty($object->id))
print '</tr>';
}
// Total TTC
print '<tr><td>'.$langs->trans("AmountTTC").'</td><td colspan="2">'.price($object->total_ttc,'',$langs,1,-1,-1,$conf->currency).'</td>';
print '</tr>';

View File

@ -130,10 +130,10 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner)
setEventMessage($langs->trans('ErrorFieldRequired',$text), 'errors');
$error++;
}
if (! $error)
{
$result = $commande->DispatchProduct($user, GETPOST($prod,'int'),GETPOST($qty), GETPOST($ent,'int'), GETPOST($pu), GETPOST("comment"), '', '', '', GETPOST($fk_commandefourndet, 'int'));
$result = $commande->DispatchProduct($user, GETPOST($prod,'int'),GETPOST($qty), GETPOST($ent,'int'), GETPOST($pu), GETPOST("comment"), '', '', '', GETPOST($fk_commandefourndet, 'int'), $notrigger);
if ($result < 0)
{
setEventMessages($commande->error, $commande->errors, 'errors');
@ -155,6 +155,7 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner)
$dDLUO = dol_mktime(12, 0, 0, $_POST['dluo_'.$reg[1]."_".$reg[2].'month'], $_POST['dluo_'.$reg[1]."_".$reg[2].'day'], $_POST['dluo_'.$reg[1]."_".$reg[2].'year']);
$dDLC = dol_mktime(12, 0, 0, $_POST['dlc_'.$reg[1]."_".$reg[2].'month'], $_POST['dlc_'.$reg[1]."_".$reg[2].'day'], $_POST['dlc_'.$reg[1]."_".$reg[2].'year']);
$fk_commandefourndet = "fk_commandefourndet_".$reg[1]."_".$reg[2];
if (GETPOST($qty) > 0) // We ask to move a qty
{
if (! (GETPOST($ent,'int') > 0))
@ -172,10 +173,10 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner)
setEventMessage($langs->trans('ErrorFieldRequired',$text), 'errors');
$error++;
}
if (! $error)
{
$result = $commande->dispatchProduct($user, GETPOST($prod,'int'), GETPOST($qty), GETPOST($ent,'int'), GETPOST($pu), GETPOST("comment"), $dDLC, $dDLUO, GETPOST($lot, 'alpha'), GETPOST($fk_commandefourndet, 'int'));
$result = $commande->dispatchProduct($user, GETPOST($prod,'int'), GETPOST($qty), GETPOST($ent,'int'), GETPOST($pu), GETPOST("comment"), $dDLC, $dDLUO, GETPOST($lot, 'alpha'), GETPOST($fk_commandefourndet, 'int'), $notrigger);
if ($result < 0)
{
setEventMessages($commande->error, $commande->errors, 'errors');
@ -191,7 +192,7 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner)
{
global $conf, $langs, $user;
// Call trigger
$result=$commande->call_trigger('ORDER_SUPPLIER_DISPATCH',$user);
$result = $commande->call_trigger('ORDER_SUPPLIER_DISPATCH', $user);
// End call triggers
if ($result < 0)
@ -597,7 +598,7 @@ if ($id > 0 || ! empty($ref))
while ($i < $num)
{
$objp = $db->fetch_object($resql);
print "<tr ".$bc[$var].">";
print '<td>';
print '<a href="'.DOL_URL_ROOT.'/product/fournisseurs.php?id='.$objp->fk_product.'">'.img_object($langs->trans("ShowProduct"),'product').' '.$objp->ref.'</a>';
@ -640,7 +641,7 @@ if ($id > 0 || ! empty($ref))
|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->fournisseur->commande_advance->check))
)
{
if (empty($objp->status))
if (empty($objp->status))
{
print '<a class="button buttonRefused" href="#">'.$langs->trans("Check").'</a>';
}
@ -653,18 +654,18 @@ if ($id > 0 || ! empty($ref))
{
$disabled='';
if ($commande->statut == 5) $disabled=1;
if (empty($objp->status))
if (empty($objp->status))
{
print '<a class="button'.($disabled?' buttonRefused':'').'" href="'.$_SERVER["PHP_SELF"]."?id=".$id."&action=checkdispatchline&lineid=".$objp->dispatchlineid.'">'.$langs->trans("Check").'</a>';
}
else
else
{
print '<a class="button'.($disabled?' buttonRefused':'').'" href="'.$_SERVER["PHP_SELF"]."?id=".$id."&action=uncheckdispatchline&lineid=".$objp->dispatchlineid.'">'.$langs->trans("Uncheck").'</a>';
}
}
print '</td>';
print '</td>';
}
print "</tr>\n";
$i++;

View File

@ -425,7 +425,7 @@ ALTER TABLE llx_societe_extrafields ADD UNIQUE INDEX uk_societe_extrafields (fk_
ALTER TABLE llx_don ADD COLUMN fk_country integer NOT NULL after country;
ALTER TABLE llx_don CHANGE COLUMN fk_paiement fk_payment integer;
ALTER TABLE llx_don ADD COLUMN paid smallint default 0 NOT NULL after fk_payment;
ALTER TABLE llx_don CHANGE COLUMN fk_don_projet fk_project integer NULL;
ALTER TABLE llx_don CHANGE COLUMN fk_don_projet fk_projet integer NULL;
create table llx_don_extrafields
(

View File

@ -33,11 +33,11 @@ CREATE TABLE llx_cronjob
md5params varchar(32),
module_name varchar(255),
priority integer DEFAULT 0,
datelastrun datetime,
datenextrun datetime,
datestart datetime,
dateend datetime,
datelastresult datetime,
datelastrun datetime, -- date last run and when should be next
datenextrun datetime, -- job will be run if current date higher that this date
datestart datetime, -- before this date no jobs will be run
dateend datetime, -- after this date, no more jobs will be run
datelastresult datetime,
lastresult text,
lastoutput text,
unitfrequency integer NOT NULL DEFAULT 0,

View File

@ -27,8 +27,8 @@ create table llx_don
entity integer DEFAULT 1 NOT NULL, -- multi company id
tms timestamp,
fk_statut smallint NOT NULL DEFAULT 0, -- Status of donation promise or validate
datec datetime, -- date de creation de l'enregistrement
datedon datetime, -- date du don/promesse
datec datetime, -- Create date
datedon datetime, -- Date of the donation/promise
amount real DEFAULT 0,
fk_payment integer,
paid smallint default 0 NOT NULL,
@ -44,7 +44,7 @@ create table llx_don
phone varchar(24),
phone_mobile varchar(24),
public smallint DEFAULT 1 NOT NULL, -- Donation is public ? (0,1)
fk_project integer NULL, -- Donation is given for a project ?
fk_projet integer NULL, -- Donation is given for a project ?
fk_user_author integer NOT NULL,
fk_user_valid integer NULL,
note_private text,

View File

@ -389,6 +389,7 @@ ExtrafieldSeparator=Separator
ExtrafieldCheckBox=Checkbox
ExtrafieldRadio=Radio button
ExtrafieldCheckBoxFromList= Checkbox from table
ExtrafieldLink=Link to an object
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 example : <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>...
@ -494,6 +495,8 @@ Module500Name=Special expenses (tax, social contributions, dividends)
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
Module510Name=Salaries
Module510Desc=Management of employees salaries and payments
Module520Name=Loan
Module520Desc=Management of loans
Module600Name=الإخطارات
Module600Desc=Send EMail notifications on some Dolibarr business events to third-party contacts (setup defined on each thirdparty)
Module700Name=التبرعات
@ -508,14 +511,14 @@ Module1400Name=المحاسبة
Module1400Desc=المحاسبة الإدارية (ضعف الأحزاب)
Module1520Name=Document Generation
Module1520Desc=Mass mail document generation
Module1780Name=الفئات
Module1780Desc=الفئات إدارة المنتجات والموردين والزبائن)
Module1780Name=Tags/Categories
Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members)
Module2000Name=Fckeditor
Module2000Desc=سوغ محرر
Module2200Name=Dynamic Prices
Module2200Desc=Enable the usage of math expressions for prices
Module2300Name=Cron
Module2300Desc=Scheduled task management
Module2300Desc=Scheduled job management
Module2400Name=جدول الأعمال
Module2400Desc=الأعمال / الإدارة المهام وجدول الأعمال
Module2500Name=إدارة المحتوى الإلكتروني
@ -714,6 +717,11 @@ Permission510=Read Salaries
Permission512=Create/modify salaries
Permission514=Delete salaries
Permission517=Export salaries
Permission520=Read Loans
Permission522=Create/modify loans
Permission524=Delete loans
Permission525=Access loan calculator
Permission527=Export loans
Permission531=قراءة الخدمات
Permission532=إنشاء / تعديل الخدمات
Permission534=حذف خدمات
@ -746,6 +754,7 @@ Permission1185=الموافقة على أوامر المورد
Permission1186=من أجل المورد أوامر
Permission1187=باستلام المورد أوامر
Permission1188=وثيقة أوامر المورد
Permission1190=Approve (second approval) supplier orders
Permission1201=ونتيجة للحصول على التصدير
Permission1202=إنشاء / تعديل للتصدير
Permission1231=قراءة فواتير الموردين
@ -758,10 +767,10 @@ Permission1237=Export supplier orders and their details
Permission1251=ادارة الدمار الواردات الخارجية البيانات في قاعدة البيانات (بيانات تحميل)
Permission1321=تصدير العملاء والفواتير والمدفوعات والصفات
Permission1421=التصدير طلبات الزبائن وصفاته
Permission23001 = Read Scheduled task
Permission23002 = Create/update Scheduled task
Permission23003 = Delete Scheduled task
Permission23004 = Execute Scheduled task
Permission23001=Read Scheduled job
Permission23002=Create/update Scheduled job
Permission23003=Delete Scheduled job
Permission23004=Execute Scheduled job
Permission2401=قراءة الأعمال (أو أحداث المهام) مرتبطة حسابه
Permission2402=إنشاء / تعديل أو حذف الإجراءات (الأحداث أو المهام) مرتبطة حسابه
Permission2403=قراءة الأعمال (أو أحداث المهام) آخرين
@ -1107,7 +1116,7 @@ ModuleCompanyCodeAquarium=عودة رمز المحاسبة التي بناها:
ModuleCompanyCodePanicum=العودة فارغة مدونة المحاسبة.
ModuleCompanyCodeDigitaria=قانون المحاسبة طرف ثالث يعتمد على الرمز. الشفرة تتكون من طابع "جيم" في المركز الأول يليه 5 الحروف الأولى من طرف ثالث المدونة.
UseNotifications=استخدام الإخطارات
NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:<br>* per third parties contacts (customers or suppliers), one third party at time.<br>* or by setting a global target email address on module setup page.
NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:<br>* per third parties contacts (customers or suppliers), one contact at time.<br>* or by setting global target email addresses in module setup page.
ModelModules=وثائق قوالب
DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
WatermarkOnDraft=علامة مائية على مشروع الوثيقة
@ -1557,6 +1566,7 @@ SuppliersSetup=المورد الإعداد وحدة
SuppliersCommandModel=قالب كاملة من أجل المورد (logo...)
SuppliersInvoiceModel=كاملة قالب من فاتورة المورد (logo. ..)
SuppliersInvoiceNumberingModel=Supplier invoices numbering models
IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
##### GeoIPMaxmind #####
GeoIPMaxmindSetup=GeoIP Maxmind الإعداد وحدة
PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat
@ -1601,3 +1611,8 @@ ExpenseReportsSetup=Setup of module Expense Reports
TemplatePDFExpenseReports=Document templates to generate expense report document
NoModueToManageStockDecrease=No module able to manage automatic stock decrease has been activated. Stock decrease will be done on manual input only.
NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification".
ListOfNotificationsPerContact=List of notifications per contact*
ListOfFixedNotifications=List of fixed notifications
GoOntoContactCardToAddMore=Go on the tab "Notifications" of a thirdparty contact to add or remove notifications for contacts/addresses
Threshold=Threshold

View File

@ -48,7 +48,10 @@ InvoiceValidatedInDolibarr=تم توثيق %s من الفاتورة
InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS
InvoiceBackToDraftInDolibarr=الفاتورة %s للذهاب بها إلى حالة المسودة
InvoiceDeleteDolibarr=تم حذف %s من الفاتورة
OrderValidatedInDolibarr= تم توثيق %s من الطلب
OrderValidatedInDolibarr=تم توثيق %s من الطلب
OrderDeliveredInDolibarr=Order %s classified delivered
OrderCanceledInDolibarr=تم إلغاء %s من الطلب
OrderBilledInDolibarr=Order %s classified billed
OrderApprovedInDolibarr=تم الموافقة على %s من الطلب
OrderRefusedInDolibarr=Order %s refused
OrderBackToDraftInDolibarr=الطلب %s للذهاب بها إلى حالة المسودة
@ -91,3 +94,5 @@ WorkingTimeRange=Working time range
WorkingDaysRange=Working days range
AddEvent=Create event
MyAvailability=My availability
ActionType=Event type
DateActionBegin=Start event date

View File

@ -294,6 +294,8 @@ TotalOfTwoDiscountMustEqualsOriginal=مجموعه جديدتين الخصم يج
ConfirmRemoveDiscount=هل أنت متأكد من أنك تريد إزالة هذا الخصم؟
RelatedBill=الفاتورة ذات الصلة
RelatedBills=الفواتير ذات الصلة
RelatedCustomerInvoices=Related customer invoices
RelatedSupplierInvoices=Related supplier invoices
LatestRelatedBill=Latest related invoice
WarningBillExist=Warning, one or more invoice already exist

View File

@ -1,64 +1,62 @@
# Dolibarr language file - Source file is en_US - categories
Category=الفئة
Categories=الفئات
Rubrique=الفئة
Rubriques=الفئات
categories=الفئات
TheCategorie=فئة
NoCategoryYet=أي فئة من هذا النوع التي أنشئت
Rubrique=Tag/Category
Rubriques=Tags/Categories
categories=tags/categories
TheCategorie=The tag/category
NoCategoryYet=No tag/category of this type created
In=في
AddIn=أضيف في
modify=تعديل
Classify=تصنيف
CategoriesArea=منطقة الفئات
ProductsCategoriesArea=منتجات / خدمات الفئات المنطقة
SuppliersCategoriesArea=الموردين منطقة الفئات
CustomersCategoriesArea=العملاء منطقة الفئات
ThirdPartyCategoriesArea=أطراف ثالثة 'منطقة الفئات
MembersCategoriesArea=منطقة فئات الأعضاء
ContactsCategoriesArea=Contacts categories area
MainCats=الفئات الرئيسية
CategoriesArea=Tags/Categories area
ProductsCategoriesArea=Products/Services tags/categories area
SuppliersCategoriesArea=Suppliers tags/categories area
CustomersCategoriesArea=Customers tags/categories area
ThirdPartyCategoriesArea=Third parties tags/categories area
MembersCategoriesArea=Members tags/categories area
ContactsCategoriesArea=Contacts tags/categories area
MainCats=Main tags/categories
SubCats=الفئات الفرعية
CatStatistics=إحصائيات
CatList=قائمة الفئات
AllCats=جميع الفئات
ViewCat=عرض الفئة
NewCat=إضافة فئة
NewCategory=فئة جديدة
ModifCat=تعديل الفئة
CatCreated=تم إنشاء الفئة
CreateCat=إنشاء فئة
CreateThisCat=إنشاء هذه الفئة
CatList=List of tags/categories
AllCats=All tags/categories
ViewCat=View tag/category
NewCat=Add tag/category
NewCategory=New tag/category
ModifCat=Modify tag/category
CatCreated=Tag/category created
CreateCat=Create tag/category
CreateThisCat=Create this tag/category
ValidateFields=صحة المجالات
NoSubCat=لا فرعية.
SubCatOf=فرعية
FoundCats=العثور على الفئات
FoundCatsForName=فئات إيجاد اسم :
FoundSubCatsIn=فرعية موجودة في الفئة
ErrSameCatSelected=كنت قد اخترت نفس الفئة عدة مرات
ErrForgotCat=نسيت اختيار الفئة
FoundCats=Found tags/categories
FoundCatsForName=Tags/categories found for the name :
FoundSubCatsIn=Subcategories found in the tag/category
ErrSameCatSelected=You selected the same tag/category several times
ErrForgotCat=You forgot to choose the tag/category
ErrForgotField=نسيت أن أبلغ المجالات
ErrCatAlreadyExists=هذا الاسم مستخدم بالفعل
AddProductToCat=إضافة هذا المنتج إلى الفئة؟
ImpossibleAddCat=من المستحيل أن تضيف فئة
ImpossibleAssociateCategory=من المستحيل المنتسبين لهذه الفئة
AddProductToCat=Add this product to a tag/category?
ImpossibleAddCat=Impossible to add the tag/category
ImpossibleAssociateCategory=Impossible to associate the tag/category to
WasAddedSuccessfully=<b>ق ٪</b> أضيفت بنجاح.
ObjectAlreadyLinkedToCategory=العنصر المرتبط بالفعل في هذه الفئة.
CategorySuccessfullyCreated=ق ٪ من هذه الفئة تم اضافة بالنجاح.
ProductIsInCategories=المنتجات / الخدمات وتملك على الفئات التالية
SupplierIsInCategories=لطرف ثالث يملك الموردين الفئات التالية
CompanyIsInCustomersCategories=هذا الطرف الثالث وتملك ليلي العملاء / آفاق الفئات
CompanyIsInSuppliersCategories=ويملك هذا الطرف الثالث على الفئات التالية الموردين
MemberIsInCategories=يملك هذا العضو إلى الفئات التالية الأعضاء
ContactIsInCategories=This contact owns to following contacts categories
ProductHasNoCategory=هذا المنتج / الخدمة وليس في أي فئات
SupplierHasNoCategory=هذا المورد ليست في أي فئات
CompanyHasNoCategory=هذه الشركة ليست في أي فئات
MemberHasNoCategory=هذا العضو غير موجود في أي فئات
ContactHasNoCategory=This contact is not in any categories
ClassifyInCategory=تصنف في الفئة
ObjectAlreadyLinkedToCategory=Element is already linked to this tag/category.
CategorySuccessfullyCreated=This tag/category %s has been added with success.
ProductIsInCategories=Product/service owns to following tags/categories
SupplierIsInCategories=Third party owns to following suppliers tags/categories
CompanyIsInCustomersCategories=This third party owns to following customers/prospects tags/categories
CompanyIsInSuppliersCategories=This third party owns to following suppliers tags/categories
MemberIsInCategories=This member owns to following members tags/categories
ContactIsInCategories=This contact owns to following contacts tags/categories
ProductHasNoCategory=This product/service is not in any tags/categories
SupplierHasNoCategory=This supplier is not in any tags/categories
CompanyHasNoCategory=This company is not in any tags/categories
MemberHasNoCategory=This member is not in any tags/categories
ContactHasNoCategory=This contact is not in any tags/categories
ClassifyInCategory=Classify in tag/category
NoneCategory=بلا
NotCategorized=Without category
NotCategorized=Without tag/category
CategoryExistsAtSameLevel=هذه الفئة موجودة بالفعل في نفس المكان
ReturnInProduct=عودة إلى المنتجات / الخدمات بطاقة
ReturnInSupplier=عودة الى مورد بطاقة
@ -66,22 +64,22 @@ ReturnInCompany=عودة الى الزبون / احتمال بطاقة
ContentsVisibleByAll=محتويات سوف تكون واضحة من جانب جميع
ContentsVisibleByAllShort=محتويات مرئية من قبل جميع
ContentsNotVisibleByAllShort=محتويات غير مرئي من قبل جميع
CategoriesTree=Categories tree
DeleteCategory=حذف فئة
ConfirmDeleteCategory=هل أنت متأكد من أنك تريد حذف هذه الفئة؟
RemoveFromCategory=إزالة الارتباط مع catégorie
RemoveFromCategoryConfirm=هل أنت متأكد من أنك تريد إزالة الربط بين الصفقة والفئة؟
NoCategoriesDefined=أي فئة محددة
SuppliersCategoryShort=فئة الموردين
CustomersCategoryShort=فئة الزبائن
ProductsCategoryShort=فئة المنتجات
MembersCategoryShort=أعضاء الفئة
SuppliersCategoriesShort=فئات الموردين
CustomersCategoriesShort=فئات العملاء
CategoriesTree=Tags/categories tree
DeleteCategory=Delete tag/category
ConfirmDeleteCategory=Are you sure you want to delete this tag/category ?
RemoveFromCategory=Remove link with tag/categorie
RemoveFromCategoryConfirm=Are you sure you want to remove link between the transaction and the tag/category ?
NoCategoriesDefined=No tag/category defined
SuppliersCategoryShort=Suppliers tags/category
CustomersCategoryShort=Customers tags/category
ProductsCategoryShort=Products tags/category
MembersCategoryShort=Members tags/category
SuppliersCategoriesShort=Suppliers tags/categories
CustomersCategoriesShort=Customers tags/categories
CustomersProspectsCategoriesShort=Custo. / Prosp. الفئات
ProductsCategoriesShort=فئات المنتجات
MembersCategoriesShort=أعضاء الفئات
ContactCategoriesShort=Contacts categories
ProductsCategoriesShort=Products tags/categories
MembersCategoriesShort=Members tags/categories
ContactCategoriesShort=Contacts tags/categories
ThisCategoryHasNoProduct=هذه الفئة لا تحتوي على أي منتج.
ThisCategoryHasNoSupplier=هذه الفئة لا تحتوي على أي مورد.
ThisCategoryHasNoCustomer=هذه الفئة لا تحتوي على أي عميل.
@ -90,23 +88,23 @@ ThisCategoryHasNoContact=This category does not contain any contact.
AssignedToCustomer=المخصصة للعميل
AssignedToTheCustomer=يكلف العميل
InternalCategory=فئة Inernal
CategoryContents=محتويات هذه الفئة
CategId=معرف الفئة
CatSupList=قائمة الموردين الفئات
CatCusList=قائمة العملاء / احتمال الفئات
CatProdList=قائمة المنتجات فئات
CatMemberList=قائمة بأسماء أعضاء الفئات
CatContactList=List of contact categories and contact
CatSupLinks=Links between suppliers and categories
CatCusLinks=Links between customers/prospects and categories
CatProdLinks=Links between products/services and categories
CatMemberLinks=Links between members and categories
DeleteFromCat=Remove from category
CategoryContents=Tag/category contents
CategId=Tag/category id
CatSupList=List of supplier tags/categories
CatCusList=List of customer/prospect tags/categories
CatProdList=List of products tags/categories
CatMemberList=List of members tags/categories
CatContactList=List of contact tags/categories and contact
CatSupLinks=Links between suppliers and tags/categories
CatCusLinks=Links between customers/prospects and tags/categories
CatProdLinks=Links between products/services and tags/categories
CatMemberLinks=Links between members and tags/categories
DeleteFromCat=Remove from tags/category
DeletePicture=Picture delete
ConfirmDeletePicture=Confirm picture deletion?
ExtraFieldsCategories=Complementary attributes
CategoriesSetup=Categories setup
CategorieRecursiv=Link with parent category automatically
CategoriesSetup=Tags/categories setup
CategorieRecursiv=Link with parent tag/category automatically
CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory
AddProductServiceIntoCategory=Add the following product/service
ShowCategory=Show category
ShowCategory=Show tag/category

View File

@ -26,15 +26,15 @@ CronLastOutput=Last run output
CronLastResult=Last result code
CronListOfCronJobs=List of scheduled jobs
CronCommand=Command
CronList=Jobs list
CronDelete= Delete cron jobs
CronConfirmDelete= Are you sure you want to delete this cron job ?
CronExecute=Launch job
CronConfirmExecute= Are you sure to execute this job now
CronInfo= Jobs allow to execute task that have been planned
CronWaitingJobs=Wainting jobs
CronList=Scheduled job
CronDelete=Delete scheduled jobs
CronConfirmDelete=Are you sure you want to delete this scheduled jobs ?
CronExecute=Launch scheduled jobs
CronConfirmExecute=Are you sure to execute this scheduled jobs now ?
CronInfo=Scheduled job module allow to execute job that have been planned
CronWaitingJobs=Waiting jobs
CronTask=Job
CronNone= بلا
CronNone=بلا
CronDtStart=تاريخ البدء
CronDtEnd=نهاية التاريخ
CronDtNextLaunch=Next execution
@ -75,6 +75,7 @@ CronObjectHelp=The object name to load. <BR> For exemple to fetch method of Doli
CronMethodHelp=The object method to launch. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is <i>fecth</i>
CronArgsHelp=The method arguments. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be <i>0, ProductRef</i>
CronCommandHelp=The system command line to execute.
CronCreateJob=Create new Scheduled Job
# Info
CronInfoPage=Information
# Common

View File

@ -6,6 +6,8 @@ Donor=الجهات المانحة
Donors=الجهات المانحة
AddDonation=Create a donation
NewDonation=منحة جديدة
DeleteADonation=Delete a donation
ConfirmDeleteADonation=Are you sure you want to delete this donation ?
ShowDonation=Show donation
DonationPromise=هدية الوعد
PromisesNotValid=وعود لم يصادق
@ -21,6 +23,8 @@ DonationStatusPaid=تلقى تبرع
DonationStatusPromiseNotValidatedShort=مسودة
DonationStatusPromiseValidatedShort=صادق
DonationStatusPaidShort=وردت
DonationTitle=Donation receipt
DonationDatePayment=Payment date
ValidPromess=التحقق من صحة الوعد
DonationReceipt=Donation receipt
BuildDonationReceipt=بناء استلام
@ -36,3 +40,4 @@ FrenchOptions=Options for France
DONATION_ART200=Show article 200 from CGI if you are concerned
DONATION_ART238=Show article 238 from CGI if you are concerned
DONATION_ART885=Show article 885 from CGI if you are concerned
DonationPayment=Donation payment

View File

@ -161,6 +161,12 @@ ErrorPriceExpressionUnknown=Unknown error '%s'
ErrorSrcAndTargetWarehouseMustDiffers=Source and target warehouses must differs
ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without batch/serial information, on a product requiring batch/serial information
ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified before being allowed to do this action
ErrorGlobalVariableUpdater0=HTTP request failed with error '%s'
ErrorGlobalVariableUpdater1=Invalid JSON format '%s'
ErrorGlobalVariableUpdater2=Missing parameter '%s'
ErrorGlobalVariableUpdater3=The requested data was not found in result
ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
ErrorGlobalVariableUpdater5=No global variable selected
# Warnings
WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined

View File

@ -0,0 +1,53 @@
# Dolibarr language file - Source file is en_US - loan
Loan=Loan
Loans=Loans
NewLoan=New Loan
ShowLoan=Show Loan
PaymentLoan=Loan payment
ShowLoanPayment=Show Loan Payment
Capital=Capital
Insurance=Insurance
Interest=Interest
Nbterms=Number of terms
LoanAccountancyCapitalCode=Accountancy code capital
LoanAccountancyInsuranceCode=Accountancy code insurance
LoanAccountancyInterestCode=Accountancy code interest
LoanPayment=Loan payment
ConfirmDeleteLoan=Confirm deleting this loan
LoanDeleted=Loan Deleted Successfully
ConfirmPayLoan=Confirm classify paid this loan
LoanPaid=Loan Paid
ErrorLoanCapital=Loan amount has to be numeric and greater than zero.
ErrorLoanLength=Loan length has to be numeric and greater than zero.
ErrorLoanInterest=Annual interest has to be numeric and greater than zero.
# Calc
LoanCalc=Bank Loans Calculator
PurchaseFinanceInfo=Purchase & Financing Information
SalePriceOfAsset=Sale Price of Asset
PercentageDown=Percentage Down
LengthOfMortgage=Length of Mortgage
AnnualInterestRate=Annual Interest Rate
ExplainCalculations=Explain Calculations
ShowMeCalculationsAndAmortization=Show me the calculations and amortization
MortgagePaymentInformation=Mortgage Payment Information
DownPayment=Down Payment
DownPaymentDesc=The <b>down payment</b> = The price of the home multiplied by the percentage down divided by 100 (for 5% down becomes 5/100 or 0.05)
InterestRateDesc=The <b>interest rate</b> = The annual interest percentage divided by 100
MonthlyFactorDesc=The <b>monthly factor</b> = The result of the following formula
MonthlyInterestRateDesc=The <b>monthly interest rate</b> = The annual interest rate divided by 12 (for the 12 months in a year)
MonthTermDesc=The <b>month term</b> of the loan in months = The number of years you've taken the loan out for times 12
MonthlyPaymentDesc=The montly payment is figured out using the following formula
AmortizationPaymentDesc=The <a href="#amortization">amortization</a> breaks down how much of your monthly payment goes towards the bank's interest, and how much goes into paying off the principal of your loan.
AmountFinanced=Amount Financed
AmortizationMonthlyPaymentOverYears=Amortization For Monthly Payment: <b>%s</b> over %s years
Totalsforyear=Totals for year
MonthlyPayment=Monthly Payment
LoanCalcDesc=This <b>mortgage calculator</b> can be used to figure out monthly payments of a home mortgage loan, based on the home's sale price, the term of the loan desired, buyer's down payment percentage, and the loan's interest rate.<br> This calculator factors in PMI (Private Mortgage Insurance) for loans where less than 20% is put as a down payment. Also taken into consideration are the town property taxes, and their effect on the total monthly mortgage payment.<br>
GoToInterest=%s will go towards INTEREST
GoToPrincipal=%s will go towards PRINCIPAL
YouWillSpend=You will spend %s on your house in year %s
# Admin
ConfigLoan=Configuration of the module loan
LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accountancy code capital by default
LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accountancy code interest by default
LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accountancy code insurance by default

View File

@ -139,3 +139,5 @@ ListOfNotificationsDone=أرسلت قائمة جميع اشعارات بالبر
MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing.
MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter <strong>'%s'</strong> to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature.
MailSendSetupIs3=If you have any questions on how to setup your SMTP server, you can ask to %s.
YouCanAlsoUseSupervisorKeyword=You can also add the keyword <strong>__SUPERVISOREMAIL__</strong> to have email being sent to the supervisor of user (works only if an email is defined for this supervisor)
NbOfTargetedContacts=Current number of targeted contact emails

View File

@ -352,6 +352,7 @@ Status=حالة
Favorite=Favorite
ShortInfo=Info.
Ref=المرجع.
ExternalRef=Ref. extern
RefSupplier=المرجع. المورد
RefPayment=المرجع. الدفع
CommercialProposalsShort=مقترحات تجارية
@ -394,8 +395,8 @@ Available=متاح
NotYetAvailable=لم تتوفر بعد
NotAvailable=غير متاحة
Popularity=شعبية
Categories=الفئات
Category=الفئة
Categories=Tags/categories
Category=Tag/category
By=بواسطة
From=من
to=إلى
@ -694,6 +695,7 @@ AddBox=Add box
SelectElementAndClickRefresh=Select an element and click Refresh
PrintFile=Print File %s
ShowTransaction=Show transaction
GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
# Week day
Monday=يوم الاثنين
Tuesday=الثلاثاء

View File

@ -64,7 +64,8 @@ ShipProduct=سفينة المنتج
Discount=الخصم
CreateOrder=خلق أمر
RefuseOrder=رفض النظام
ApproveOrder=قبول النظام
ApproveOrder=Approve order
Approve2Order=Approve order (second level)
ValidateOrder=من أجل التحقق من صحة
UnvalidateOrder=Unvalidate النظام
DeleteOrder=من أجل حذف
@ -102,6 +103,8 @@ ClassifyBilled=تصنيف "فواتير"
ComptaCard=بطاقة المحاسبة
DraftOrders=مشروع أوامر
RelatedOrders=الأوامر ذات الصلة
RelatedCustomerOrders=Related customer orders
RelatedSupplierOrders=Related supplier orders
OnProcessOrders=على عملية أوامر
RefOrder=المرجع. ترتيب
RefCustomerOrder=المرجع. عملاء النظام
@ -118,6 +121,7 @@ PaymentOrderRef=من أجل دفع ق ٪
CloneOrder=استنساخ النظام
ConfirmCloneOrder=هل أنت متأكد من أن هذا الأمر استنساخ <b>٪ ق؟</b>
DispatchSupplierOrder=%s استقبال النظام مورد
FirstApprovalAlreadyDone=First approval already done
##### Types de contacts #####
TypeContact_commande_internal_SALESREPFOLL=ممثل العميل متابعة النظام
TypeContact_commande_internal_SHIPPING=ممثل الشحن متابعة

View File

@ -12,6 +12,7 @@ Notify_FICHINTER_VALIDATE=تدخل المصادق
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
Notify_BILL_VALIDATE=فاتورة مصادق
Notify_BILL_UNVALIDATE=Customer invoice unvalidated
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
Notify_ORDER_SUPPLIER_APPROVE=من أجل الموافقة على المورد
Notify_ORDER_SUPPLIER_REFUSE=من أجل رفض الموردين
Notify_ORDER_VALIDATE=التحقق من صحة النظام العميل
@ -28,7 +29,7 @@ Notify_PROPAL_SENTBYMAIL=اقتراح التجارية المرسلة عن طر
Notify_BILL_PAYED=دفعت فاتورة العميل
Notify_BILL_CANCEL=فاتورة الزبون إلغاء
Notify_BILL_SENTBYMAIL=فاتورة الزبون إرسالها عن طريق البريد
Notify_ORDER_SUPPLIER_VALIDATE=أجل التحقق من صحة المورد
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
Notify_ORDER_SUPPLIER_SENTBYMAIL=النظام مزود ترسل عن طريق البريد
Notify_BILL_SUPPLIER_VALIDATE=فاتورة المورد المصادق
Notify_BILL_SUPPLIER_PAYED=دفعت فاتورة المورد
@ -47,7 +48,7 @@ Notify_PROJECT_CREATE=Project creation
Notify_TASK_CREATE=Task created
Notify_TASK_MODIFY=Task modified
Notify_TASK_DELETE=Task deleted
SeeModuleSetup=See module setup
SeeModuleSetup=See setup of module %s
NbOfAttachedFiles=عدد الملفات المرفقة / وثائق
TotalSizeOfAttachedFiles=اجمالى حجم الملفات المرفقة / وثائق
MaxSize=الحجم الأقصى
@ -170,6 +171,7 @@ EMailTextInvoiceValidated=فاتورة ٪ ق المصادق
EMailTextProposalValidated=وقد تم اقتراح %s التحقق من صحة.
EMailTextOrderValidated=وقد تم التحقق من صحة %s النظام.
EMailTextOrderApproved=من أجل الموافقة على ق ٪
EMailTextOrderValidatedBy=The order %s has been recorded by %s.
EMailTextOrderApprovedBy=من أجل ٪ ق ق ٪ وافقت عليها
EMailTextOrderRefused=من أجل رفض ق ٪
EMailTextOrderRefusedBy=من أجل أن ترفض ٪ ق ق ٪

View File

@ -245,12 +245,25 @@ MinimumRecommendedPrice=Minimum recommended price is : %s
PriceExpressionEditor=Price expression editor
PriceExpressionSelected=Selected price expression
PriceExpressionEditorHelp1="price = 2 + 2" or "2 + 2" for setting the price. Use ; to separate expressions
PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#options_myextrafieldkey#</b>
PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#extrafield_myextrafieldkey#</b> and global variables with <b>#global_mycode#</b>
PriceExpressionEditorHelp3=In both product/service and supplier prices there are these variables available:<br><b>#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min#</b>
PriceExpressionEditorHelp4=In product/service price only: <b>#supplier_min_price#</b><br>In supplier prices only: <b>#supplier_quantity# and #supplier_tva_tx#</b>
PriceExpressionEditorHelp5=Available global values:
PriceMode=Price mode
PriceNumeric=Number
DefaultPrice=Default price
ComposedProductIncDecStock=Increase/Decrease stock on parent change
ComposedProduct=Sub-product
MinSupplierPrice=Minimun supplier price
MinSupplierPrice=Minimum supplier price
DynamicPriceConfiguration=Dynamic price configuration
GlobalVariables=Global variables
GlobalVariableUpdaters=Global variable updaters
GlobalVariableUpdaterType0=JSON data
GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value,
GlobalVariableUpdaterHelpFormat0=format is {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"}
GlobalVariableUpdaterType1=WebService data
GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method
GlobalVariableUpdaterHelpFormat1=format is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data, "to": "send"}}
UpdateInterval=Update interval (minutes)
LastUpdated=Last updated
CorrectlyUpdated=Correctly updated

View File

@ -72,6 +72,7 @@ ListSupplierInvoicesAssociatedProject=قائمة الموردين المرتبط
ListContractAssociatedProject=قائمة العقود المرتبطة بالمشروع.
ListFichinterAssociatedProject=قائمة التدخلات المرتبطة بالمشروع
ListExpenseReportsAssociatedProject=List of expense reports associated with the project
ListDonationsAssociatedProject=List of donations associated with the project
ListActionsAssociatedProject=قائمة الإجراءات المرتبطة بالمشروع
ActivityOnProjectThisWeek=نشاط المشروع هذا الاسبوع
ActivityOnProjectThisMonth=نشاط المشروع هذا الشهر

View File

@ -2,6 +2,7 @@
RefSending=المرجع. إرسال
Sending=إرسال
Sendings=الإرسال
AllSendings=All Shipments
Shipment=إرسال
Shipments=شحنات
ShowSending=Show Sending

View File

@ -43,3 +43,4 @@ ListOfSupplierOrders=List of supplier orders
MenuOrdersSupplierToBill=Supplier orders to invoice
NbDaysToDelivery=Delivery delay in days
DescNbDaysToDelivery=The biggest delay is display among order product list
UseDoubleApproval=Use double approval (the second approval will be any user of a defined user group)

View File

@ -389,6 +389,7 @@ ExtrafieldSeparator=Разделител
ExtrafieldCheckBox=Отметка
ExtrafieldRadio=Радио бутон
ExtrafieldCheckBoxFromList= Checkbox from table
ExtrafieldLink=Link to an object
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 example : <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>...
@ -494,6 +495,8 @@ Module500Name=Special expenses (tax, social contributions, dividends)
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
Module510Name=Salaries
Module510Desc=Management of employees salaries and payments
Module520Name=Loan
Module520Desc=Management of loans
Module600Name=Известия
Module600Desc=Send EMail notifications on some Dolibarr business events to third-party contacts (setup defined on each thirdparty)
Module700Name=Дарения
@ -508,14 +511,14 @@ Module1400Name=Счетоводство
Module1400Desc=Управление на счетоводство (двойни страни)
Module1520Name=Document Generation
Module1520Desc=Mass mail document generation
Module1780Name=Категории
Module1780Desc=Управление на категории (продукти, доставчици и клиенти)
Module1780Name=Tags/Categories
Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members)
Module2000Name=WYSIWYG редактор
Module2000Desc=Оставя се да редактирате някакъв текст, чрез използване на усъвършенствана редактор
Module2200Name=Dynamic Prices
Module2200Desc=Enable the usage of math expressions for prices
Module2300Name=Cron
Module2300Desc=Scheduled task management
Module2300Desc=Scheduled job management
Module2400Name=Дневен ред
Module2400Desc=Събития/задачи и управление на дневен ред
Module2500Name=Електронно Управление на Съдържанието
@ -714,6 +717,11 @@ Permission510=Read Salaries
Permission512=Create/modify salaries
Permission514=Delete salaries
Permission517=Export salaries
Permission520=Read Loans
Permission522=Create/modify loans
Permission524=Delete loans
Permission525=Access loan calculator
Permission527=Export loans
Permission531=Прочети услуги
Permission532=Създаване / промяна услуги
Permission534=Изтриване на услуги
@ -746,6 +754,7 @@ Permission1185=Одобряване на доставчика поръчки
Permission1186=Поръчка доставчика поръчки
Permission1187=Потвърдя получаването на доставчика поръчки
Permission1188=Изтриване на доставчика поръчки
Permission1190=Approve (second approval) supplier orders
Permission1201=Резултат от износ
Permission1202=Създаване / Промяна на износ
Permission1231=Доставчика фактури
@ -758,10 +767,10 @@ Permission1237=EXPORT доставчик поръчки и техните дет
Permission1251=Пусни масов внос на външни данни в базата данни (данни товара)
Permission1321=Износ на клиентите фактури, атрибути и плащания
Permission1421=Износ на клиентски поръчки и атрибути
Permission23001 = Read Scheduled task
Permission23002 = Create/update Scheduled task
Permission23003 = Delete Scheduled task
Permission23004 = Execute Scheduled task
Permission23001=Read Scheduled job
Permission23002=Create/update Scheduled job
Permission23003=Delete Scheduled job
Permission23004=Execute Scheduled job
Permission2401=Прочетете действия (събития или задачи), свързани с неговата сметка
Permission2402=Създаване/промяна действия (събития или задачи), свързани с неговата сметка
Permission2403=Изтрий действия (събития или задачи), свързани с неговата сметка
@ -1107,7 +1116,7 @@ ModuleCompanyCodeAquarium=Връщане счетоводна код, постр
ModuleCompanyCodePanicum=Връща празна код счетоводство.
ModuleCompanyCodeDigitaria=Счетоводството код зависи от код на трето лице. Код се състои от буквата &quot;C&quot; на първа позиция, следван от първите 5 символа на код на трета страна.
UseNotifications=Използвайте уведомления
NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:<br>* per third parties contacts (customers or suppliers), one third party at time.<br>* or by setting a global target email address on module setup page.
NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:<br>* per third parties contacts (customers or suppliers), one contact at time.<br>* or by setting global target email addresses in module setup page.
ModelModules=Документи шаблони
DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
WatermarkOnDraft=Воден знак върху проект на документ
@ -1557,6 +1566,7 @@ SuppliersSetup=Настройка доставчик модул
SuppliersCommandModel=Пълна шаблон на доставчика за (logo. ..)
SuppliersInvoiceModel=Пълна образец на фактура на доставчика (logo. ..)
SuppliersInvoiceNumberingModel=Supplier invoices numbering models
IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
##### GeoIPMaxmind #####
GeoIPMaxmindSetup=GeoIP MaxMind модул за настройка
PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.<br>Examples:<br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat
@ -1601,3 +1611,8 @@ ExpenseReportsSetup=Setup of module Expense Reports
TemplatePDFExpenseReports=Document templates to generate expense report document
NoModueToManageStockDecrease=No module able to manage automatic stock decrease has been activated. Stock decrease will be done on manual input only.
NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification".
ListOfNotificationsPerContact=List of notifications per contact*
ListOfFixedNotifications=List of fixed notifications
GoOntoContactCardToAddMore=Go on the tab "Notifications" of a thirdparty contact to add or remove notifications for contacts/addresses
Threshold=Threshold

View File

@ -48,7 +48,10 @@ InvoiceValidatedInDolibarr=Фактура %s валидирани
InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS
InvoiceBackToDraftInDolibarr=Фактура %s се върнете в състояние на чернова
InvoiceDeleteDolibarr=Invoice %s deleted
OrderValidatedInDolibarr= Поръчка %s валидирани
OrderValidatedInDolibarr=Поръчка %s валидирани
OrderDeliveredInDolibarr=Order %s classified delivered
OrderCanceledInDolibarr=Поръчка %s отменен
OrderBilledInDolibarr=Order %s classified billed
OrderApprovedInDolibarr=Поръчка %s одобрен
OrderRefusedInDolibarr=Order %s refused
OrderBackToDraftInDolibarr=Поръчка %s се върне в състояние на чернова
@ -91,3 +94,5 @@ WorkingTimeRange=Working time range
WorkingDaysRange=Working days range
AddEvent=Create event
MyAvailability=My availability
ActionType=Event type
DateActionBegin=Start event date

View File

@ -294,6 +294,8 @@ TotalOfTwoDiscountMustEqualsOriginal=Общо на две нови отстъп
ConfirmRemoveDiscount=Сигурен ли сте, че искате да премахнете тази отстъпка?
RelatedBill=Свързани фактура
RelatedBills=Свързани фактури
RelatedCustomerInvoices=Related customer invoices
RelatedSupplierInvoices=Related supplier invoices
LatestRelatedBill=Latest related invoice
WarningBillExist=Warning, one or more invoice already exist

View File

@ -1,64 +1,62 @@
# Dolibarr language file - Source file is en_US - categories
Category=Категория
Categories=Категории
Rubrique=Категория
Rubriques=Категории
categories=категории
TheCategorie=Категорията
NoCategoryYet=Няма създадена категория от този тип
Rubrique=Tag/Category
Rubriques=Tags/Categories
categories=tags/categories
TheCategorie=The tag/category
NoCategoryYet=No tag/category of this type created
In=В
AddIn=Добавяне в
modify=промяна
Classify=Добавяне
CategoriesArea=Категории
ProductsCategoriesArea=Категории Продукти / Услуги
SuppliersCategoriesArea=Категории доставчици
CustomersCategoriesArea=Категории клиенти
ThirdPartyCategoriesArea=Категории трети страни
MembersCategoriesArea=Категории членове
ContactsCategoriesArea=Категории контакти
MainCats=Основни категории
CategoriesArea=Tags/Categories area
ProductsCategoriesArea=Products/Services tags/categories area
SuppliersCategoriesArea=Suppliers tags/categories area
CustomersCategoriesArea=Customers tags/categories area
ThirdPartyCategoriesArea=Third parties tags/categories area
MembersCategoriesArea=Members tags/categories area
ContactsCategoriesArea=Contacts tags/categories area
MainCats=Main tags/categories
SubCats=Подкатегории
CatStatistics=Статистика
CatList=Списък на категории
AllCats=Всички категории
ViewCat=Преглед на категория
NewCat=Добавяне на категория
NewCategory=Нова категория
ModifCat=Промяна на категория
CatCreated=Категорията е създадена
CreateCat=Създаване на категория
CreateThisCat=Създаване
CatList=List of tags/categories
AllCats=All tags/categories
ViewCat=View tag/category
NewCat=Add tag/category
NewCategory=New tag/category
ModifCat=Modify tag/category
CatCreated=Tag/category created
CreateCat=Create tag/category
CreateThisCat=Create this tag/category
ValidateFields=Проверка на полетата
NoSubCat=Няма подкатегория.
SubCatOf=Подкатегория
FoundCats=Открити са категории
FoundCatsForName=Открити са категории за името:
FoundSubCatsIn=Открити са подкатегории в категорията
ErrSameCatSelected=Избрали сте една и съща категория няколко пъти
ErrForgotCat=Забравили сте да изберете категория
FoundCats=Found tags/categories
FoundCatsForName=Tags/categories found for the name :
FoundSubCatsIn=Subcategories found in the tag/category
ErrSameCatSelected=You selected the same tag/category several times
ErrForgotCat=You forgot to choose the tag/category
ErrForgotField=Забравили сте да информира полета
ErrCatAlreadyExists=Това име вече се използва
AddProductToCat=Добавете този продукт към категория?
ImpossibleAddCat=Невъзможно е да добавите категория
ImpossibleAssociateCategory=Невъзможно е да се асоциира категорията към
AddProductToCat=Add this product to a tag/category?
ImpossibleAddCat=Impossible to add the tag/category
ImpossibleAssociateCategory=Impossible to associate the tag/category to
WasAddedSuccessfully=<b>%s</b> е добавен успешно.
ObjectAlreadyLinkedToCategory=Елемента вече е свързан с тази категория.
CategorySuccessfullyCreated=Категорията %s е добавена успешно.
ProductIsInCategories=Продукта/услугата е в следните категории
SupplierIsInCategories=Третото лице е в следните категории доставчици
CompanyIsInCustomersCategories=Това трето лице е в следните категории клиенти/prospects
CompanyIsInSuppliersCategories=Това трето лице е в следните категории доставчици
MemberIsInCategories=Този член е в следните категории членове
ContactIsInCategories=Този контакт принадлежи на следните категории контакти
ProductHasNoCategory=Този продукт/услуга не е в никакви категории
SupplierHasNoCategory=Този доставчик не е в никакви категории
CompanyHasNoCategory=Тази фирма не е в никакви категории
MemberHasNoCategory=Този член не е в никакви категории
ContactHasNoCategory=Този контакт не е в категория
ClassifyInCategory=Добавяне в категория
ObjectAlreadyLinkedToCategory=Element is already linked to this tag/category.
CategorySuccessfullyCreated=This tag/category %s has been added with success.
ProductIsInCategories=Product/service owns to following tags/categories
SupplierIsInCategories=Third party owns to following suppliers tags/categories
CompanyIsInCustomersCategories=This third party owns to following customers/prospects tags/categories
CompanyIsInSuppliersCategories=This third party owns to following suppliers tags/categories
MemberIsInCategories=This member owns to following members tags/categories
ContactIsInCategories=This contact owns to following contacts tags/categories
ProductHasNoCategory=This product/service is not in any tags/categories
SupplierHasNoCategory=This supplier is not in any tags/categories
CompanyHasNoCategory=This company is not in any tags/categories
MemberHasNoCategory=This member is not in any tags/categories
ContactHasNoCategory=This contact is not in any tags/categories
ClassifyInCategory=Classify in tag/category
NoneCategory=Няма
NotCategorized=Без категория
NotCategorized=Without tag/category
CategoryExistsAtSameLevel=Тази категория вече съществува с този код
ReturnInProduct=Обратно към картата на продукта/услугата
ReturnInSupplier=Обратно към картата на доставчика
@ -66,22 +64,22 @@ ReturnInCompany=Обратно към картата на клиента/prospe
ContentsVisibleByAll=Съдържанието ще се вижда от всички
ContentsVisibleByAllShort=Съдържанието е видимо от всички
ContentsNotVisibleByAllShort=Съдържанието не е видимо от всички
CategoriesTree=Категории дърво
DeleteCategory=Изтриване на категория
ConfirmDeleteCategory=Сигурни ли сте, че желаете да изтриете тази категория?
RemoveFromCategory=Премахване на връзката с категория
RemoveFromCategoryConfirm=Сигурни ли сте, че желаете да премахнете връзката между операцията и категорията?
NoCategoriesDefined=Не е определена категория
SuppliersCategoryShort=Категория доставчици
CustomersCategoryShort=Категория клиенти
ProductsCategoryShort=Категория продукти
MembersCategoryShort=Категория членове
SuppliersCategoriesShort=Категории доставчици
CustomersCategoriesShort=Категории клиенти
CategoriesTree=Tags/categories tree
DeleteCategory=Delete tag/category
ConfirmDeleteCategory=Are you sure you want to delete this tag/category ?
RemoveFromCategory=Remove link with tag/categorie
RemoveFromCategoryConfirm=Are you sure you want to remove link between the transaction and the tag/category ?
NoCategoriesDefined=No tag/category defined
SuppliersCategoryShort=Suppliers tags/category
CustomersCategoryShort=Customers tags/category
ProductsCategoryShort=Products tags/category
MembersCategoryShort=Members tags/category
SuppliersCategoriesShort=Suppliers tags/categories
CustomersCategoriesShort=Customers tags/categories
CustomersProspectsCategoriesShort=Custo / Prosp. категории
ProductsCategoriesShort=Категории продукти
MembersCategoriesShort=Категории членове
ContactCategoriesShort=Категории контакти
ProductsCategoriesShort=Products tags/categories
MembersCategoriesShort=Members tags/categories
ContactCategoriesShort=Contacts tags/categories
ThisCategoryHasNoProduct=Тази категория не съдържа никакъв продукт.
ThisCategoryHasNoSupplier=Тази категория не съдържа никакъв доставчик.
ThisCategoryHasNoCustomer=Тази категория не съдържа никакъв клиент.
@ -90,23 +88,23 @@ ThisCategoryHasNoContact=Тази категория не съдържа ник
AssignedToCustomer=Възложено на клиент
AssignedToTheCustomer=Възложено на клиента
InternalCategory=Вътрешна категория
CategoryContents=Съдържание на категория
CategId=ID на категория
CatSupList=Списък на доставчика категории
CatCusList=Списък на потребителите / перспективата категории
CatProdList=Списък на продуктите категории
CatMemberList=Списък на членовете категории
CatContactList=Лист на контактни категории и контакти
CatSupLinks=Връзки между доставчици и категории
CatCusLinks=Връзки между потребител/перспектива и категории
CatProdLinks=Връзки между продукти/услуги и категории
CatMemberLinks=Връзки между членове и категории
DeleteFromCat=Премахване от категорията
CategoryContents=Tag/category contents
CategId=Tag/category id
CatSupList=List of supplier tags/categories
CatCusList=List of customer/prospect tags/categories
CatProdList=List of products tags/categories
CatMemberList=List of members tags/categories
CatContactList=List of contact tags/categories and contact
CatSupLinks=Links between suppliers and tags/categories
CatCusLinks=Links between customers/prospects and tags/categories
CatProdLinks=Links between products/services and tags/categories
CatMemberLinks=Links between members and tags/categories
DeleteFromCat=Remove from tags/category
DeletePicture=Изтрий снимка
ConfirmDeletePicture=Потвърди изтриване на снимка?
ExtraFieldsCategories=Допълнителни атрибути
CategoriesSetup=Категории настройка
CategorieRecursiv=Автоматично свързване с родителска категория
CategoriesSetup=Tags/categories setup
CategorieRecursiv=Link with parent tag/category automatically
CategorieRecursivHelp=Ако е активирано, продукта ще бъде свързан също и с родителската категория при добавяне в под-категория
AddProductServiceIntoCategory=Add the following product/service
ShowCategory=Show category
ShowCategory=Show tag/category

View File

@ -26,15 +26,15 @@ CronLastOutput=Last run output
CronLastResult=Last result code
CronListOfCronJobs=List of scheduled jobs
CronCommand=Command
CronList=Jobs list
CronDelete= Delete cron jobs
CronConfirmDelete= Are you sure you want to delete this cron job ?
CronExecute=Launch job
CronConfirmExecute= Are you sure to execute this job now
CronInfo= Jobs allow to execute task that have been planned
CronWaitingJobs=Wainting jobs
CronList=Scheduled job
CronDelete=Delete scheduled jobs
CronConfirmDelete=Are you sure you want to delete this scheduled jobs ?
CronExecute=Launch scheduled jobs
CronConfirmExecute=Are you sure to execute this scheduled jobs now ?
CronInfo=Scheduled job module allow to execute job that have been planned
CronWaitingJobs=Waiting jobs
CronTask=Job
CronNone= Няма
CronNone=Няма
CronDtStart=Начална дата
CronDtEnd=Крайна дата
CronDtNextLaunch=Next execution
@ -75,6 +75,7 @@ CronObjectHelp=The object name to load. <BR> For exemple to fetch method of Doli
CronMethodHelp=The object method to launch. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is <i>fecth</i>
CronArgsHelp=The method arguments. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be <i>0, ProductRef</i>
CronCommandHelp=Системния команден ред за стартиране.
CronCreateJob=Create new Scheduled Job
# Info
CronInfoPage=Информация
# Common

View File

@ -6,6 +6,8 @@ Donor=Дарител
Donors=Дарители
AddDonation=Create a donation
NewDonation=Ново дарение
DeleteADonation=Delete a donation
ConfirmDeleteADonation=Are you sure you want to delete this donation ?
ShowDonation=Показване на дарение
DonationPromise=Обещано дарение
PromisesNotValid=Няма потвърдени дарения
@ -21,6 +23,8 @@ DonationStatusPaid=Получено дарение
DonationStatusPromiseNotValidatedShort=Проект
DonationStatusPromiseValidatedShort=Потвърдено
DonationStatusPaidShort=Получено
DonationTitle=Donation receipt
DonationDatePayment=Payment date
ValidPromess=Потвърждаване на дарението
DonationReceipt=Разписка за дарение
BuildDonationReceipt=Създаване на разписка
@ -36,3 +40,4 @@ FrenchOptions=Options for France
DONATION_ART200=Show article 200 from CGI if you are concerned
DONATION_ART238=Show article 238 from CGI if you are concerned
DONATION_ART885=Show article 885 from CGI if you are concerned
DonationPayment=Donation payment

View File

@ -161,6 +161,12 @@ ErrorPriceExpressionUnknown=Unknown error '%s'
ErrorSrcAndTargetWarehouseMustDiffers=Source and target warehouses must differs
ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without batch/serial information, on a product requiring batch/serial information
ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified before being allowed to do this action
ErrorGlobalVariableUpdater0=HTTP request failed with error '%s'
ErrorGlobalVariableUpdater1=Invalid JSON format '%s'
ErrorGlobalVariableUpdater2=Missing parameter '%s'
ErrorGlobalVariableUpdater3=The requested data was not found in result
ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
ErrorGlobalVariableUpdater5=No global variable selected
# Warnings
WarningMandatorySetupNotComplete=Задължителни параметри на настройката все още не са определени

View File

@ -0,0 +1,53 @@
# Dolibarr language file - Source file is en_US - loan
Loan=Loan
Loans=Loans
NewLoan=New Loan
ShowLoan=Show Loan
PaymentLoan=Loan payment
ShowLoanPayment=Show Loan Payment
Capital=Capital
Insurance=Insurance
Interest=Interest
Nbterms=Number of terms
LoanAccountancyCapitalCode=Accountancy code capital
LoanAccountancyInsuranceCode=Accountancy code insurance
LoanAccountancyInterestCode=Accountancy code interest
LoanPayment=Loan payment
ConfirmDeleteLoan=Confirm deleting this loan
LoanDeleted=Loan Deleted Successfully
ConfirmPayLoan=Confirm classify paid this loan
LoanPaid=Loan Paid
ErrorLoanCapital=Loan amount has to be numeric and greater than zero.
ErrorLoanLength=Loan length has to be numeric and greater than zero.
ErrorLoanInterest=Annual interest has to be numeric and greater than zero.
# Calc
LoanCalc=Bank Loans Calculator
PurchaseFinanceInfo=Purchase & Financing Information
SalePriceOfAsset=Sale Price of Asset
PercentageDown=Percentage Down
LengthOfMortgage=Length of Mortgage
AnnualInterestRate=Annual Interest Rate
ExplainCalculations=Explain Calculations
ShowMeCalculationsAndAmortization=Show me the calculations and amortization
MortgagePaymentInformation=Mortgage Payment Information
DownPayment=Down Payment
DownPaymentDesc=The <b>down payment</b> = The price of the home multiplied by the percentage down divided by 100 (for 5% down becomes 5/100 or 0.05)
InterestRateDesc=The <b>interest rate</b> = The annual interest percentage divided by 100
MonthlyFactorDesc=The <b>monthly factor</b> = The result of the following formula
MonthlyInterestRateDesc=The <b>monthly interest rate</b> = The annual interest rate divided by 12 (for the 12 months in a year)
MonthTermDesc=The <b>month term</b> of the loan in months = The number of years you've taken the loan out for times 12
MonthlyPaymentDesc=The montly payment is figured out using the following formula
AmortizationPaymentDesc=The <a href="#amortization">amortization</a> breaks down how much of your monthly payment goes towards the bank's interest, and how much goes into paying off the principal of your loan.
AmountFinanced=Amount Financed
AmortizationMonthlyPaymentOverYears=Amortization For Monthly Payment: <b>%s</b> over %s years
Totalsforyear=Totals for year
MonthlyPayment=Monthly Payment
LoanCalcDesc=This <b>mortgage calculator</b> can be used to figure out monthly payments of a home mortgage loan, based on the home's sale price, the term of the loan desired, buyer's down payment percentage, and the loan's interest rate.<br> This calculator factors in PMI (Private Mortgage Insurance) for loans where less than 20% is put as a down payment. Also taken into consideration are the town property taxes, and their effect on the total monthly mortgage payment.<br>
GoToInterest=%s will go towards INTEREST
GoToPrincipal=%s will go towards PRINCIPAL
YouWillSpend=You will spend %s on your house in year %s
# Admin
ConfigLoan=Configuration of the module loan
LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accountancy code capital by default
LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accountancy code interest by default
LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accountancy code insurance by default

View File

@ -139,3 +139,5 @@ ListOfNotificationsDone=Списък на всички имейли, изпра
MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing.
MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter <strong>'%s'</strong> to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature.
MailSendSetupIs3=If you have any questions on how to setup your SMTP server, you can ask to %s.
YouCanAlsoUseSupervisorKeyword=You can also add the keyword <strong>__SUPERVISOREMAIL__</strong> to have email being sent to the supervisor of user (works only if an email is defined for this supervisor)
NbOfTargetedContacts=Current number of targeted contact emails

View File

@ -352,6 +352,7 @@ Status=Състояние
Favorite=Favorite
ShortInfo=Инфо.
Ref=Реф.
ExternalRef=Ref. extern
RefSupplier=Реф. снабдител
RefPayment=Реф. плащане
CommercialProposalsShort=Търговски предложения
@ -394,8 +395,8 @@ Available=На разположение
NotYetAvailable=Все още няма данни
NotAvailable=Не е налично
Popularity=Популярност
Categories=Категории
Category=Категория
Categories=Tags/categories
Category=Tag/category
By=От
From=От
to=за
@ -694,6 +695,7 @@ AddBox=Add box
SelectElementAndClickRefresh=Изберете елемент и натиснете Презареждане
PrintFile=Print File %s
ShowTransaction=Show transaction
GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
# Week day
Monday=Понеделник
Tuesday=Вторник

View File

@ -64,7 +64,8 @@ ShipProduct=Кораб продукт
Discount=Отстъпка
CreateOrder=Създаване на поръчка
RefuseOrder=Спецконтейнери за
ApproveOrder=Приемам за
ApproveOrder=Approve order
Approve2Order=Approve order (second level)
ValidateOrder=Валидиране за
UnvalidateOrder=Unvalidate за
DeleteOrder=Изтрий заявка
@ -102,6 +103,8 @@ ClassifyBilled=Класифицирайте таксувани
ComptaCard=Счетоводството карта
DraftOrders=Проект за поръчки
RelatedOrders=Подобни поръчки
RelatedCustomerOrders=Related customer orders
RelatedSupplierOrders=Related supplier orders
OnProcessOrders=В процес поръчки
RefOrder=Реф. ред
RefCustomerOrder=Реф. поръчка на клиента
@ -118,6 +121,7 @@ PaymentOrderRef=Плащане на поръчката %s
CloneOrder=Clone за
ConfirmCloneOrder=Сигурен ли сте, че искате да клонирате за този <b>%s?</b>
DispatchSupplierOrder=Получаване %s доставчика ред
FirstApprovalAlreadyDone=First approval already done
##### Types de contacts #####
TypeContact_commande_internal_SALESREPFOLL=Представител проследяване поръчка на клиента
TypeContact_commande_internal_SHIPPING=Представител проследяване доставка

View File

@ -12,6 +12,7 @@ Notify_FICHINTER_VALIDATE=Интервенция валидирани
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
Notify_BILL_VALIDATE=Клиентът фактура се заверява
Notify_BILL_UNVALIDATE=Customer invoice unvalidated
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
Notify_ORDER_SUPPLIER_APPROVE=Доставчик утвърдения
Notify_ORDER_SUPPLIER_REFUSE=Доставчик за отказа
Notify_ORDER_VALIDATE=Клиента заявка се заверява
@ -28,7 +29,7 @@ Notify_PROPAL_SENTBYMAIL=Търговско предложение, изпрат
Notify_BILL_PAYED=Фактурата на клиента е платена
Notify_BILL_CANCEL=Фактурата на клиента е отменена
Notify_BILL_SENTBYMAIL=Фактурата на клиента е изпратена по пощата
Notify_ORDER_SUPPLIER_VALIDATE=Доставчик влязлата в сила заповед
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
Notify_ORDER_SUPPLIER_SENTBYMAIL=Доставчик реда, изпратени по пощата
Notify_BILL_SUPPLIER_VALIDATE=Доставчик фактура валидирани
Notify_BILL_SUPPLIER_PAYED=Доставчик фактура плаща
@ -47,7 +48,7 @@ Notify_PROJECT_CREATE=Project creation
Notify_TASK_CREATE=Task created
Notify_TASK_MODIFY=Task modified
Notify_TASK_DELETE=Task deleted
SeeModuleSetup=See module setup
SeeModuleSetup=See setup of module %s
NbOfAttachedFiles=Брой на прикачените файлове/документи
TotalSizeOfAttachedFiles=Общ размер на прикачените файлове/документи
MaxSize=Максимален размер
@ -170,6 +171,7 @@ EMailTextInvoiceValidated=Фактура %s е била потвърдена.
EMailTextProposalValidated=Предложението %s е била потвърдена.
EMailTextOrderValidated=За %s е била потвърдена.
EMailTextOrderApproved=За %s е одобрен.
EMailTextOrderValidatedBy=The order %s has been recorded by %s.
EMailTextOrderApprovedBy=Е бил одобрен за %s от %s.
EMailTextOrderRefused=За %s е била отказана.
EMailTextOrderRefusedBy=За %s е отказано от %s.

View File

@ -245,12 +245,25 @@ MinimumRecommendedPrice=Minimum recommended price is : %s
PriceExpressionEditor=Price expression editor
PriceExpressionSelected=Selected price expression
PriceExpressionEditorHelp1="price = 2 + 2" or "2 + 2" for setting the price. Use ; to separate expressions
PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#options_myextrafieldkey#</b>
PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#extrafield_myextrafieldkey#</b> and global variables with <b>#global_mycode#</b>
PriceExpressionEditorHelp3=In both product/service and supplier prices there are these variables available:<br><b>#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min#</b>
PriceExpressionEditorHelp4=In product/service price only: <b>#supplier_min_price#</b><br>In supplier prices only: <b>#supplier_quantity# and #supplier_tva_tx#</b>
PriceExpressionEditorHelp5=Available global values:
PriceMode=Price mode
PriceNumeric=Number
DefaultPrice=Default price
ComposedProductIncDecStock=Increase/Decrease stock on parent change
ComposedProduct=Sub-product
MinSupplierPrice=Minimun supplier price
MinSupplierPrice=Minimum supplier price
DynamicPriceConfiguration=Dynamic price configuration
GlobalVariables=Global variables
GlobalVariableUpdaters=Global variable updaters
GlobalVariableUpdaterType0=JSON data
GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value,
GlobalVariableUpdaterHelpFormat0=format is {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"}
GlobalVariableUpdaterType1=WebService data
GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method
GlobalVariableUpdaterHelpFormat1=format is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data, "to": "send"}}
UpdateInterval=Update interval (minutes)
LastUpdated=Last updated
CorrectlyUpdated=Correctly updated

View File

@ -72,6 +72,7 @@ ListSupplierInvoicesAssociatedProject=Списък на фактурите на
ListContractAssociatedProject=Списък на договори, свързани с проекта
ListFichinterAssociatedProject=Списък на интервенциите, свързани с проекта
ListExpenseReportsAssociatedProject=List of expense reports associated with the project
ListDonationsAssociatedProject=List of donations associated with the project
ListActionsAssociatedProject=Списък на събития, свързани с проекта
ActivityOnProjectThisWeek=Дейности в проекта тази седмица
ActivityOnProjectThisMonth=Дейност по проект, този месец

View File

@ -2,6 +2,7 @@
RefSending=Реф. пратка
Sending=Пратка
Sendings=Превозите
AllSendings=All Shipments
Shipment=Пратка
Shipments=Превозите
ShowSending=Show Sending

View File

@ -43,3 +43,4 @@ ListOfSupplierOrders=Списък на нарежданията за доста
MenuOrdersSupplierToBill=Поръчки на доставчика за фактуриране
NbDaysToDelivery=Delivery delay in days
DescNbDaysToDelivery=The biggest delay is display among order product list
UseDoubleApproval=Use double approval (the second approval will be any user of a defined user group)

View File

@ -0,0 +1,53 @@
# Dolibarr language file - Source file is en_US - loan
Loan=Loan
Loans=Loans
NewLoan=New Loan
ShowLoan=Show Loan
PaymentLoan=Loan payment
ShowLoanPayment=Show Loan Payment
Capital=Capital
Insurance=Insurance
Interest=Interest
Nbterms=Number of terms
LoanAccountancyCapitalCode=Accountancy code capital
LoanAccountancyInsuranceCode=Accountancy code insurance
LoanAccountancyInterestCode=Accountancy code interest
LoanPayment=Loan payment
ConfirmDeleteLoan=Confirm deleting this loan
LoanDeleted=Loan Deleted Successfully
ConfirmPayLoan=Confirm classify paid this loan
LoanPaid=Loan Paid
ErrorLoanCapital=Loan amount has to be numeric and greater than zero.
ErrorLoanLength=Loan length has to be numeric and greater than zero.
ErrorLoanInterest=Annual interest has to be numeric and greater than zero.
# Calc
LoanCalc=Bank Loans Calculator
PurchaseFinanceInfo=Purchase & Financing Information
SalePriceOfAsset=Sale Price of Asset
PercentageDown=Percentage Down
LengthOfMortgage=Length of Mortgage
AnnualInterestRate=Annual Interest Rate
ExplainCalculations=Explain Calculations
ShowMeCalculationsAndAmortization=Show me the calculations and amortization
MortgagePaymentInformation=Mortgage Payment Information
DownPayment=Down Payment
DownPaymentDesc=The <b>down payment</b> = The price of the home multiplied by the percentage down divided by 100 (for 5% down becomes 5/100 or 0.05)
InterestRateDesc=The <b>interest rate</b> = The annual interest percentage divided by 100
MonthlyFactorDesc=The <b>monthly factor</b> = The result of the following formula
MonthlyInterestRateDesc=The <b>monthly interest rate</b> = The annual interest rate divided by 12 (for the 12 months in a year)
MonthTermDesc=The <b>month term</b> of the loan in months = The number of years you've taken the loan out for times 12
MonthlyPaymentDesc=The montly payment is figured out using the following formula
AmortizationPaymentDesc=The <a href="#amortization">amortization</a> breaks down how much of your monthly payment goes towards the bank's interest, and how much goes into paying off the principal of your loan.
AmountFinanced=Amount Financed
AmortizationMonthlyPaymentOverYears=Amortization For Monthly Payment: <b>%s</b> over %s years
Totalsforyear=Totals for year
MonthlyPayment=Monthly Payment
LoanCalcDesc=This <b>mortgage calculator</b> can be used to figure out monthly payments of a home mortgage loan, based on the home's sale price, the term of the loan desired, buyer's down payment percentage, and the loan's interest rate.<br> This calculator factors in PMI (Private Mortgage Insurance) for loans where less than 20% is put as a down payment. Also taken into consideration are the town property taxes, and their effect on the total monthly mortgage payment.<br>
GoToInterest=%s will go towards INTEREST
GoToPrincipal=%s will go towards PRINCIPAL
YouWillSpend=You will spend %s on your house in year %s
# Admin
ConfigLoan=Configuration of the module loan
LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accountancy code capital by default
LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accountancy code interest by default
LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accountancy code insurance by default

View File

@ -389,6 +389,7 @@ ExtrafieldSeparator=Separator
ExtrafieldCheckBox=Checkbox
ExtrafieldRadio=Radio button
ExtrafieldCheckBoxFromList= Checkbox from table
ExtrafieldLink=Link to an object
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 example : <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>...
@ -494,6 +495,8 @@ Module500Name=Special expenses (tax, social contributions, dividends)
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
Module510Name=Salaries
Module510Desc=Management of employees salaries and payments
Module520Name=Loan
Module520Desc=Management of loans
Module600Name=Notifications
Module600Desc=Send EMail notifications on some Dolibarr business events to third-party contacts (setup defined on each thirdparty)
Module700Name=Donations
@ -508,14 +511,14 @@ Module1400Name=Accounting
Module1400Desc=Accounting management (double parties)
Module1520Name=Document Generation
Module1520Desc=Mass mail document generation
Module1780Name=Categories
Module1780Desc=Category management (products, suppliers and customers)
Module1780Name=Tags/Categories
Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members)
Module2000Name=WYSIWYG editor
Module2000Desc=Allow to edit some text area using an advanced editor
Module2200Name=Dynamic Prices
Module2200Desc=Enable the usage of math expressions for prices
Module2300Name=Cron
Module2300Desc=Scheduled task management
Module2300Desc=Scheduled job management
Module2400Name=Agenda
Module2400Desc=Events/tasks and agenda management
Module2500Name=Electronic Content Management
@ -714,6 +717,11 @@ Permission510=Read Salaries
Permission512=Create/modify salaries
Permission514=Delete salaries
Permission517=Export salaries
Permission520=Read Loans
Permission522=Create/modify loans
Permission524=Delete loans
Permission525=Access loan calculator
Permission527=Export loans
Permission531=Read services
Permission532=Create/modify services
Permission534=Delete services
@ -746,6 +754,7 @@ Permission1185=Approve supplier orders
Permission1186=Order supplier orders
Permission1187=Acknowledge receipt of supplier orders
Permission1188=Delete supplier orders
Permission1190=Approve (second approval) supplier orders
Permission1201=Get result of an export
Permission1202=Create/Modify an export
Permission1231=Read supplier invoices
@ -758,10 +767,10 @@ Permission1237=Export supplier orders and their details
Permission1251=Run mass imports of external data into database (data load)
Permission1321=Export customer invoices, attributes and payments
Permission1421=Export customer orders and attributes
Permission23001 = Read Scheduled task
Permission23002 = Create/update Scheduled task
Permission23003 = Delete Scheduled task
Permission23004 = Execute Scheduled task
Permission23001=Read Scheduled job
Permission23002=Create/update Scheduled job
Permission23003=Delete Scheduled job
Permission23004=Execute Scheduled job
Permission2401=Read actions (events or tasks) linked to his account
Permission2402=Create/modify actions (events or tasks) linked to his account
Permission2403=Delete actions (events or tasks) linked to his account
@ -1107,7 +1116,7 @@ ModuleCompanyCodeAquarium=Return an accountancy code built by:<br>%s followed by
ModuleCompanyCodePanicum=Return an empty accountancy code.
ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
UseNotifications=Use notifications
NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:<br>* per third parties contacts (customers or suppliers), one third party at time.<br>* or by setting a global target email address on module setup page.
NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:<br>* per third parties contacts (customers or suppliers), one contact at time.<br>* or by setting global target email addresses in module setup page.
ModelModules=Documents templates
DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
WatermarkOnDraft=Watermark on draft document
@ -1557,6 +1566,7 @@ SuppliersSetup=Supplier module setup
SuppliersCommandModel=Complete template of supplier order (logo...)
SuppliersInvoiceModel=Complete template of supplier invoice (logo...)
SuppliersInvoiceNumberingModel=Supplier invoices numbering models
IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
##### GeoIPMaxmind #####
GeoIPMaxmindSetup=GeoIP Maxmind module setup
PathToGeoIPMaxmindCountryDataFile=Putanja do datoteke koja sadrži Maxmind ip do prevoda za zemlju. <br> Primjeri: <br>/usr/local/share/GeoIP/GeoIP.dat<br>/usr/share/GeoIP/GeoIP.dat
@ -1601,3 +1611,8 @@ ExpenseReportsSetup=Setup of module Expense Reports
TemplatePDFExpenseReports=Document templates to generate expense report document
NoModueToManageStockDecrease=No module able to manage automatic stock decrease has been activated. Stock decrease will be done on manual input only.
NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification".
ListOfNotificationsPerContact=List of notifications per contact*
ListOfFixedNotifications=List of fixed notifications
GoOntoContactCardToAddMore=Go on the tab "Notifications" of a thirdparty contact to add or remove notifications for contacts/addresses
Threshold=Threshold

View File

@ -48,7 +48,10 @@ InvoiceValidatedInDolibarr=Faktura %s potvrđena
InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS
InvoiceBackToDraftInDolibarr=Faktura %s vraćena u status izrade
InvoiceDeleteDolibarr=Faktura %s obrisana
OrderValidatedInDolibarr= Narudžba %s potvrđena
OrderValidatedInDolibarr=Narudžba %s potvrđena
OrderDeliveredInDolibarr=Order %s classified delivered
OrderCanceledInDolibarr=Narudžba %s otkazana
OrderBilledInDolibarr=Order %s classified billed
OrderApprovedInDolibarr=Narudžba %s odobrena
OrderRefusedInDolibarr=Order %s refused
OrderBackToDraftInDolibarr=NArudžbu %s vratiti u status izrade
@ -91,3 +94,5 @@ WorkingTimeRange=Working time range
WorkingDaysRange=Working days range
AddEvent=Create event
MyAvailability=My availability
ActionType=Event type
DateActionBegin=Start event date

View File

@ -294,6 +294,8 @@ TotalOfTwoDiscountMustEqualsOriginal=Ukupno za dva nova popusta mora biti jednak
ConfirmRemoveDiscount=Jeste li sigurni da želite ukloniti ovaj popust?
RelatedBill=Povezana faktura
RelatedBills=Povezane fakture
RelatedCustomerInvoices=Related customer invoices
RelatedSupplierInvoices=Related supplier invoices
LatestRelatedBill=Latest related invoice
WarningBillExist=Warning, one or more invoice already exist

View File

@ -1,64 +1,62 @@
# Dolibarr language file - Source file is en_US - categories
Category=Kategorija
Categories=Kategorije
Rubrique=Kategorija
Rubriques=Kategorije
categories=kategorije
TheCategorie=Kategorija
NoCategoryYet=Nema kreirane kategorije ovog tipa
Rubrique=Tag/Category
Rubriques=Tags/Categories
categories=tags/categories
TheCategorie=The tag/category
NoCategoryYet=No tag/category of this type created
In=U
AddIn=Dodaj u
modify=izmijeniti
Classify=Svrstati
CategoriesArea=Područje za kategorije
ProductsCategoriesArea=Područje za kategorije proizvoda/usluga
SuppliersCategoriesArea=Područje za kategorije dobavljača
CustomersCategoriesArea=Područje za kategorije kupaca
ThirdPartyCategoriesArea=Third parties categories area
MembersCategoriesArea=Područje za kategorije članova
ContactsCategoriesArea=Područje za kategorije kontakata
MainCats=Glavne kategorije
CategoriesArea=Tags/Categories area
ProductsCategoriesArea=Products/Services tags/categories area
SuppliersCategoriesArea=Suppliers tags/categories area
CustomersCategoriesArea=Customers tags/categories area
ThirdPartyCategoriesArea=Third parties tags/categories area
MembersCategoriesArea=Members tags/categories area
ContactsCategoriesArea=Contacts tags/categories area
MainCats=Main tags/categories
SubCats=Podkategorije
CatStatistics=Statistika
CatList=Lista kategorija
AllCats=Sve kategorije
ViewCat=Pogledaj kategoriju
NewCat=Dodaj kategoriju
NewCategory=Nova kategorija
ModifCat=Izmijeni kategoriju
CatCreated=Kategorija kreirana
CreateCat=Kreiraj kategoriju
CreateThisCat=Kreiraj ovu kategoriju
CatList=List of tags/categories
AllCats=All tags/categories
ViewCat=View tag/category
NewCat=Add tag/category
NewCategory=New tag/category
ModifCat=Modify tag/category
CatCreated=Tag/category created
CreateCat=Create tag/category
CreateThisCat=Create this tag/category
ValidateFields=Potvrdi polja
NoSubCat=Nema podkategorije
SubCatOf=Podkategorija
FoundCats=Kategorije pronađene
FoundCatsForName=Kategorije pronađene za ime :
FoundSubCatsIn=Podkategorije pronađene u kategoriji
ErrSameCatSelected=Izbrali ste istu kategoriju nekoliko puta
ErrForgotCat=Zaboravili ste izabrati kategoriju
FoundCats=Found tags/categories
FoundCatsForName=Tags/categories found for the name :
FoundSubCatsIn=Subcategories found in the tag/category
ErrSameCatSelected=You selected the same tag/category several times
ErrForgotCat=You forgot to choose the tag/category
ErrForgotField=Zaboravili ste prijaviti polja
ErrCatAlreadyExists=Ime se već koristi
AddProductToCat=Dodaj ovaj proizvod u kategoriju?
ImpossibleAddCat=Nemoguće dodati kategoriju
ImpossibleAssociateCategory=Nemoguće povezati kategoriju sa
AddProductToCat=Add this product to a tag/category?
ImpossibleAddCat=Impossible to add the tag/category
ImpossibleAssociateCategory=Impossible to associate the tag/category to
WasAddedSuccessfully=<b>%s</b> je uspješno dodan/a.
ObjectAlreadyLinkedToCategory=Element je već povezan sa ovom kategorijom.
CategorySuccessfullyCreated=Ova kategorija %s je uspješno dodana.
ProductIsInCategories=Proizvod/usluga pripada slijedećim kategorijama
SupplierIsInCategories=Third party owns to following suppliers categories
CompanyIsInCustomersCategories=This third party owns to following customers/prospects categories
CompanyIsInSuppliersCategories=This third party owns to following suppliers categories
MemberIsInCategories=Ovaj član pripada sljedećim kategorijama članova
ContactIsInCategories=Ovaj kontakt pripada slijedećim kategorijama kontakata
ProductHasNoCategory=Ovaj prozvod/usluga nije dodan u neku od kategorija
SupplierHasNoCategory=Ovaj dobavljač nije dodan u neku od kategorija
CompanyHasNoCategory=Ova kopmanija nije dodana u neku od kategorija
MemberHasNoCategory=Ovaj član nije dodan u neku od kategorija
ContactHasNoCategory=Ovaj kontakt nije u nekoj od kategorija
ClassifyInCategory=Svrstaj u kategoriju
ObjectAlreadyLinkedToCategory=Element is already linked to this tag/category.
CategorySuccessfullyCreated=This tag/category %s has been added with success.
ProductIsInCategories=Product/service owns to following tags/categories
SupplierIsInCategories=Third party owns to following suppliers tags/categories
CompanyIsInCustomersCategories=This third party owns to following customers/prospects tags/categories
CompanyIsInSuppliersCategories=This third party owns to following suppliers tags/categories
MemberIsInCategories=This member owns to following members tags/categories
ContactIsInCategories=This contact owns to following contacts tags/categories
ProductHasNoCategory=This product/service is not in any tags/categories
SupplierHasNoCategory=This supplier is not in any tags/categories
CompanyHasNoCategory=This company is not in any tags/categories
MemberHasNoCategory=This member is not in any tags/categories
ContactHasNoCategory=This contact is not in any tags/categories
ClassifyInCategory=Classify in tag/category
NoneCategory=Ništa
NotCategorized=Bez kategorije
NotCategorized=Without tag/category
CategoryExistsAtSameLevel=Već postoji kategorija sa ovom referencom
ReturnInProduct=Nazad na karticu proizvoda/usluge
ReturnInSupplier=Nazad na karticu dobavljača
@ -66,22 +64,22 @@ ReturnInCompany=Back to customer/prospect card
ContentsVisibleByAll=Sadržaj će biti vidljiv svima
ContentsVisibleByAllShort=Sadržaj vidljiv svima
ContentsNotVisibleByAllShort=Sadržaj nije vidljiv svima
CategoriesTree=Categories tree
DeleteCategory=Obriši kategoriju
ConfirmDeleteCategory=Jeste li sigurni da želite obrisati ovu kategoriju?
RemoveFromCategory=Uklonite vezu sa kategorijom
RemoveFromCategoryConfirm=Jeste li sigurni da želite ukloniti vezu između transakcije i kategorije?
NoCategoriesDefined=Nema definisane kategorije
SuppliersCategoryShort=Kategorija dobavljača
CustomersCategoryShort=Kategorija kupaca
ProductsCategoryShort=Kategorija prozvoda
MembersCategoryShort=Kategorija članova
SuppliersCategoriesShort=Kategorije dobavljača
CustomersCategoriesShort=Kategorije kupaca
CategoriesTree=Tags/categories tree
DeleteCategory=Delete tag/category
ConfirmDeleteCategory=Are you sure you want to delete this tag/category ?
RemoveFromCategory=Remove link with tag/categorie
RemoveFromCategoryConfirm=Are you sure you want to remove link between the transaction and the tag/category ?
NoCategoriesDefined=No tag/category defined
SuppliersCategoryShort=Suppliers tags/category
CustomersCategoryShort=Customers tags/category
ProductsCategoryShort=Products tags/category
MembersCategoryShort=Members tags/category
SuppliersCategoriesShort=Suppliers tags/categories
CustomersCategoriesShort=Customers tags/categories
CustomersProspectsCategoriesShort=Custo./Prosp. categories
ProductsCategoriesShort=Kategorije proizvoda
MembersCategoriesShort=Kategorije članova
ContactCategoriesShort=Kategorije kontakata
ProductsCategoriesShort=Products tags/categories
MembersCategoriesShort=Members tags/categories
ContactCategoriesShort=Contacts tags/categories
ThisCategoryHasNoProduct=Ova kategorija ne sadrži nijedan proizvod.
ThisCategoryHasNoSupplier=Ova kategorija ne sadrži nijednog dobavljača.
ThisCategoryHasNoCustomer=Ova kategorija ne sadrži nijednog kupca.
@ -90,23 +88,23 @@ ThisCategoryHasNoContact=Ova kategorija ne sadrži nijednog kontakta.
AssignedToCustomer=Dodijeljeno nekom kupcu
AssignedToTheCustomer=Dodijeljeno ovom kupcu
InternalCategory=Interna kategorija
CategoryContents=Sadržaj kategorije
CategId=ID kategorije
CatSupList=Lista kategorija za dobavljače
CatCusList=List of customer/prospect categories
CatProdList=Lista kategorija za proizvode
CatMemberList=Lista kategorija za članove
CatContactList=Lista kategorija kontakata i kontakata
CatSupLinks=Veze između dobavljača i kategorija
CatCusLinks=Links between customers/prospects and categories
CatProdLinks=Veze između proizvoda/usluga i kategorija
CatMemberLinks=Veze između članova i kategorija
DeleteFromCat=Ukloni iz kategorije
CategoryContents=Tag/category contents
CategId=Tag/category id
CatSupList=List of supplier tags/categories
CatCusList=List of customer/prospect tags/categories
CatProdList=List of products tags/categories
CatMemberList=List of members tags/categories
CatContactList=List of contact tags/categories and contact
CatSupLinks=Links between suppliers and tags/categories
CatCusLinks=Links between customers/prospects and tags/categories
CatProdLinks=Links between products/services and tags/categories
CatMemberLinks=Links between members and tags/categories
DeleteFromCat=Remove from tags/category
DeletePicture=Picture delete
ConfirmDeletePicture=Confirm picture deletion?
ExtraFieldsCategories=Complementary attributes
CategoriesSetup=Categories setup
CategorieRecursiv=Link with parent category automatically
CategoriesSetup=Tags/categories setup
CategorieRecursiv=Link with parent tag/category automatically
CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory
AddProductServiceIntoCategory=Add the following product/service
ShowCategory=Show category
ShowCategory=Show tag/category

View File

@ -26,15 +26,15 @@ CronLastOutput=Izvještaj o zadnjem pokretanju
CronLastResult=Šifra rezultat zadnjeg pokretanja
CronListOfCronJobs=Lista redovnih poslova
CronCommand=Komanda
CronList=Jobs list
CronDelete= Obriši kron posao
CronConfirmDelete= Are you sure you want to delete this cron job ?
CronExecute=Launch job
CronConfirmExecute= Jeste li sigurni sada da izvrši ovaj posao sada
CronInfo= Poslovi omogućavaju da se izvrše zadatci koji su planirani
CronWaitingJobs=Wainting jobs
CronList=Scheduled job
CronDelete=Delete scheduled jobs
CronConfirmDelete=Are you sure you want to delete this scheduled jobs ?
CronExecute=Launch scheduled jobs
CronConfirmExecute=Are you sure to execute this scheduled jobs now ?
CronInfo=Scheduled job module allow to execute job that have been planned
CronWaitingJobs=Waiting jobs
CronTask=Job
CronNone= Ništa
CronNone=Ništa
CronDtStart=Datum početka
CronDtEnd=End date
CronDtNextLaunch=Sljedeće izvršenje
@ -75,6 +75,7 @@ CronObjectHelp=The object name to load. <BR> For exemple to fetch method of Doli
CronMethodHelp=The object method to launch. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is <i>fecth</i>
CronArgsHelp=The method arguments. <BR> For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be <i>0, ProductRef</i>
CronCommandHelp=Sistemska komanda za izvršenje
CronCreateJob=Create new Scheduled Job
# Info
CronInfoPage=Inromacije
# Common

View File

@ -6,6 +6,8 @@ Donor=Donator
Donors=Donatori
AddDonation=Create a donation
NewDonation=Nova donacija
DeleteADonation=Delete a donation
ConfirmDeleteADonation=Are you sure you want to delete this donation ?
ShowDonation=Prikaži donaciju
DonationPromise=Obećanje za poklon
PromisesNotValid=Nepotvrđena obećanja
@ -21,6 +23,8 @@ DonationStatusPaid=Primljena donacija
DonationStatusPromiseNotValidatedShort=Nacrt
DonationStatusPromiseValidatedShort=Potvrđena donacija
DonationStatusPaidShort=Primljena donacija
DonationTitle=Donation receipt
DonationDatePayment=Payment date
ValidPromess=Potvrdi obećanje
DonationReceipt=Priznanica za donaciju
BuildDonationReceipt=Napravi priznanicu
@ -36,3 +40,4 @@ FrenchOptions=Options for France
DONATION_ART200=Show article 200 from CGI if you are concerned
DONATION_ART238=Show article 238 from CGI if you are concerned
DONATION_ART885=Show article 885 from CGI if you are concerned
DonationPayment=Donation payment

View File

@ -161,6 +161,12 @@ ErrorPriceExpressionUnknown=Unknown error '%s'
ErrorSrcAndTargetWarehouseMustDiffers=Source and target warehouses must differs
ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without batch/serial information, on a product requiring batch/serial information
ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified before being allowed to do this action
ErrorGlobalVariableUpdater0=HTTP request failed with error '%s'
ErrorGlobalVariableUpdater1=Invalid JSON format '%s'
ErrorGlobalVariableUpdater2=Missing parameter '%s'
ErrorGlobalVariableUpdater3=The requested data was not found in result
ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
ErrorGlobalVariableUpdater5=No global variable selected
# Warnings
WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined

View File

@ -0,0 +1,53 @@
# Dolibarr language file - Source file is en_US - loan
Loan=Loan
Loans=Loans
NewLoan=New Loan
ShowLoan=Show Loan
PaymentLoan=Loan payment
ShowLoanPayment=Show Loan Payment
Capital=Capital
Insurance=Insurance
Interest=Interest
Nbterms=Number of terms
LoanAccountancyCapitalCode=Accountancy code capital
LoanAccountancyInsuranceCode=Accountancy code insurance
LoanAccountancyInterestCode=Accountancy code interest
LoanPayment=Loan payment
ConfirmDeleteLoan=Confirm deleting this loan
LoanDeleted=Loan Deleted Successfully
ConfirmPayLoan=Confirm classify paid this loan
LoanPaid=Loan Paid
ErrorLoanCapital=Loan amount has to be numeric and greater than zero.
ErrorLoanLength=Loan length has to be numeric and greater than zero.
ErrorLoanInterest=Annual interest has to be numeric and greater than zero.
# Calc
LoanCalc=Bank Loans Calculator
PurchaseFinanceInfo=Purchase & Financing Information
SalePriceOfAsset=Sale Price of Asset
PercentageDown=Percentage Down
LengthOfMortgage=Length of Mortgage
AnnualInterestRate=Annual Interest Rate
ExplainCalculations=Explain Calculations
ShowMeCalculationsAndAmortization=Show me the calculations and amortization
MortgagePaymentInformation=Mortgage Payment Information
DownPayment=Down Payment
DownPaymentDesc=The <b>down payment</b> = The price of the home multiplied by the percentage down divided by 100 (for 5% down becomes 5/100 or 0.05)
InterestRateDesc=The <b>interest rate</b> = The annual interest percentage divided by 100
MonthlyFactorDesc=The <b>monthly factor</b> = The result of the following formula
MonthlyInterestRateDesc=The <b>monthly interest rate</b> = The annual interest rate divided by 12 (for the 12 months in a year)
MonthTermDesc=The <b>month term</b> of the loan in months = The number of years you've taken the loan out for times 12
MonthlyPaymentDesc=The montly payment is figured out using the following formula
AmortizationPaymentDesc=The <a href="#amortization">amortization</a> breaks down how much of your monthly payment goes towards the bank's interest, and how much goes into paying off the principal of your loan.
AmountFinanced=Amount Financed
AmortizationMonthlyPaymentOverYears=Amortization For Monthly Payment: <b>%s</b> over %s years
Totalsforyear=Totals for year
MonthlyPayment=Monthly Payment
LoanCalcDesc=This <b>mortgage calculator</b> can be used to figure out monthly payments of a home mortgage loan, based on the home's sale price, the term of the loan desired, buyer's down payment percentage, and the loan's interest rate.<br> This calculator factors in PMI (Private Mortgage Insurance) for loans where less than 20% is put as a down payment. Also taken into consideration are the town property taxes, and their effect on the total monthly mortgage payment.<br>
GoToInterest=%s will go towards INTEREST
GoToPrincipal=%s will go towards PRINCIPAL
YouWillSpend=You will spend %s on your house in year %s
# Admin
ConfigLoan=Configuration of the module loan
LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accountancy code capital by default
LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accountancy code interest by default
LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accountancy code insurance by default

View File

@ -139,3 +139,5 @@ ListOfNotificationsDone=Lista svih notifikacija o slanju emaila
MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing.
MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter <strong>'%s'</strong> to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature.
MailSendSetupIs3=If you have any questions on how to setup your SMTP server, you can ask to %s.
YouCanAlsoUseSupervisorKeyword=You can also add the keyword <strong>__SUPERVISOREMAIL__</strong> to have email being sent to the supervisor of user (works only if an email is defined for this supervisor)
NbOfTargetedContacts=Current number of targeted contact emails

View File

@ -352,6 +352,7 @@ Status=Status
Favorite=Favorite
ShortInfo=Info.
Ref=Ref.
ExternalRef=Ref. extern
RefSupplier=Ref. supplier
RefPayment=Ref. payment
CommercialProposalsShort=Poslovni prijedlozi
@ -394,8 +395,8 @@ Available=Available
NotYetAvailable=Not yet available
NotAvailable=Not available
Popularity=Popularity
Categories=Categories
Category=Category
Categories=Tags/categories
Category=Tag/category
By=By
From=From
to=to
@ -694,6 +695,7 @@ AddBox=Add box
SelectElementAndClickRefresh=Select an element and click Refresh
PrintFile=Print File %s
ShowTransaction=Show transaction
GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
# Week day
Monday=Monday
Tuesday=Tuesday

View File

@ -64,7 +64,8 @@ ShipProduct=Ship product
Discount=Discount
CreateOrder=Create Order
RefuseOrder=Refuse order
ApproveOrder=Accept order
ApproveOrder=Approve order
Approve2Order=Approve order (second level)
ValidateOrder=Validate order
UnvalidateOrder=Unvalidate order
DeleteOrder=Delete order
@ -102,6 +103,8 @@ ClassifyBilled=Classify billed
ComptaCard=Accountancy card
DraftOrders=Draft orders
RelatedOrders=Related orders
RelatedCustomerOrders=Related customer orders
RelatedSupplierOrders=Related supplier orders
OnProcessOrders=In process orders
RefOrder=Ref. order
RefCustomerOrder=Ref. customer order
@ -118,6 +121,7 @@ PaymentOrderRef=Payment of order %s
CloneOrder=Clone order
ConfirmCloneOrder=Are you sure you want to clone this order <b>%s</b> ?
DispatchSupplierOrder=Receiving supplier order %s
FirstApprovalAlreadyDone=First approval already done
##### Types de contacts #####
TypeContact_commande_internal_SALESREPFOLL=Representative following-up customer order
TypeContact_commande_internal_SHIPPING=Representative following-up shipping

View File

@ -12,6 +12,7 @@ Notify_FICHINTER_VALIDATE=Intervention validated
Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
Notify_BILL_VALIDATE=Customer invoice validated
Notify_BILL_UNVALIDATE=Customer invoice unvalidated
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
Notify_ORDER_VALIDATE=Customer order validated
@ -28,7 +29,7 @@ Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
Notify_BILL_PAYED=Customer invoice payed
Notify_BILL_CANCEL=Customer invoice canceled
Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order validated
Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
@ -47,7 +48,7 @@ Notify_PROJECT_CREATE=Project creation
Notify_TASK_CREATE=Task created
Notify_TASK_MODIFY=Task modified
Notify_TASK_DELETE=Task deleted
SeeModuleSetup=See module setup
SeeModuleSetup=See setup of module %s
NbOfAttachedFiles=Number of attached files/documents
TotalSizeOfAttachedFiles=Total size of attached files/documents
MaxSize=Maximum size
@ -170,6 +171,7 @@ EMailTextInvoiceValidated=The invoice %s has been validated.
EMailTextProposalValidated=The proposal %s has been validated.
EMailTextOrderValidated=The order %s has been validated.
EMailTextOrderApproved=The order %s has been approved.
EMailTextOrderValidatedBy=The order %s has been recorded by %s.
EMailTextOrderApprovedBy=The order %s has been approved by %s.
EMailTextOrderRefused=The order %s has been refused.
EMailTextOrderRefusedBy=The order %s has been refused by %s.

View File

@ -245,12 +245,25 @@ MinimumRecommendedPrice=Minimum recommended price is : %s
PriceExpressionEditor=Price expression editor
PriceExpressionSelected=Selected price expression
PriceExpressionEditorHelp1="price = 2 + 2" or "2 + 2" for setting the price. Use ; to separate expressions
PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#options_myextrafieldkey#</b>
PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#extrafield_myextrafieldkey#</b> and global variables with <b>#global_mycode#</b>
PriceExpressionEditorHelp3=In both product/service and supplier prices there are these variables available:<br><b>#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min#</b>
PriceExpressionEditorHelp4=In product/service price only: <b>#supplier_min_price#</b><br>In supplier prices only: <b>#supplier_quantity# and #supplier_tva_tx#</b>
PriceExpressionEditorHelp5=Available global values:
PriceMode=Price mode
PriceNumeric=Number
DefaultPrice=Default price
ComposedProductIncDecStock=Increase/Decrease stock on parent change
ComposedProduct=Sub-product
MinSupplierPrice=Minimun supplier price
MinSupplierPrice=Minimum supplier price
DynamicPriceConfiguration=Dynamic price configuration
GlobalVariables=Global variables
GlobalVariableUpdaters=Global variable updaters
GlobalVariableUpdaterType0=JSON data
GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value,
GlobalVariableUpdaterHelpFormat0=format is {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"}
GlobalVariableUpdaterType1=WebService data
GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method
GlobalVariableUpdaterHelpFormat1=format is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data, "to": "send"}}
UpdateInterval=Update interval (minutes)
LastUpdated=Last updated
CorrectlyUpdated=Correctly updated

View File

@ -72,6 +72,7 @@ ListSupplierInvoicesAssociatedProject=Lista faktura dobavljača u vezi s projekt
ListContractAssociatedProject=Lista ugovora u vezi s projektom
ListFichinterAssociatedProject=Lista intervencija u vezi s projektom
ListExpenseReportsAssociatedProject=List of expense reports associated with the project
ListDonationsAssociatedProject=List of donations associated with the project
ListActionsAssociatedProject=Lista događaja u vezi s projektom
ActivityOnProjectThisWeek=Aktivnost na projektu ove sedmice
ActivityOnProjectThisMonth=Aktivnost na projektu ovog mjeseca

View File

@ -2,6 +2,7 @@
RefSending=Referenca pošiljke
Sending=Pošiljka
Sendings=Pošiljke
AllSendings=All Shipments
Shipment=Pošiljka
Shipments=Pošiljke
ShowSending=Show Sending

View File

@ -43,3 +43,4 @@ ListOfSupplierOrders=List of supplier orders
MenuOrdersSupplierToBill=Supplier orders to invoice
NbDaysToDelivery=Delivery delay in days
DescNbDaysToDelivery=The biggest delay is display among order product list
UseDoubleApproval=Use double approval (the second approval will be any user of a defined user group)

View File

@ -389,6 +389,7 @@ ExtrafieldSeparator=Separador
ExtrafieldCheckBox=Casella de verificació
ExtrafieldRadio=Botó de selecció excloent
ExtrafieldCheckBoxFromList= Checkbox from table
ExtrafieldLink=Link to an object
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 example : <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>...
@ -494,6 +495,8 @@ Module500Name=Special expenses (tax, social contributions, dividends)
Module500Desc=Management of special expenses like taxes, social contribution, dividends and salaries
Module510Name=Salaries
Module510Desc=Management of employees salaries and payments
Module520Name=Loan
Module520Desc=Management of loans
Module600Name=Notificacions
Module600Desc=Send EMail notifications on some Dolibarr business events to third-party contacts (setup defined on each thirdparty)
Module700Name=Donacions
@ -508,14 +511,14 @@ Module1400Name=Comptabilitat experta
Module1400Desc=Gestió experta de la comptabilitat (doble partida)
Module1520Name=Document Generation
Module1520Desc=Mass mail document generation
Module1780Name=Categories
Module1780Desc=Gestió de categories (productes, proveïdors i clients)
Module1780Name=Tags/Categories
Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members)
Module2000Name=Editor WYSIWYG
Module2000Desc=Permet l'edició de certes zones de text mitjançant un editor avançat
Module2200Name=Dynamic Prices
Module2200Desc=Enable the usage of math expressions for prices
Module2300Name=Cron
Module2300Desc=Gestor de tasques programades
Module2300Desc=Scheduled job management
Module2400Name=Agenda
Module2400Desc=Gestió de l'agenda i de les accions
Module2500Name=Gestió Electrònica de Documents
@ -714,6 +717,11 @@ Permission510=Read Salaries
Permission512=Create/modify salaries
Permission514=Delete salaries
Permission517=Export salaries
Permission520=Read Loans
Permission522=Create/modify loans
Permission524=Delete loans
Permission525=Access loan calculator
Permission527=Export loans
Permission531=Consultar serveis
Permission532=Crear/modificar serveis
Permission534=Eliminar serveis
@ -746,6 +754,7 @@ Permission1185=Aprovar comandes a proveïdors
Permission1186=Enviar comandes a proveïdors
Permission1187=Rebre comandes a proveïdors
Permission1188=Tancar comandes a proveïdors
Permission1190=Approve (second approval) supplier orders
Permission1201=Obtenir resultat d'una exportació
Permission1202=Crear/modificar exportacions
Permission1231=Consultar factures de proveïdors
@ -758,10 +767,10 @@ Permission1237=Exporta comandes de proveïdors juntament amb els seus detalls
Permission1251=Llançar les importacions en massa a la base de dades (càrrega de dades)
Permission1321=Exporta factures a clients, atributs i cobraments
Permission1421=Exporta comandes de clients i atributs
Permission23001 = Veure les tasques programades
Permission23002 = Crear/Modificar les tasques programades
Permission23003 = Eliminar les tasques programades
Permission23004 = Executar les tasques programades
Permission23001=Read Scheduled job
Permission23002=Create/update Scheduled job
Permission23003=Delete Scheduled job
Permission23004=Execute Scheduled job
Permission2401=Llegir accions (esdeveniments o tasques) vinculades al seu compte
Permission2402=Crear/modificar accions (esdeveniments o tasques) vinculades al seu compte
Permission2403=Modificar accions (esdeveniments o tasques) vinculades al seu compte
@ -1107,7 +1116,7 @@ ModuleCompanyCodeAquarium=Retorna un codi comptable compost de<br>%s seguit del
ModuleCompanyCodePanicum=Retorna un codi comptable buit.
ModuleCompanyCodeDigitaria=Retorna un codi comptable compost seguint el codi de tercer. El codi està format per caràcter 'C' en primera posició seguit dels 5 primers caràcters del codi tercer.
UseNotifications=Utilitza notificacions
NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:<br>* per third parties contacts (customers or suppliers), one third party at time.<br>* or by setting a global target email address on module setup page.
NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:<br>* per third parties contacts (customers or suppliers), one contact at time.<br>* or by setting global target email addresses in module setup page.
ModelModules=Models de documents
DocumentModelOdt=Generació des dels documents amb format OpenDocument (Arxiu .ODT OpenOffice, KOffice, TextEdit,...)
WatermarkOnDraft=Marca d'aigua en els documents esborrany
@ -1557,6 +1566,7 @@ SuppliersSetup=Configuració del mòdul Proveïdors
SuppliersCommandModel=Model de comandes a proveïdors complet (logo...)
SuppliersInvoiceModel=Model de factures de proveïdors complet (logo...)
SuppliersInvoiceNumberingModel=Models de numeració de factures de proveïdor
IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
##### GeoIPMaxmind #####
GeoIPMaxmindSetup=Configuració del mòdul GeoIP Maxmind
PathToGeoIPMaxmindCountryDataFile=Ruta de l'arxiu Maxmind que conté les conversions IP-> País.<br>Exemple: /usr/local/share/GeoIP/GeoIP.dat
@ -1601,3 +1611,8 @@ ExpenseReportsSetup=Setup of module Expense Reports
TemplatePDFExpenseReports=Document templates to generate expense report document
NoModueToManageStockDecrease=No module able to manage automatic stock decrease has been activated. Stock decrease will be done on manual input only.
NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification".
ListOfNotificationsPerContact=List of notifications per contact*
ListOfFixedNotifications=List of fixed notifications
GoOntoContactCardToAddMore=Go on the tab "Notifications" of a thirdparty contact to add or remove notifications for contacts/addresses
Threshold=Threshold

View File

@ -48,7 +48,10 @@ InvoiceValidatedInDolibarr=Factura %s validada
InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS
InvoiceBackToDraftInDolibarr=Factura %s tornada a borrador
InvoiceDeleteDolibarr=Factura %s eliminada
OrderValidatedInDolibarr= Comanda %s validada
OrderValidatedInDolibarr=Comanda %s validada
OrderDeliveredInDolibarr=Order %s classified delivered
OrderCanceledInDolibarr=Commanda %s anul·lada
OrderBilledInDolibarr=Order %s classified billed
OrderApprovedInDolibarr=Comanda %s aprovada
OrderRefusedInDolibarr=Order %s refused
OrderBackToDraftInDolibarr=Comanda %s tordada a borrador
@ -91,3 +94,5 @@ WorkingTimeRange=Working time range
WorkingDaysRange=Working days range
AddEvent=Create event
MyAvailability=My availability
ActionType=Event type
DateActionBegin=Start event date

View File

@ -294,6 +294,8 @@ TotalOfTwoDiscountMustEqualsOriginal=La suma de l'import dels 2 nous descomptes
ConfirmRemoveDiscount=Esteu segur de voler eliminar aquest descompte?
RelatedBill=Factura associada
RelatedBills=Factures associades
RelatedCustomerInvoices=Related customer invoices
RelatedSupplierInvoices=Related supplier invoices
LatestRelatedBill=Latest related invoice
WarningBillExist=Warning, one or more invoice already exist

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