dolibarr  17.0.4
contact.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3  * Copyright (C) 2003 Brian Fraval <brian@fraval.org>
4  * Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
5  * Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
6  * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
7  * Copyright (C) 2008 Patrick Raguin <patrick.raguin@auguria.net>
8  * Copyright (C) 2010-2016 Juanjo Menent <jmenent@2byte.es>
9  * Copyright (C) 2011-2013 Alexandre Spangaro <aspangaro@open-dsi.fr>
10  * Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
11  * Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
12  * Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
13  *
14  * This program is free software; you can redistribute it and/or modify
15  * it under the terms of the GNU General Public License as published by
16  * the Free Software Foundation; either version 3 of the License, or
17  * (at your option) any later version.
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with this program. If not, see <https://www.gnu.org/licenses/>.
26  */
27 
34 // Load Dolibarr environment
35 require '../main.inc.php';
36 require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
37 require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
38 require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
39 require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
40 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
41 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
42 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
43 require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
44 require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
45 require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
46 if (isModEnabled('adherent')) {
47  require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
48 }
49 
50 // Load translation files required by the page
51 $langs->loadLangs(array("companies", "commercial", "bills", "banks", "users"));
52 
53 if (isModEnabled('categorie')) {
54  $langs->load("categories");
55 }
56 if (isModEnabled('incoterm')) {
57  $langs->load("incoterm");
58 }
59 if (isModEnabled('notification')) {
60  $langs->load("mails");
61 }
62 
63 $mesg = ''; $error = 0; $errors = array();
64 
65 
66 // Get parameters
67 $action = (GETPOST('action', 'aZ09') ? GETPOST('action', 'aZ09') : 'view');
68 $cancel = GETPOST('cancel', 'alpha');
69 $backtopage = GETPOST('backtopage', 'alpha');
70 $confirm = GETPOST('confirm');
71 $socid = GETPOST('socid', 'int') ?GETPOST('socid', 'int') : GETPOST('id', 'int');
72 
73 if ($user->socid) {
74  $socid = $user->socid;
75 }
76 
77 if (empty($socid) && $action == 'view') {
78  $action = 'create';
79 }
80 
81 // Initialize objects
82 $object = new Societe($db);
83 $extrafields = new ExtraFields($db);
84 
85 // fetch optionals attributes and labels
86 $extrafields->fetch_name_optionals_label($object->table_element);
87 
88 // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
89 $hookmanager->initHooks(array('thirdpartycontact', 'globalcard'));
90 
91 if ($object->fetch($socid) <= 0 && $action == 'view') {
92  $langs->load("errors");
93  print($langs->trans('ErrorRecordNotFound'));
94  exit;
95 }
96 
97 // Get object canvas (By default, this is not defined, so standard usage of dolibarr)
98 $canvas = $object->canvas ? $object->canvas : GETPOST("canvas");
99 $objcanvas = null;
100 if (!empty($canvas)) {
101  require_once DOL_DOCUMENT_ROOT.'/core/class/canvas.class.php';
102  $objcanvas = new Canvas($db, $action);
103  $objcanvas->getCanvas('thirdparty', 'card', $canvas);
104 }
105 
106 // Security check
107 $result = restrictedArea($user, 'societe', $socid, '&societe', '', 'fk_soc', 'rowid', 0);
108 if (empty($user->rights->societe->contact->lire)) {
109  accessforbidden();
110 }
111 
112 
113 /*
114  * Actions
115  */
116 
117 $parameters = array('id'=>$socid, 'objcanvas'=>$objcanvas);
118 $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
119 if ($reshook < 0) {
120  setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
121 }
122 
123 if (empty($reshook)) {
124  if ($cancel) {
125  $action = '';
126  if (!empty($backtopage)) {
127  header("Location: ".$backtopage);
128  exit;
129  }
130  }
131 
132  // Selection of new fields
133  include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
134 }
135 
136 
137 /*
138  * View
139  */
140 
141 $form = new Form($db);
142 $formfile = new FormFile($db);
143 $formadmin = new FormAdmin($db);
144 $formcompany = new FormCompany($db);
145 
146 if ($socid > 0 && empty($object->id)) {
147  $result = $object->fetch($socid);
148  if ($result <= 0) {
149  dol_print_error('', $object->error);
150  }
151 }
152 
153 $title = $langs->trans("ThirdParty");
154 if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) {
155  $title = $object->name." - ".$langs->trans('ContactsAddresses');
156 }
157 $help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
158 llxHeader('', $title, $help_url);
159 
160 $countrynotdefined = $langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')';
161 
162 
163 if (!empty($object->id)) {
164  $res = $object->fetch_optionals();
165 }
166 //if ($res < 0) { dol_print_error($db); exit; }
167 
168 
169 $head = societe_prepare_head($object);
170 
171 print dol_get_fiche_head($head, 'contact', $langs->trans("ThirdParty"), 0, 'company');
172 
173 $linkback = '<a href="'.DOL_URL_ROOT.'/societe/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
174 
175 dol_banner_tab($object, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom', '', '', 0, '', '', 'arearefnobottom');
176 
177 print dol_get_fiche_end();
178 
179 print '<br>';
180 
181 if ($action != 'presend') {
182  // Contacts list
183  if (empty($conf->global->SOCIETE_DISABLE_CONTACTS)) {
184  $result = show_contacts($conf, $langs, $db, $object, $_SERVER["PHP_SELF"].'?socid='.$object->id, 1);
185  }
186 }
187 
188 // End of page
189 llxFooter();
190 $db->close();
if(GETPOST('button_removefilter_x', 'alpha')||GETPOST('button_removefilter.x', 'alpha')||GETPOST('button_removefilter', 'alpha')) if(GETPOST('button_search_x', 'alpha')||GETPOST('button_search.x', 'alpha')||GETPOST('button_search', 'alpha')) if($action=="save" &&empty($cancel)) $help_url
View.
Definition: agenda.php:118
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
Definition: wrapper.php:56
llxFooter()
Empty footer.
Definition: wrapper.php:70
Class to manage canvas.
Class to manage standard extra fields.
Class to generate html code for admin pages.
Class to build HTML component for third parties management Only common components are here.
Class to offer components to list and upload files.
Class to manage generation of HTML components Only common components must be here.
Class to manage third parties objects (customers, suppliers, prospects...)
show_contacts($conf, $langs, $db, $object, $backtopage='', $showuserlogin=0)
Show html area for list of contacts.
societe_prepare_head(Societe $object)
Return array of tabs to used on pages for third parties cards.
Definition: company.lib.php:42
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='rowid', $fieldref='ref', $morehtmlref='', $moreparam='', $nodbprefix=0, $morehtmlleft='', $morehtmlstatus='', $onlybanner=0, $morehtmlright='')
Show tab footer of a card.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='')
Show tabs of a record.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_get_fiche_end($notab=0)
Return tab footer of a card.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='')
Set event messages in dol_events session object.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
isModEnabled($module)
Is Dolibarr module enabled.
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.