Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into mko559

This commit is contained in:
Maxime Kohlhaas 2012-10-30 08:06:29 +01:00
commit fa46923b3e
39 changed files with 3129 additions and 3104 deletions

View File

@ -55,6 +55,7 @@ For users:
- New: [ task #104 ] Can create an invoice from several orders
- New: Update libs/tools/logo for DoliWamp (now use PHP 5.3).
- New: Added ODT Template tag {object_total_discount}
- New: Add new import options: Third parties bank details, warehouses and stocks, categories and suppliers prices
New experimental modules:
- New: Add margin management module.

View File

@ -1,6 +1,6 @@
INSTALL
-------
English: See file README.
English: See README file.
French: Voir fichier README-FR.

View File

@ -14,7 +14,7 @@ Summary(es): Software ERP y CRM para pequeñas y medianas empresas, asociaciones
Summary(fr): Logiciel ERP & CRM de gestion de PME/PMI, auto-entrepreneurs ou associations
Summary(it): Programmo gestionale per piccole imprese, fondazioni e liberi professionisti
License: GPLv2+
License: GPL-2+
#Packager: Laurent Destailleur (Eldy) <eldy@users.sourceforge.net>
Vendor: Dolibarr dev team

View File

@ -18,7 +18,7 @@ Summary(es): Software ERP y CRM para pequeñas y medianas empresas, asociaciones
Summary(fr): Logiciel ERP & CRM de gestion de PME/PMI, auto-entrepreneurs ou associations
Summary(it): Programmo gestionale per piccole imprese, fondazioni e liberi professionisti
License: GPLv2+
License: GPL-2+
#Packager: Laurent Destailleur (Eldy) <eldy@users.sourceforge.net>
Vendor: Dolibarr dev team
@ -119,11 +119,15 @@ cui hai bisogno ed essere facile da usare.
%install
%if 0%{?sles_version}
%{__rm} -rf $RPM_BUILD_ROOT
%{__mkdir} $RPM_BUILD_ROOT
%{__mkdir} $RPM_BUILD_ROOT%{_sysconfdir}
%{__mkdir} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
%else
%{__rm} -rf $RPM_BUILD_ROOT
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
%endif
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
%{__install} -m 644 build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php
%{__install} -m 644 build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf
%{__install} -m 644 build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr
@ -145,7 +149,7 @@ cui hai bisogno ed essere facile da usare.
%{__install} -m 644 doc/images/dolibarr_48x48.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png
%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications
%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} || 0%{?mdkversion} || 0%{?suse_version}
#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop
%endif
%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop

View File

@ -14,7 +14,7 @@ Summary(es): Software ERP y CRM para pequeñas y medianas empresas, asociaciones
Summary(fr): Logiciel ERP & CRM de gestion de PME/PMI, auto-entrepreneurs ou associations
Summary(it): Programmo gestionale per piccole imprese, fondazioni e liberi professionisti
License: GPLv2+
License: GPL-2+
#Packager: Laurent Destailleur (Eldy) <eldy@users.sourceforge.net>
Vendor: Dolibarr dev team

View File

@ -14,7 +14,7 @@ Summary(es): Software ERP y CRM para pequeñas y medianas empresas, asociaciones
Summary(fr): Logiciel ERP & CRM de gestion de PME/PMI, auto-entrepreneurs ou associations
Summary(it): Programmo gestionale per piccole imprese, fondazioni e liberi professionisti
License: GPLv2+
License: GPL-2+
#Packager: Laurent Destailleur (Eldy) <eldy@users.sourceforge.net>
Vendor: Dolibarr dev team

View File

@ -595,7 +595,7 @@ if ($user->rights->adherent->creer && $action == 'confirm_valid' && $confirm ==
$result=$object->send_an_email($adht->getMailOnValid(),$conf->global->ADHERENT_MAIL_VALID_SUBJECT,array(),array(),array(),"","",0,2);
if ($result < 0)
{
$error++;
$error++;
$errmsg.=$object->error;
}
}

View File

@ -66,7 +66,7 @@ if ($action == 'setvalue' && $user->admin)
if (! dolibarr_set_const($db, 'LDAP_FIELD_FAX',GETPOST("fieldfax"),'chaine',0,'',$conf->entity)) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_DESCRIPTION',GETPOST("fielddescription"),'chaine',0,'',$conf->entity)) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_SID',GETPOST("fieldsid"),'chaine',0,'',$conf->entity)) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_TITLE',GETPOST("fieldtitle"),'chaine',0,'',$conf->entity)) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_TITLE',GETPOST("fieldtitle"),'chaine',0,'',$conf->entity)) $error++;
// This one must be after the others
$valkey='';
@ -358,37 +358,37 @@ if (function_exists("ldap_connect"))
}
}
if ($action == 'testsearchuser')
{
// Creation objet
$object=new User($db);
$object->initAsSpecimen();
// TODO Mutualize code following with other ldap_xxxx.php pages
// Test synchro
$ldap=new Ldap();
$result=$ldap->connect_bind();
if ($result > 0)
{
$required_fields = array(
if ($action == 'testsearchuser')
{
// Creation objet
$object=new User($db);
$object->initAsSpecimen();
// TODO Mutualize code following with other ldap_xxxx.php pages
// Test synchro
$ldap=new Ldap();
$result=$ldap->connect_bind();
if ($result > 0)
{
$required_fields = array(
$conf->global->LDAP_KEY_USERS,
$conf->global->LDAP_FIELD_FULLNAME,
$conf->global->LDAP_FIELD_NAME,
$conf->global->LDAP_FIELD_FIRSTNAME,
$conf->global->LDAP_FIELD_LOGIN,
$conf->global->LDAP_FIELD_LOGIN_SAMBA,
$conf->global->LDAP_FIELD_PASSWORD,
$conf->global->LDAP_FIELD_PASSWORD_CRYPTED,
$conf->global->LDAP_FIELD_PHONE,
$conf->global->LDAP_FIELD_FAX,
$conf->global->LDAP_FIELD_MOBILE,
$conf->global->LDAP_FIELD_NAME,
$conf->global->LDAP_FIELD_FIRSTNAME,
$conf->global->LDAP_FIELD_LOGIN,
$conf->global->LDAP_FIELD_LOGIN_SAMBA,
$conf->global->LDAP_FIELD_PASSWORD,
$conf->global->LDAP_FIELD_PASSWORD_CRYPTED,
$conf->global->LDAP_FIELD_PHONE,
$conf->global->LDAP_FIELD_FAX,
$conf->global->LDAP_FIELD_MOBILE,
$conf->global->LDAP_FIELD_MAIL,
$conf->global->LDAP_FIELD_TITLE,
$conf->global->LDAP_FIELD_TITLE,
$conf->global->LDAP_FIELD_DESCRIPTION,
$conf->global->LDAP_FIELD_SID
);
);
// Remove from required_fields all entries not configured in LDAP (empty) and duplicated
$required_fields=array_unique(array_values(array_filter($required_fields, "dol_validElement")));
@ -419,24 +419,24 @@ if (function_exists("ldap_connect"))
{
$mesg='<div class="error">'.$ldap->error.'</div>';
}
print "<br>\n";
print "<br>\n";
print "LDAP search for user:<br>\n";
print "search: *<br>\n";
print "userDN: ".$conf->global->LDAP_USER_DN."<br>\n";
print "useridentifier: ".$conf->global->LDAP_KEY_USERS."<br>\n";
print "required_fields: ".join(',',$required_fields)."<br>\n";
print "=> ".count($liste)." records<br>\n";
print "\n<br>";
}
else
{
print img_picto('','error').' ';
print '<font class="error">'.$langs->trans("LDAPSynchroKO");
print ': '.$ldap->error;
print '</font><br>';
print $langs->trans("ErrorLDAPMakeManualTest",$conf->ldap->dir_temp).'<br>';
}
print "=> ".count($liste)." records<br>\n";
print "\n<br>";
}
else
{
print img_picto('','error').' ';
print '<font class="error">'.$langs->trans("LDAPSynchroKO");
print ': '.$ldap->error;
print '</font><br>';
print $langs->trans("ErrorLDAPMakeManualTest",$conf->ldap->dir_temp).'<br>';
}
}
}

