diff --git a/ChangeLog b/ChangeLog index 0002ce6b3fa2ae3afbb8ddb493b96ff3d57e1a08..1dd68adceb7355c27ad683b443b1f4cd138d0a66 100644 --- a/ChangeLog +++ b/ChangeLog @@ -268,6 +268,7 @@ Dolibarr better: - Fix: [ bug #2542 ] Contracts store localtax preferences - Fix: Bad permission assignments for stock movements actions - Fix: [ bug #2891 ] Category hooks do not work +- Fix: [ bug #2696 ] Adding complementary attribute fails if code is numerics ***** ChangeLog for 3.6.2 compared to 3.6.1 ***** - Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice. @@ -447,6 +448,10 @@ 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 +Fix: [ bug #2715 ] Statistics page has broken layout with long thirdparty names +Fix: [ bug #2570 ] [Contacts] Page should not process if ID is invalid +Fix: [ bug #3268 ] SQL error when accessing thirdparty log page without a socid parameter +Fix: [ bug #3180 ] formObjectOptions hook when editing thirdparty card does not print result ***** ChangeLog for 3.5.6 compared to 3.5.5 ***** Fix: Avoid missing class error for fetch_thirdparty method #1973 diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index c3bf23bdf66612b8ce94b0603dbf3e6945c3262d..bcfb75e27a8dd795e7410b71d38b3527627b4a3f 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -1155,7 +1155,7 @@ class AccountLine extends CommonObject if ($this->rappro) { // Protection to avoid any delete of consolidated lines - $this->error="DeleteNotPossibleLineIsConsolidated"; + $this->error="ErrorDeleteNotPossibleLineIsConsolidated"; return -1; } diff --git a/htdocs/compta/facture/stats/index.php b/htdocs/compta/facture/stats/index.php index 18aeaa722dab079270be93952cee39e86db4844e..dab5631bab480e09ab3a5ea9f074e49519512f79 100644 --- a/htdocs/compta/facture/stats/index.php +++ b/htdocs/compta/facture/stats/index.php @@ -217,6 +217,13 @@ complete_head_from_modules($conf,$langs,null,$head,$h,$type); dol_fiche_head($head,'byyear',$langs->trans("Statistics")); +$tmp_companies = $form->select_thirdparty_list($socid,'socid',$filter,1, 0, 0, array(), '', 1); +//Array passed as an argument to Form::selectarray to build a proper select input +$companies = array(); + +foreach ($tmp_companies as $value) { + $companies[$value['value']] = $value['label']; +} print '<div class="fichecenter"><div class="fichethirdleft">'; @@ -232,7 +239,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">'; print '<tr><td>'.$langs->trans("ThirdParty").'</td><td>'; if ($mode == 'customer') $filter='s.client in (1,2,3)'; if ($mode == 'supplier') $filter='s.fournisseur = 1'; - print $form->select_company($socid,'socid',$filter,1); + print $form->selectarray('socid', $companies, $socid, 1, 0, 0, 'style="width: 100%"'); print '</td></tr>'; // User print '<tr><td>'.$langs->trans("CreatedBy").'</td><td>'; diff --git a/htdocs/compta/prelevement/class/rejetprelevement.class.php b/htdocs/compta/prelevement/class/rejetprelevement.class.php index 2ef37c29e188e9f44195904a96c5eeb348381a3f..820d3a34fcc5d5d0835fb65836de1f72f7388eee 100644 --- a/htdocs/compta/prelevement/class/rejetprelevement.class.php +++ b/htdocs/compta/prelevement/class/rejetprelevement.class.php @@ -87,7 +87,7 @@ class RejetPrelevement dol_syslog("RejetPrelevement::Create id $id"); $bankaccount = $conf->global->PRELEVEMENT_ID_BANKACCOUNT; - $facs = $this->getListInvoices(); + $facs = $this->getListInvoices(1); $this->db->begin(); @@ -132,7 +132,7 @@ class RejetPrelevement for ($i = 0; $i < $num; $i++) { $fac = new Facture($this->db); - $fac->fetch($facs[$i]); + $fac->fetch($facs[$i][0]); // Make a negative payment $pai = new Paiement($this->db); @@ -144,7 +144,7 @@ class RejetPrelevement * PHP installs sends only the part integer negative */ - $pai->amounts[$facs[$i]] = price2num($fac->total_ttc * -1); + $pai->amounts[$facs[$i][0]] = price2num($facs[$i][1] * -1); $pai->datepaye = $date_rejet; $pai->paiementid = 3; // type of payment: withdrawal $pai->num_paiement = $fac->ref; @@ -152,7 +152,7 @@ class RejetPrelevement if ($pai->create($this->user) < 0) // we call with no_commit { $error++; - dol_syslog("RejetPrelevement::Create Error creation payment invoice ".$facs[$i]); + dol_syslog("RejetPrelevement::Create Error creation payment invoice ".$facs[$i][0]); } else { @@ -270,22 +270,24 @@ class RejetPrelevement } /** - * Retrieve the list of invoices + * Retrieve the list of invoices * - * @return array + * @param int $amounts If you want to get the amount of the order for each invoice + * @return array Array List of invoices related to the withdrawal line + * @TODO A withdrawal line is today linked to one and only one invoice. So the function should return only one object ? */ - private function getListInvoices() + private function getListInvoices($amounts=0) { global $conf; $arr = array(); //Returns all invoices of a withdrawal - $sql = "SELECT f.rowid as facid"; + $sql = "SELECT f.rowid as facid, pl.amount"; $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_facture as pf"; - $sql.= ", ".MAIN_DB_PREFIX."facture as f"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON (pf.fk_facture = f.rowid)"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."prelevement_lignes as pl ON (pf.fk_prelevement_lignes = pl.rowid)"; $sql.= " WHERE pf.fk_prelevement_lignes = ".$this->id; - $sql.= " AND pf.fk_facture = f.rowid"; $sql.= " AND f.entity = ".$conf->entity; $resql=$this->db->query($sql); @@ -299,7 +301,14 @@ class RejetPrelevement while ($i < $num) { $row = $this->db->fetch_row($resql); - $arr[$i] = $row[0]; + if (!$amounts) $arr[$i] = $row[0]; + else + { + $arr[$i] = array( + $row[0], + $row[1] + ); + } $i++; } } @@ -307,7 +316,7 @@ class RejetPrelevement } else { - dol_syslog("RejetPrelevement Erreur"); + dol_syslog("getListInvoices", LOG_ERR); } return $arr; diff --git a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php index 10f856cf858fe4902e0183d18bf8084444849700..b90a789b8aeb1dbab310b8c9ed1b289531599a80 100644 --- a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php +++ b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php @@ -312,16 +312,19 @@ class PaymentSocialContribution extends CommonObject global $conf, $langs; $error=0; + dol_syslog(get_class($this)."::delete"); + $this->db->begin(); - if (! $error) + if ($this->bank_line > 0) { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_url"; - $sql.= " WHERE type='payment_sc' AND url_id=".$this->id; - - dol_syslog(get_class($this)."::delete", LOG_DEBUG); - $resql = $this->db->query($sql); - if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + $accline = new AccountLine($this->db); + $accline->fetch($this->bank_line); + $result = $accline->delete(); + if($result < 0) { + $this->errors[] = $accline->error; + $error++; + } } if (! $error) diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 63204d158cc26cc4200e35f0f851516a93d46ed5..ba12d039e103b73eb86c56ab43d105e7c00fc086 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -551,7 +551,7 @@ class Contact extends CommonObject $this->country_id = $obj->country_id; $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->socname = $obj->socname; diff --git a/htdocs/contact/exportimport.php b/htdocs/contact/exportimport.php index e9e9c70966c9f996836a10d14fc9af1e711f2b3e..a66a52233171e357690cc97e35e66c03de9a0347 100644 --- a/htdocs/contact/exportimport.php +++ b/htdocs/contact/exportimport.php @@ -33,80 +33,80 @@ $id = GETPOST('id', 'int'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'contact', $id, 'socpeople&societe'); +$contact = new Contact($db); + /* * View */ -$title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")); - -llxHeader('',$title,'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); - $form = new Form($db); -$contact = new Contact($db); -$contact->fetch($id, $user); +$title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")); +llxHeader('',$title,'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); -$head = contact_prepare_head($contact); +if ($id > 0) +{ + $contact->fetch($id, $user); -dol_fiche_head($head, 'exportimport', $title, 0, 'contact'); + $head = contact_prepare_head($contact); + dol_fiche_head($head, 'exportimport', $title, 0, 'contact'); -/* - * Fiche en mode visu - */ -print '<table class="border" width="100%">'; -$linkback = '<a href="'.DOL_URL_ROOT.'/contact/list.php">'.$langs->trans("BackToList").'</a>'; + /* + * Fiche en mode visu + */ + print '<table class="border" width="100%">'; -// Ref -print '<tr><td>'.$langs->trans("Ref").'</td><td colspan="3">'; -print $form->showrefnav($contact, 'id', $linkback); -print '</td></tr>'; + $linkback = '<a href="'.DOL_URL_ROOT.'/contact/list.php">'.$langs->trans("BackToList").'</a>'; -// Name -print '<tr><td width="20%">'.$langs->trans("Lastname").' / '.$langs->trans("Label").'</td><td>'.$contact->lastname.'</td>'; -print '<td width="20%">'.$langs->trans("Firstname").'</td><td width="25%">'.$contact->firstname.'</td></tr>'; + // Ref + print '<tr><td>'.$langs->trans("Ref").'</td><td colspan="3">'; + print $form->showrefnav($contact, 'id', $linkback); + print '</td></tr>'; -// Company -if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) -{ - if ($contact->socid > 0) - { - $objsoc = new Societe($db); - $objsoc->fetch($contact->socid); - - print '<tr><td width="15%">'.$langs->trans("ThirdParty").'</td><td colspan="3">'.$objsoc->getNomUrl(1).'</td></tr>'; - } - else - { - print '<tr><td width="15%">'.$langs->trans("ThirdParty").'</td><td colspan="3">'; - print $langs->trans("ContactNotLinkedToCompany"); - print '</td></tr>'; - } -} + // Name + print '<tr><td width="20%">'.$langs->trans("Lastname").' / '.$langs->trans("Label").'</td><td>'.$contact->lastname.'</td>'; + print '<td width="20%">'.$langs->trans("Firstname").'</td><td width="25%">'.$contact->firstname.'</td></tr>'; -// Civility -print '<tr><td>'.$langs->trans("UserTitle").'</td><td colspan="3">'; -print $contact->getCivilityLabel(); -print '</td></tr>'; + // Company + if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) + { + if ($contact->socid > 0) + { + $objsoc = new Societe($db); + $objsoc->fetch($contact->socid); -print '</table>'; + print '<tr><td width="15%">'.$langs->trans("ThirdParty").'</td><td colspan="3">'.$objsoc->getNomUrl(1).'</td></tr>'; + } + else + { + print '<tr><td width="15%">'.$langs->trans("ThirdParty").'</td><td colspan="3">'; + print $langs->trans("ContactNotLinkedToCompany"); + print '</td></tr>'; + } + } -print '</div>'; + // Civility + print '<tr><td>'.$langs->trans("UserTitle").'</td><td colspan="3">'; + print $contact->getCivilityLabel(); + print '</td></tr>'; -print '<br>'; + print '</table>'; -print $langs->trans("ExportCardToFormat").': '; -print '<a href="'.DOL_URL_ROOT.'/contact/vcard.php?id='.$contact->id.'">'; -print img_picto($langs->trans("VCard"),'vcard.png').' '; -print $langs->trans("VCard"); -print '</a>'; + dol_fiche_end(); + print '<br>'; + print $langs->trans("ExportCardToFormat").': '; + print '<a href="'.DOL_URL_ROOT.'/contact/vcard.php?id='.$contact->id.'">'; + print img_picto($langs->trans("VCard"),'vcard.png').' '; + print $langs->trans("VCard"); + print '</a>'; +} +llxFooter(); $db->close(); - -llxFooter(); diff --git a/htdocs/contact/info.php b/htdocs/contact/info.php index 51a80d8d9944f70cba4791d53696b46729d382be..5d4904faa87715f21fc82701c5bff991a2eb2d29 100644 --- a/htdocs/contact/info.php +++ b/htdocs/contact/info.php @@ -35,6 +35,8 @@ $contactid = GETPOST("id",'int'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'contact', $contactid, 'socpeople&societe'); +$contact = new Contact($db); + /* @@ -43,23 +45,25 @@ $result = restrictedArea($user, 'contact', $contactid, 'socpeople&societe'); llxHeader('',$langs->trans("ContactsAddresses"),'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); +if ($contactid > 0) +{ + $result = $contact->fetch($contactid, $user); -$contact = new Contact($db); -$contact->fetch($contactid, $user); -$contact->info($contactid); + $contact->info($contactid); -$head = contact_prepare_head($contact); + $head = contact_prepare_head($contact); -dol_fiche_head($head, 'info', $langs->trans("ContactsAddresses"), 0, 'contact'); + dol_fiche_head($head, 'info', $langs->trans("ContactsAddresses"), 0, 'contact'); -print '<table width="100%"><tr><td>'; -print '</td></tr></table>'; + print '<table width="100%"><tr><td>'; + print '</td></tr></table>'; -dol_print_object_info($contact); + dol_print_object_info($contact); -print "</div>"; + print "</div>"; +} llxFooter(); diff --git a/htdocs/contact/ldap.php b/htdocs/contact/ldap.php index 170ed03990458e6272fe9aeb8b0b4d2cb482ad10..187dea70def4e7134169a699b2375a67333436a6 100644 --- a/htdocs/contact/ldap.php +++ b/htdocs/contact/ldap.php @@ -40,7 +40,10 @@ if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'contact', $id, 'socpeople&societe'); $contact = new Contact($db); -$contact->fetch($id, $user); +if ($id > 0) +{ + $contact->fetch($id, $user); +} /* @@ -132,7 +135,8 @@ print '<tr><td>LDAP '.$langs->trans("LDAPServerPort").'</td><td class="valeur" c print '</table>'; -print '</div>'; +dol_fiche_end(); + /* * Barre d'actions @@ -204,6 +208,6 @@ print '</table>'; -$db->close(); - llxFooter(); + +$db->close(); diff --git a/htdocs/contact/vcard.php b/htdocs/contact/vcard.php index 77abf31ac89649f52ae36a02a86081fabbef4ff2..5d71ba88f261f342f7e47721c5b696dd01d81e5d 100644 --- a/htdocs/contact/vcard.php +++ b/htdocs/contact/vcard.php @@ -28,14 +28,20 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/vcard.class.php'; +$contact = new Contact($db); + $id = GETPOST('id', 'int'); // Security check $result = restrictedArea($user, 'contact', $id, 'socpeople&societe'); -$contact = new Contact($db); $result=$contact->fetch($id); +if (! $result) +{ + dol_print_error($contact->error); + exit; +} $physicalperson=1; @@ -43,7 +49,6 @@ $company = new Societe($db); if ($contact->socid) { $result=$company->fetch($contact->socid); - //print "ee"; } // We create VCard @@ -100,4 +105,3 @@ header("Connection: close"); header("Content-Type: text/x-vcard; name=\"".$filename."\""); print $output; - diff --git a/htdocs/core/actions_extrafields.inc.php b/htdocs/core/actions_extrafields.inc.php index d5f8ea7c18c95a83dbdf86a7a35213652cf50b46..83916673fed4c1aeb85090c05bb46d6693a8f659 100644 --- a/htdocs/core/actions_extrafields.inc.php +++ b/htdocs/core/actions_extrafields.inc.php @@ -118,7 +118,7 @@ if ($action == 'add') if (! $error) { // attrname must be alphabetical and lower case only - if (isset($_POST["attrname"]) && preg_match("/^[a-z0-9-_]+$/",$_POST['attrname'])) + if (isset($_POST["attrname"]) && preg_match("/^[a-z0-9-_]+$/",$_POST['attrname']) && !is_numeric($_POST["attrname"])) { // Construct array for parameter (value of select list) $default_value = GETPOST('default_value'); diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 06648b42ea2f1933c528af3b9315c81fbdf74ab3..4bbe7b3aa9823669ba31d41188ea950ea106da3f 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -81,8 +81,8 @@ abstract class CommonObject $sql = "SELECT rowid, ref, ref_ext"; $sql.= " FROM ".MAIN_DB_PREFIX.$element; - $sql.= " WHERE entity IN (".getEntity($element,1).")" ; - + $sql.= " WHERE entity IN (".getEntity($element, true).")" ; + if ($id > 0) $sql.= " AND rowid = ".$db->escape($id); else if ($ref) $sql.= " AND ref = '".$db->escape($ref)."'"; else if ($ref_ext) $sql.= " AND ref_ext = '".$db->escape($ref_ext)."'"; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index f56c3a7a7df214c9377159a5b885e5bad451fdd1..01c60780074972f691700d36c85ab8ff425d3ee2 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -939,7 +939,7 @@ class Form $out.= '<option value="'.$obj->rowid.'">'.$label.'</option>'; } - array_push($outarray, array('key'=>$obj->rowid, 'value'=>$obj->name, 'label'=>$obj->name)); + array_push($outarray, array('key'=>$obj->rowid, 'value'=>$obj->rowid, 'label'=>$label)); $i++; if (($i % 10) == 0) $out.="\n"; diff --git a/htdocs/core/class/vcard.class.php b/htdocs/core/class/vcard.class.php index bc9f9081a4946cec007be64ad99497995d9f1328..ec3d381354b8f6b97c99092a9f95ed44369e5886 100644 --- a/htdocs/core/class/vcard.class.php +++ b/htdocs/core/class/vcard.class.php @@ -150,7 +150,7 @@ class vCard { $this->properties["N;CHARSET=".$this->encoding] = encode($family).";".encode($first).";".encode($additional).";".encode($prefix).";".encode($suffix); $this->filename = "$first%20$family.vcf"; - if ($this->properties["FN"]=="") $this->setFormattedName(trim("$prefix $first $additional $family $suffix")); + if (empty($this->properties["FN"])) $this->setFormattedName(trim("$prefix $first $additional $family $suffix")); } /** diff --git a/htdocs/core/modules/export/export_csv.modules.php b/htdocs/core/modules/export/export_csv.modules.php index ce058a934551298b211680f5691a14ff337b1a98..58f4f036d5e3a28c81b8117b5fb1f8f8c3a050be 100644 --- a/htdocs/core/modules/export/export_csv.modules.php +++ b/htdocs/core/modules/export/export_csv.modules.php @@ -252,6 +252,13 @@ class ExportCsv extends ModeleExports $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); $this->col++; } diff --git a/htdocs/core/modules/export/export_excel.modules.php b/htdocs/core/modules/export/export_excel.modules.php index 87923b4cb9c5492764ea01a78cfee9259f414f9d..0d06ed08ab2a8c0fb18b8dffe8f55248af50f045 100644 --- a/htdocs/core/modules/export/export_excel.modules.php +++ b/htdocs/core/modules/export/export_excel.modules.php @@ -313,7 +313,14 @@ class ExportExcel extends ModeleExports $newvalue=$this->excel_clean($newvalue); $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 if (preg_match('/^\((.*)\)$/i',$newvalue,$reg)) { diff --git a/htdocs/core/modules/export/export_tsv.modules.php b/htdocs/core/modules/export/export_tsv.modules.php index 409102fd85719e4ab3dad9c3afa10a919200cab9..a077cc1772e2dd252e17a9038f3797e2188e88aa 100644 --- a/htdocs/core/modules/export/export_tsv.modules.php +++ b/htdocs/core/modules/export/export_tsv.modules.php @@ -226,7 +226,14 @@ class ExportTsv extends ModeleExports if (preg_match('/^\((.*)\)$/i',$newvalue,$reg)) $newvalue=$outputlangs->transnoentities($reg[1]); $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); $this->col++; } diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index 3a2bcefe8b2088e5fe5e955012d8ef61fd1e0bc4..b1fadd8ef3cc8e9663e5c84293646a896bd5dfe5 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -355,6 +355,9 @@ class modSociete extends DolibarrModules case 'sellist': $typeFilter="List:".$obj->param; break; + case 'select': + $typeFilter="Select:".$obj->param; + break; } $this->export_fields_array[$r][$fieldname]=$fieldlabel; $this->export_TypeFields_array[$r][$fieldname]=$typeFilter; diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index fbfd55b9a9a8ed9959db3f334b35d007d14467f5..e5d63f6123e10148d021f108b70561d63b77a76b 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -65,7 +65,7 @@ ErrorNoValueForCheckBoxType=Please fill value for checkbox list ErrorNoValueForRadioType=Please fill value for radio list ErrorBadFormatValueList=The list value cannot have more than one come : <u>%s</u>, but need at least one: llave,valores ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contains special characters, nor upper case characters. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers. ErrorNoAccountancyModuleLoaded=No accountancy module activated ErrorExportDuplicateProfil=This profile name already exists for this export set. ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete. diff --git a/htdocs/product/reassort.php b/htdocs/product/reassort.php index decbba143daf1c60db9eb92b30ed016be2da5c8f..15bc39b7d51786f0cf36179f7670d9ce1e6c7041 100644 --- a/htdocs/product/reassort.php +++ b/htdocs/product/reassort.php @@ -194,11 +194,11 @@ if ($resql) if ($sref || $snom || $sall || GETPOST('search')) { - print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=".$sref."&snom=".$snom."&sall=".$sall."&tosell=".$tosell."&tobuy=".$tobuy, $sortfield, $sortorder,'',$num); + print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=".$sref."&snom=".$snom."&sall=".$sall."&tosell=".$tosell."&tobuy=".$tobuy.(!empty($search_categ) ? '&search_categ='.$search_categ : '').(!empty($toolowstock) ? '&toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num); } else { - print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":""), $sortfield, $sortorder,'',$num); + print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":"").(!empty($search_categ) ? '&search_categ='.$search_categ : '').(!empty($toolowstock) ? '&toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num); } if (! empty($catid)) @@ -248,7 +248,7 @@ if ($resql) print_liste_field_titre($langs->trans("PhysicalStock"), $_SERVER["PHP_SELF"], "stock_physique",$param,"",'align="right"',$sortfield,$sortorder); // TODO Add info of running suppliers/customers orders //print_liste_field_titre($langs->trans("TheoreticalStock"),"reassort.php", "stock_theorique",$param,"",'align="right"',$sortfield,$sortorder); - print '<td class="liste_titre"> </td>'; + print_liste_field_titre(''); print_liste_field_titre($langs->trans("Sell"),"reassort.php", "p.tosell",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Buy"),"reassort.php", "p.tobuy",$param,"",'align="right"',$sortfield,$sortorder); print "</tr>\n"; @@ -342,11 +342,11 @@ if ($resql) { if ($sref || $snom || $sall || GETPOST('search')) { - print_barre_liste('', $page, "reassort.php", "&sref=".$sref."&snom=".$snom."&sall=".$sall."&tosell=".$tosell."&tobuy=".$tobuy, $sortfield, $sortorder,'',$num, 0, ''); + print_barre_liste('', $page, "reassort.php", "&sref=".$sref."&snom=".$snom."&sall=".$sall."&tosell=".$tosell."&tobuy=".$tobuy.(!empty($search_categ) ? '&search_categ='.$search_categ : '').(!empty($toolowstock) ? '&toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num, 0, ''); } else { - print_barre_liste('', $page, "reassort.php", "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":"")."&tosell=".$tosell."&tobuy=".$tobuy, $sortfield, $sortorder,'',$num, 0, ''); + print_barre_liste('', $page, "reassort.php", "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":"")."&tosell=".$tosell."&tobuy=".$tobuy.(!empty($search_categ) ? '&search_categ='.$search_categ : '').(!empty($toolowstock) ? '&toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num, 0, ''); } } diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php index d52ba362532f90df7f3896632e3a45bb160af4ac..eb84716c26bdd394e195ee6196502f8d7204322f 100644 --- a/htdocs/projet/list.php +++ b/htdocs/projet/list.php @@ -125,15 +125,22 @@ if ($resql) 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 '<table class="noborder" width="100%">'; 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("Label"),$_SERVER["PHP_SELF"],"p.title","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Visibility"),$_SERVER["PHP_SELF"],"p.public","","","",$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("Ref"),$_SERVER["PHP_SELF"],"p.ref","",$param,"",$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","",$param,"",$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',"",$param,'align="right"',$sortfield,$sortorder); print "</tr>\n"; print '<tr class="liste_titre">'; diff --git a/htdocs/societe/info.php b/htdocs/societe/info.php index 9d06d203d9c5ead152f1d0676c8228b2b4e2de2c..5820b8fcc021fae2fe1c59fcf2c1e724ef46e169 100644 --- a/htdocs/societe/info.php +++ b/htdocs/societe/info.php @@ -40,6 +40,7 @@ $result = restrictedArea($user, 'societe', $socid, '&societe'); // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('infothirdparty')); +$object = new Societe($db); /* @@ -59,26 +60,25 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; llxHeader('',$langs->trans("ThirdParty"),$help_url); -$object = new Societe($db); -$object->fetch($socid); -$object->info($socid); - -/* - * Affichage onglets - */ -$head = societe_prepare_head($object); - -dol_fiche_head($head, 'info', $langs->trans("ThirdParty"),0,'company'); - +if ($socid > 0) +{ + $result = $object->fetch($socid); + $object->info($socid); + /* + * Affichage onglets + */ + $head = societe_prepare_head($object); -print '<table width="100%"><tr><td>'; -dol_print_object_info($object); -print '</td></tr></table>'; + dol_fiche_head($head, 'info', $langs->trans("ThirdParty"), 0, 'company'); -dol_fiche_end(); + print '<table width="100%"><tr><td>'; + dol_print_object_info($object); + print '</td></tr></table>'; + dol_fiche_end(); +} llxFooter(); diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index bddbd174f6e602692334c56b7855c3b44e78df88..578ea3d1fa123d0b5c336885d21e422a5ea55ef1 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -1087,6 +1087,7 @@ else // Other attributes $parameters=array('colspan' => ' colspan="3"', 'colspanvalue' => '3'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; if (empty($reshook) && ! empty($extrafields->attribute_label)) { print $object->showOptionals($extrafields,'edit'); @@ -1581,6 +1582,7 @@ else // Other attributes $parameters=array('colspan' => ' colspan="3"', 'colspanvalue' => '3'); $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; if (empty($reshook) && ! empty($extrafields->attribute_label)) { print $object->showOptionals($extrafields,'edit');