dolibarr  9.0.0
contact.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2005 Patrick Rouillon <patrick@rouillon.net>
3  * Copyright (C) 2005-2009 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 <http://www.gnu.org/licenses/>.
19  */
20 
27 require '../../main.inc.php';
28 require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
29 require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
30 require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php';
31 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
32 if (! empty($conf->projet->enabled)) {
33  require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
34 }
35 
36 // Load translation files required by the page
37 $langs->loadLangs(array("facture","orders","sendings","companies"));
38 
39 $id = GETPOST('id', 'int');
40 $ref = GETPOST('ref', 'alpha');
41 $action = GETPOST('action', 'alpha');
42 
43 // Security check
44 if ($user->societe_id) $socid=$user->societe_id;
45 $result = restrictedArea($user, 'fournisseur', $id, 'commande_fournisseur', 'commande');
46 
47 $object = new CommandeFournisseur($db);
48 
49 
50 /*
51  * Add a new contact
52  */
53 
54 if ($action == 'addcontact' && $user->rights->fournisseur->commande->creer)
55 {
56  $result = $object->fetch($id);
57 
58  if ($result > 0 && $id > 0)
59  {
60  $contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid'));
61  $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]);
62  }
63 
64  if ($result >= 0)
65  {
66  header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
67  exit;
68  }
69  else
70  {
71  if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
72  {
73  $langs->load("errors");
74  setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
75  }
76  else
77  {
78  setEventMessages($object->error, $object->errors, 'errors');
79  }
80  }
81 }
82 
83 // Toggle the status of a contact
84 else if ($action == 'swapstatut' && $user->rights->fournisseur->commande->creer)
85 {
86  if ($object->fetch($id))
87  {
88  $result=$object->swapContactStatus(GETPOST('ligne'));
89  }
90  else
91  {
92  dol_print_error($db);
93  }
94 }
95 
96 // Deleting a contact
97 else if ($action == 'deletecontact' && $user->rights->fournisseur->commande->creer)
98 {
99  $object->fetch($id);
100  $result = $object->delete_contact($_GET["lineid"]);
101 
102  if ($result >= 0)
103  {
104  header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
105  exit;
106  }
107  else {
108  dol_print_error($db);
109  }
110 }
111 
112 
113 
114 /*
115  * View
116  */
117 $help_url='EN:Module_Suppliers_Orders|FR:CommandeFournisseur|ES:Módulo_Pedidos_a_proveedores';
118 llxHeader('',$langs->trans("Order"),$help_url);
119 
120 $form = new Form($db);
121 $formcompany = new FormCompany($db);
122 $contactstatic=new Contact($db);
123 $userstatic=new User($db);
124 
125 
126 /* *************************************************************************** */
127 /* */
128 /* Mode vue et edition */
129 /* */
130 /* *************************************************************************** */
131 
132 if ($id > 0 || ! empty($ref))
133 {
134  $langs->trans("OrderCard");
135 
136  if ($object->fetch($id, $ref) > 0)
137  {
138  $object->fetch_thirdparty();
139 
140  $head = ordersupplier_prepare_head($object);
141  dol_fiche_head($head, 'contact', $langs->trans("SupplierOrder"), -1, 'order');
142 
143  // Supplier order card
144 
145  $linkback = '<a href="'.DOL_URL_ROOT.'/fourn/commande/list.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
146 
147  $morehtmlref='<div class="refidno">';
148  // Ref supplier
149  $morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1);
150  $morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
151  // Thirdparty
152  $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
153  // Project
154  if (! empty($conf->projet->enabled))
155  {
156  $langs->load("projects");
157  $morehtmlref.='<br>'.$langs->trans('Project') . ' ';
158  if ($user->rights->fournisseur->commande->creer)
159  {
160  if ($action != 'classify')
161  //$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
162  $morehtmlref.=' : ';
163  if ($action == 'classify') {
164  //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
165  $morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
166  $morehtmlref.='<input type="hidden" name="action" value="classin">';
167  $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
168  $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
169  $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
170  $morehtmlref.='</form>';
171  } else {
172  $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
173  }
174  } else {
175  if (! empty($object->fk_project)) {
176  $proj = new Project($db);
177  $proj->fetch($object->fk_project);
178  $morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
179  $morehtmlref.=$proj->ref;
180  $morehtmlref.='</a>';
181  } else {
182  $morehtmlref.='';
183  }
184  }
185  }
186  $morehtmlref.='</div>';
187 
188 
189  dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
190 
191  dol_fiche_end();
192 
193  // Contacts lines
194  include DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php';
195  }
196  else
197  {
198  // Contact not found
199  print "ErrorRecordNotFound";
200  }
201 }
202 
203 // End of page
204 llxFooter();
205 $db->close();
llxFooter()
Empty footer.
Definition: wrapper.php:56
GETPOST($paramname, $check='none', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
print
Draft customers invoices.
Definition: index.php:91
setEventMessages($mesg, $mesgs, $style='mesgs')
Set event messages in dol_events session object.
ordersupplier_prepare_head($object)
Prepare array with list of tabs.
Definition: fourn.lib.php:102
Class to manage contact/addresses.
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.
Class to manage Dolibarr users.
Definition: user.class.php:41
dol_print_error($db='', $error='', $errors=null)
Affiche message erreur system avec toutes les informations pour faciliter le diagnostic et la remonte...
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.
dol_fiche_end($notab=0)
Show tab footer of a card.
llxHeader()
Empty header.
Definition: wrapper.php:44
Class to manage predefined suppliers products.
restrictedArea($user, $features, $objectid=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0)
Check permissions of a user to show a page and an object.
dol_fiche_head($links=array(), $active='0', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='')
Show tab header of a card.