View File

@ -35,7 +35,7 @@ $url=GETPOST("url","alpha");
$target=GETPOST("target","alpha");
$userid=GETPOST("userid","int");
$position=GETPOST("position","int");
$backtopage=GETPOST('backtopage','alpha');
$backtopage=GETPOST('backtopage','alpha');
/*

View File

@ -173,7 +173,7 @@ if ($resql)
print '<td align="right" nowrap="nowrap">';
if ($user->rights->bookmark->creer)
{
print "<a href=\"".DOL_URL_ROOT."/bookmarks/fiche.php?action=edit&id=".$obj->bid."&backtopage=".urlencode($_SERVER["PHP_SELF"])."\">".img_edit()."</a> ";
print "<a href=\"".DOL_URL_ROOT."/bookmarks/fiche.php?action=edit&id=".$obj->bid."&backtopage=".urlencode($_SERVER["PHP_SELF"])."\">".img_edit()."</a> ";
}
if ($user->rights->bookmark->supprimer)
{

View File

@ -3196,7 +3196,7 @@ class FactureLigne
$this->rowid = $objp->rowid;
$this->fk_facture = $objp->fk_facture;
$this->fk_parent_line = $objp->fk_parent_line;
$this->label = $objp->label;
$this->label = $objp->custom_label;
$this->desc = $objp->description;
$this->qty = $objp->qty;
$this->subprice = $objp->subprice;

View File

@ -137,7 +137,7 @@ if (! dol_is_dir($upload_dir))
}
print '<!-- TYPE='.$type.' -->'."\n";
print '<!-- Page called with mode='.(isset($mode)?$mode:'').' url='.$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"].' -->'."\n";
print '<!-- Page called with mode='.(isset($mode)?$mode:'').' type='.$type.' module='.$module.' url='.$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"].' -->'."\n";
$param='';
$param.=($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:'');
@ -176,10 +176,8 @@ if ($type == 'directory')
$relativepath='facture';
$upload_dir = $conf->fournisseur->dir_output.'/'.$relativepath;
$filearray=dol_dir_list($upload_dir,"files",1,'',array('^SPECIMEN\.pdf$','^\.','\.meta$','^temp$','^CVS$','^thumbs$'),$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
$param.='&module='.$module;
$textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound")));
$formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname,$url);
}
else if ($module == 'propal') // Auto area for customers orders

View File

@ -74,6 +74,7 @@ if ($modulepart == 'ecm')
top_httphead();
//print '<!-- selecteddir = '.$selecteddir.', openeddir = '.$openeddir.', modulepart='.$modulepart.' -->'."\n";
$userstatic=new User($db);
$form=new Form($db);
$ecmdirstatic = new EcmDirectory($db);

View File

@ -40,8 +40,8 @@ class ExtraFields
var $attribute_size;
// Array to store if attribute is unique or not
var $attribute_unique;
// Array to store if attribute is required or not
var $attribute_required;
// Array to store if attribute is required or not
var $attribute_required;
var $error;
var $errno;

View File

@ -1640,10 +1640,10 @@ class Form
// Exemple of var_dump $outjson
// array(1) {[0]=>array(6) {[key"]=>string(1) "2" ["value"]=>string(3) "ppp"
// ["label"]=>string(76) "ppp (<strong>f</strong>ff2) - ppp - 20,00 Euros/1unité (20,00 Euros/unité)"
// ["qty"]=>string(1) "1" ["discount"]=>string(1) "0" ["disabled"]=>bool(false)
// ["qty"]=>string(1) "1" ["discount"]=>string(1) "0" ["disabled"]=>bool(false)
//}
//var_dump($outval); var_dump(utf8_check($outval)); var_dump(json_encode($outval));
//$outval=array('label'=>'ppp (<strong>f</strong>ff2) - ppp - 20,00 Euros/ Unité (20,00 Euros/unité)');
//$outval=array('label'=>'ppp (<strong>f</strong>ff2) - ppp - 20,00 Euros/ Unité (20,00 Euros/unité)');
//var_dump($outval); var_dump(utf8_check($outval)); var_dump(json_encode($outval));
$i++;
@ -2408,8 +2408,8 @@ class Form
$autoOpen=false;
$dialogconfirm.='-'.$button;
}
$pageyes=(preg_match('/\?/',$page)?'&':'?').'action='.$action.'&confirm=yes';
$pageno=($useajax == 2 ? (preg_match('/\?/',$page)?'&':'?').'confirm=no':'');
$pageyes=$page.(preg_match('/\?/',$page)?'&':'?').'action='.$action.'&confirm=yes';
$pageno=($useajax == 2 ? $page.(preg_match('/\?/',$page)?'&':'?').'confirm=no':'');
// Add input fields into list of fields to read during submit (inputok and inputko)
if (is_array($formquestion))
{

View File

@ -789,7 +789,7 @@ class FormFile
$var=true;
foreach($filearray as $key => $file)
{
if (!is_dir($file['name'])
if (!is_dir($file['name'])
&& $file['name'] != '.'
&& $file['name'] != '..'
&& $file['name'] != 'CVS'
@ -821,10 +821,10 @@ class FormFile
}
else
{
//print 'Fetch '.$idorref.'<br>';
//print 'Fetch '.$id." - ".$ref.'<br>';
$result=$object_instance->fetch($id,$ref);
if ($result > 0) { $found=1; $this->cache_objects[$modulepart.'_'.$id.'_'.$ref]=dol_clone($object_instance); } // Save object into a cache
if ($result == 0) { $found=1; $this->cache_objects[$modulepart.'_'.$id.'_'.$ref]='notfound'; }
if ($result == 0) { $found=1; $this->cache_objects[$modulepart.'_'.$id.'_'.$ref]='notfound'; unset($filearray[$key]); }
}
if (! $found > 0 || ! is_object($this->cache_objects[$modulepart.'_'.$id.'_'.$ref])) continue; // We do not show orphelins files
@ -856,6 +856,7 @@ class FormFile
print "</td></tr>\n";
}
}
if (count($filearray) == 0)
{
print '<tr '.$bc[$var].'><td colspan="4">';

View File

@ -1011,7 +1011,7 @@ class DoliDBMysql
$sql = "ALTER TABLE ".$table;
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL') $sql.=" NOT NULL";
if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL') $sql.=" NOT NULL";
dol_syslog(get_class($this)."::DDLUpdateField ".$sql,LOG_DEBUG);
if (! $this->query($sql))

View File

@ -1005,7 +1005,7 @@ class DoliDBMysqli
$sql = "ALTER TABLE ".$table;
$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
if ($field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') $sql.="(".$field_desc['value'].")";
if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL') $sql.=" NOT NULL";
if ($field_desc['null'] == 'not null' || $field_desc['null'] == 'NOT NULL') $sql.=" NOT NULL";
dol_syslog(get_class($this)."::DDLUpdateField ".$sql,LOG_DEBUG);
if (! $this->query($sql))

View File

@ -464,10 +464,10 @@ function dol_strtolower($utf8_string)
* @param string $utf8_string String to encode
* @return string String converted
*/
function dol_strtoupper($utf8_string)
{
return mb_strtoupper($utf8_string, "UTF-8");
}
function dol_strtoupper($utf8_string)
{
return mb_strtoupper($utf8_string, "UTF-8");
}
/**

View File

@ -107,14 +107,14 @@ class pdf_einstein extends ModelePDFCommandes
$this->posxqty=145;
$this->posxdiscount=162;
$this->postotalht=174;
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
$this->tva=array();
$this->localtax1=array();

View File

@ -109,12 +109,12 @@ class pdf_crabe extends ModelePDFFactures
$this->postotalht=174;
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
$this->tva=array();
$this->localtax1=array();

File diff suppressed because it is too large Load Diff

View File

@ -87,15 +87,15 @@ class pdf_typhon extends ModelePDFDeliveryOrder
$this->posxqty=168;
$this->posxdiscount=162;
$this->postotalht=177;
if ($this->page_largeur < 210) // To work with US executive format
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxcomm-=20;
//$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
$this->posxcomm-=20;
//$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
$this->tva=array();
$this->atleastoneratenotnull=0;

View File

@ -163,76 +163,76 @@ class modCategorie extends DolibarrModules
$this->export_sql_end[$r] .=' AND u.entity = '.$conf->entity;
$this->export_sql_end[$r] .=' AND u.type = 3'; // Supplier categories
// Imports
//--------
$r=0;
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="CatList"; // Translation key
$this->import_icon[$r]=$this->picto;
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('ca'=>MAIN_DB_PREFIX.'categorie');
$this->import_fields_array[$r]=array('ca.label'=>"Label*",'ca.type'=>"Type*",'ca.description'=>"Description");
$this->import_regex_array[$r]=array('ca.type'=>'^[0|1|2|3]');
// Imports
//--------
$r=0;
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="CatList"; // Translation key
$this->import_icon[$r]=$this->picto;
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('ca'=>MAIN_DB_PREFIX.'categorie');
$this->import_fields_array[$r]=array('ca.label'=>"Label*",'ca.type'=>"Type*",'ca.description'=>"Description");
$this->import_regex_array[$r]=array('ca.type'=>'^[0|1|2|3]');
$this->import_examplevalues_array[$r]=array('ca.label'=>"Supplier Category",'ca.type'=>"1",'ca.description'=>"Imported category");
if (! empty($conf->product->enabled))
{
//Products
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="CatProdList"; // Translation key
$this->import_icon[$r]=$this->picto;
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('cp'=>MAIN_DB_PREFIX.'categorie_product');
$this->import_fields_array[$r]=array('cp.fk_categorie'=>"Category*",'cp.fk_product'=>"Product*"
);
$this->import_convertvalue_array[$r]=array(
'cp.fk_categorie'=>array('rule'=>'fetchidfromref','classfile'=>'/categories/class/categorie.class.php','class'=>'Categorie','method'=>'fetch','element'=>'category'),
'cp.fk_product'=>array('rule'=>'fetchidfromref','classfile'=>'/product/class/product.class.php','class'=>'Product','method'=>'fetch','element'=>'product')
);
$this->import_examplevalues_array[$r]=array('cp.fk_categorie'=>"Imported category",'cp.fk_product'=>"PREF123456");
//Products
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="CatProdList"; // Translation key
$this->import_icon[$r]=$this->picto;
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('cp'=>MAIN_DB_PREFIX.'categorie_product');
$this->import_fields_array[$r]=array('cp.fk_categorie'=>"Category*",'cp.fk_product'=>"Product*"
);
$this->import_convertvalue_array[$r]=array(
'cp.fk_categorie'=>array('rule'=>'fetchidfromref','classfile'=>'/categories/class/categorie.class.php','class'=>'Categorie','method'=>'fetch','element'=>'category'),
'cp.fk_product'=>array('rule'=>'fetchidfromref','classfile'=>'/product/class/product.class.php','class'=>'Product','method'=>'fetch','element'=>'product')
);
$this->import_examplevalues_array[$r]=array('cp.fk_categorie'=>"Imported category",'cp.fk_product'=>"PREF123456");
}
if (! empty($conf->societe->enabled))
{
//Customers
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="CatCusList"; // Translation key
$this->import_icon[$r]=$this->picto;
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('cs'=>MAIN_DB_PREFIX.'categorie_societe');
$this->import_fields_array[$r]=array('cs.fk_categorie'=>"Category*",'cs.fk_societe'=>"ThirdParty*"
);
$this->import_convertvalue_array[$r]=array(
'cs.fk_categorie'=>array('rule'=>'fetchidfromref','classfile'=>'/categories/class/categorie.class.php','class'=>'Categorie','method'=>'fetch','element'=>'category'),
'cs.fk_societe'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty')
);
$this->import_examplevalues_array[$r]=array('cs.fk_categorie'=>"Imported category",'cs.fk_societe'=>"MyBigCompany");
{
//Customers
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="CatCusList"; // Translation key
$this->import_icon[$r]=$this->picto;
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('cs'=>MAIN_DB_PREFIX.'categorie_societe');
$this->import_fields_array[$r]=array('cs.fk_categorie'=>"Category*",'cs.fk_societe'=>"ThirdParty*"
);
$this->import_convertvalue_array[$r]=array(
'cs.fk_categorie'=>array('rule'=>'fetchidfromref','classfile'=>'/categories/class/categorie.class.php','class'=>'Categorie','method'=>'fetch','element'=>'category'),
'cs.fk_societe'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty')
);
$this->import_examplevalues_array[$r]=array('cs.fk_categorie'=>"Imported category",'cs.fk_societe'=>"MyBigCompany");
}
if (! empty($conf->fournisseur->enabled))
{
// Suppliers
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="CatSupList"; // Translation key
$this->import_icon[$r]=$this->picto;
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('cs'=>MAIN_DB_PREFIX.'categorie_fournisseur');
$this->import_fields_array[$r]=array('cs.fk_categorie'=>"Category*",'cs.fk_societe'=>"Supplier*"
);
$this->import_convertvalue_array[$r]=array(
'cs.fk_categorie'=>array('rule'=>'fetchidfromref','classfile'=>'/categories/class/categorie.class.php','class'=>'Categorie','method'=>'fetch','element'=>'category'),
'cs.fk_societe'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty')
);
if (! empty($conf->fournisseur->enabled))
{
// Suppliers
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="CatSupList"; // Translation key
$this->import_icon[$r]=$this->picto;
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('cs'=>MAIN_DB_PREFIX.'categorie_fournisseur');
$this->import_fields_array[$r]=array('cs.fk_categorie'=>"Category*",'cs.fk_societe'=>"Supplier*"
);
$this->import_convertvalue_array[$r]=array(
'cs.fk_categorie'=>array('rule'=>'fetchidfromref','classfile'=>'/categories/class/categorie.class.php','class'=>'Categorie','method'=>'fetch','element'=>'category'),
'cs.fk_societe'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty')
);
$this->import_examplevalues_array[$r]=array('cs.fk_categorie'=>"Imported category",'cs.fk_societe'=>"MyBigCompany");
}
}

View File

@ -195,56 +195,35 @@ class modProduct extends DolibarrModules
$this->import_examplevalues_array[$r]=array('p.ref'=>"PREF123456",'p.label'=>"My product",'p.description'=>"This is a description example for record",'p.note'=>"Some note",'p.price'=>"100",'p.price_ttc'=>"110",'p.tva_tx'=>'10','p.tosell'=>"0 or 1",'p.tobuy'=>"0 or 1",'p.fk_product_type'=>"0 for product/1 for service",'p.finished'=>'','p.duration'=>"1y",'p.datec'=>'2008-12-31');
if (! empty($conf->fournisseur->enabled))
{
// Import product suppliers
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="SuppliersPrices"; // Translation key
$this->import_icon[$r]='product';
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('sp'=>MAIN_DB_PREFIX.'product_fournisseur_price');
$this->import_tables_creator_array[$r]=array('sp'=>'fk_user');
$this->import_fields_array[$r]=array('sp.fk_product'=>"Product*",
if (! empty($conf->fournisseur->enabled))
{
// Import product suppliers
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="SuppliersPrices"; // Translation key
$this->import_icon[$r]='product';
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('sp'=>MAIN_DB_PREFIX.'product_fournisseur_price');
$this->import_tables_creator_array[$r]=array('sp'=>'fk_user');
$this->import_fields_array[$r]=array('sp.fk_product'=>"Product*",
'sp.fk_soc'=>"Supplier*", 'sp.ref_fourn'=>'SupplierRef', 'sp.quantity'=>"QtyMin*", 'sp.tva_tx'=>'VATRate',
'sp.price'=>"PriceQtyMinHT*",
'sp.unitprice'=>'UnitPriceHT*', // TODO Make this file not required and calculate it from price and qty
'sp.remise_percent'=>'DiscountQtyMin'
);
$this->import_convertvalue_array[$r]=array(
'sp.fk_soc'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty'),
'sp.fk_product'=>array('rule'=>'fetchidfromref','classfile'=>'/product/class/product.class.php','class'=>'Product','method'=>'fetch','element'=>'Product')
);
$this->import_examplevalues_array[$r]=array('sp.fk_product'=>"PREF123456",
'sp.remise_percent'=>'DiscountQtyMin'
);
$this->import_convertvalue_array[$r]=array(
'sp.fk_soc'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty'),
'sp.fk_product'=>array('rule'=>'fetchidfromref','classfile'=>'/product/class/product.class.php','class'=>'Product','method'=>'fetch','element'=>'Product')
);
$this->import_examplevalues_array[$r]=array('sp.fk_product'=>"PREF123456",
'sp.fk_soc'=>"My Supplier",'sp.ref_fourn'=>"SupplierRef", 'sp.quantity'=>"1", 'sp.tva_tx'=>'21',
'sp.price'=>"50",
'sp.price'=>"50",
'sp.unitprice'=>'50',
'sp.remise_percent'=>'0'
);
}
if (! empty($conf->stock->enabled))
{
// Import stocks
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="Stocks"; // Translation key
$this->import_icon[$r]='stock';
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('ps'=>MAIN_DB_PREFIX.'product_stock');
$this->import_fields_array[$r]=array('ps.fk_product'=>"Product*",'ps.fk_entrepot'=>"Warehouse*",
'ps.reel'=>"Stock*",'ps.pmp'=>"PMP"
);
$this->import_convertvalue_array[$r]=array(
'ps.fk_product'=>array('rule'=>'fetchidfromref','classfile'=>'/product/class/product.class.php','class'=>'Product','method'=>'fetch','element'=>'product'),
'ps.fk_entrepot'=>array('rule'=>'fetchidfromref','classfile'=>'/product/stock/class/entrepot.class.php','class'=>'Entrepot','method'=>'fetch','element'=>'label')
);
$this->import_examplevalues_array[$r]=array('ps.fk_product'=>"PREF123456",'ps.fk_entrepot'=>"ALM001",
'ps.reel'=>"10",'ps.pmp'=>"25"
'sp.remise_percent'=>'0'
);
}
}

View File

@ -378,22 +378,22 @@ class modSociete extends DolibarrModules
$this->import_regex_array[$r]=array('s.birthday'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$','s.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$');
$this->import_examplevalues_array[$r]=array('s.fk_soc'=>'MyBigCompany','s.civilite'=>"MR",'s.name'=>"Smith",'s.firstname'=>'John','s.address'=>'61 jump street','s.cp'=>'75000','s.ville'=>'Bigtown','s.fk_pays'=>'US, FR, DE...','s.datec'=>'1972-10-10','s.poste'=>"Director",'s.phone'=>"5551122",'s.phone_perso'=>"5551133",'s.phone_mobile'=>"5551144",'s.fax'=>"5551155",'s.email'=>"johnsmith@email.com",'s.note'=>"My comments");
// Import Bank Accounts
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="ImportDataset_company_3"; // Translation key
$this->import_icon[$r]='account';
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('sr'=>MAIN_DB_PREFIX.'societe_rib');
// Import Bank Accounts
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="ImportDataset_company_3"; // Translation key
$this->import_icon[$r]='account';
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('sr'=>MAIN_DB_PREFIX.'societe_rib');
$this->import_fields_array[$r]=array('sr.fk_soc'=>"ThirdPartyName*",'sr.bank'=>"Bank",
'sr.code_banque'=>"BankCode*",'sr.code_guichet'=>"DeskCode*",'sr.number'=>"BankAccountNumber*",
'sr.cle_rib'=>"BankAccountNumberKey*",'sr.bic'=>"BIC",'sr.iban_prefix'=>"IBAN"
);
$this->import_convertvalue_array[$r]=array(
'sr.fk_soc'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty')
);
$this->import_examplevalues_array[$r]=array('sr.fk_soc'=>"MyBigCompany",'sr.bank'=>"ING",
'sr.cle_rib'=>"BankAccountNumberKey*",'sr.bic'=>"BIC",'sr.iban_prefix'=>"IBAN"
);
$this->import_convertvalue_array[$r]=array(
'sr.fk_soc'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty')
);
$this->import_examplevalues_array[$r]=array('sr.fk_soc'=>"MyBigCompany",'sr.bank'=>"ING",
'sr.code_banque'=>"0000", 'sr.code_guichet'=>"1111",'sr.number'=>"3333333333",
'sr.cle_rib'=>"22",'sr.bic'=>"USHINGMMXXX",'sr.iban_prefix'=>"US00 0000 1111 22 3333 3333"
);

View File

@ -139,6 +139,7 @@ class modStock extends DolibarrModules
$r=0;
// Import warehouses
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="Warehouses"; // Translation key
@ -160,6 +161,23 @@ class modStock extends DolibarrModules
'e.description'=>"Central Warehouse",'e.lieu'=>"Central",
'e.address'=>"Route 66",'e.cp'=>'28080','e.fk_pays'=>'US',
'e.statut'=>'1');
// Import stocks
$r++;
$this->import_code[$r]=$this->rights_class.'_'.$r;
$this->import_label[$r]="Stocks"; // Translation key
$this->import_icon[$r]=$this->picto;
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
$this->import_tables_array[$r]=array('ps'=>MAIN_DB_PREFIX.'product_stock');
$this->import_fields_array[$r]=array('ps.fk_product'=>"Product*",'ps.fk_entrepot'=>"Warehouse*",'ps.reel'=>"Stock*",'ps.pmp'=>"PMP" );
$this->import_convertvalue_array[$r]=array(
'ps.fk_product'=>array('rule'=>'fetchidfromref','classfile'=>'/product/class/product.class.php','class'=>'Product','method'=>'fetch','element'=>'product'),
'ps.fk_entrepot'=>array('rule'=>'fetchidfromref','classfile'=>'/product/stock/class/entrepot.class.php','class'=>'Entrepot','method'=>'fetch','element'=>'label')
);
$this->import_examplevalues_array[$r]=array('ps.fk_product'=>"PREF123456",'ps.fk_entrepot'=>"ALM001",'ps.reel'=>"10",'ps.pmp'=>"25"
);
}
/**

View File

@ -106,14 +106,14 @@ class pdf_azur extends ModelePDFPropales
$this->posxqty=145;
$this->posxdiscount=162;
$this->postotalht=174;
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
$this->tva=array();
$this->localtax1=array();
@ -494,7 +494,7 @@ class pdf_azur extends ModelePDFPropales
}
// Show shipping date
if (isset($object->type) && $object->type != 2 && $object->date_livraison)
if ($object->date_livraison)
{
$outputlangs->load("sendings");
$pdf->SetFont('','B', $default_font_size - 2);
@ -508,7 +508,7 @@ class pdf_azur extends ModelePDFPropales
$posy=$pdf->GetY()+1;
}
elseif (isset($object->type) && $object->type != 2 && ($object->availability_code || $object->availability)) // Show availability conditions
elseif ($object->availability_code || $object->availability) // Show availability conditions
{
$pdf->SetFont('','B', $default_font_size - 2);
$pdf->SetXY($this->marge_gauche, $posy);
@ -525,7 +525,7 @@ class pdf_azur extends ModelePDFPropales
}
// Show payments conditions
if (! empty($conf->global->PROPALE_PDF_PAIEMENT_ENABLED) && ($object->cond_reglement_code || $object->cond_reglement))
if (empty($conf->global->PROPALE_PDF_HIDE_PAYMENTERMCOND) && ($object->cond_reglement_code || $object->cond_reglement))
{
$pdf->SetFont('','B', $default_font_size - 2);
$pdf->SetXY($this->marge_gauche, $posy);
@ -541,10 +541,10 @@ class pdf_azur extends ModelePDFPropales
$posy=$pdf->GetY()+3;
}
if (! empty($conf->global->PROPALE_PDF_PAIEMENT_ENABLED))
if (empty($conf->global->PROPALE_PDF_HIDE_PAYMENTERMCOND))
{
// Check a payment mode is defined
/* Not required on a proposal
if (empty($object->mode_reglement_code)
&& ! $conf->global->FACTURE_CHQ_NUMBER
&& ! $conf->global->FACTURE_RIB_NUMBER)
@ -557,6 +557,7 @@ class pdf_azur extends ModelePDFPropales
$posy=$pdf->GetY()+1;
}
*/
// Show payment mode
if ($object->mode_reglement_code
@ -654,11 +655,11 @@ class pdf_azur extends ModelePDFPropales
// Tableau total
$col1x = 120; $col2x = 170;
if ($this->page_largeur < 210) // To work with US executive format
{
$col2x-=20;
}
$largcol2 = ($this->page_largeur - $this->marge_droite - $col2x);
if ($this->page_largeur < 210) // To work with US executive format
{
$col2x-=20;
}
$largcol2 = ($this->page_largeur - $this->marge_droite - $col2x);
$index = 0;

View File

@ -103,14 +103,14 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
$this->posxqty=145;
$this->posxdiscount=162;
$this->postotalht=174;
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
$this->tva=array();
$this->localtax1=array();

View File

@ -112,14 +112,14 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
$this->posxqty=145;
$this->posxdiscount=162;
$this->postotalht=174;
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
if ($this->page_largeur < 210) // To work with US executive format
{
$this->posxtva-=20;
$this->posxup-=20;
$this->posxqty-=20;
$this->posxdiscount-=20;
$this->postotalht-=20;
}
$this->tva=array();
$this->localtax1=array();

View File

@ -29,6 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT.'/exports/class/export.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
$langs->load("exports");
@ -92,7 +93,8 @@ $array_selected=isset($_SESSION["export_selected_fields"])?$_SESSION["export_sel
$array_filtered=isset($_SESSION["export_filtered_fields"])?$_SESSION["export_filtered_fields"]:array();
$array_filtervalue=isset($_SESSION["export_FilterValue_fields"])?$_SESSION["export_FilterValue_fields"]:array();
$datatoexport=GETPOST("datatoexport");
$action=GETPOST("action");
$action=GETPOST('action', 'alpha');
$confirm=GETPOST('confirm', 'alpha');
$step=GETPOST("step")?GETPOST("step"):1;
$export_name=GETPOST("export_name");
$hexa=GETPOST("hexa");
@ -108,6 +110,8 @@ $htmlother = new FormOther($db);
$formfile = new FormFile($db);
$sqlusedforexport='';
$upload_dir = $conf->export->dir_temp.'/'.$user->id;
/*
* Actions
@ -272,6 +276,18 @@ if ($action == 'builddoc')
}
}
// Delete file
if ($step == 5 && $action == 'confirm_deletefile' && $confirm == 'yes')
{
$file = $upload_dir . "/" . GETPOST('file'); // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
$ret=dol_delete_file($file);
if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file')));
else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), 'errors');
header('Location: '.$_SERVER["PHP_SELF"].'?step='.$step.'&datatoexport='.$datatoexport);
exit;
}
if ($action == 'deleteprof')
{
if ($_GET["id"])
@ -378,7 +394,7 @@ if ($step == 4 && $action == 'submitFormField')
foreach($array_filtered as $code=>$value)
{
//print $code."=".$_POST[$objexport->array_export_fields[0][$code]];
$objexport->array_export_FilterValue[0][$code] = $_POST[$objexport->array_export_fields[0][$code]];
$objexport->array_export_FilterValue[0][$code] = (isset($objexport->array_export_fields[0][$code])?$_POST[$objexport->array_export_fields[0][$code]]:'');
}
$_SESSION["export_FilterValue_fields"]=(! empty($objexport->array_export_FilterValue[0])?$objexport->array_export_FilterValue[0]:'');
$array_filtervalue=(! empty($objexport->array_export_FilterValue[0])?$objexport->array_export_FilterValue[0]:'');
@ -881,8 +897,10 @@ if ($step == 4 && $datatoexport)
$list='';
foreach($array_filtered as $code=>$value)
{
$list.=($list?', ':'');
$list.="[".$langs->trans($objexport->array_export_fields[0][$code])."]='".$array_filtervalue[$code]."'";
if (isset($objexport->array_export_fields[0][$code])) {
$list.=($list?', ':'');
$list.="[".$langs->trans($objexport->array_export_fields[0][$code])."]='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'";
}
}
print '<td>'.$list.'</td></tr>';
}
@ -1065,6 +1083,15 @@ if ($step == 5 && $datatoexport)
dol_fiche_head($head, $hselected, $langs->trans("NewExport"));
/*
* Confirmation suppression fichier
*/
if ($action == 'remove_file')
{
$ret=$form->form_confirm($_SERVER["PHP_SELF"].'?step=5&datatoexport='.$datatoexport.'&file='.urlencode(GETPOST("file")), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile', '', 0, 1);
if ($ret == 'html') print '<br>';
}
print '<table width="100%" class="border">';
// Module
@ -1098,8 +1125,10 @@ if ($step == 5 && $datatoexport)
$list='';
foreach($array_filtered as $code=>$value)
{
$list.=($list?', ':'');
$list.="[".$langs->trans($objexport->array_export_fields[0][$code])."]='".$array_filtervalue[$code]."'";
if (isset($objexport->array_export_fields[0][$code])) {
$list.=($list?', ':'');
$list.="[".$langs->trans($objexport->array_export_fields[0][$code])."]='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'";
}
}
print '<td>'.$list.'</td></tr>';
}
@ -1153,7 +1182,7 @@ if ($step == 5 && $datatoexport)
// Affiche liste des documents
// NB: La fonction show_documents rescanne les modules qd genallowed=1, sinon prend $liste
$formfile->show_documents('export','',$conf->export->dir_temp.'/'.$user->id,$_SERVER["PHP_SELF"].'?step=5&datatoexport='.$datatoexport,$liste,1,(! empty($_POST['model'])?$_POST['model']:'csv'),1,1);
$formfile->show_documents('export','',$upload_dir,$_SERVER["PHP_SELF"].'?step=5&datatoexport='.$datatoexport,$liste,1,(! empty($_POST['model'])?$_POST['model']:'csv'),1,1);
print '</td><td width="50%">&nbsp;</td></tr>';
print '</table>';

File diff suppressed because it is too large Load Diff

View File

@ -22,6 +22,6 @@
create table llx_categorie_fournisseur
(
fk_categorie integer NOT NULL,
fk_societe integer NOT NUL,
fk_societe integer NOT NULL,
import_key varchar(14)
)ENGINE=innodb;

View File

@ -138,7 +138,7 @@ class MailmanSpip
curl_setopt($ch, CURLOPT_FAILONERROR, true);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
dol_syslog('result curl_exec='.$result);

View File

@ -473,7 +473,7 @@ if ($action == 'adduserldap')
$conf->global->LDAP_FIELD_FAX,
$conf->global->LDAP_FIELD_MOBILE,
$conf->global->LDAP_FIELD_MAIL,
$conf->global->LDAP_FIELD_TITLE,
$conf->global->LDAP_FIELD_TITLE,
$conf->global->LDAP_FIELD_DESCRIPTION,
$conf->global->LDAP_FIELD_SID);
@ -535,7 +535,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print "<br>";
print "<br>";
dol_htmloutput_mesg($message);
dol_htmloutput_mesg($message);
if (! empty($conf->ldap->enabled) && (isset($conf->global->LDAP_SYNCHRO_ACTIVE) && $conf->global->LDAP_SYNCHRO_ACTIVE == 'ldap2dolibarr'))
{
@ -1145,9 +1145,9 @@ else
print "</tr>\n";
// Signature
print '<tr><td valign="top">'.$langs->trans('Signature').'</td>';
print '<td>'.$fuser->signature.'</td>';
print "</tr>\n";
print '<tr><td valign="top">'.$langs->trans('Signature').'</td><td>';
print dol_textishtml($fuser->signature)?$fuser->signature:dol_nl2br($fuser->signature,1,true);
print "</td></tr>\n";
// Statut
print '<tr><td valign="top">'.$langs->trans("Status").'</td>';

View File

@ -126,16 +126,16 @@ class ExportTest extends PHPUnit_Framework_TestCase
{
global $conf,$user,$langs,$db;
$sql = "SELECT f.facnumber as f_facnumber, f.amount as f_amount, f.total as f_total, f.tva as f_tva FROM ".MAIN_DB_PREFIX."facture f";
$sql = "SELECT f.facnumber as f_facnumber, f.total as f_total, f.tva as f_tva FROM ".MAIN_DB_PREFIX."facture f";
$objexport=new Export($db);
//$objexport->load_arrays($user,$datatoexport);
// Define properties
$datatoexport='test';
$array_selected = array("f.facnumber"=>1, "f.amount"=>2, "f.total"=>3, "f.tva"=>4);
$array_export_fields = array("f.facnumber"=>"FacNumber", "f.amount"=>"FacAmount", "f.total"=>"FacTotal", "f.tva"=>"FacVat");
$array_alias = array("f_facnumber"=>"facnumber", "f_amount"=>"amount", "f_total"=>"total", "f_tva"=>"tva");
$array_selected = array("f.facnumber"=>1, "f.total"=>2, "f.tva"=>3);
$array_export_fields = array("f.facnumber"=>"FacNumber", "f.total"=>"FacTotal", "f.tva"=>"FacVat");
$array_alias = array("f_facnumber"=>"facnumber", "f_total"=>"total", "f_tva"=>"tva");
$objexport->array_export_fields[0]=$array_export_fields;
$objexport->array_export_alias[0]=$array_alias;
@ -170,22 +170,23 @@ class ExportTest extends PHPUnit_Framework_TestCase
*
* @return void
*/
/*
public function testExportFilteredExport()
{
global $conf,$user,$langs,$db;
$sql = "SELECT f.facnumber as f_facnumber, f.amount as f_amount, f.total as f_total, f.tva as f_tva FROM ".MAIN_DB_PREFIX."facture f";
$sql = "SELECT f.facnumber as f_facnumber, f.total as f_total, f.tva as f_tva FROM ".MAIN_DB_PREFIX."facture f";
$objexport=new Export($db);
//$objexport->load_arrays($user,$datatoexport);
// Define properties
$datatoexport='test';
$array_selected = array("f.facnumber"=>1, "f.amount"=>2, "f.total"=>3, "f.tva"=>4);
$array_export_fields = array("f.facnumber"=>"FacNumber", "f.amount"=>"FacAmount", "f.total"=>"FacTotal", "f.tva"=>"FacVat");
$array_filtervalue = array("f.amount" => ">100");
$array_filtered = array("f.amount" => 1);
$array_alias = array("f_facnumber"=>"facnumber", "f_amount"=>"amount", "f_total"=>"total", "f_tva"=>"tva");
$datatoexport='test_filtered';
$array_selected = array("f.facnumber"=>1, "f.total"=>2, "f.tva"=>3);
$array_export_fields = array("f.facnumber"=>"FacNumber", "f.total"=>"FacTotal", "f.tva"=>"FacVat");
$array_filtervalue = array("f.total" => ">100");
$array_filtered = array("f.total" => 1);
$array_alias = array("f_facnumber"=>"facnumber", "f_total"=>"total", "f_tva"=>"tva");
$objexport->array_export_fields[0]=$array_export_fields;
$objexport->array_export_alias[0]=$array_alias;
@ -213,7 +214,7 @@ class ExportTest extends PHPUnit_Framework_TestCase
$this->assertEquals($result,$expectedresult);
return true;
}
}*/
/**
* Test export function

View File

@ -268,7 +268,7 @@ class FactureTest extends PHPUnit_Framework_TestCase
$result=$localobject->delete($id);
print __METHOD__." id=".$id." result=".$result."\n";
$this->assertLessThan($result, 0);
$this->assertGreaterThanOrEqual(0, $result);
return $result;
}

View File

@ -10,46 +10,48 @@
processIsolation="false"
stopOnFailure="true"
syntaxCheck="true">
<filter>
<blacklist>
<directory suffix=".php">../../build/</directory>
<directory suffix=".php">../../dev/</directory>
<directory suffix=".php">../../doc/</directory>
<directory suffix=".php">../../test/</directory>
<directory suffix=".php">../../htdocs/core/menus/smartphone/</directory>
<directory suffix=".php">../../htdocs/products/canvas/</directory>
<directory suffix=".php">../../htdocs/contact/canvas/</directory>
<directory suffix=".php">../../htdocs/societe/canvas/</directory>
<directory suffix=".php">../../htdocs/includes/</directory>
</blacklist>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".class.php">../../htdocs/</directory>
<directory suffix=".lib.php">../../htdocs/</directory>
<directory suffix=".inc.php">../../htdocs/</directory>
<directory suffix=".modules.php">../../htdocs/</directory>
<file>../../htdocs/core/modules/facture/modules_facture.php</file>
<file>../../htdocs/core/modules/commande/modules_commande.php</file>
<file>../../htdocs/core/modules/propale/modules_propale.php</file>
<file>../../htdocs/core/modules/project/modules_project.php</file>
<file>../../htdocs/core/modules/fichinter/modules_fichinter.php</file>
<exclude>
<directory suffix=".php">../../build/</directory>
<directory suffix=".php">../../dev/</directory>
<directory suffix=".php">../../doc/</directory>
<directory suffix=".php">../../test/</directory>
<directory suffix=".php">../../htdocs/core/menus/smartphone</directory>
<directory suffix=".php">../../htdocs/products/canvas/</directory>
<directory suffix=".php">../../htdocs/contact/canvas/</directory>
<directory suffix=".php">../../htdocs/societe/canvas/</directory>
<directory suffix=".php">../../htdocs/includes/</directory>
<file>../../htdocs/boutique/osc_master.inc.php</file>
<file>../../htdocs/compta/bank/pre.inc.php</file>
<file>../../htdocs/compta/paiement/cheque/pre.inc.php</file>
<file>../../htdocs/holiday/common.inc.php</file>
<file>../../htdocs/ftp/pre.inc.php</file>
</exclude>
</whitelist>
</filter>
<ini name="max_execution_time" value="600"/>
<ini name="max_input_time" value="600"/>
<php>
<ini name="max_execution_time" value="600"/>
<ini name="max_input_time" value="600"/>
</php>
<filter>
<blacklist>
<directory suffix=".php">../../build/</directory>
<directory suffix=".php">../../dev/</directory>
<directory suffix=".php">../../doc/</directory>
<directory suffix=".php">../../test/</directory>
<directory suffix=".php">../../htdocs/core/menus/smartphone/</directory>
<directory suffix=".php">../../htdocs/products/canvas/</directory>
<directory suffix=".php">../../htdocs/contact/canvas/</directory>
<directory suffix=".php">../../htdocs/societe/canvas/</directory>
<directory suffix=".php">../../htdocs/includes/</directory>
</blacklist>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".class.php">../../htdocs/</directory>
<directory suffix=".lib.php">../../htdocs/</directory>
<directory suffix=".inc.php">../../htdocs/</directory>
<directory suffix=".modules.php">../../htdocs/</directory>
<file>../../htdocs/core/modules/facture/modules_facture.php</file>
<file>../../htdocs/core/modules/commande/modules_commande.php</file>
<file>../../htdocs/core/modules/propale/modules_propale.php</file>
<file>../../htdocs/core/modules/project/modules_project.php</file>
<file>../../htdocs/core/modules/fichinter/modules_fichinter.php</file>
<exclude>
<directory suffix=".php">../../build/</directory>
<directory suffix=".php">../../dev/</directory>
<directory suffix=".php">../../doc/</directory>
<directory suffix=".php">../../test/</directory>
<directory suffix=".php">../../htdocs/core/menus/smartphone</directory>
<directory suffix=".php">../../htdocs/products/canvas/</directory>
<directory suffix=".php">../../htdocs/contact/canvas/</directory>
<directory suffix=".php">../../htdocs/societe/canvas/</directory>
<directory suffix=".php">../../htdocs/includes/</directory>
<file>../../htdocs/boutique/osc_master.inc.php</file>
<file>../../htdocs/compta/bank/pre.inc.php</file>
<file>../../htdocs/compta/paiement/cheque/pre.inc.php</file>
<file>../../htdocs/holiday/common.inc.php</file>
<file>../../htdocs/ftp/pre.inc.php</file>
</exclude>
</whitelist>
</filter>
</phpunit>

View File

@ -10,48 +10,50 @@
processIsolation="false"
stopOnFailure="true"
syntaxCheck="true">
<filter>
<blacklist>
<directory suffix=".php">../../build/</directory>
<directory suffix=".php">../../dev/</directory>
<directory suffix=".php">../../doc/</directory>
<directory suffix=".php">../../test/</directory>
<directory suffix=".php">../../htdocs/core/menus/smartphone/</directory>
<directory suffix=".php">../../htdocs/custom/</directory>
<directory suffix=".php">../../htdocs/products/canvas/</directory>
<directory suffix=".php">../../htdocs/contact/canvas/</directory>
<directory suffix=".php">../../htdocs/societe/canvas/</directory>
<directory suffix=".php">../../htdocs/includes/</directory>
</blacklist>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".class.php">../../htdocs/</directory>
<directory suffix=".lib.php">../../htdocs/</directory>
<directory suffix=".inc.php">../../htdocs/</directory>
<directory suffix=".modules.php">../../htdocs/</directory>
<file>../../htdocs/core/modules/facture/modules_facture.php</file>
<file>../../htdocs/core/modules/commande/modules_commande.php</file>
<file>../../htdocs/core/modules/propale/modules_propale.php</file>
<file>../../htdocs/core/modules/project/modules_project.php</file>
<file>../../htdocs/core/modules/fichinter/modules_fichinter.php</file>
<exclude>
<directory suffix=".php">../../build/</directory>
<directory suffix=".php">../../dev/</directory>
<directory suffix=".php">../../doc/</directory>
<directory suffix=".php">../../test/</directory>
<directory suffix=".php">../../htdocs/core/menus/smartphone</directory>
<directory suffix=".php">../../htdocs/custom/</directory>
<directory suffix=".php">../../htdocs/products/canvas/</directory>
<directory suffix=".php">../../htdocs/contact/canvas/</directory>
<directory suffix=".php">../../htdocs/societe/canvas/</directory>
<directory suffix=".php">../../htdocs/includes/</directory>
<file>../../htdocs/boutique/osc_master.inc.php</file>
<file>../../htdocs/compta/bank/pre.inc.php</file>
<file>../../htdocs/compta/paiement/cheque/pre.inc.php</file>
<file>../../htdocs/holiday/common.inc.php</file>
<file>../../htdocs/ftp/pre.inc.php</file>
</exclude>
</whitelist>
</filter>
<ini name="max_execution_time" value="600"/>
<ini name="max_input_time" value="600"/>
<php>
<ini name="max_execution_time" value="600"/>
<ini name="max_input_time" value="600"/>
</php>
<filter>
<blacklist>
<directory suffix=".php">../../build/</directory>
<directory suffix=".php">../../dev/</directory>
<directory suffix=".php">../../doc/</directory>
<directory suffix=".php">../../test/</directory>
<directory suffix=".php">../../htdocs/core/menus/smartphone/</directory>
<directory suffix=".php">../../htdocs/custom/</directory>
<directory suffix=".php">../../htdocs/products/canvas/</directory>
<directory suffix=".php">../../htdocs/contact/canvas/</directory>
<directory suffix=".php">../../htdocs/societe/canvas/</directory>
<directory suffix=".php">../../htdocs/includes/</directory>
</blacklist>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".class.php">../../htdocs/</directory>
<directory suffix=".lib.php">../../htdocs/</directory>
<directory suffix=".inc.php">../../htdocs/</directory>
<directory suffix=".modules.php">../../htdocs/</directory>
<file>../../htdocs/core/modules/facture/modules_facture.php</file>
<file>../../htdocs/core/modules/commande/modules_commande.php</file>
<file>../../htdocs/core/modules/propale/modules_propale.php</file>
<file>../../htdocs/core/modules/project/modules_project.php</file>
<file>../../htdocs/core/modules/fichinter/modules_fichinter.php</file>
<exclude>
<directory suffix=".php">../../build/</directory>
<directory suffix=".php">../../dev/</directory>
<directory suffix=".php">../../doc/</directory>
<directory suffix=".php">../../test/</directory>
<directory suffix=".php">../../htdocs/core/menus/smartphone</directory>
<directory suffix=".php">../../htdocs/custom/</directory>
<directory suffix=".php">../../htdocs/products/canvas/</directory>
<directory suffix=".php">../../htdocs/contact/canvas/</directory>
<directory suffix=".php">../../htdocs/societe/canvas/</directory>
<directory suffix=".php">../../htdocs/includes/</directory>
<file>../../htdocs/boutique/osc_master.inc.php</file>
<file>../../htdocs/compta/bank/pre.inc.php</file>
<file>../../htdocs/compta/paiement/cheque/pre.inc.php</file>
<file>../../htdocs/holiday/common.inc.php</file>
<file>../../htdocs/ftp/pre.inc.php</file>
</exclude>
</whitelist>
</filter>
</phpunit>