dolibarr  19.0.0-dev
contact.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2005 Patrick Rouillon <patrick@rouillon.net>
3  * Copyright (C) 2005-2018 Destailleur Laurent <eldy@users.sourceforge.net>
4  * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
5  * Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19  */
20 
27 // Load Dolibarr environment
28 require '../main.inc.php';
29 require_once DOL_DOCUMENT_ROOT.'/supplier_proposal/class/supplier_proposal.class.php';
30 require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
31 require_once DOL_DOCUMENT_ROOT.'/core/lib/supplier_proposal.lib.php';
32 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
33 require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
34 require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
35 require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class.php';
36 
37 // Load translation files required by the page
38 $langs->loadLangs(array("propal", "supplier_proposal", "facture", "orders", "sendings", "companies"));
39 
40 $id = GETPOST('id', 'int');
41 $ref = GETPOST('ref', 'alpha');
42 $action = GETPOST('action', 'aZ09');
43 
44 // Security check
45 if ($user->socid) {
46  $socid = $user->socid;
47 }
48 $result = restrictedArea($user, 'supplier_proposal', $id, 'supplier_proposal', '');
49 
50 $object = new SupplierProposal($db);
51 
52 $permissiontoedit = $user->rights->supplier_proposal->creer;
53 
54 
55 /*
56  * Add a new contact
57  */
58 
59 if ($action == 'addcontact' && $permissiontoedit) {
60  $result = $object->fetch($id);
61 
62  if ($result > 0 && $id > 0) {
63  $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid'));
64  $typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type'));
65  $result = $object->add_contact($contactid, $typeid, GETPOST("source"));
66  }
67 
68  if ($result >= 0) {
69  header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
70  exit;
71  } else {
72  if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
73  $langs->load("errors");
74  setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
75  } else {
76  setEventMessages($object->error, $object->errors, 'errors');
77  }
78  }
79 } elseif ($action == 'swapstatut' && $permissiontoedit) {
80  // Toggle the status of a contact
81  if ($object->fetch($id)) {
82  $result = $object->swapContactStatus(GETPOST('ligne', 'int'));
83  } else {
84  setEventMessages($object->error, $object->errors, 'errors');
85  }
86 } elseif ($action == 'deletecontact' && $permissiontoedit) {
87  // Deleting a contact
88  $object->fetch($id);
89  $result = $object->delete_contact(GETPOST("lineid", 'int'));
90 
91  if ($result >= 0) {
92  header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
93  exit;
94  } else {
95  setEventMessages($object->error, $object->errors, 'errors');
96  }
97 }
98 
99 
100 
101 /*
102  * View
103  */
104 $form = new Form($db);
105 $formcompany = new FormCompany($db);
106 $contactstatic = new Contact($db);
107 $userstatic = new User($db);
108 
109 
110 /* *************************************************************************** */
111 /* */
112 /* Mode vue et edition */
113 /* */
114 /* *************************************************************************** */
115 
116 if ($id > 0 || !empty($ref)) {
117  $langs->trans("SupplierProposal");
118 
119  if ($object->fetch($id, $ref) > 0) {
120  $object->fetch_thirdparty();
121 
122  $title = $object->ref." - ".$langs->trans('ContactsAddresses');
123  $help_url = 'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur';
124  llxHeader('', $title, $help_url);
125 
126  $head = supplier_proposal_prepare_head($object);
127  print dol_get_fiche_head($head, 'contact', $langs->trans("CommRequest"), -1, 'supplier_proposal');
128 
129  // Supplier order card
130 
131  $linkback = '<a href="'.DOL_URL_ROOT.'/supplier_proposal/list.php'.(!empty($socid) ? '?socid='.$socid : '').'">'.$langs->trans("BackToList").'</a>';
132 
133  $morehtmlref = '<div class="refidno">';
134  // Ref supplier
135  //$morehtmlref .= $form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1);
136  //$morehtmlref .= $form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
137  // Thirdparty
138  $morehtmlref .= $object->thirdparty->getNomUrl(1);
139  // Project
140  if (isModEnabled('project')) {
141  $langs->load("projects");
142  $morehtmlref .= '<br>';
143  if (0) {
144  $morehtmlref .= img_picto($langs->trans("Project"), 'project', 'class="pictofixedwidth"');
145  if ($action != 'classify') {
146  $morehtmlref .= '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?action=classify&token='.newToken().'&id='.$object->id.'">'.img_edit($langs->transnoentitiesnoconv('SetProject')).'</a> ';
147  }
148  $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) ? $object->socid : -1), $object->fk_project, ($action == 'classify' ? 'projectid' : 'none'), 0, 0, 0, 1, '', 'maxwidth300');
149  } else {
150  if (!empty($object->fk_project)) {
151  $proj = new Project($db);
152  $proj->fetch($object->fk_project);
153  $morehtmlref .= $proj->getNomUrl(1);
154  if ($proj->title) {
155  $morehtmlref .= '<span class="opacitymedium"> - '.dol_escape_htmltag($proj->title).'</span>';
156  }
157  }
158  }
159  }
160  $morehtmlref .= '</div>';
161 
162 
163  dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
164 
165  print dol_get_fiche_end();
166 
167  // Contacts lines
168  include DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php';
169  } else {
170  // Contact not found
171  print "ErrorRecordNotFound";
172  }
173 }
174 
175 // End of page
176 llxFooter();
177 $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 contact/addresses.
Class to build HTML component for third parties management Only common components are here.
Class to manage generation of HTML components Only common components must be here.
Class to manage projects.
Class to manage price ask supplier.
Class to manage Dolibarr users.
Definition: user.class.php:48
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='', $dragdropfile=0)
Show tabs of a record.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
newToken()
Return the value of token currently saved into session with name 'newtoken'.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
isModEnabled($module)
Is Dolibarr module enabled.
img_edit($titlealt='default', $float=0, $other='')
Show logo editer/modifier fiche.
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.