34require
'../main.inc.php';
43require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
44require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
45require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
46require_once DOL_DOCUMENT_ROOT.
'/core/lib/images.lib.php';
47require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
48require_once DOL_DOCUMENT_ROOT.
'/core/lib/functions2.lib.php';
49require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
50require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
51require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
53$action =
GETPOST(
'action',
'aZ09');
54$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'admincompany';
58$langs->loadLangs(array(
'admin',
'companies',
'bills'));
67$maxwidthsmall = $tmparraysize[
'maxwidthsmall'];
68$maxheightsmall = $tmparraysize[
'maxheightsmall'];
69$maxwidthmini = $tmparraysize[
'maxwidthmini'];
70$maxheightmini = $tmparraysize[
'maxheightmini'];
71$quality = $tmparraysize[
'quality'];
74$hookmanager->initHooks(array(
'admincompany',
'globaladmin'));
79 $setupcompanynotcomplete = 1;
81 $setupcompanynotcomplete = 0;
90$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
92 setEventMessages($hookmanager->error, $hookmanager->errors,
'errors');
95if (($action ==
'update' && !
GETPOST(
"cancel",
'alpha'))
96|| ($action ==
'updateedit')) {
100 if (!empty($tmparray[
'id'])) {
102 include_once DOL_DOCUMENT_ROOT.
'/blockedlog/lib/blockedlog.lib.php';
104 $langs->load(
"blockedlog");
105 setEventMessages($langs->trans(
"BlockedLogCountryChangeNotAllowedFR"),
null,
'errors');
108 if ($tmparray[
'code'] ==
'FR' && $tmparray[
'id'] !=
$mysoc->country_id) {
113 $mysoc->country_id = $tmparray[
'id'];
114 $mysoc->country_code = $tmparray[
'code'];
115 $mysoc->country_label = $tmparray[
'label'];
120 activateModulesRequiredByCountry(
$mysoc->country_code);
125 if (!empty($tmparray[
'id'])) {
126 $mysoc->state_id = $tmparray[
'id'];
127 $mysoc->state_code = $tmparray[
'code'];
128 $mysoc->state_label = $tmparray[
'label'];
150 $dirforimage =
$conf->mycompany->dir_output.
'/logos/';
152 $arrayofimages = array(
'logo',
'logo_squarred');
154 foreach ($arrayofimages as $varforimage) {
156 $langs->load(
"errors");
157 $mesg = $langs->trans(
"ErrorBadImageFormat");
158 if (!function_exists(
"imagecreate")) {
159 $mesg .=
' - '.$langs->trans(
"ErrorPHPDoesNotSupport",
"GD");
162 $supportedextensions = preg_replace(
'/\\\./',
'', $supportedextensions);
163 $mesg .=
' - '.$langs->trans(
"ErrorSupportedFormatAre", implode(
', ', explode(
'|', $supportedextensions)));
165 setEventMessages($mesg,
null,
'errors');
172 if (preg_match(
'/([^\\/:]+)$/i', $_FILES[$varforimage][
"name"], $reg)) {
173 $original_file = $reg[1];
177 dol_syslog(
"Move file ".$_FILES[$varforimage][
"tmp_name"].
" to ".$dirforimage.$original_file);
178 if (!is_dir($dirforimage)) {
181 $result =
dol_move_uploaded_file($_FILES[$varforimage][
"tmp_name"], $dirforimage.$original_file, 1, 0, $_FILES[$varforimage][
'error']);
183 if (is_numeric($result) && $result > 0) {
184 $constant =
"MAIN_INFO_SOCIETE_LOGO";
185 if ($varforimage ==
'logo_squarred') {
186 $constant =
"MAIN_INFO_SOCIETE_LOGO_SQUARRED";
198 $imgThumbSmall =
vignette($dirforimage.$original_file, $maxwidthsmall, $maxheightsmall,
'_small', $quality);
200 $imgThumbSmall = $reg[1];
207 $imgThumbMini =
vignette($dirforimage.$original_file, $maxwidthmini, $maxheightmini,
'_mini', $quality);
209 $imgThumbMini = $reg[1];
215 dol_syslog(
"ErrorImageFormatNotSupported", LOG_WARNING);
217 } elseif (!is_numeric($result)) {
219 $langs->load(
"errors");
220 setEventMessages($langs->trans($result),
null,
'errors');
223 setEventMessages($langs->trans(
"ErrorFailedToSaveFile"),
null,
'errors');
227 $langs->load(
"errors");
228 setEventMessages($langs->trans(
"ErrorBadImageFormat"),
null,
'errors');
255 $usevat =
GETPOST(
"optiontva",
'aZ09');
256 $uselocaltax1 =
GETPOST(
"optionlocaltax1",
'aZ09');
257 $uselocaltax2 =
GETPOST(
"optionlocaltax2",
'aZ09');
258 if ($uselocaltax1 ==
'localtax1on' && !$usevat) {
259 setEventMessages($langs->trans(
"IfYouUseASecondTaxYouMustSetYouUseTheMainTax"),
null,
'errors');
262 if ($uselocaltax2 ==
'localtax2on' && !$usevat) {
263 setEventMessages($langs->trans(
"IfYouUseAThirdTaxYouMustSetYouUseTheMainTax"),
null,
'errors');
274 if (
GETPOST(
"optionlocaltax1") ==
"localtax1on") {
282 if (
GETPOST(
"optionlocaltax2") ==
"localtax2on") {
292 if (
$mysoc->country_code ==
'GR') {
304 setEventMessages($langs->trans(
"SetupSaved"),
null,
'mesgs');
311 if ($action !=
'updateedit' && !$error) {
312 header(
"Location: ".$_SERVER[
"PHP_SELF"].($page_y ?
'?page_y='.$page_y :
''));
317if ($action ==
'addthumb' || $action ==
'addthumbsquarred') {
318 if (file_exists(
$conf->mycompany->dir_output.
'/logos/'.
GETPOST(
"file"))) {
323 $constant =
"MAIN_INFO_SOCIETE_LOGO";
324 if ($action ==
'addthumbsquarred') {
325 $constant =
"MAIN_INFO_SOCIETE_LOGO_SQUARRED";
334 $imgThumbSmall =
vignette(
$conf->mycompany->dir_output.
'/logos/'.
GETPOST(
"file"), $maxwidthsmall, $maxheightsmall,
'_small', $quality);
336 $imgThumbSmall = $reg[1];
343 $imgThumbMini =
vignette(
$conf->mycompany->dir_output.
'/logos/'.
GETPOST(
"file"), $maxwidthmini, $maxheightmini,
'_mini', $quality);
345 $imgThumbMini = $reg[1];
351 header(
"Location: ".$_SERVER[
"PHP_SELF"]);
355 $langs->load(
"errors");
356 setEventMessages($langs->trans(
"ErrorBadImageFormat"),
null,
'errors');
357 dol_syslog($langs->transnoentities(
"ErrorBadImageFormat"), LOG_INFO);
361 $langs->load(
"errors");
362 setEventMessages($langs->trans(
"ErrorFileDoesNotExists",
GETPOST(
"file")),
null,
'errors');
363 dol_syslog($langs->transnoentities(
"ErrorFileDoesNotExists",
GETPOST(
"file")), LOG_WARNING);
368if ($action ==
'removelogo' || $action ==
'removelogo_squarred') {
369 $constant =
"MAIN_INFO_SOCIETE_LOGO";
370 if ($action ==
'removelogo_squarred') {
371 $constant =
"MAIN_INFO_SOCIETE_LOGO_SQUARRED";
374 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
376 $logofilename =
$mysoc->logo;
377 $logofilenamebis =
$mysoc->logo_squarred;
378 if ($action ==
'removelogo_squarred') {
379 $logofilename =
$mysoc->logo_squarred;
380 $logofilenamebis =
$mysoc->logo;
383 $logofile =
$conf->mycompany->dir_output.
'/logos/'.$logofilename;
384 if ($logofilename !=
'' && $logofilename != $logofilenamebis) {
388 if ($action ==
'removelogo_squarred') {
389 $mysoc->logo_squarred =
'';
394 $logofilename =
$mysoc->logo_small;
395 $logofilenamebis =
$mysoc->logo_squarred_small;
396 if ($action ==
'removelogo_squarred') {
397 $logofilename =
$mysoc->logo_squarred_small;
398 $logofilenamebis =
$mysoc->logo_small;
401 $logosmallfile =
$conf->mycompany->dir_output.
'/logos/thumbs/'.$logofilename;
402 if ($logofilename !=
'' && $logofilename != $logofilenamebis) {
406 if ($action ==
'removelogo_squarred') {
407 $mysoc->logo_squarred_small =
'';
412 $logofilename =
$mysoc->logo_mini;
413 $logofilenamebis =
$mysoc->logo_squarred_mini;
414 if ($action ==
'removelogo_squarred') {
415 $logofilename =
$mysoc->logo_squarred_mini;
416 $logofilenamebis =
$mysoc->logo_mini;
419 $logominifile =
$conf->mycompany->dir_output.
'/logos/thumbs/'.$logofilename;
420 if ($logofilename !=
'' && $logofilename != $logofilenamebis) {
424 if ($action ==
'removelogo_squarred') {
425 $mysoc->logo_squarred_mini =
'';
436$wikihelp =
'EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones';
437llxHeader(
'', $langs->trans(
"Setup"), $wikihelp,
'', 0, 0,
'',
'',
'',
'mod-admin page-company');
439$form =
new Form($db);
444$countrynotdefined =
'<span class="error">'.$langs->trans(
"ErrorSetACountryFirst").
' <a href="" onclick="window.scrollTo({top: 0, behavior: \'smooth\'}); return false;">('.$langs->trans(
"SeeAbove").
')</a></span>';
446print
load_fiche_titre($langs->trans(
"CompanyFoundation"),
'',
'title_setup');
452print
'<div class="'.($setupcompanynotcomplete ?
'warning' :
'info').
'">'.$langs->trans(
"CompanyFundationDesc", $langs->transnoentities(
"Save")).
"</div>\n";
458if (!empty(
$conf->use_javascript_ajax)) {
459 print
"\n".
'<script type="text/javascript">';
460 print
'$(document).ready(function () {
461 $("#selectcountry_id").change(function() {
462 console.log("selectcountry_id change");
463 document.form_index.action.value="updateedit";
464 document.form_index.submit();
467 // Show/hide VAT exemption code field based on VAT option
468 $("input[name=\"optiontva\"]").change(function() {
469 if ($(this).val() == "0") {
470 $("#vat_exemption_code_div").show();
472 $("#vat_exemption_code_div").hide();
476 print
'</script>'.
"\n";
479print
'<form enctype="multipart/form-data" method="POST" action="'.$_SERVER[
"PHP_SELF"].
'" name="form_index" spellcheck="false">';
480print
'<input type="hidden" name="token" value="'.newToken().
'">';
481print
'<input type="hidden" name="action" value="update">';
482print
'<input type="hidden" name="page_y" value="">';
484print
'<table class="noborder centpercent editmode">';
485print
'<tr class="liste_titre"><th class="wordbreak" colspan="2">'.$langs->trans(
"CompanyInfo").
'</th></tr>'.
"\n";
488print
'<tr class="oddeven"><td class="fieldrequired titlefieldcreate wordbreak"><label for="name">'.$langs->trans(
"CompanyName").
'</label></td><td>';
489print
'<input name="name" id="name" maxlength="'.$mysoc->fields[
'nom'][
'length'].
'" class="minwidth250" value="'.dolPrintHTMLForAttribute((
GETPOSTISSET(
'name') ?
GETPOST(
'name',
'alphanohtml') :
getDolGlobalString(
'MAIN_INFO_SOCIETE_NOM'))).
'"'.(
getDolGlobalString(
'MAIN_INFO_SOCIETE_NOM') ?
'' :
' autofocus="autofocus"').
'></td></tr>'.
"\n";
492print
'<tr class="oddeven"><td class="fieldrequired"><label for="currency">'.$langs->trans(
"CompanyCurrency").
'</label></td><td>';
493print img_picto(
'',
'multicurrency',
'class="pictofixedwidth"');
495print
'</td></tr>'.
"\n";
498print
'<tr class="oddeven"><td class="fieldrequired"><label for="selectcountry_id">'.$langs->trans(
"Country").
'</label></td><td>';
499print img_picto(
'',
'globe-americas',
'class="pictofixedwidth"');
500print $form->select_country((
string)
$mysoc->country_id,
'country_id',
'', 0);
501print
info_admin($langs->trans(
"YouCanChangeValuesForThisListFromDictionarySetup"), 1);
502print
'</td></tr>'.
"\n";
505print
'<tr class="oddeven"><td><label for="MAIN_INFO_SOCIETE_ADDRESS">'.$langs->trans(
"CompanyAddress").
'</label></td><td>';
506print
'<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') :
getDolGlobalString(
'MAIN_INFO_SOCIETE_ADDRESS')).
'</textarea></td></tr>'.
"\n";
509print
'<tr class="oddeven"><td><label for="MAIN_INFO_SOCIETE_ZIP">'.$langs->trans(
"CompanyZip").
'</label></td><td>';
510print
'<input class="width100" name="MAIN_INFO_SOCIETE_ZIP" id="MAIN_INFO_SOCIETE_ZIP" value="'.dolPrintHTMLForAttribute((
GETPOSTISSET(
'MAIN_INFO_SOCIETE_ZIP') ?
GETPOST(
'MAIN_INFO_SOCIETE_ZIP',
'alphanohtml') :
getDolGlobalString(
'MAIN_INFO_SOCIETE_ZIP'))).
'"></td></tr>'.
"\n";
512print
'<tr class="oddeven"><td><label for="MAIN_INFO_SOCIETE_TOWN">'.$langs->trans(
"CompanyTown").
'</label></td><td>';
513print
'<input name="MAIN_INFO_SOCIETE_TOWN" class="minwidth200" id="MAIN_INFO_SOCIETE_TOWN" value="'.dolPrintHTMLForAttribute((
GETPOSTISSET(
'MAIN_INFO_SOCIETE_TOWN') ?
GETPOST(
'MAIN_INFO_SOCIETE_TOWN',
'alphanohtml') :
getDolGlobalString(
'MAIN_INFO_SOCIETE_TOWN'))).
'"></td></tr>'.
"\n";
516print
'<tr class="oddeven"><td class="wordbreak"><label for="state_id">'.$langs->trans(
"State").
'</label></td><td>';
522print img_picto(
'',
'state',
'class="pictofixedwidth"');
523print $formcompany->select_state($state_id,
$mysoc->country_code,
'state_id',
'maxwidth200onsmartphone minwidth300');
524print
'</td></tr>'.
"\n";
527print
'<tr class="oddeven"><td><label for="phone">'.$langs->trans(
"Phone").
'</label></td><td>';
528print $form->showPhoneInput(
getDolGlobalString(
'MAIN_INFO_SOCIETE_TEL'),
'phone',
$mysoc->country_id,
'object_phoning',
'maxwidth150 widthcentpercentminusx');
530print
'</td></tr>'.
"\n";
533print
'<tr class="oddeven"><td><label for="phone">'.$langs->trans(
"PhoneMobile").
'</label></td><td>';
534print $form->showPhoneInput(
getDolGlobalString(
'MAIN_INFO_SOCIETE_MOBILE'),
'phone_mobile',
$mysoc->country_id,
'object_phoning_mobile',
'maxwidth150 widthcentpercentminusx');
536print
'</td></tr>'.
"\n";
539print
'<tr class="oddeven"><td><label for="fax">'.$langs->trans(
"Fax").
'</label></td><td>';
540print $form->showPhoneInput(
getDolGlobalString(
'MAIN_INFO_SOCIETE_FAX'),
'fax',
$mysoc->country_id,
'object_phoning_fax',
'maxwidth150 widthcentpercentminusx');
542print
'</td></tr>'.
"\n";
545print
'<tr class="oddeven"><td><label for="email">'.$langs->trans(
"EMail").
'</label></td><td>';
546print img_picto(
'',
'object_email',
'', 0, 0, 0,
'',
'pictofixedwidth');
547print
'<input class="minwidth300 maxwidth500 widthcentpercentminusx" name="mail" id="email" value="'.dolPrintHTMLForAttribute((
GETPOSTISSET(
'mail') ?
GETPOST(
'mail',
'alphanohtml') :
getDolGlobalString(
'MAIN_INFO_SOCIETE_MAIL'))).
'"></td></tr>';
548print
'</td></tr>'.
"\n";
551print
'<tr class="oddeven"><td><label for="web">'.$langs->trans(
"Web").
'</label></td><td>';
552print img_picto(
'',
'globe',
'', 0, 0, 0,
'',
'pictofixedwidth');
553print
'<input class="maxwidth300 widthcentpercentminusx" name="web" id="web" value="'.dol_escape_htmltag((
GETPOSTISSET(
'web') ?
GETPOST(
'web',
'alphanohtml') :
getDolGlobalString(
'MAIN_INFO_SOCIETE_WEB'))).
'"></td></tr>';
554print
'</td></tr>'.
"\n";
558 print
'<tr class="oddeven"><td>';
559 print
'<label for="barcode">'.$langs->trans(
"Gencod").
'</label></td><td>';
560 print
'<span class="fa fa-barcode pictofixedwidth"></span>';
561 print
'<input name="barcode" id="barcode" class="minwidth150 widthcentpercentminusx maxwidth300" value="'.dolPrintHTMLForAttribute(
GETPOSTISSET(
'barcode') ?
GETPOST(
'barcode',
'alphanohtml') :
getDolGlobalString(
'MAIN_INFO_SOCIETE_GENCOD')).
'"></td></tr>';
567$maxmin = $maxfilesizearray[
'maxmin'];
568$tooltiplogo = $langs->trans(
'AvailableFormats').
' : png, jpg, jpeg';
569$tooltiplogo .= ($maxmin > 0) ?
'<br>'.$langs->trans(
'MaxSize').
' : '.$maxmin.
' '.$langs->trans(
'Kb') :
'';
572print
'<tr class="oddeven"><td><label for="logo">'.$form->textwithpicto($langs->trans(
"Logo"), $tooltiplogo).
'</label></td><td>';
574$modulepart =
'mycompany';
575$dirformainimage =
$conf->mycompany->dir_output;
576$subdirformainimage =
'logos/';
577$fileformainimage =
$mysoc->logo;
579print $formfile->showImageToEdit(
'logo', $modulepart, $dirformainimage, $subdirformainimage, $fileformainimage);
584print
'<tr class="oddeven"><td><label for="logo_squarred">'.$form->textwithpicto($langs->trans(
"LogoSquarred"), $tooltiplogo).
'</label></td><td>';
586$modulepart =
'mycompany';
587$dirformainimage =
$conf->mycompany->dir_output;
588$subdirformainimage =
'logos/';
589$fileformainimage =
$mysoc->logo_squarred;
591print $formfile->showImageToEdit(
'logo_squarred', $modulepart, $dirformainimage, $subdirformainimage, $fileformainimage);
596print
'<tr class="oddeven"><td class="tdtop"><label for="note">'.$langs->trans(
"Note").
'</label></td><td>';
597print
'<textarea class="flat quatrevingtpercent" name="note" id="note" rows="'.ROWS_5.
'">'.(
GETPOSTISSET(
'note') ?
GETPOST(
'note',
'restricthtml') :
getDolGlobalString(
'MAIN_INFO_SOCIETE_NOTE')).
'</textarea></td></tr>';
602print $form->buttonsSaveCancel(
"Save",
'', array(),
false,
'reposition');
608print
'<div class="div-table-responsive-no-min">';
609print
'<table class="noborder centpercent editmode">';
610print
'<tr class="liste_titre"><td class="wordbreak" colspan="2">'.$langs->trans(
"CompanyIds").
'</td></tr>';
612$langs->load(
"companies");
615print
'<tr class="oddeven"><td class="titlefieldcreate smallheight"><label for="director">'.$langs->trans(
"ManagingDirectors").
'</label></td><td>';
616print
'<input name="MAIN_INFO_SOCIETE_MANAGERS" id="directors" class="minwidth300" value="'.dolPrintHTMLForAttribute((
GETPOSTISSET(
'MAIN_INFO_SOCIETE_MANAGERS') ?
GETPOST(
'MAIN_INFO_SOCIETE_MANAGERS',
'alphanohtml') :
getDolGlobalString(
'MAIN_INFO_SOCIETE_MANAGERS'))).
'"></td></tr>';
619print
'<tr class="oddeven"><td class="smallheight">';
620print $form->textwithpicto($langs->trans(
"GDPRContact"), $langs->trans(
"GDPRContactDesc"));
622print
'<input name="MAIN_INFO_GDPR" id="infodirector" class="minwidth300" value="'.dolPrintHTMLForAttribute((
GETPOSTISSET(
"MAIN_INFO_GDPR") ?
GETPOST(
"MAIN_INFO_GDPR",
'alphanohtml') :
getDolGlobalString(
'MAIN_INFO_GDPR'))).
'"></td></tr>';
625print
'<tr class="oddeven"><td><label for="capital">'.$langs->trans(
"Capital").
'</label></td><td>';
626print
'<input name="capital" id="capital" class="maxwidth100" value="'.dolPrintHTMLForAttribute((
GETPOSTISSET(
'capital') ?
GETPOST(
'capital',
'alphanohtml') :
getDolGlobalString(
'MAIN_INFO_CAPITAL'))).
'"></td></tr>';
629print
'<tr class="oddeven"><td><label for="socialobject">'.$langs->trans(
"CompanyObject").
'</label></td><td>';
630print
'<textarea class="flat quatrevingtpercent" name="socialobject" id="socialobject" rows="'.ROWS_3.
'">'.
getDolGlobalString(
'MAIN_INFO_SOCIETE_OBJECT').
'</textarea></td></tr>';
634print
'<tr class="oddeven"><td><label for="intra_vat">'.$langs->trans(
"VATIntra").
'</label></td><td>';
635print
'<input name="tva" id="intra_vat" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_TVAINTRA')).
'">';
639print
'<tr class="oddeven"><td><label for="forme_juridique_code">'.$langs->trans(
"JuridicalStatus").
'</label></td><td>';
640if (
$mysoc->country_code) {
641 print $formcompany->select_juridicalstatus(
getDolGlobalInt(
'MAIN_INFO_SOCIETE_FORME_JURIDIQUE'),
$mysoc->country_code,
'',
'forme_juridique_code');
643 print $countrynotdefined;
648if ($langs->transcountry(
"ProfId1",
$mysoc->country_code) !=
'-') {
649 print
'<tr class="oddeven"><td><label for="profid1">'.$langs->transcountry(
"ProfId1",
$mysoc->country_code).
'</label></td><td>';
650 if (!empty(
$mysoc->country_code)) {
651 print
'<input name="siren" id="profid1" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_SIREN')).
'">';
653 print $countrynotdefined;
659if ($langs->transcountry(
"ProfId2",
$mysoc->country_code) !=
'-') {
660 print
'<tr class="oddeven"><td><label for="profid2">'.$langs->transcountry(
"ProfId2",
$mysoc->country_code).
'</label></td><td>';
661 if (!empty(
$mysoc->country_code)) {
662 print
'<input name="siret" id="profid2" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_SIRET')).
'">';
664 print $countrynotdefined;
670if ($langs->transcountry(
"ProfId3",
$mysoc->country_code) !=
'-') {
671 print
'<tr class="oddeven"><td><label for="profid3">'.$langs->transcountry(
"ProfId3",
$mysoc->country_code).
'</label></td><td>';
672 if (!empty(
$mysoc->country_code)) {
673 print
'<input name="ape" id="profid3" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_APE')).
'">';
675 print $countrynotdefined;
681if ($langs->transcountry(
"ProfId4",
$mysoc->country_code) !=
'-') {
682 print
'<tr class="oddeven"><td><label for="profid4">'.$langs->transcountry(
"ProfId4",
$mysoc->country_code).
'</label></td><td>';
683 if (!empty(
$mysoc->country_code)) {
684 print
'<input name="rcs" id="profid4" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_RCS')).
'">';
686 print $countrynotdefined;
692if ($langs->transcountry(
"ProfId5",
$mysoc->country_code) !=
'-') {
693 print
'<tr class="oddeven"><td><label for="profid5">'.$langs->transcountry(
"ProfId5",
$mysoc->country_code).
'</label></td><td>';
694 if (!empty(
$mysoc->country_code)) {
695 print
'<input name="MAIN_INFO_PROFID5" id="profid5" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_PROFID5')).
'">';
697 print $countrynotdefined;
703if ($langs->transcountry(
"ProfId6",
$mysoc->country_code) !=
'-') {
704 print
'<tr class="oddeven"><td><label for="profid6">'.$langs->transcountry(
"ProfId6",
$mysoc->country_code).
'</label></td><td>';
705 if (!empty(
$mysoc->country_code)) {
706 print
'<input name="MAIN_INFO_PROFID6" id="profid6" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_PROFID6')).
'">';
708 print $countrynotdefined;
714if ($langs->transcountry(
"ProfId7",
$mysoc->country_code) !=
'-') {
715 print
'<tr class="oddeven"><td><label for="profid7">'.$langs->transcountry(
"ProfId7",
$mysoc->country_code).
'</label></td><td>';
716 if (!empty(
$mysoc->country_code)) {
717 print
'<input name="MAIN_INFO_PROFID7" id="profid7" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_PROFID7')).
'">';
719 print $countrynotdefined;
725if ($langs->transcountry(
"ProfId8",
$mysoc->country_code) !=
'-') {
726 print
'<tr class="oddeven"><td><label for="profid8">'.$langs->transcountry(
"ProfId8",
$mysoc->country_code).
'</label></td><td>';
727 if (!empty(
$mysoc->country_code)) {
728 print
'<input name="MAIN_INFO_PROFID8" id="profid8" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_PROFID8')).
'">';
730 print $countrynotdefined;
736if ($langs->transcountry(
"ProfId9",
$mysoc->country_code) !=
'-') {
737 print
'<tr class="oddeven"><td><label for="profid9">'.$langs->transcountry(
"ProfId9",
$mysoc->country_code).
'</label></td><td>';
738 if (!empty(
$mysoc->country_code)) {
739 print
'<input name="MAIN_INFO_PROFID9" id="profid9" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_PROFID9')).
'">';
741 print $countrynotdefined;
747if ($langs->transcountry(
"ProfId10",
$mysoc->country_code) !=
'-') {
748 print
'<tr class="oddeven"><td><label for="profid10">'.$langs->transcountry(
"ProfId10",
$mysoc->country_code).
'</label></td><td>';
749 if (!empty(
$mysoc->country_code)) {
750 print
'<input name="MAIN_INFO_PROFID10" id="profid10" class="minwidth200" value="'.dolPrintHTMLForAttribute(
getDolGlobalString(
'MAIN_INFO_PROFID10')).
'">';
752 print $countrynotdefined;
763print
'<table class="noborder centpercent editmode">';
764print
'<tr class="liste_titre">';
765print
'<td class="titlefieldcreate">'.$langs->trans(
"FiscalYearInformation").
'</td><td></td>';
768print
'<tr class="oddeven"><td><label for="SOCIETE_FISCAL_MONTH_START">'.$langs->trans(
"FiscalMonthStart").
'</label></td><td>';
769print $formother->select_month(
getDolGlobalString(
'SOCIETE_FISCAL_MONTH_START'),
'SOCIETE_FISCAL_MONTH_START', 0, 1,
'maxwidth100').
'</td></tr>';
773print $form->buttonsSaveCancel(
"Save",
'', array(),
false,
'reposition');
779print
load_fiche_titre($langs->trans(
"TypeOfSaleTaxes"),
'',
'object_payment');
781print
'<table class="noborder centpercent editmode">';
782print
'<tr class="liste_titre">';
783print
'<td class="titlefieldcreate">'.$langs->trans(
"VATManagement").
'</td><td></td>';
784print
'<td class="right"> </td>';
788print
'<tr class="oddeven"><td><label><input type="radio" name="optiontva" id="use_vat" value="1"'.(!
getDolGlobalString(
'FACTURE_TVAOPTION') ?
"" :
" checked").
"> ".$langs->trans(
"VATIsUsed").
"</label></td>";
789print
'<td colspan="2">';
790$tooltiphelp = $langs->trans(
"VATIsUsedDesc");
791if (
$mysoc->country_code ==
'FR') {
792 $tooltiphelp .=
'<br><br><i>'.$langs->trans(
"Example").
': '.$langs->trans(
"VATIsUsedExampleFR").
"</i>";
794print
'<label for="use_vat">'.$form->textwithpicto($langs->trans(
"VATIsUsedStandard"), $tooltiphelp).
"</label>";
798print
'<tr class="oddeven"><td width="140"><label><input type="radio" name="optiontva" id="no_vat" value="0"'.(!
getDolGlobalString(
'FACTURE_TVAOPTION') ?
" checked" :
"").
"> ".$langs->trans(
"VATIsNotUsed").
"</label></td>";
799print
'<td colspan="2">';
801if (
$mysoc->country_code ==
'FR') {
802 $tooltiphelp =
"<i>".$langs->trans(
"Example").
': '.$langs->trans(
"VATIsNotUsedExampleFR").
"</i>\n";
804print
'<label for="no_vat">'.$form->textwithpicto($langs->trans(
"VATIsNotUsedDesc"), $tooltiphelp).
"</label>";
806print
'<div class="shownifvatnotused" id="vat_exemption_code_div"'.(getDolGlobalString(
'FACTURE_TVAOPTION') ?
' style="display: none;"' :
'').
'>';
807$placeholder = ((
$mysoc->country_code ==
'FR') ?
'VATEX-FR-FRANCHISE' :
'');
808$tooltiptext = $langs->trans(
"VATExemptionCodeDesc").
'<br>'.$langs->trans(
"VATExemptionCodeDesc2").
'<br>'.$langs->trans(
"VATExemptionCodeDesc3");
809if ((
$mysoc->country_code ==
'FR')) {
810 $tooltiptext .=
'<br><br>'.$langs->trans(
"Example").
':<br>';
811 $tooltiptext .=
'VATEX-FR-FRANCHISE, VATEX-FR-CGI261-4, VATEX-FR-J, VATEX-FR-I, VATEX-FR-D, ...';
813print $form->textwithpicto($langs->trans(
"VATExemptionCode"), $tooltiptext, 1,
'help',
'valignmiddle', 0, 3,
'exemptioncode').
' <input type="text" name="MAIN_INFO_SOCIETE_VAT_EXEMPTION_CODE" placeholder="'.$placeholder.
'" value="'.
getDolGlobalString(
'MAIN_INFO_SOCIETE_VAT_EXEMPTION_CODE').
'">';
822print
'<table class="noborder centpercent editmode">';
823print
'<tr class="liste_titre">';
824print
'<td class="titlefieldcreate">'.$form->textwithpicto($langs->transcountry(
"LocalTax1Management",
$mysoc->country_code), $langs->transcountry(
"LocalTax1IsUsedDesc",
$mysoc->country_code)).
'</td><td></td>';
825print
'<td class="right"> </td>';
828if (
$mysoc->useLocalTax(1)) {
830 print
'<tr class="oddeven"><td><input type="radio" name="optionlocaltax1" id="lt1" value="localtax1on"'.((getDolGlobalString(
'FACTURE_LOCAL_TAX1_OPTION') ==
'1' ||
getDolGlobalString(
'FACTURE_LOCAL_TAX1_OPTION') ==
"localtax1on") ?
" checked" :
"").
'> <label for="lt1">'.$langs->transcountry(
"LocalTax1IsUsed",
$mysoc->country_code).
"</label></td>";
831 print
'<td colspan="2">';
832 print
'<div class="nobordernopadding">';
833 $tooltiphelp = $langs->transcountry(
"LocalTax1IsUsedExample",
$mysoc->country_code);
834 $tooltiphelp = ($tooltiphelp !=
"LocalTax1IsUsedExample" ?
"<i>".$langs->trans(
"Example").
': '.$langs->transcountry(
"LocalTax1IsUsedExample",
$mysoc->country_code).
"</i>\n" :
"");
835 print $form->textwithpicto($langs->transcountry(
"LocalTax1IsUsedDesc",
$mysoc->country_code), $tooltiphelp);
837 print
'<br><label for="lt1">'.$langs->trans(
"LTRate").
'</label>: ';
838 $formcompany->select_localtax(1,
getDolGlobalFloat(
'MAIN_INFO_VALUE_LOCALTAX1'),
"lt1");
841 $options = array($langs->trans(
"CalcLocaltax1").
' '.$langs->trans(
"CalcLocaltax1Desc"), $langs->trans(
"CalcLocaltax2").
' - '.$langs->trans(
"CalcLocaltax2Desc"), $langs->trans(
"CalcLocaltax3").
' - '.$langs->trans(
"CalcLocaltax3Desc"));
843 print
'<br><label for="clt1">'.$langs->trans(
"CalcLocaltax").
'</label>: ';
844 print $form->selectarray(
"clt1", $options,
getDolGlobalString(
'MAIN_INFO_LOCALTAX_CALC1'));
846 print
"</td></tr>\n";
848 print
'<tr class="oddeven"><td><input type="radio" name="optionlocaltax1" id="nolt1" value="localtax1off"'.((!
getDolGlobalString(
'FACTURE_LOCAL_TAX1_OPTION') ||
getDolGlobalString(
'FACTURE_LOCAL_TAX1_OPTION') ==
"localtax1off") ?
" checked" :
"").
'> <label for="nolt1">'.$langs->transcountry(
"LocalTax1IsNotUsed",
$mysoc->country_code).
"</label></td>";
849 print
'<td colspan="2">';
850 $tooltiphelp = $langs->transcountry(
"LocalTax1IsNotUsedExample",
$mysoc->country_code);
851 $tooltiphelp = ($tooltiphelp !=
"LocalTax1IsNotUsedExample" ?
"<i>".$langs->trans(
"Example").
': '.$langs->transcountry(
"LocalTax1IsNotUsedExample",
$mysoc->country_code).
"</i>\n" :
"");
852 print $form->textwithpicto($langs->transcountry(
"LocalTax1IsNotUsedDesc",
$mysoc->country_code), $tooltiphelp);
853 print
"</td></tr>\n";
855 if (empty(
$mysoc->country_code)) {
856 print
'<tr class="oddeven nohover"><td class="" colspan="3">'.$countrynotdefined.
'</td></tr>';
858 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>';
866print
'<table class="noborder centpercent editmode">';
867print
'<tr class="liste_titre">';
868print
'<td class="titlefieldcreate">'.$form->textwithpicto($langs->transcountry(
"LocalTax2Management",
$mysoc->country_code), $langs->transcountry(
"LocalTax2IsUsedDesc",
$mysoc->country_code)).
'</td><td></td>';
869print
'<td class="right"> </td>';
872if (
$mysoc->useLocalTax(2)) {
874 print
'<tr class="oddeven"><td><input type="radio" name="optionlocaltax2" id="lt2" value="localtax2on"'.((getDolGlobalString(
'FACTURE_LOCAL_TAX2_OPTION') ==
'1' ||
getDolGlobalString(
'FACTURE_LOCAL_TAX2_OPTION') ==
"localtax2on") ?
" checked" :
"").
'> <label for="lt2">'.$langs->transcountry(
"LocalTax2IsUsed",
$mysoc->country_code).
"</label></td>";
875 print
'<td colspan="2">';
876 print
'<div class="nobordernopadding">';
877 print
'<label for="lt2">'.$langs->transcountry(
"LocalTax2IsUsedDesc",
$mysoc->country_code).
"</label>";
878 $tooltiphelp = $langs->transcountry(
"LocalTax2IsUsedExample",
$mysoc->country_code);
879 $tooltiphelp = ($tooltiphelp !=
"LocalTax2IsUsedExample" ?
"<i>".$langs->trans(
"Example").
': '.$langs->transcountry(
"LocalTax2IsUsedExample",
$mysoc->country_code).
"</i>\n" :
"");
881 print
'<br><label for="lt2">'.$langs->trans(
"LTRate").
'</label>: ';
882 $formcompany->select_localtax(2,
getDolGlobalFloat(
'MAIN_INFO_VALUE_LOCALTAX2'),
"lt2");
885 $options = array($langs->trans(
"CalcLocaltax1").
' '.$langs->trans(
"CalcLocaltax1Desc"), $langs->trans(
"CalcLocaltax2").
' - '.$langs->trans(
"CalcLocaltax2Desc"), $langs->trans(
"CalcLocaltax3").
' - '.$langs->trans(
"CalcLocaltax3Desc"));
887 print
'<br><label for="clt2">'.$langs->trans(
"CalcLocaltax").
'</label>: ';
888 print $form->selectarray(
"clt2", $options,
getDolGlobalString(
'MAIN_INFO_LOCALTAX_CALC2'));
890 print
"</td></tr>\n";
892 print
'<tr class="oddeven"><td><input type="radio" name="optionlocaltax2" id="nolt2" value="localtax2off"'.((!
getDolGlobalString(
'FACTURE_LOCAL_TAX2_OPTION') ||
getDolGlobalString(
'FACTURE_LOCAL_TAX2_OPTION') ==
"localtax2off") ?
" checked" :
"").
'> <label for="nolt2">'.$langs->transcountry(
"LocalTax2IsNotUsed",
$mysoc->country_code).
"</label></td>";
893 print
'<td colspan="2">';
895 $tooltiphelp = $langs->transcountry(
"LocalTax2IsNotUsedExample",
$mysoc->country_code);
896 $tooltiphelp = ($tooltiphelp !=
"LocalTax2IsNotUsedExample" ?
"<i>".$langs->trans(
"Example").
': '.$langs->transcountry(
"LocalTax2IsNotUsedExample",
$mysoc->country_code).
"</i>\n" :
"");
897 print
"<label for=\"nolt2\">".$form->textwithpicto($langs->transcountry(
"LocalTax2IsNotUsedDesc",
$mysoc->country_code), $tooltiphelp).
"</label>";
899 print
"</td></tr>\n";
901 if (empty(
$mysoc->country_code)) {
902 print
'<tr class="oddeven nohover"><td class="" colspan="3">'.$countrynotdefined.
'</td></tr>';
904 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>';
913print
'<table class="noborder centpercent editmode">';
914print
'<tr class="liste_titre">';
915print
'<td>'.$form->textwithpicto($langs->trans(
"RevenueStamp"), $langs->trans(
"RevenueStampDesc")).
'</td><td></td>';
916print
'<td class="right"> </td>';
918if (
$mysoc->useRevenueStamp()) {
920 print
'<tr class="oddeven"><td>';
921 print $langs->trans(
"UseRevenueStamp");
923 print
'<td colspan="2">';
924 print $langs->trans(
"UseRevenueStampExample", $langs->transnoentitiesnoconv(
"Setup"), $langs->transnoentitiesnoconv(
"Dictionaries"), $langs->transnoentitiesnoconv(
"DictionaryRevenueStamp"));
925 print
"</td></tr>\n";
927 if (empty(
$mysoc->country_code)) {
928 print
'<tr class="oddeven nohover"><td class="" colspan="3">'.$countrynotdefined.
'</td></tr>';
930 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>';
937if (
$mysoc->country_code ==
'GR') {
939 print
'<table class="noborder centpercent editmode">';
940 print
'<tr class="liste_titre">';
941 print
'<td>'.$langs->trans(
"AccountParameter").
'</td>';
946 print
'<tr class="oddeven"><td>';
947 print
'<span class="titlefield fieldrequired">'.$langs->trans(
"MYDATA_AADE_USER").
'</span></td><td>';
948 print
'<input class="minwidth300" type="text" name="MYDATA_AADE_USER" value="'.getDolGlobalString(
'MYDATA_AADE_USER').
'"';
949 print
'</td><td></td></tr>';
951 print
'<tr class="oddeven"><td>';
952 print
'<span class="titlefield fieldrequired">'.$langs->trans(
"MYDATA_AADE_KEY").
'</span></td><td>';
953 print
'<input class="minwidth300" type="password" name="MYDATA_AADE_KEY" value="'.getDolGlobalString(
'MYDATA_AADE_KEY').
'"';
954 print
'</td><td></td></tr>';
956 print
'<tr class="oddeven"><td>';
957 print
'<span class="titlefield fieldrequired">'.$langs->trans(
"AADE_WEBSERVICE_USER").
'</span></td><td>';
958 print
'<input class="minwidth300" type="text" name="AADE_WEBSERVICE_USER" value="'.getDolGlobalString(
'AADE_WEBSERVICE_USER').
'"';
959 print
'</td><td></td></tr>';
961 print
'<tr class="oddeven"><td>';
962 print
'<span class="titlefield fieldrequired">'.$langs->trans(
"AADE_WEBSERVICE_KEY").
'</span></td><td>';
963 print
'<input class="minwidth300" type="password" name="AADE_WEBSERVICE_KEY" value="'.getDolGlobalString(
'AADE_WEBSERVICE_KEY').
'"';
964 print
'</td><td></td></tr>';
971print $form->buttonsSaveCancel(
"Save",
'', array(),
false,
'reposition');
if(! $sortfield) if(! $sortorder) $object
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).
dolibarr_del_const($db, $name, $entity=1)
Delete a constant.
company_admin_prepare_head()
Return array head with list of tabs to view object information.
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
isALNERunningVersion($blockedlogusagealreadychecked=0, $blockedlogmoduleonalreadychecked=0)
Return if the application is executed with the LNE requirements on.
Class to manage third parties objects (customers, suppliers, prospects...)
getCountry($searchkey, $withcode='', $dbtouse=null, $outputlangs=null, $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
getState($id, $withcode='0', $dbtouse=null, $withregion=0, $outputlangs=null, $entconv=1)
Return state translated from an id.
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.
dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disablevirusscan=0, $uploaderrorcode=0, $nohook=0, $keyforsourcefile='addedfile', $upload_dir='', $mode=0)
Check validity of a file upload from an GUI page, and move it to its final destination.
getDolGlobalFloat($key, $default=0)
Return a Dolibarr global constant float value.
isOnlyOneLocalTax($local)
Return true if LocalTax (1 or 2) is unique.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
getDolCurrency()
Return the main currency ('EUR', 'USD', ...)
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
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)
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='', $textonpictotooltip='', $cssfordropdown='info_admin')
Show information in HTML for admin users or standard users.
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).
getListOfPossibleImageExt($acceptsvg=0)
Return if a filename is file name of a supported image format.
if(!defined( 'IMAGETYPE_WEBP')) getDefaultImageSizes()
Return default values for image sizes.
image_format_supported($file, $acceptsvg=0)
Return if a filename is file name of a supported image format.
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.