diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php
index b7e79def212..924bb0a118d 100644
--- a/htdocs/commande/card.php
+++ b/htdocs/commande/card.php
@@ -1478,7 +1478,7 @@ if ($action == 'create' && $user->rights->commande->creer)
print '';
} else {
print '
';
- print $form->select_company('', 'socid', 's.client = 1 OR s.client = 3', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300');
+ print $form->select_company('', 'socid', '(s.client = 1 OR s.client = 3)', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300');
// reload page to retrieve customer informations
if (!empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE))
{
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index fff50edd2d3..33ad6a48ca3 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -6261,29 +6261,39 @@ function natural_search($fields, $value, $mode=0, $nofirstand=0)
$i3 = 0;
foreach($tmpcrits as $tmpcrit)
{
- $newres .= (($i2 > 0 || $i3 > 0) ? ' OR ' : '') . $field . " LIKE '";
+ $newres .= (($i2 > 0 || $i3 > 0) ? ' OR ' : '');
+
+ if (preg_match('/\.(id|rowid)$/', $field)) // Special cas for rowid that is sometimes a ref so used as a search field
+ {
+ $newres .= $field . " = " . (is_numeric(trim($tmpcrit))?trim($tmpcrit):'0');
+ }
+ else
+ {
+ $newres .= $field . " LIKE '";
+
+ $tmpcrit=trim($tmpcrit);
+ $tmpcrit2=$tmpcrit;
+ $tmpbefore='%'; $tmpafter='%';
+ if (preg_match('/^[\^\$]/', $tmpcrit))
+ {
+ $tmpbefore='';
+ $tmpcrit2 = preg_replace('/^[\^\$]/', '', $tmpcrit2);
+ }
+ if (preg_match('/[\^\$]$/', $tmpcrit))
+ {
+ $tmpafter='';
+ $tmpcrit2 = preg_replace('/[\^\$]$/', '', $tmpcrit2);
+ }
+ $newres .= $tmpbefore;
+ $newres .= $db->escape($tmpcrit2);
+ $newres .= $tmpafter;
+ $newres .= "'";
+ if ($tmpcrit2 == '')
+ {
+ $newres .= ' OR ' . $field . " IS NULL";
+ }
+ }
- $tmpcrit=trim($tmpcrit);
- $tmpcrit2=$tmpcrit;
- $tmpbefore='%'; $tmpafter='%';
- if (preg_match('/^[\^\$]/', $tmpcrit))
- {
- $tmpbefore='';
- $tmpcrit2 = preg_replace('/^[\^\$]/', '', $tmpcrit2);
- }
- if (preg_match('/[\^\$]$/', $tmpcrit))
- {
- $tmpafter='';
- $tmpcrit2 = preg_replace('/[\^\$]$/', '', $tmpcrit2);
- }
- $newres .= $tmpbefore;
- $newres .= $db->escape($tmpcrit2);
- $newres .= $tmpafter;
- $newres .= "'";
- if ($tmpcrit2 == '')
- {
- $newres .= ' OR ' . $field . " IS NULL";
- }
$i3++;
}
$i2++; // a criteria was added to string
diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php
index f12f0127cec..e88e9ad10c5 100644
--- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php
+++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php
@@ -302,7 +302,7 @@ class pdf_soleil extends ModelePDFFicheinter
$pageposafter=$pageposbefore;
//print $pageposafter.'-'.$pageposbefore;exit;
$pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it.
- $pdf->writeHTMLCell(0, 0, $curX, $curY, $txt.' '.$desc, LR, 1, 0);
+ $pdf->writeHTMLCell(0, 0, $curX, $curY, dol_concatdesc($txt,$desc), 0, 1, 0);
$pageposafter=$pdf->getPage();
$posyafter=$pdf->GetY();
//var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit;
diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php
index 0bd7bdc7d5c..328157af7bf 100644
--- a/htdocs/fourn/card.php
+++ b/htdocs/fourn/card.php
@@ -707,27 +707,58 @@ if ($object->id > 0)
print '';
}
- if ($conf->supplier_proposal->enabled && $user->rights->supplier_proposal->creer && $object->status==1)
+ if ($conf->supplier_proposal->enabled && $user->rights->supplier_proposal->creer)
{
$langs->load("supplier_proposal");
- print ''.$langs->trans("AddSupplierProposal").'';
+ if ($object->status == 1)
+ {
+ print ''.$langs->trans("AddSupplierProposal").'';
+ }
+ else
+ {
+ print ''.$langs->trans("AddSupplierProposal").'';
+ }
}
- if ($user->rights->fournisseur->commande->creer && $object->status==1)
+ if ($user->rights->fournisseur->commande->creer)
{
$langs->load("orders");
- print ''.$langs->trans("AddOrder").'';
+ if ($object->status == 1)
+ {
+ print ''.$langs->trans("AddOrder").'';
+ }
+ else
+ {
+ print ''.$langs->trans("AddOrder").'';
+ }
}
- if ($user->rights->fournisseur->facture->creer && $object->status==1)
+ if ($user->rights->fournisseur->facture->creer)
{
$langs->load("bills");
- print ''.$langs->trans("AddBill").'';
+ if ($object->status == 1)
+ {
+ print ''.$langs->trans("AddBill").'';
+ }
+ else
+ {
+ print ''.$langs->trans("AddBill").'';
+ }
}
- if ($user->rights->fournisseur->facture->creer && $object->status==1)
+ if ($user->rights->fournisseur->facture->creer)
{
- if (! empty($orders2invoice) && $orders2invoice > 0) print '';
+ if (! empty($orders2invoice) && $orders2invoice > 0)
+ {
+ if ($object->status == 1)
+ {
+ print '';
+ }
+ else
+ {
+ print '';
+ }
+ }
else print '';
}
diff --git a/htdocs/install/check.php b/htdocs/install/check.php
index 1bcc6fadaff..94d717b2206 100644
--- a/htdocs/install/check.php
+++ b/htdocs/install/check.php
@@ -306,7 +306,19 @@ else
}
else
{
- require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
+ require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
+
+ // If password is encoded, we decode it
+ if (preg_match('/crypted:/i',$dolibarr_main_db_pass) || ! empty($dolibarr_main_db_encrypted_pass))
+ {
+ require_once $dolibarr_main_document_root.'/core/lib/security.lib.php';
+ if (preg_match('/crypted:/i',$dolibarr_main_db_pass))
+ {
+ $dolibarr_main_db_encrypted_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass); // We need to set this as it is used to know the password was initially crypted
+ $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass);
+ }
+ else $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass);
+ }
// $conf is already instancied inside inc.php
$conf->db->type = $dolibarr_main_db_type;
@@ -315,12 +327,12 @@ else
$conf->db->name = $dolibarr_main_db_name;
$conf->db->user = $dolibarr_main_db_user;
$conf->db->pass = $dolibarr_main_db_pass;
- $db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
+ $db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
if ($db->connected && $db->database_selected)
{
$ok=true;
}
- }
+ }
}
}
diff --git a/htdocs/install/mysql/migration/4.0.0-5.0.0.sql b/htdocs/install/mysql/migration/4.0.0-5.0.0.sql
index 86421894fec..25a92f1e265 100644
--- a/htdocs/install/mysql/migration/4.0.0-5.0.0.sql
+++ b/htdocs/install/mysql/migration/4.0.0-5.0.0.sql
@@ -61,6 +61,8 @@ ALTER TABLE llx_user DROP COLUMN phenix_login;
ALTER TABLE llx_user DROP COLUMN phenix_pass;
ALTER TABLE llx_user ADD COLUMN dateemployment datetime;
+ALTER TABLE llx_user MODIFY login varchar(50) NOT NULL;
+
ALTER TABLE llx_societe ADD COLUMN fk_account integer;
ALTER TABLE llx_commandedet ADD COLUMN fk_commandefourndet integer DEFAULT NULL after import_key; -- link to detail line of commande fourn (resplenish)
diff --git a/htdocs/public/members/new.php b/htdocs/public/members/new.php
index f174c51cc74..b935eb12687 100644
--- a/htdocs/public/members/new.php
+++ b/htdocs/public/members/new.php
@@ -518,13 +518,13 @@ if (empty($conf->global->SOCIETE_DISABLE_STATE))
print ' | ';
}
// EMail
-print '| '.$langs->trans("Email").' * | |
'."\n";
+print '| '.$langs->trans("Email").' * | |
'."\n";
// Login
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
{
- print '| '.$langs->trans("Login").' * | |
'."\n";
- print '| '.$langs->trans("Password").' * | |
'."\n";
- print '| '.$langs->trans("PasswordAgain").' * | |
'."\n";
+ print '| '.$langs->trans("Login").' * | |
'."\n";
+ print '| '.$langs->trans("Password").' * | |
'."\n";
+ print '| '.$langs->trans("PasswordAgain").' * | |
'."\n";
}
// Birthday
print '| '.$langs->trans("DateToBirth").' | ';
|