dolibarr  17.0.4
company.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3  * Copyright (C) 2004-2019 Laurent Destailleur <eldy@users.sourceforge.net>
4  * Copyright (C) 2005-2017 Regis Houssin <regis.houssin@inodbox.com>
5  * Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
6  * Copyright (C) 2011-2017 Philippe Grand <philippe.grand@atoo-net.com>
7  * Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
8  * Copyright (C) 2017 Rui Strecht <rui.strecht@aliartalentos.com>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <https://www.gnu.org/licenses/>.
22  */
23 
30 // Load Dolibarr environment
31 require '../main.inc.php';
32 require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
33 require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
34 require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
35 require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
36 require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
37 require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
38 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
39 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
40 
41 $action = GETPOST('action', 'aZ09');
42 $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'admincompany'; // To manage different context of search
43 
44 // Load translation files required by the page
45 $langs->loadLangs(array('admin', 'companies', 'bills'));
46 
47 if (!$user->admin) {
49 }
50 
51 $error = 0;
52 
53 // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
54 $hookmanager->initHooks(array('admincompany', 'globaladmin'));
55 
56 
57 /*
58  * Actions
59  */
60 
61 $parameters = array();
62 $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
63 if ($reshook < 0) {
64  setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
65 }
66 
67 if (($action == 'update' && !GETPOST("cancel", 'alpha'))
68 || ($action == 'updateedit')) {
69  $tmparray = getCountry(GETPOST('country_id', 'int'), 'all', $db, $langs, 0);
70  if (!empty($tmparray['id'])) {
71  if ($tmparray['code'] == 'FR' && $tmparray['id'] != $mysoc->country_id) {
72  // For FR, default value of option to show profid SIREN is on by default
73  $res = dolibarr_set_const($db, "MAIN_PROFID1_IN_ADDRESS", 1, 'chaine', 0, '', $conf->entity);
74  }
75 
76  $mysoc->country_id = $tmparray['id'];
77  $mysoc->country_code = $tmparray['code'];
78  $mysoc->country_label = $tmparray['label'];
79 
80  $s = $mysoc->country_id.':'.$mysoc->country_code.':'.$mysoc->country_label;
81  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_COUNTRY", $s, 'chaine', 0, '', $conf->entity);
82 
83  activateModulesRequiredByCountry($mysoc->country_code);
84  }
85 
86  $tmparray = getState(GETPOST('state_id', 'int'), 'all', $db, $langs, 0);
87  if (!empty($tmparray['id'])) {
88  $mysoc->state_id = $tmparray['id'];
89  $mysoc->state_code = $tmparray['code'];
90  $mysoc->state_label = $tmparray['label'];
91 
92  $s = $mysoc->state_id.':'.$mysoc->state_code.':'.$mysoc->state_label;
93  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_STATE", $s, 'chaine', 0, '', $conf->entity);
94  } else {
95  dolibarr_del_const($db, "MAIN_INFO_SOCIETE_STATE", $conf->entity);
96  }
97 
98  $db->begin();
99 
100  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOM", GETPOST("nom", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
101  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ADDRESS", GETPOST("MAIN_INFO_SOCIETE_ADDRESS", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
102  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TOWN", GETPOST("MAIN_INFO_SOCIETE_TOWN", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
103  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ZIP", GETPOST("MAIN_INFO_SOCIETE_ZIP", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
104  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_REGION", GETPOST("region_code", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
105  dolibarr_set_const($db, "MAIN_MONNAIE", GETPOST("currency", 'aZ09'), 'chaine', 0, '', $conf->entity);
106  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TEL", GETPOST("tel", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
107  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FAX", GETPOST("fax", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
108  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MAIL", GETPOST("mail", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
109  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_WEB", GETPOST("web", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
110  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOTE", GETPOST("note", 'restricthtml'), 'chaine', 0, '', $conf->entity);
111  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_GENCOD", GETPOST("barcode", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
112 
113  $dirforimage = $conf->mycompany->dir_output.'/logos/';
114 
115  $arrayofimages = array('logo', 'logo_squarred');
116  //var_dump($_FILES); exit;
117  foreach ($arrayofimages as $varforimage) {
118  if ($_FILES[$varforimage]["name"] && !preg_match('/(\.jpeg|\.jpg|\.png)$/i', $_FILES[$varforimage]["name"])) { // Logo can be used on a lot of different places. Only jpg and png can be supported.
119  $langs->load("errors");
120  setEventMessages($langs->trans("ErrorBadImageFormat"), null, 'errors');
121  break;
122  }
123 
124  // Remove to check file size to large
125  /*if ($_FILES[$varforimage]["tmp_name"]) {*/
126  $reg = array();
127  if (preg_match('/([^\\/:]+)$/i', $_FILES[$varforimage]["name"], $reg)) {
128  $original_file = $reg[1];
129 
130  $isimage = image_format_supported($original_file);
131  if ($isimage >= 0) {
132  dol_syslog("Move file ".$_FILES[$varforimage]["tmp_name"]." to ".$dirforimage.$original_file);
133  if (!is_dir($dirforimage)) {
134  dol_mkdir($dirforimage);
135  }
136  $result = dol_move_uploaded_file($_FILES[$varforimage]["tmp_name"], $dirforimage.$original_file, 1, 0, $_FILES[$varforimage]['error']);
137  if ($result > 0) {
138  $constant = "MAIN_INFO_SOCIETE_LOGO";
139  if ($varforimage == 'logo_squarred') {
140  $constant = "MAIN_INFO_SOCIETE_LOGO_SQUARRED";
141  }
142 
143  dolibarr_set_const($db, $constant, $original_file, 'chaine', 0, '', $conf->entity);
144 
145  // Create thumbs of logo (Note that PDF use original file and not thumbs)
146  if ($isimage > 0) {
147  // Create thumbs
148  //$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retrieve value with get...
149 
150  // Create small thumb, Used on logon for example
151  $imgThumbSmall = vignette($dirforimage.$original_file, $maxwidthsmall, $maxheightsmall, '_small', $quality);
152  if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbSmall, $reg)) {
153  $imgThumbSmall = $reg[1]; // Save only basename
154  dolibarr_set_const($db, $constant."_SMALL", $imgThumbSmall, 'chaine', 0, '', $conf->entity);
155  } else {
156  dol_syslog($imgThumbSmall);
157  }
158 
159  // Create mini thumb, Used on menu or for setup page for example
160  $imgThumbMini = vignette($dirforimage.$original_file, $maxwidthmini, $maxheightmini, '_mini', $quality);
161  if (image_format_supported($imgThumbMini) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbMini, $reg)) {
162  $imgThumbMini = $reg[1]; // Save only basename
163  dolibarr_set_const($db, $constant."_MINI", $imgThumbMini, 'chaine', 0, '', $conf->entity);
164  } else {
165  dol_syslog($imgThumbMini);
166  }
167  } else {
168  dol_syslog("ErrorImageFormatNotSupported", LOG_WARNING);
169  }
170  } elseif (preg_match('/^ErrorFileIsInfectedWithAVirus/', $result)) {
171  $error++;
172  $langs->load("errors");
173  $tmparray = explode(':', $result);
174  setEventMessages($langs->trans('ErrorFileIsInfectedWithAVirus', $tmparray[1]), null, 'errors');
175  } elseif (preg_match('/^ErrorFileSizeTooLarge/', $result)) {
176  $error++;
177  setEventMessages($langs->trans("ErrorFileSizeTooLarge"), null, 'errors');
178  } else {
179  $error++;
180  setEventMessages($langs->trans("ErrorFailedToSaveFile"), null, 'errors');
181  }
182  } else {
183  $error++;
184  $langs->load("errors");
185  setEventMessages($langs->trans("ErrorBadImageFormat"), null, 'errors');
186  }
187  }
188  /*}*/
189  }
190 
191  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MANAGERS", GETPOST("MAIN_INFO_SOCIETE_MANAGERS", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
192  dolibarr_set_const($db, "MAIN_INFO_GDPR", GETPOST("MAIN_INFO_GDPR", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
193  dolibarr_set_const($db, "MAIN_INFO_CAPITAL", GETPOST("capital", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
194  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FORME_JURIDIQUE", GETPOST("forme_juridique_code", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
195  dolibarr_set_const($db, "MAIN_INFO_SIREN", GETPOST("siren", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
196  dolibarr_set_const($db, "MAIN_INFO_SIRET", GETPOST("siret", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
197  dolibarr_set_const($db, "MAIN_INFO_APE", GETPOST("ape", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
198  dolibarr_set_const($db, "MAIN_INFO_RCS", GETPOST("rcs", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
199  dolibarr_set_const($db, "MAIN_INFO_PROFID5", GETPOST("MAIN_INFO_PROFID5", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
200  dolibarr_set_const($db, "MAIN_INFO_PROFID6", GETPOST("MAIN_INFO_PROFID6", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
201 
202  dolibarr_set_const($db, "MAIN_INFO_TVAINTRA", GETPOST("tva", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
203  dolibarr_set_const($db, "MAIN_INFO_SOCIETE_OBJECT", GETPOST("object", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
204 
205  dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START", GETPOST("SOCIETE_FISCAL_MONTH_START", 'int'), 'chaine', 0, '', $conf->entity);
206 
207  // Sale tax options
208  $usevat = GETPOST("optiontva", 'aZ09');
209  $uselocaltax1 = GETPOST("optionlocaltax1", 'aZ09');
210  $uselocaltax2 = GETPOST("optionlocaltax2", 'aZ09');
211  if ($uselocaltax1 == 'localtax1on' && !$usevat) {
212  setEventMessages($langs->trans("IfYouUseASecondTaxYouMustSetYouUseTheMainTax"), null, 'errors');
213  $error++;
214  }
215  if ($uselocaltax2 == 'localtax2on' && !$usevat) {
216  setEventMessages($langs->trans("IfYouUseAThirdTaxYouMustSetYouUseTheMainTax"), null, 'errors');
217  $error++;
218  }
219 
220  dolibarr_set_const($db, "FACTURE_TVAOPTION", $usevat, 'chaine', 0, '', $conf->entity);
221  dolibarr_set_const($db, "FACTURE_LOCAL_TAX1_OPTION", $uselocaltax1, 'chaine', 0, '', $conf->entity);
222  dolibarr_set_const($db, "FACTURE_LOCAL_TAX2_OPTION", $uselocaltax2, 'chaine', 0, '', $conf->entity);
223 
224  if (GETPOST("optionlocaltax1") == "localtax1on") {
225  if (!GETPOSTISSET('lt1')) {
226  dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX1", 0, 'chaine', 0, '', $conf->entity);
227  } else {
228  dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX1", GETPOST('lt1', 'aZ09'), 'chaine', 0, '', $conf->entity);
229  }
230  dolibarr_set_const($db, "MAIN_INFO_LOCALTAX_CALC1", GETPOST("clt1", 'aZ09'), 'chaine', 0, '', $conf->entity);
231  }
232  if (GETPOST("optionlocaltax2") == "localtax2on") {
233  if (!GETPOSTISSET('lt2')) {
234  dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX2", 0, 'chaine', 0, '', $conf->entity);
235  } else {
236  dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX2", GETPOST('lt2', 'aZ09'), 'chaine', 0, '', $conf->entity);
237  }
238  dolibarr_set_const($db, "MAIN_INFO_LOCALTAX_CALC2", GETPOST("clt2", 'aZ09'), 'chaine', 0, '', $conf->entity);
239  }
240 
241  // Remove constant MAIN_INFO_SOCIETE_SETUP_TODO_WARNING
242  dolibarr_del_const($db, "MAIN_INFO_SOCIETE_SETUP_TODO_WARNING", $conf->entity);
243 
244  if (!$error) {
245  if (GETPOST('save')) { // To avoid to show message when we juste switch the country that resubmit the form.
246  setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
247  }
248  $db->commit();
249  } else {
250  $db->rollback();
251  }
252 
253  if ($action != 'updateedit' && !$error) {
254  header("Location: ".$_SERVER["PHP_SELF"]);
255  exit;
256  }
257 }
258 
259 if ($action == 'addthumb' || $action == 'addthumbsquarred') { // Regenerate thumbs
260  if (file_exists($conf->mycompany->dir_output.'/logos/'.$_GET["file"])) {
261  $isimage = image_format_supported($_GET["file"]);
262 
263  // Create thumbs of logo
264  if ($isimage > 0) {
265  $constant = "MAIN_INFO_SOCIETE_LOGO";
266  if ($action == 'addthumbsquarred') {
267  $constant = "MAIN_INFO_SOCIETE_LOGO_SQUARRED";
268  }
269 
270  $reg = array();
271 
272  // Create thumbs
273  //$object->addThumbs($newfile); // We can't use addThumbs here yet because we need name of generated thumbs to add them into constants. TODO Check if need such constants. We should be able to retrieve value with get...
274 
275  // Create small thumb. Used on logon for example
276  $imgThumbSmall = vignette($conf->mycompany->dir_output.'/logos/'.$_GET["file"], $maxwidthsmall, $maxheightsmall, '_small', $quality);
277  if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbSmall, $reg)) {
278  $imgThumbSmall = $reg[1]; // Save only basename
279  dolibarr_set_const($db, $constant."_SMALL", $imgThumbSmall, 'chaine', 0, '', $conf->entity);
280  } else {
281  dol_syslog($imgThumbSmall);
282  }
283 
284  // Create mini thumbs. Used on menu or for setup page for example
285  $imgThumbMini = vignette($conf->mycompany->dir_output.'/logos/'.$_GET["file"], $maxwidthmini, $maxheightmini, '_mini', $quality);
286  if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i', $imgThumbMini, $reg)) {
287  $imgThumbMini = $reg[1]; // Save only basename
288  dolibarr_set_const($db, $constant."_MINI", $imgThumbMini, 'chaine', 0, '', $conf->entity);
289  } else {
290  dol_syslog($imgThumbMini);
291  }
292 
293  header("Location: ".$_SERVER["PHP_SELF"]);
294  exit;
295  } else {
296  $error++;
297  $langs->load("errors");
298  setEventMessages($langs->trans("ErrorBadImageFormat"), null, 'errors');
299  dol_syslog($langs->transnoentities("ErrorBadImageFormat"), LOG_INFO);
300  }
301  } else {
302  $error++;
303  $langs->load("errors");
304  setEventMessages($langs->trans("ErrorFileDoesNotExists", GETPOST("file")), null, 'errors');
305  dol_syslog($langs->transnoentities("ErrorFileDoesNotExists", GETPOST("file")), LOG_WARNING);
306  }
307 }
308 
309 
310 if ($action == 'removelogo' || $action == 'removelogosquarred') {
311  $constant = "MAIN_INFO_SOCIETE_LOGO";
312  if ($action == 'removelogosquarred') {
313  $constant = "MAIN_INFO_SOCIETE_LOGO_SQUARRED";
314  }
315 
316  require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
317 
318  $logofilename = $mysoc->logo;
319  $logofilenamebis = $mysoc->logo_squarred;
320  if ($action == 'removelogosquarred') {
321  $logofilename = $mysoc->logo_squarred;
322  $logofilenamebis = $mysoc->logo;
323  }
324 
325  $logofile = $conf->mycompany->dir_output.'/logos/'.$logofilename;
326  if ($logofilename != '' && $logofilename != $logofilenamebis) {
327  dol_delete_file($logofile);
328  }
329  dolibarr_del_const($db, $constant, $conf->entity);
330  if ($action == 'removelogosquarred') {
331  $mysoc->logo_squarred = '';
332  } else {
333  $mysoc->logo = '';
334  }
335 
336  $logofilename = $mysoc->logo_small;
337  $logofilenamebis = $mysoc->logo_squarred_small;
338  if ($action == 'removelogosquarred') {
339  $logofilename = $mysoc->logo_squarred_small;
340  $logofilenamebis = $mysoc->logo_small;
341  }
342 
343  $logosmallfile = $conf->mycompany->dir_output.'/logos/thumbs/'.$logofilename;
344  if ($logofilename != '' && $logofilename != $logofilenamebis) {
345  dol_delete_file($logosmallfile);
346  }
347  dolibarr_del_const($db, $constant."_SMALL", $conf->entity);
348  if ($action == 'removelogosquarred') {
349  $mysoc->logo_squarred_small = '';
350  } else {
351  $mysoc->logo_small = '';
352  }
353 
354  $logofilename = $mysoc->logo_mini;
355  $logofilenamebis = $mysoc->logo_squarred_mini;
356  if ($action == 'removelogosquarred') {
357  $logofilename = $mysoc->logo_squarred_mini;
358  $logofilenamebis = $mysoc->logo_mini;
359  }
360 
361  $logominifile = $conf->mycompany->dir_output.'/logos/thumbs/'.$logofilename;
362  if ($logofilename != '' && $logofilename != $logofilenamebis) {
363  dol_delete_file($logominifile);
364  }
365  dolibarr_del_const($db, $constant."_MINI", $conf->entity);
366  if ($action == 'removelogosquarred') {
367  $mysoc->logo_squarred_mini = '';
368  } else {
369  $mysoc->logo_mini = '';
370  }
371 }
372 
373 
374 /*
375  * View
376  */
377 
378 $wikihelp = 'EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones';
379 llxHeader('', $langs->trans("Setup"), $wikihelp);
380 
381 $form = new Form($db);
382 $formother = new FormOther($db);
383 $formcompany = new FormCompany($db);
384 
385 $countrynotdefined = '<span class="error">'.$langs->trans("ErrorSetACountryFirst").' <a href="#trzipbeforecountry">('.$langs->trans("SeeAbove").')</a></span>';
386 
387 print load_fiche_titre($langs->trans("CompanyFoundation"), '', 'title_setup');
388 
390 
391 print dol_get_fiche_head($head, 'company', '', -1, '');
392 
393 print '<span class="opacitymedium">'.$langs->trans("CompanyFundationDesc", $langs->transnoentities("Save"))."</span><br>\n";
394 print "<br><br>\n";
395 
396 
397 // Edit parameters
398 
399 if (!empty($conf->use_javascript_ajax)) {
400  print "\n".'<script type="text/javascript">';
401  print '$(document).ready(function () {
402  $("#selectcountry_id").change(function() {
403  document.form_index.action.value="updateedit";
404  document.form_index.submit();
405  });
406  });';
407  print '</script>'."\n";
408 }
409 
410 print '<form enctype="multipart/form-data" method="POST" action="'.$_SERVER["PHP_SELF"].'" name="form_index">';
411 print '<input type="hidden" name="token" value="'.newToken().'">';
412 print '<input type="hidden" name="action" value="update">';
413 
414 print '<table class="noborder centpercent editmode">';
415 print '<tr class="liste_titre"><th class="titlefieldcreate wordbreak">'.$langs->trans("CompanyInfo").'</th><th>'.$langs->trans("Value").'</th></tr>'."\n";
416 
417 // Name
418 print '<tr class="oddeven"><td class="fieldrequired wordbreak"><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
419 print '<input name="nom" id="name" class="minwidth200" value="'.dol_escape_htmltag((GETPOSTISSET('nom') ? GETPOST('nom', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_NOM) ? $conf->global->MAIN_INFO_SOCIETE_NOM : ''))).'"'.(empty($conf->global->MAIN_INFO_SOCIETE_NOM) ? ' autofocus="autofocus"' : '').'></td></tr>'."\n";
420 
421 // Address
422 print '<tr class="oddeven"><td><label for="MAIN_INFO_SOCIETE_ADDRESS">'.$langs->trans("CompanyAddress").'</label></td><td>';
423 print '<textarea name="MAIN_INFO_SOCIETE_ADDRESS" id="MAIN_INFO_SOCIETE_ADDRESS" class="quatrevingtpercent" rows="'.ROWS_3.'">'.(GETPOSTISSET('MAIN_INFO_SOCIETE_ADDRESS') ? GETPOST('MAIN_INFO_SOCIETE_ADDRESS', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_ADDRESS) ? $conf->global->MAIN_INFO_SOCIETE_ADDRESS : '')).'</textarea></td></tr>'."\n";
424 
425 // Zip
426 print '<tr class="oddeven" id="trzipbeforecountry"><td><label for="MAIN_INFO_SOCIETE_ZIP">'.$langs->trans("CompanyZip").'</label></td><td>';
427 print '<input class="width100" name="MAIN_INFO_SOCIETE_ZIP" id="MAIN_INFO_SOCIETE_ZIP" value="'.dol_escape_htmltag((GETPOSTISSET('MAIN_INFO_SOCIETE_ZIP') ? GETPOST('MAIN_INFO_SOCIETE_ZIP', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_ZIP) ? $conf->global->MAIN_INFO_SOCIETE_ZIP : ''))).'"></td></tr>'."\n";
428 
429 print '<tr class="oddeven" id="trtownbeforecountry"><td><label for="MAIN_INFO_SOCIETE_TOWN">'.$langs->trans("CompanyTown").'</label></td><td>';
430 print '<input name="MAIN_INFO_SOCIETE_TOWN" class="minwidth200" id="MAIN_INFO_SOCIETE_TOWN" value="'.dol_escape_htmltag((GETPOSTISSET('MAIN_INFO_SOCIETE_TOWN') ? GETPOST('MAIN_INFO_SOCIETE_TOWN', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_TOWN) ? $conf->global->MAIN_INFO_SOCIETE_TOWN : ''))).'"></td></tr>'."\n";
431 
432 // Country
433 print '<tr class="oddeven"><td class="fieldrequired"><label for="selectcountry_id">'.$langs->trans("Country").'</label></td><td>';
434 print img_picto('', 'globe-americas', 'class="pictofixedwidth"');
435 print $form->select_country($mysoc->country_id, 'country_id', '', 0);
436 if ($user->admin) {
437  print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
438 }
439 print '</td></tr>'."\n";
440 
441 print '<tr class="oddeven"><td class="wordbreak"><label for="state_id">'.$langs->trans("State").'</label></td><td>';
442 $state_id = 0;
443 if (!empty($conf->global->MAIN_INFO_SOCIETE_STATE)) {
444  $tmp = explode(':', $conf->global->MAIN_INFO_SOCIETE_STATE);
445  $state_id = $tmp[0];
446 }
447 print img_picto('', 'state', 'class="pictofixedwidth"');
448 print $formcompany->select_state($state_id, $mysoc->country_code, 'state_id', 'maxwidth200onsmartphone minwidth300');
449 print '</td></tr>'."\n";
450 
451 // Currency
452 print '<tr class="oddeven"><td><label for="currency">'.$langs->trans("CompanyCurrency").'</label></td><td>';
453 print img_picto('', 'multicurrency', 'class="pictofixedwidth"');
454 print $form->selectCurrency($conf->currency, "currency");
455 print '</td></tr>'."\n";
456 
457 // Phone
458 print '<tr class="oddeven"><td><label for="phone">'.$langs->trans("Phone").'</label></td><td>';
459 print img_picto('', 'object_phoning', '', false, 0, 0, '', 'pictofixedwidth');
460 print '<input class="maxwidth150 widthcentpercentminusx" name="tel" id="phone" value="'.dol_escape_htmltag((GETPOSTISSET('tel') ? GETPOST('tel', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_TEL) ? $conf->global->MAIN_INFO_SOCIETE_TEL : ''))).'"></td></tr>';
461 print '</td></tr>'."\n";
462 
463 // Fax
464 print '<tr class="oddeven"><td><label for="fax">'.$langs->trans("Fax").'</label></td><td>';
465 print img_picto('', 'object_phoning_fax', '', false, 0, 0, '', 'pictofixedwidth');
466 print '<input class="maxwidth150" name="fax" id="fax" value="'.dol_escape_htmltag((GETPOSTISSET('fax') ? GETPOST('fax', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_FAX) ? $conf->global->MAIN_INFO_SOCIETE_FAX : ''))).'"></td></tr>';
467 print '</td></tr>'."\n";
468 
469 // Email
470 print '<tr class="oddeven"><td><label for="email">'.$langs->trans("EMail").'</label></td><td>';
471 print img_picto('', 'object_email', '', false, 0, 0, '', 'pictofixedwidth');
472 print '<input class="minwidth300 maxwidth500 widthcentpercentminusx" name="mail" id="email" value="'.dol_escape_htmltag((GETPOSTISSET('mail') ? GETPOST('mail', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_MAIL) ? $conf->global->MAIN_INFO_SOCIETE_MAIL : ''))).'"></td></tr>';
473 print '</td></tr>'."\n";
474 
475 // Web
476 print '<tr class="oddeven"><td><label for="web">'.$langs->trans("Web").'</label></td><td>';
477 print img_picto('', 'globe', '', false, 0, 0, '', 'pictofixedwidth');
478 print '<input class="maxwidth300 widthcentpercentminusx" name="web" id="web" value="'.dol_escape_htmltag((GETPOSTISSET('web') ? GETPOST('web', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_WEB) ? $conf->global->MAIN_INFO_SOCIETE_WEB : ''))).'"></td></tr>';
479 print '</td></tr>'."\n";
480 
481 // Barcode
482 if (isModEnabled('barcode')) {
483  print '<tr class="oddeven"><td>';
484  print '<label for="barcode">'.$langs->trans("Gencod").'</label></td><td>';
485  print '<span class="fa fa-barcode pictofixedwidth"></span>';
486  print '<input name="barcode" id="barcode" class="minwidth150 widthcentpercentminusx maxwidth300" value="'.dol_escape_htmltag((GETPOSTISSET('barcode') ? GETPOST('barcode', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_GENCODE) ? $conf->global->MAIN_INFO_SOCIETE_GENCODE : ''))).'"></td></tr>';
487  print '</td></tr>';
488 }
489 
490 // Tooltip for both Logo and LogSquarred
491 $tooltiplogo = $langs->trans('AvailableFormats').' : png, jpg, jpeg';
492 $maxfilesizearray = getMaxFileSizeArray();
493 $maxmin = $maxfilesizearray['maxmin'];
494 $tooltiplogo .= ($maxmin > 0) ? '<br>'.$langs->trans('MaxSize').' : '.$maxmin.' '.$langs->trans('Kb') : '';
495 
496 // Logo
497 print '<tr class="oddeven"><td><label for="logo">'.$form->textwithpicto($langs->trans("Logo"), $tooltiplogo).'</label></td><td>';
498 print '<div class="centpercent nobordernopadding valignmiddle "><div class="inline-block marginrightonly">';
499 if ($maxmin > 0) {
500  print '<input type="hidden" name="MAX_FILE_SIZE" value="'.($maxmin * 1024).'">'; // MAX_FILE_SIZE must precede the field type=file
501 }
502 print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="logo" id="logo" accept="image/*">';
503 print '</div>';
504 if (!empty($mysoc->logo_small)) {
505  if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small)) {
506  print '<div class="inline-block valignmiddle">';
507  print '<img style="max-height: 80px; max-width: 200px;" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_small).'">';
508  print '</div>';
509  } elseif (!empty($mysoc->logo)) {
510  if (!file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) {
511  $imgThumbMini = vignette($conf->mycompany->dir_output.'/logos/'.$mysoc->logo, $maxwidthmini, $maxheightmini, '_mini', $quality);
512  }
513  $imgThumbSmall = vignette($conf->mycompany->dir_output.'/logos/'.$mysoc->logo, $maxwidthmini, $maxheightmini, '_small', $quality);
514  print '<div class="inline-block valignmiddle">';
515  print '<img style="max-height: 80px; max-width: 200px;" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.basename($imgThumbSmall)).'">';
516  print '</div>';
517  }
518  print '<div class="inline-block valignmiddle marginrightonly">';
519  print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=removelogo&token='.newToken().'">'.img_delete($langs->trans("Delete"), '', 'marginleftonly').'</a>';
520  print '</div>';
521 } elseif (!empty($mysoc->logo)) {
522  if (file_exists($conf->mycompany->dir_output.'/logos/'.$mysoc->logo)) {
523  print '<div class="inline-block valignmiddle">';
524  print '<img style="max-height: 80px" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&file='.urlencode('logos/'.$mysoc->logo).'">';
525  print '</div>';
526  print '<div class="inline-block valignmiddle marginrightonly"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=removelogo&token='.newToken().'">'.img_delete($langs->trans("Delete"), '', 'marginleftonly').'</a></div>';
527  } else {
528  print '<div class="inline-block valignmiddle">';
529  print '<img height="80" src="'.DOL_URL_ROOT.'/public/theme/common/nophoto.png">';
530  print '</div>';
531  }
532 }
533 print '</div>';
534 print '</td></tr>';
535 
536 // Logo (squarred)
537 print '<tr class="oddeven"><td><label for="logo_squarred">'.$form->textwithpicto($langs->trans("LogoSquarred"), $tooltiplogo).'</label></td><td>';
538 print '<div class="centpercent nobordernopadding valignmiddle"><div class="inline-block marginrightonly">';
539 $maxfilesizearray = getMaxFileSizeArray();
540 $maxmin = $maxfilesizearray['maxmin'];
541 if ($maxmin > 0) {
542  print '<input type="hidden" name="MAX_FILE_SIZE" value="'.($maxmin * 1024).'">'; // MAX_FILE_SIZE must precede the field type=file
543 }
544 print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="logo_squarred" id="logo_squarred" accept="image/*">';
545 print '</div>';
546 if (!empty($mysoc->logo_squarred_small)) {
547  if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_small)) {
548  print '<div class="inline-block valignmiddle marginrightonly">';
549  print '<img style="max-height: 80px" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_small).'">';
550  print '</div>';
551  } elseif (!empty($mysoc->logo_squarred)) {
552  if (!file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) {
553  $imgThumbMini = vignette($conf->mycompany->dir_output.'/logos/'.$mysoc->logo_squarred, $maxwidthmini, $maxheightmini, '_mini', $quality);
554  }
555  $imgThumbSmall = vignette($conf->mycompany->dir_output.'/logos/'.$mysoc->logo_squarred, $maxwidthmini, $maxheightmini, '_small', $quality);
556  print '<div class="inline-block valignmiddle">';
557  print '<img style="max-height: 80px" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&file='.urlencode('logos/thumbs/'.basename($imgThumbSmall)).'">';
558  print '</div>';
559  }
560  print '<div class="inline-block valignmiddle marginrightonly"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=removelogosquarred&token='.newToken().'">'.img_delete($langs->trans("Delete"), '', 'marginleftonly').'</a></div>';
561 } elseif (!empty($mysoc->logo_squarred)) {
562  if (file_exists($conf->mycompany->dir_output.'/logos/'.$mysoc->logo_squarred)) {
563  print '<div class="inline-block valignmiddle">';
564  print '<img style="max-height: 80px" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&file='.urlencode('logos/'.$mysoc->logo_squarred).'">';
565  print '</div>';
566  print '<div class="inline-block valignmiddle marginrightonly"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=removelogosquarred&token='.newToken().'">'.img_delete($langs->trans("Delete"), '', 'marginleftonly').'</a></div>';
567  } else {
568  print '<div class="inline-block valignmiddle">';
569  print '<img height="80" src="'.DOL_URL_ROOT.'/public/theme/common/nophoto.png">';
570  print '</div>';
571  }
572 }
573 print '</div>';
574 print '</td></tr>';
575 
576 // Note
577 print '<tr class="oddeven"><td class="tdtop"><label for="note">'.$langs->trans("Note").'</label></td><td>';
578 print '<textarea class="flat quatrevingtpercent" name="note" id="note" rows="'.ROWS_5.'">'.(GETPOSTISSET('note') ? GETPOST('note', 'restricthtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? $conf->global->MAIN_INFO_SOCIETE_NOTE : '')).'</textarea></td></tr>';
579 print '</td></tr>';
580 
581 print '</table>';
582 
583 print '<br>';
584 
585 // IDs of the company (country-specific)
586 print '<div class="div-table-responsive-no-min">';
587 print '<table class="noborder centpercent editmode">';
588 print '<tr class="liste_titre"><td class="titlefieldcreate wordbreak">'.$langs->trans("CompanyIds").'</td><td>'.$langs->trans("Value").'</td></tr>';
589 
590 $langs->load("companies");
591 
592 // Managing Director(s)
593 print '<tr class="oddeven"><td><label for="director">'.$langs->trans("ManagingDirectors").'</label></td><td>';
594 print '<input name="MAIN_INFO_SOCIETE_MANAGERS" id="directors" class="minwidth300" value="'.dol_escape_htmltag((GETPOSTISSET('MAIN_INFO_SOCIETE_MANAGERS') ? GETPOST('MAIN_INFO_SOCIETE_MANAGERS', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_SOCIETE_MANAGERS) ? $conf->global->MAIN_INFO_SOCIETE_MANAGERS : ''))).'"></td></tr>';
595 
596 // GDPR contact
597 print '<tr class="oddeven"><td>';
598 print $form->textwithpicto($langs->trans("GDPRContact"), $langs->trans("GDPRContactDesc"));
599 print '</td><td>';
600 print '<input name="MAIN_INFO_GDPR" id="infodirector" class="minwidth300" value="'.dol_escape_htmltag((GETPOSTISSET("MAIN_INFO_GDPR") ? GETPOST("MAIN_INFO_GDPR", 'alphanohtml') : (!empty($conf->global->MAIN_INFO_GDPR) ? $conf->global->MAIN_INFO_GDPR : ''))).'"></td></tr>';
601 
602 // Capital
603 print '<tr class="oddeven"><td><label for="capital">'.$langs->trans("Capital").'</label></td><td>';
604 print '<input name="capital" id="capital" class="maxwidth100" value="'.dol_escape_htmltag((GETPOSTISSET('capital') ? GETPOST('capital', 'alphanohtml') : (!empty($conf->global->MAIN_INFO_CAPITAL) ? $conf->global->MAIN_INFO_CAPITAL : ''))).'"></td></tr>';
605 
606 // Juridical Status
607 print '<tr class="oddeven"><td><label for="forme_juridique_code">'.$langs->trans("JuridicalStatus").'</label></td><td>';
608 if ($mysoc->country_code) {
609  print $formcompany->select_juridicalstatus($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE, $mysoc->country_code, '', 'forme_juridique_code');
610 } else {
611  print $countrynotdefined;
612 }
613 print '</td></tr>';
614 
615 // ProfId1
616 if ($langs->transcountry("ProfId1", $mysoc->country_code) != '-') {
617  print '<tr class="oddeven"><td><label for="profid1">'.$langs->transcountry("ProfId1", $mysoc->country_code).'</label></td><td>';
618  if (!empty($mysoc->country_code)) {
619  print '<input name="siren" id="profid1" class="minwidth200" value="'.dol_escape_htmltag(!empty($conf->global->MAIN_INFO_SIREN) ? $conf->global->MAIN_INFO_SIREN : '').'">';
620  } else {
621  print $countrynotdefined;
622  }
623  print '</td></tr>';
624 }
625 
626 // ProfId2
627 if ($langs->transcountry("ProfId2", $mysoc->country_code) != '-') {
628  print '<tr class="oddeven"><td><label for="profid2">'.$langs->transcountry("ProfId2", $mysoc->country_code).'</label></td><td>';
629  if (!empty($mysoc->country_code)) {
630  print '<input name="siret" id="profid2" class="minwidth200" value="'.dol_escape_htmltag(!empty($conf->global->MAIN_INFO_SIRET) ? $conf->global->MAIN_INFO_SIRET : '').'">';
631  } else {
632  print $countrynotdefined;
633  }
634  print '</td></tr>';
635 }
636 
637 // ProfId3
638 if ($langs->transcountry("ProfId3", $mysoc->country_code) != '-') {
639  print '<tr class="oddeven"><td><label for="profid3">'.$langs->transcountry("ProfId3", $mysoc->country_code).'</label></td><td>';
640  if (!empty($mysoc->country_code)) {
641  print '<input name="ape" id="profid3" class="minwidth200" value="'.dol_escape_htmltag(!empty($conf->global->MAIN_INFO_APE) ? $conf->global->MAIN_INFO_APE : '').'">';
642  } else {
643  print $countrynotdefined;
644  }
645  print '</td></tr>';
646 }
647 
648 // ProfId4
649 if ($langs->transcountry("ProfId4", $mysoc->country_code) != '-') {
650  print '<tr class="oddeven"><td><label for="profid4">'.$langs->transcountry("ProfId4", $mysoc->country_code).'</label></td><td>';
651  if (!empty($mysoc->country_code)) {
652  print '<input name="rcs" id="profid4" class="minwidth200" value="'.dol_escape_htmltag(!empty($conf->global->MAIN_INFO_RCS) ? $conf->global->MAIN_INFO_RCS : '').'">';
653  } else {
654  print $countrynotdefined;
655  }
656  print '</td></tr>';
657 }
658 
659 // ProfId5
660 if ($langs->transcountry("ProfId5", $mysoc->country_code) != '-') {
661  print '<tr class="oddeven"><td><label for="profid5">'.$langs->transcountry("ProfId5", $mysoc->country_code).'</label></td><td>';
662  if (!empty($mysoc->country_code)) {
663  print '<input name="MAIN_INFO_PROFID5" id="profid5" class="minwidth200" value="'.dol_escape_htmltag(!empty($conf->global->MAIN_INFO_PROFID5) ? $conf->global->MAIN_INFO_PROFID5 : '').'">';
664  } else {
665  print $countrynotdefined;
666  }
667  print '</td></tr>';
668 }
669 
670 // ProfId6
671 if ($langs->transcountry("ProfId6", $mysoc->country_code) != '-') {
672  print '<tr class="oddeven"><td><label for="profid6">'.$langs->transcountry("ProfId6", $mysoc->country_code).'</label></td><td>';
673  if (!empty($mysoc->country_code)) {
674  print '<input name="MAIN_INFO_PROFID6" id="profid6" class="minwidth200" value="'.dol_escape_htmltag(!empty($conf->global->MAIN_INFO_PROFID6) ? $conf->global->MAIN_INFO_PROFID6 : '').'">';
675  } else {
676  print $countrynotdefined;
677  }
678  print '</td></tr>';
679 }
680 
681 // Intra-community VAT number
682 print '<tr class="oddeven"><td><label for="intra_vat">'.$langs->trans("VATIntra").'</label></td><td>';
683 print '<input name="tva" id="intra_vat" class="minwidth200" value="'.dol_escape_htmltag(!empty($conf->global->MAIN_INFO_TVAINTRA) ? $conf->global->MAIN_INFO_TVAINTRA : '').'">';
684 print '</td></tr>';
685 
686 // Object of the company
687 print '<tr class="oddeven"><td><label for="object">'.$langs->trans("CompanyObject").'</label></td><td>';
688 print '<textarea class="flat quatrevingtpercent" name="object" id="object" rows="'.ROWS_5.'">'.(!empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? $conf->global->MAIN_INFO_SOCIETE_OBJECT : '').'</textarea></td></tr>';
689 print '</td></tr>';
690 
691 print '</table>';
692 print '</div>';
693 
694 
695 // Fiscal year start
696 print '<br>';
697 print '<table class="noborder centpercent editmode">';
698 print '<tr class="liste_titre">';
699 print '<td class="titlefieldcreate">'.$langs->trans("FiscalYearInformation").'</td><td>'.$langs->trans("Value").'</td>';
700 print "</tr>\n";
701 
702 print '<tr class="oddeven"><td><label for="SOCIETE_FISCAL_MONTH_START">'.$langs->trans("FiscalMonthStart").'</label></td><td>';
703 print $formother->select_month(!empty($conf->global->SOCIETE_FISCAL_MONTH_START) ? $conf->global->SOCIETE_FISCAL_MONTH_START : '', 'SOCIETE_FISCAL_MONTH_START', 0, 1, 'maxwidth100').'</td></tr>';
704 
705 print "</table>";
706 print '<br>';
707 
708 
709 // Sales taxes (VAT, IRPF, ...)
710 print load_fiche_titre($langs->trans("TypeOfSaleTaxes"), '', 'object_payment');
711 
712 print '<table class="noborder centpercent editmode">';
713 print '<tr class="liste_titre">';
714 print '<td class="titlefieldcreate">'.$langs->trans("VATManagement").'</td><td>'.$langs->trans("Description").'</td>';
715 print '<td class="right">&nbsp;</td>';
716 print "</tr>\n";
717 
718 // Main tax
719 print '<tr class="oddeven"><td><label><input type="radio" name="optiontva" id="use_vat" value="1"'.(empty($conf->global->FACTURE_TVAOPTION) ? "" : " checked")."> ".$langs->trans("VATIsUsed")."</label></td>";
720 print '<td colspan="2">';
721 $tooltiphelp = '';
722 if ($mysoc->country_code == 'FR') {
723  $tooltiphelp = '<i>'.$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."</i>";
724 }
725 print '<label for="use_vat">'.$form->textwithpicto($langs->trans("VATIsUsedDesc"), $tooltiphelp)."</label>";
726 print "</td></tr>\n";
727 
728 
729 print '<tr class="oddeven"><td width="140"><label><input type="radio" name="optiontva" id="no_vat" value="0"'.(empty($conf->global->FACTURE_TVAOPTION) ? " checked" : "")."> ".$langs->trans("VATIsNotUsed")."</label></td>";
730 print '<td colspan="2">';
731 $tooltiphelp = '';
732 if ($mysoc->country_code == 'FR') {
733  $tooltiphelp = "<i>".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."</i>\n";
734 }
735 print '<label for="no_vat">'.$form->textwithpicto($langs->trans("VATIsNotUsedDesc"), $tooltiphelp)."</label>";
736 print "</td></tr>\n";
737 
738 print "</table>";
739 
740 // Second tax
741 print '<br>';
742 print '<table class="noborder centpercent editmode">';
743 print '<tr class="liste_titre">';
744 print '<td class="titlefieldcreate">'.$form->textwithpicto($langs->transcountry("LocalTax1Management", $mysoc->country_code), $langs->transcountry("LocalTax1IsUsedDesc", $mysoc->country_code)).'</td><td>'.$langs->trans("Description").'</td>';
745 print '<td class="right">&nbsp;</td>';
746 print "</tr>\n";
747 
748 if ($mysoc->useLocalTax(1)) {
749  // Note: When option is not set, it must not appears as set on on, because there is no default value for this option
750  print '<tr class="oddeven"><td><input type="radio" name="optionlocaltax1" id="lt1" value="localtax1on"'.(($conf->global->FACTURE_LOCAL_TAX1_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1on") ? " checked" : "").'> <label for="lt1">'.$langs->transcountry("LocalTax1IsUsed", $mysoc->country_code)."</label></td>";
751  print '<td colspan="2">';
752  print '<div class="nobordernopadding">';
753  $tooltiphelp = $langs->transcountry("LocalTax1IsUsedExample", $mysoc->country_code);
754  $tooltiphelp = ($tooltiphelp != "LocalTax1IsUsedExample" ? "<i>".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsUsedExample", $mysoc->country_code)."</i>\n" : "");
755  print $form->textwithpicto($langs->transcountry("LocalTax1IsUsedDesc", $mysoc->country_code), $tooltiphelp);
756  if (!isOnlyOneLocalTax(1)) {
757  print '<br><label for="lt1">'.$langs->trans("LTRate").'</label>: ';
758  $formcompany->select_localtax(1, $conf->global->MAIN_INFO_VALUE_LOCALTAX1, "lt1");
759  }
760 
761  $opcions = array($langs->trans("CalcLocaltax1").' '.$langs->trans("CalcLocaltax1Desc"), $langs->trans("CalcLocaltax2").' - '.$langs->trans("CalcLocaltax2Desc"), $langs->trans("CalcLocaltax3").' - '.$langs->trans("CalcLocaltax3Desc"));
762 
763  print '<br><label for="clt1">'.$langs->trans("CalcLocaltax").'</label>: ';
764  print $form->selectarray("clt1", $opcions, $conf->global->MAIN_INFO_LOCALTAX_CALC1);
765  print "</div>";
766  print "</td></tr>\n";
767 
768  print '<tr class="oddeven"><td><input type="radio" name="optionlocaltax1" id="nolt1" value="localtax1off"'.((empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) || $conf->global->FACTURE_LOCAL_TAX1_OPTION == "localtax1off") ? " checked" : "").'> <label for="nolt1">'.$langs->transcountry("LocalTax1IsNotUsed", $mysoc->country_code)."</label></td>";
769  print '<td colspan="2">';
770  $tooltiphelp = $langs->transcountry("LocalTax1IsNotUsedExample", $mysoc->country_code);
771  $tooltiphelp = ($tooltiphelp != "LocalTax1IsNotUsedExample" ? "<i>".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsNotUsedExample", $mysoc->country_code)."</i>\n" : "");
772  print $form->textwithpicto($langs->transcountry("LocalTax1IsNotUsedDesc", $mysoc->country_code), $tooltiphelp);
773  print "</td></tr>\n";
774 } else {
775  if (empty($mysoc->country_code)) {
776  print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
777  } else {
778  print '<tr class="oddeven nohover"><td class="" colspan="3"><span class="opacitymedium">'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryVAT"), $langs->transnoentitiesnoconv("LocalTax1Management")).'</span></td></tr>';
779  }
780 }
781 
782 print "</table>";
783 
784 // Third tax system
785 print '<br>';
786 print '<table class="noborder centpercent editmode">';
787 print '<tr class="liste_titre">';
788 print '<td class="titlefieldcreate">'.$form->textwithpicto($langs->transcountry("LocalTax2Management", $mysoc->country_code), $langs->transcountry("LocalTax2IsUsedDesc", $mysoc->country_code)).'</td><td>'.$langs->trans("Description").'</td>';
789 print '<td class="right">&nbsp;</td>';
790 print "</tr>\n";
791 
792 if ($mysoc->useLocalTax(2)) {
793  // Note: When option is not set, it must not appears as set on on, because there is no default value for this option
794  print '<tr class="oddeven"><td><input type="radio" name="optionlocaltax2" id="lt2" value="localtax2on"'.(($conf->global->FACTURE_LOCAL_TAX2_OPTION == '1' || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2on") ? " checked" : "").'> <label for="lt2">'.$langs->transcountry("LocalTax2IsUsed", $mysoc->country_code)."</label></td>";
795  print '<td colspan="2">';
796  print '<div class="nobordernopadding">';
797  print '<label for="lt2">'.$langs->transcountry("LocalTax2IsUsedDesc", $mysoc->country_code)."</label>";
798  $tooltiphelp = $langs->transcountry("LocalTax2IsUsedExample", $mysoc->country_code);
799  $tooltiphelp = ($tooltiphelp != "LocalTax2IsUsedExample" ? "<i>".$langs->trans("Example").': '.$langs->transcountry("LocalTax2IsUsedExample", $mysoc->country_code)."</i>\n" : "");
800  if (!isOnlyOneLocalTax(2)) {
801  print '<br><label for="lt2">'.$langs->trans("LTRate").'</label>: ';
802  $formcompany->select_localtax(2, $conf->global->MAIN_INFO_VALUE_LOCALTAX2, "lt2");
803  }
804  print '<br><label for="clt2">'.$langs->trans("CalcLocaltax").'</label>: ';
805  print $form->selectarray("clt2", $opcions, $conf->global->MAIN_INFO_LOCALTAX_CALC2);
806  print "</div>";
807  print "</td></tr>\n";
808 
809  print '<tr class="oddeven"><td><input type="radio" name="optionlocaltax2" id="nolt2" value="localtax2off"'.((empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) || $conf->global->FACTURE_LOCAL_TAX2_OPTION == "localtax2off") ? " checked" : "").'> <label for="nolt2">'.$langs->transcountry("LocalTax2IsNotUsed", $mysoc->country_code)."</label></td>";
810  print '<td colspan="2">';
811  print "<div>";
812  $tooltiphelp = $langs->transcountry("LocalTax2IsNotUsedExample", $mysoc->country_code);
813  $tooltiphelp = ($tooltiphelp != "LocalTax2IsNotUsedExample" ? "<i>".$langs->trans("Example").': '.$langs->transcountry("LocalTax2IsNotUsedExample", $mysoc->country_code)."</i>\n" : "");
814  print "<label for=\"nolt2\">".$form->textwithpicto($langs->transcountry("LocalTax2IsNotUsedDesc", $mysoc->country_code), $tooltiphelp)."</label>";
815  print "</div>";
816  print "</td></tr>\n";
817 } else {
818  if (empty($mysoc->country_code)) {
819  print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
820  } else {
821  print '<tr class="oddeven nohover"><td class="" colspan="3"><span class="opacitymedium">'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryVAT"), $langs->transnoentitiesnoconv("LocalTax2Management")).'</span></td></tr>';
822  }
823 }
824 
825 print "</table>";
826 
827 
828 // Tax stamp
829 print '<br>';
830 print '<table class="noborder centpercent editmode">';
831 print '<tr class="liste_titre">';
832 print '<td>'.$form->textwithpicto($langs->trans("RevenueStamp"), $langs->trans("RevenueStampDesc")).'</td><td>'.$langs->trans("Description").'</td>';
833 print '<td class="right">&nbsp;</td>';
834 print "</tr>\n";
835 if ($mysoc->useRevenueStamp()) {
836  // Note: When option is not set, it must not appears as set on on, because there is no default value for this option
837  print '<tr class="oddeven"><td>';
838  print $langs->trans("UseRevenueStamp");
839  print "</td>";
840  print '<td colspan="2">';
841  print $langs->trans("UseRevenueStampExample", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryRevenueStamp"));
842  print "</td></tr>\n";
843 } else {
844  if (empty($mysoc->country_code)) {
845  print '<tr class="oddeven nohover"><td class="">'.$countrynotdefined.'</td><td></td><td></td></tr>';
846  } else {
847  print '<tr class="oddeven nohover"><td class="" colspan="3"><span class="opacitymedium">'.$langs->trans("NoLocalTaxXForThisCountry", $langs->transnoentitiesnoconv("Setup"), $langs->transnoentitiesnoconv("Dictionaries"), $langs->transnoentitiesnoconv("DictionaryRevenueStamp"), $langs->transnoentitiesnoconv("RevenueStamp")).'</span></td></tr>';
848  }
849 }
850 
851 print "</table>";
852 
853 print $form->buttonsSaveCancel("Save", '');
854 
855 print '</form>';
856 
857 
858 // End of page
859 llxFooter();
860 $db->close();
dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $note='', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
Definition: admin.lib.php:632
dolibarr_del_const($db, $name, $entity=1)
Delete a constant.
Definition: admin.lib.php:556
activateModulesRequiredByCountry($country_code)
Activate external modules mandatory when country is country_code.
Definition: admin.lib.php:1466
company_admin_prepare_head()
Return array head with list of tabs to view object informations.
Definition: admin.lib.php:1977
if(GETPOSTISSET('MAIN_AGENDA_XCAL_EXPORTKEY')) if(GETPOSTISSET('MAIN_AGENDA_EXPORT_PAST_DELAY')) if(GETPOSTISSET('MAIN_AGENDA_EXPORT_CACHE')) if(GETPOSTISSET('AGENDA_EXPORT_FIX_TZ')) if($actionsave) if(!isset($conf->global->MAIN_AGENDA_EXPORT_PAST_DELAY)) $wikihelp
View.
Definition: agenda_xcal.php:90
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 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.
Classe permettant la generation de composants html autre Only common components are here.
getCountry($searchkey, $withcode='', $dbtouse=0, $outputlangs='', $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
getState($id, $withcode='', $dbtouse=0, $withregion=0, $outputlangs='', $entconv=1)
Return state translated from an id.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
Definition: card.php:143
dol_delete_file($file, $disableglob=0, $nophperrors=0, $nohook=0, $object=null, $allowdotdot=false, $indexdatabase=1, $nolog=0)
Remove a file or several files with a mask.
Definition: files.lib.php:1251
dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disablevirusscan=0, $uploaderrorcode=0, $nohook=0, $varfiles='addedfile', $upload_dir='')
Make control on an uploaded file from an GUI page and move it to final destination.
Definition: files.lib.php:1112
isOnlyOneLocalTax($local)
Return true if LocalTax (1 or 2) is unique.
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='')
Show tabs of a record.
img_delete($titlealt='default', $other='class="pictodelete"', $morecss='')
Show delete logo.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='')
Set event messages in dol_events session object.
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.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='')
Show information for admin users or standard users.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
isModEnabled($module)
Is Dolibarr module enabled.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
dol_mkdir($dir, $dataroot='', $newmask='')
Creation of a directory (this can create recursive subdir)
vignette($file, $maxWidth=160, $maxHeight=120, $extName='_small', $quality=50, $outdir='thumbs', $targetformat=0)
Create a thumbnail from an image file (Supported extensions are gif, jpg, png and bmp).
Definition: images.lib.php:511
image_format_supported($file, $acceptsvg=0)
Return if a filename is file name of a supported image format.
Definition: images.lib.php:80
getMaxFileSizeArray()
Return the max allowed for file upload.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.