Merge remote-tracking branch 'origin/3.6' into 3.6_bug

This commit is contained in:
Regis Houssin 2015-07-08 16:01:26 +02:00
commit aff3f03ae0
17 changed files with 78 additions and 40 deletions

View File

@ -206,6 +206,11 @@ Fix: [ bug #2577 ] Incorrect invoice status in "Linked objects" page of a projec
Fix: [ bug #2576 ] Unable to edit a dictionary entry that has # in its ref Fix: [ bug #2576 ] Unable to edit a dictionary entry that has # in its ref
Fix: [ bug #2758 ] Product::update sets product note to "null" when $prod->note is null Fix: [ bug #2758 ] Product::update sets product note to "null" when $prod->note is null
Fix: [ bug #2757 ] Deleting product category photo gives "Forbidden access" error Fix: [ bug #2757 ] Deleting product category photo gives "Forbidden access" error
Fix: [ bug #2976 ] "Report" tab is the current tab but it is not marked as selected by the UI
Fix: [ bug #2861 ] Undefined variable $res when migrating
Fix: [ bug #2837 ] Product list table column header does not match column body
Fix: [ bug #2835 ] Customer prices of a product shows incorrect history order
Fix: [ bug #2814 ] JPEG photos are not displayed in Product photos page
***** ChangeLog for 3.5.6 compared to 3.5.5 ***** ***** ChangeLog for 3.5.6 compared to 3.5.5 *****
Fix: Avoid missing class error for fetch_thirdparty method #1973 Fix: Avoid missing class error for fetch_thirdparty method #1973

View File

@ -1152,7 +1152,7 @@ class AccountLine extends CommonObject
if ($this->rappro) if ($this->rappro)
{ {
// Protection to avoid any delete of consolidated lines // Protection to avoid any delete of consolidated lines
$this->error="DeleteNotPossibleLineIsConsolidated"; $this->error="ErrorDeleteNotPossibleLineIsConsolidated";
return -1; return -1;
} }

View File

@ -314,16 +314,19 @@ class PaymentSocialContribution extends CommonObject
global $conf, $langs; global $conf, $langs;
$error=0; $error=0;
dol_syslog(get_class($this)."::delete");
$this->db->begin(); $this->db->begin();
if (! $error) if ($this->bank_line > 0)
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_url"; $accline = new AccountLine($this->db);
$sql.= " WHERE type='payment_sc' AND url_id=".$this->id; $accline->fetch($this->bank_line);
$result = $accline->delete();
dol_syslog(get_class($this)."::delete sql=".$sql); if($result < 0) {
$resql = $this->db->query($sql); $this->errors[] = $accline->error;
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } $error++;
}
} }
if (! $error) if (! $error)

View File

@ -555,7 +555,7 @@ class Contact extends CommonObject
$this->country_id = $obj->country_id; $this->country_id = $obj->country_id;
$this->country_code = $obj->country_id?$obj->country_code:''; $this->country_code = $obj->country_id?$obj->country_code:'';
$this->country = ($obj->country_id > 0)?$langs->transnoentitiesnoconv("Country".$obj->country_code):''; $this->country = $obj->country_id?($langs->trans('Country'.$obj->country_code)!='Country'.$obj->country_code?$langs->transnoentities('Country'.$obj->country_code):$obj->country):'';
$this->socid = $obj->fk_soc; $this->socid = $obj->fk_soc;
$this->socname = $obj->socname; $this->socname = $obj->socname;

View File

@ -165,7 +165,7 @@ function dol_shutdown()
global $conf,$user,$langs,$db; global $conf,$user,$langs,$db;
$disconnectdone=false; $depth=0; $disconnectdone=false; $depth=0;
if (is_object($db) && ! empty($db->connected)) { $depth=$db->transaction_opened; $disconnectdone=$db->close(); } if (is_object($db) && ! empty($db->connected)) { $depth=$db->transaction_opened; $disconnectdone=$db->close(); }
dol_syslog("--- End access to ".$_SERVER["PHP_SELF"].(($disconnectdone && $depth)?' (Warn: db disconnection forced, transaction depth was '.$depth.')':''), (($disconnectdone && $depth)?LOG_WARNING:LOG_DEBUG)); dol_syslog("--- End access to ".$_SERVER["PHP_SELF"].(($disconnectdone && $depth)?' (Warn: db disconnection forced, transaction depth was '.$depth.')':''), (($disconnectdone && $depth)?LOG_WARNING:LOG_INFO));
} }

View File

@ -39,7 +39,7 @@
*/ */
function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='') function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='')
{ {
global $langs, $hselected; global $langs;
print "\n\n<!-- debut cartouche rapport -->\n"; print "\n\n<!-- debut cartouche rapport -->\n";
@ -48,7 +48,7 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
$head[$h][1] = $langs->trans("Report"); $head[$h][1] = $langs->trans("Report");
$head[$h][2] = 'report'; $head[$h][2] = 'report';
dol_fiche_head($head, $hselected); dol_fiche_head($head, 'report');
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
foreach($moreparam as $key => $value) foreach($moreparam as $key => $value)

View File

@ -252,6 +252,13 @@ class ExportCsv extends ModeleExports
$newvalue=$this->csv_clean($newvalue,$outputlangs->charset_output); $newvalue=$this->csv_clean($newvalue,$outputlangs->charset_output);
if (preg_match('/^Select:/i', $typefield, $reg) && $typefield = substr($typefield, 7))
{
$array = unserialize($typefield);
$array = $array['options'];
$newvalue = $array[$newvalue];
}
fwrite($this->handle,$newvalue.$this->separator); fwrite($this->handle,$newvalue.$this->separator);
$this->col++; $this->col++;
} }

View File

@ -306,6 +306,13 @@ class ExportExcel extends ModeleExports
$newvalue=$this->excel_clean($newvalue); $newvalue=$this->excel_clean($newvalue);
$typefield=isset($array_types[$code])?$array_types[$code]:''; $typefield=isset($array_types[$code])?$array_types[$code]:'';
if (preg_match('/^Select:/i', $typefield, $reg) && $typefield = substr($typefield, 7))
{
$array = unserialize($typefield);
$array = $array['options'];
$newvalue = $array[$newvalue];
}
// Traduction newvalue // Traduction newvalue
if (preg_match('/^\((.*)\)$/i',$newvalue,$reg)) if (preg_match('/^\((.*)\)$/i',$newvalue,$reg))
{ {

View File

@ -227,6 +227,13 @@ class ExportTsv extends ModeleExports
$newvalue=$this->tsv_clean($newvalue,$outputlangs->charset_output); $newvalue=$this->tsv_clean($newvalue,$outputlangs->charset_output);
if (preg_match('/^Select:/i', $typefield, $reg) && $typefield = substr($typefield, 7))
{
$array = unserialize($typefield);
$array = $array['options'];
$newvalue = $array[$newvalue];
}
fwrite($this->handle,$newvalue.$this->separator); fwrite($this->handle,$newvalue.$this->separator);
$this->col++; $this->col++;
} }

View File

@ -355,6 +355,9 @@ class modSociete extends DolibarrModules
case 'sellist': case 'sellist':
$typeFilter="List:".$obj->param; $typeFilter="List:".$obj->param;
break; break;
case 'select':
$typeFilter="Select:".$obj->param;
break;
} }
$this->export_fields_array[$r][$fieldname]=$fieldlabel; $this->export_fields_array[$r][$fieldname]=$fieldlabel;
$this->export_TypeFields_array[$r][$fieldname]=$typeFilter; $this->export_TypeFields_array[$r][$fieldname]=$typeFilter;

