From 82fc052de056b68515322140e49a6a13f273dd9e Mon Sep 17 00:00:00 2001 From: Regis Houssin <regis@dolibarr.fr> Date: Tue, 22 Mar 2011 19:31:29 +0000 Subject: [PATCH] patch #7445 : display the subsidiaries of a company --- htdocs/langs/en_US/companies.lang | 3 ++ htdocs/langs/fr_FR/companies.lang | 3 ++ htdocs/lib/company.lib.php | 74 +++++++++++++++++++++++++++++++ htdocs/societe/soc.php | 6 +++ 4 files changed, 86 insertions(+) diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index cbb22e44061..2ad0ffb79df 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -44,6 +44,9 @@ Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a physical contact with same informations ParentCompany=Parent company +Subsidiary=Subsidiary +Subsidiaries=Subsidiaries +NoSubsidiary=No subsidiary ReportByCustomers=Report by customers ReportByQuarter=Report by rate CivilityCode=Civility code diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index ab4892bf7e1..f4b0f223d94 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -48,6 +48,9 @@ ToCreateContactWithSameName=Créera automatiquement un contact physique avec inf ReportByCustomers=Rapport par client ReportByQuarter=Rapport par taux ParentCompany=Maison mère +Subsidiary=Filiale +Subsidiaries=Filiales +NoSubsidiary=Aucune filiale CivilityCode=Code civilité RegisteredOffice=Siège sociale Name=Nom diff --git a/htdocs/lib/company.lib.php b/htdocs/lib/company.lib.php index f62ebd6431f..1d100982b05 100644 --- a/htdocs/lib/company.lib.php +++ b/htdocs/lib/company.lib.php @@ -860,4 +860,78 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='') } +/** + * Show html area for list of subsidiaries + * @param conf Object conf + * @param lang Object lang + * @param db Database handler + * @param objsoc Third party object + */ +function show_subsidiaries($conf,$langs,$db,$object) +{ + global $user; + global $bc; + + $i=-1; + + $sql = "SELECT s.rowid, s.nom as name, s.address, s.cp as zip, s.ville as town, s.code_client, s.canvas"; + $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; + $sql.= " WHERE s.parent = ".$object->id; + $sql.= " AND s.entity = ".$conf->entity; + $sql.= " ORDER BY s.nom"; + + $result = $db->query($sql); + $num = $db->num_rows($result); + + if ($num) + { + $socstatic = new Societe($db); + + print_titre($langs->trans("Subsidiaries")); + print "\n".'<table class="noborder" width="100%">'."\n"; + + print '<tr class="liste_titre"><td>'.$langs->trans("Company").'</td>'; + print '<td>'.$langs->trans("Address").'</td><td>'.$langs->trans("Zip").'</td>'; + print '<td>'.$langs->trans("Town").'</td><td>'.$langs->trans("CustomerCode").'</td>'; + print "<td> </td>"; + print "</tr>"; + + $i=0; + $var=true; + + while ($i < $num) + { + $obj = $db->fetch_object($result); + $var = !$var; + + print "<tr ".$bc[$var].">"; + + print '<td>'; + $socstatic->id = $obj->rowid; + $socstatic->name = $obj->name; + $socstatic->canvas = $obj->canvas; + print $socstatic->getNomUrl(1); + print '</td>'; + + print '<td>'.$obj->address.'</td>'; + print '<td>'.$obj->zip.'</td>'; + print '<td>'.$obj->town.'</td>'; + print '<td>'.$obj->code_client.'</td>'; + + print '<td align="center">'; + print '<a href="'.DOL_URL_ROOT.'/societe/soc.php?socid='.$obj->rowid.'&action=edit">'; + print img_edit(); + print '</a></td>'; + + print "</tr>\n"; + $i++; + } + print "\n</table>\n"; + } + + print "<br>\n"; + + return $i; +} + ?> diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index aa352d29136..c927fe74238 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -477,6 +477,9 @@ if (! empty($canvas)) print '</table>'; print '<br>'; + + // Subsidiaries list + $result=show_subsidiaries($conf,$langs,$db,$soccanvas->control->object); // Contacts list $result=show_contacts($conf,$langs,$db,$soccanvas->control->object); @@ -1754,6 +1757,9 @@ else print '</table>'; print '<br>'; + + // Subsidiaries list + $result=show_subsidiaries($conf,$langs,$db,$soc); // Contacts list if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) -- GitLab