View File

@ -3661,8 +3661,8 @@ function migrate_reload_modules($db,$langs,$conf)
if (! empty($conf->global->MAIN_MODULE_SERVICE)) // Permission has changed into 2.7 if (! empty($conf->global->MAIN_MODULE_SERVICE)) // Permission has changed into 2.7
{ {
dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Service"); dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Service");
if ($res) {
$res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modService.class.php'; $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modService.class.php';
if ($res) {
$mod=new modService($db); $mod=new modService($db);
//$mod->remove('noboxes'); //$mod->remove('noboxes');
$mod->init('newboxdefonly'); $mod->init('newboxdefonly');
@ -3671,8 +3671,8 @@ function migrate_reload_modules($db,$langs,$conf)
if (! empty($conf->global->MAIN_MODULE_COMMANDE)) // Permission has changed into 2.9 if (! empty($conf->global->MAIN_MODULE_COMMANDE)) // Permission has changed into 2.9
{ {
dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Commande"); dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Commande");
if ($res) {
$res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modCommande.class.php'; $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modCommande.class.php';
if ($res) {
$mod=new modCommande($db); $mod=new modCommande($db);
//$mod->remove('noboxes'); //$mod->remove('noboxes');
$mod->init('newboxdefonly'); $mod->init('newboxdefonly');
@ -3681,8 +3681,8 @@ function migrate_reload_modules($db,$langs,$conf)
if (! empty($conf->global->MAIN_MODULE_FACTURE)) // Permission has changed into 2.9 if (! empty($conf->global->MAIN_MODULE_FACTURE)) // Permission has changed into 2.9
{ {
dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Facture"); dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module Facture");
if ($res) {
$res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modFacture.class.php'; $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modFacture.class.php';
if ($res) {
$mod=new modFacture($db); $mod=new modFacture($db);
//$mod->remove('noboxes'); //$mod->remove('noboxes');
$mod->init('newboxdefonly'); $mod->init('newboxdefonly');
@ -3732,8 +3732,8 @@ function migrate_reload_modules($db,$langs,$conf)
if (! empty($conf->global->MAIN_MODULE_ECM)) // Permission has changed into 3.0 and 3.1 if (! empty($conf->global->MAIN_MODULE_ECM)) // Permission has changed into 3.0 and 3.1
{ {
dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module ECM"); dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module ECM");
if ($res) {
$res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modECM.class.php'; $res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/modECM.class.php';
if ($res) {
$mod=new modECM($db); $mod=new modECM($db);
$mod->remove('noboxes'); // We need to remove because a permission id has been removed $mod->remove('noboxes'); // We need to remove because a permission id has been removed
$mod->init('newboxdefonly'); $mod->init('newboxdefonly');

View File

@ -531,7 +531,7 @@ if (! defined('NOLOGIN'))
{ {
// We are already into an authenticated session // We are already into an authenticated session
$login=$_SESSION["dol_login"]; $login=$_SESSION["dol_login"];
dol_syslog("This is an already logged session. _SESSION['dol_login']=".$login); dol_syslog("This is an already logged session. _SESSION['dol_login']=".$login, LOG_DEBUG);
$resultFetchUser=$user->fetch('',$login); $resultFetchUser=$user->fetch('',$login);
if ($resultFetchUser <= 0) if ($resultFetchUser <= 0)

View File

@ -3196,7 +3196,7 @@ class Product extends CommonObject
if (! utf8_check($file)) $file=utf8_encode($file); // To be sure file is stored in UTF8 in memory if (! utf8_check($file)) $file=utf8_encode($file); // To be sure file is stored in UTF8 in memory
if (dol_is_file($dir.$file) && preg_match('/(\.jpg|\.bmp|\.gif|\.png|\.tiff)$/i', $dir.$file)) if (dol_is_file($dir.$file) && preg_match('/(\.jp(e?)g|\.bmp|\.gif|\.png|\.tiff)$/i', $dir.$file))
{ {
$nbphoto++; $nbphoto++;
$photo = $file; $photo = $file;

View File

@ -686,9 +686,8 @@ $sql .= " " . MAIN_DB_PREFIX . "user as u";
$sql .= " WHERE fk_product = " . $object->id; $sql .= " WHERE fk_product = " . $object->id;
$sql .= " AND p.entity IN (" . getEntity('productprice', 1) . ")"; $sql .= " AND p.entity IN (" . getEntity('productprice', 1) . ")";
$sql .= " AND p.fk_user_author = u.rowid"; $sql .= " AND p.fk_user_author = u.rowid";
if (! empty($socid) && ! empty($conf->global->PRODUIT_MULTIPRICES)) if (! empty($socid) && ! empty($conf->global->PRODUIT_MULTIPRICES)) $sql .= " AND p.price_level = " . $soc->price_level;
$sql .= " AND p.price_level = " . $soc->price_level; $sql .= " ORDER BY p.date_price DESC, p.price_level ASC, p.rowid DESC";
$sql .= " ORDER BY p.date_price DESC, p.price_level ASC";
// $sql .= $db->plimit(); // $sql .= $db->plimit();
dol_syslog("sql=" . $sql); dol_syslog("sql=" . $sql);

View File

@ -194,11 +194,11 @@ if ($resql)
if ($sref || $snom || $sall || GETPOST('search')) if ($sref || $snom || $sall || GETPOST('search'))
{ {
print_barre_liste($texte, $page, "reassort.php", "&sref=".$sref."&snom=".$snom."&amp;sall=".$sall."&amp;tosell=".$tosell."&amp;tobuy=".$tobuy, $sortfield, $sortorder,'',$num); print_barre_liste($texte, $page, "reassort.php", "&sref=".$sref."&snom=".$snom."&amp;sall=".$sall."&amp;tosell=".$tosell."&amp;tobuy=".$tobuy.(!empty($search_categ) ? '&amp;search_categ='.$search_categ : '').(!empty($toolowstock) ? '&amp;toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num);
} }
else else
{ {
print_barre_liste($texte, $page, "reassort.php", "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&amp;type=$type":""), $sortfield, $sortorder,'',$num); print_barre_liste($texte, $page, "reassort.php", "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&amp;type=$type":"").(!empty($search_categ) ? '&amp;search_categ='.$search_categ : '').(!empty($toolowstock) ? '&amp;toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num);
} }
if (! empty($catid)) if (! empty($catid))
@ -342,11 +342,11 @@ if ($resql)
{ {
if ($sref || $snom || $sall || GETPOST('search')) if ($sref || $snom || $sall || GETPOST('search'))
{ {
print_barre_liste('', $page, "reassort.php", "&sref=".$sref."&snom=".$snom."&amp;sall=".$sall."&amp;tosell=".$tosell."&amp;tobuy=".$tobuy, $sortfield, $sortorder,'',$num, 0, ''); print_barre_liste('', $page, "reassort.php", "&sref=".$sref."&snom=".$snom."&amp;sall=".$sall."&amp;tosell=".$tosell."&amp;tobuy=".$tobuy.(!empty($search_categ) ? '&amp;search_categ='.$search_categ : '').(!empty($toolowstock) ? '&amp;toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num, 0, '');
} }
else else
{ {
print_barre_liste('', $page, "reassort.php", "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&amp;type=$type":"")."&amp;tosell=".$tosell."&amp;tobuy=".$tobuy, $sortfield, $sortorder,'',$num, 0, ''); print_barre_liste('', $page, "reassort.php", "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&amp;type=$type":"")."&amp;tosell=".$tosell."&amp;tobuy=".$tobuy.(!empty($search_categ) ? '&amp;search_categ='.$search_categ : '').(!empty($toolowstock) ? '&amp;toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num, 0, '');
} }
} }

View File

@ -120,15 +120,22 @@ if ($resql)
else print $langs->trans("ProjectsPublicDesc").'<br><br>'; else print $langs->trans("ProjectsPublicDesc").'<br><br>';
} }
$param='';
if ($mine) $param.='mode=mine';
if ($socid) $param.='&socid='.$socid;
if ($search_ref) $param.='&search_ref='.$search_ref;
if ($search_label) $param.='&search_label='.$search_label;
if ($search_societe) $param.='&search_societe='.$search_societe;
print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">'; print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">';
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"p.ref","","","",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"p.title","","","",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"p.title","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","","","",$sortfield,$sortorder); print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Visibility"),$_SERVER["PHP_SELF"],"p.public","","","",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Visibility"),$_SERVER["PHP_SELF"],"p.public","",$param,"",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],'p.fk_statut',"","",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],'p.fk_statut',"",$param,'align="right"',$sortfield,$sortorder);
print "</tr>\n"; print "</tr>\n";
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';