* Copyright (C) 2004-2009 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * \file htdocs/admin/company.php * \ingroup company * \brief Page d'accueil de l'espace administration/configuration * \version $Id$ */ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/lib/admin.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/images.lib.php"); require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); require_once(DOL_DOCUMENT_ROOT."/html.formcompany.class.php"); $langs->load("admin"); $langs->load("companies"); if (!$user->admin) accessforbidden(); // Define size of logo small and mini $maxwidthsmall=270;$maxheightsmall=150; $maxwidthmini=128;$maxheightmini=72; $quality = 80; /* * Actions */ if ( (isset($_POST["action"]) && $_POST["action"] == 'update') || (isset($_POST["action"]) && $_POST["action"] == 'updateedit') ) { dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOM",$_POST["nom"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ADRESSE",$_POST["address"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_VILLE",$_POST["ville"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_CP",$_POST["cp"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_PAYS",$_POST["pays_id"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_MONNAIE",$_POST["currency"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TEL",$_POST["tel"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FAX",$_POST["fax"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_MAIL",$_POST["mail"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_WEB",$_POST["web"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOTE",$_POST["note"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_GENCOD",$_POST["gencod"],'chaine',0,'',$conf->entity); if ($_FILES["logo"]["tmp_name"]) { if (preg_match('/([^\\/:]+)$/i',$_FILES["logo"]["name"],$reg)) { $original_file=$reg[1]; $isimage=image_format_supported($original_file); if ($isimage >= 0) { dol_syslog("Move file ".$_FILES["logo"]["tmp_name"]." to ".$conf->mycompany->dir_output.'/logos/'.$original_file); if (! is_dir($conf->mycompany->dir_output.'/logos/')) { create_exdir($conf->mycompany->dir_output.'/logos/'); } if (dol_move_uploaded_file($_FILES["logo"]["tmp_name"],$conf->mycompany->dir_output.'/logos/'.$original_file,1) > 0) { dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO",$original_file,'chaine',0,'',$conf->entity); // Create thumbs of logo (Note that PDF use original file and not thumbs) if ($isimage > 0) { // Create small thumbs for company (Ratio is near 16/9) // Used on logon for example $imgThumbSmall = vignette($conf->mycompany->dir_output.'/logos/'.$original_file, $maxwidthsmall, $maxheightsmall, '_small', $quality); if (preg_match('/([^\\/:]+)$/i',$imgThumbSmall,$reg)) { $imgThumbSmall = $reg[1]; dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL",$imgThumbSmall,'chaine',0,'',$conf->entity); } else dol_syslog($imgThumbSmall); // Create mini thumbs for company (Ratio is near 16/9) // Used on menu or for setup page for example $imgThumbMini = vignette($conf->mycompany->dir_output.'/logos/'.$original_file, $maxwidthmini, $maxheightmini, '_mini', $quality); if (preg_match('/([^\\/:]+)$/i',$imgThumbMini,$reg)) { $imgThumbMini = $reg[1]; dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI",$imgThumbMini,'chaine',0,'',$conf->entity); } else dol_syslog($imgThumbMini); } else dol_syslog($langs->trans("ErrorImageFormatNotSupported"),LOG_WARNING); } else { $message .= '
'.$langs->trans("ErrorFailedToSaveFile").'
'; } } else { $message .= '
'.$langs->trans("ErrorOnlyPngJpgSupported").'
'; } } } dolibarr_set_const($db, "MAIN_INFO_CAPITAL",$_POST["capital"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SOCIETE_FORME_JURIDIQUE",$_POST["forme_juridique_code"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SIREN",$_POST["siren"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_SIRET",$_POST["siret"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_APE",$_POST["ape"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_RCS",$_POST["rcs"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_INFO_TVAINTRA",$_POST["tva"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START",$_POST["fiscalmonthstart"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "FACTURE_TVAOPTION",$_POST["optiontva"],'chaine',0,'',$conf->entity); if ($_POST['action'] != 'updateedit' && ! $message) { Header("Location: ".$_SERVER["PHP_SELF"]); exit; } } if ($_GET["action"] == 'addthumb') { if (file_exists($conf->societe->dir_output.'/logos/'.$_GET["file"])) { $isimage=image_format_supported($_GET["file"]); // Create thumbs of logo if ($isimage > 0) { // Create small thumbs for company (Ratio is near 16/9) // Used on logon for example $imgThumbSmall = vignette($conf->mycompany->dir_output.'/logos/'.$_GET["file"], $maxwidthsmall, $maxheightsmall, '_small',$quality); if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i',$imgThumbSmall,$reg)) { $imgThumbSmall = $reg[1]; dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL",$imgThumbSmall,'chaine',0,'',$conf->entity); } else dol_syslog($imgThumbSmall); // Create mini thumbs for company (Ratio is near 16/9) // Used on menu or for setup page for example $imgThumbMini = vignette($conf->mycompany->dir_output.'/logos/'.$_GET["file"], $maxwidthmini, $maxheightmini, '_mini',$quality); if (image_format_supported($imgThumbSmall) >= 0 && preg_match('/([^\\/:]+)$/i',$imgThumbMini,$reg)) { $imgThumbMini = $reg[1]; dolibarr_set_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI",$imgThumbMini,'chaine',0,'',$conf->entity); } else dol_syslog($imgThumbMini); Header("Location: ".$_SERVER["PHP_SELF"]); exit; } else { $message .= '
'.$langs->trans("ErrorImageFormatNotSupported").'
'; dol_syslog($langs->transnoentities("ErrorImageFormatNotSupported"),LOG_WARNING); } } else { $message .= '
'.$langs->trans("ErrorFileDoesNotExists",$_GET["file"]).'
'; dol_syslog($langs->transnoentities("ErrorFileDoesNotExists",$_GET["file"]),LOG_WARNING); } } if ($_GET["action"] == 'removelogo') { $logofile=$conf->mycompany->dir_output.'/logos/'.$mysoc->logo; dol_delete_file($logofile); dolibarr_del_const($db, "MAIN_INFO_SOCIETE_LOGO",$conf->entity); $mysoc->logo=''; $logosmallfile=$conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small; dol_delete_file($logosmallfile); dolibarr_del_const($db, "MAIN_INFO_SOCIETE_LOGO_SMALL",$conf->entity); $mysoc->logo_small=''; $logominifile=$conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini; dol_delete_file($logominifile); dolibarr_del_const($db, "MAIN_INFO_SOCIETE_LOGO_MINI",$conf->entity); $mysoc->logo_mini=''; } /* * Affichage page */ $wikihelp='EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones'; llxHeader($langs->trans("Setup"),'',$wikihelp); $form = new Form($db); $formcompany = new FormCompany($db); $countrynotdefined=''.$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; print_fiche_titre($langs->trans("CompanyFoundation"),'','setup'); print $langs->trans("CompanyFundationDesc")."
\n"; print "
\n"; if ((isset($_GET["action"]) && $_GET["action"] == 'edit') || (isset($_POST["action"]) && $_POST["action"] == 'updateedit') ) { /** * Edition des parametres */ print '
'; print ''; print ''; $var=true; print ''; print ''."\n"; $var=!$var; print ''."\n"; $var=!$var; print ''."\n"; $var=!$var; print ''."\n"; $var=!$var; print ''."\n"; $var=!$var; print ''."\n"; $var=!$var; print ''."\n"; $var=!$var; print ''; print ''."\n"; $var=!$var; print ''; print ''."\n"; $var=!$var; print ''; print ''."\n"; // Web $var=!$var; print ''; print ''."\n"; if ($conf->barcode->enabled) { $var=!$var; print ''; print ''; } $var=!$var; print ''; $var=!$var; print ''; print ''; print '
'.$langs->trans("CompanyInfo").''.$langs->trans("Value").'
'.$langs->trans("CompanyName").''; print '
'.$langs->trans("CompanyAddress").''; print '
'.$langs->trans("CompanyZip").''; print '
'.$langs->trans("CompanyTown").''; print '
'.$langs->trans("Country").''; $form->select_pays($conf->global->MAIN_INFO_SOCIETE_PAYS,'pays_id',($conf->use_javascript_ajax?' onChange="company_save_refresh()"':'')); if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); print '
'.$langs->trans("CompanyCurrency").''; $form->select_currency($conf->global->MAIN_MONNAIE,"currency"); print '
'.$langs->trans("Tel").''; print '
'.$langs->trans("Fax").''; print '
'.$langs->trans("Mail").''; print '
'.$langs->trans("Web").''; print '
'.$langs->trans("Gencod").''; print '
'.$langs->trans("Logo").' (png,jpg)'; print '
'; print ''; print ''; if ($mysoc->logo_mini) { print ''.img_delete($langs->trans("Delete")).''; if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) { print '   '; print ''; } } else { print ''; } print '
'; print '
'.$langs->trans("Note").''; print '
'; print '
'; // Identifiants de la societe (propre au pays) print ''; print ''; $var=true; $langs->load("companies"); // Recupere code pays $code_pays=substr($langs->defaultlang,-2); // Par defaut, pays de la localisation if ($conf->global->MAIN_INFO_SOCIETE_PAYS) { $sql = "SELECT code from ".MAIN_DB_PREFIX."c_pays"; $sql .= " WHERE rowid = ".$conf->global->MAIN_INFO_SOCIETE_PAYS; $resql=$db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); if ($obj->code) $code_pays=$obj->code; } else { dol_print_error($db); } } // Capital $var=!$var; print ''; // Forme juridique $var=!$var; print ''; // ProfID1 if ($langs->transcountry("ProfId1",$code_pays) != '-') { $var=!$var; print ''; } // ProfId2 if ($langs->transcountry("ProfId2",$code_pays) != '-') { $var=!$var; print ''; } // ProfId3 if ($langs->transcountry("ProfId3",$code_pays) != '-') { $var=!$var; print ''; } // ProfId4 if ($langs->transcountry("ProfId4",$code_pays) != '-') { $var=!$var; print ''; } // TVA Intra $var=!$var; print ''; print '
'.$langs->trans("CompanyIds").''.$langs->trans("Value").'
'.$langs->trans("Capital").''; print '
'.$langs->trans("JuridicalStatus").''; if ($conf->global->MAIN_INFO_SOCIETE_PAYS) { $formcompany->select_forme_juridique($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE,$code_pays); } else { print $countrynotdefined; } print '
'.$langs->transcountry("ProfId1",$code_pays).''; if ($conf->global->MAIN_INFO_SOCIETE_PAYS) { print ''; } else { print $countrynotdefined; } print '
'.$langs->transcountry("ProfId2",$code_pays).''; if ($conf->global->MAIN_INFO_SOCIETE_PAYS) { print ''; } else { print $countrynotdefined; } print '
'.$langs->transcountry("ProfId3",$code_pays).''; if ($conf->global->MAIN_INFO_SOCIETE_PAYS) { print ''; } else { print $countrynotdefined; } print '
'.$langs->transcountry("ProfId4",$code_pays).''; if ($conf->global->MAIN_INFO_SOCIETE_PAYS) { print ''; } else { print $countrynotdefined; } print '
'.$langs->trans("VATIntra").''; print ''; print '
'; /* * Debut d'annee fiscale */ print '
'; print ''; print ''; print ''; print "\n"; $var=true; $var=!$var; print ''; print "
'.$langs->trans("FiscalYearInformation").''.$langs->trans("Value").'
'.$langs->trans("FiscalMonthStart").''; print $form->select_month($conf->global->SOCIETE_FISCAL_MONTH_START,'fiscalmonthstart',1) . '
"; /* * Options fiscale */ print '
'; print ''; print ''; print ''; print ''; print "\n"; $var=true; $var=!$var; print ""; print '\n"; /* Je desactive cette option "facturation" car ce statut fiscal n'existe pas. Seul le reel et franchise existe. Cette option ne doit donc pas etre en "exclusif" avec l'option fiscale de gestion de tva. Peut etre faut-il une option a part qui n'entre pas en conflit avec les choix "assujeti TVA" ou "non". $var=!$var; print ""; print "\n"; */ $var=!$var; print ""; print '\n"; print "
'.$langs->trans("VATManagement").''.$langs->trans("Description").' 
'; print ""; print ""; print "\n"; print "
".$langs->trans("VATIsUsedDesc")."
".$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."
"; print "
L'option 'facturation' est utilisee par les entreprises qui payent la TVA a facturation (vente de materiel).
'; print ""; print ""; print "\n"; print "
".$langs->trans("VATIsNotUsedDesc")."
".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."
"; print "
"; print '
'; print '
'; print '
'; } else { /* * Affichage des parametres */ if ($message) print $message.'
'; // Actions buttons //print '
'; //print ''.$langs->trans("Modify").''; //print '

'; print ''; print ''; $var=true; $var=!$var; print ''; $var=!$var; print ''; $var=!$var; print ''; $var=!$var; print ''; $var=!$var; print ''; $var=!$var; print ''; $var=!$var; print ''; $var=!$var; print ''; $var=!$var; print ''; // Web $var=!$var; print ''; if ($conf->barcode->enabled) { $var=!$var; print ''; } $var=!$var; print ''; $var=!$var; print ''; print '
'.$langs->trans("CompanyInfo").''.$langs->trans("Value").'
'.$langs->trans("CompanyName").'' . $conf->global->MAIN_INFO_SOCIETE_NOM . '
'.$langs->trans("CompanyAddress").'' . nl2br($conf->global->MAIN_INFO_SOCIETE_ADRESSE) . '
'.$langs->trans("CompanyZip").'' . $conf->global->MAIN_INFO_SOCIETE_CP . '
'.$langs->trans("CompanyTown").'' . $conf->global->MAIN_INFO_SOCIETE_VILLE . '
'.$langs->trans("CompanyCountry").''; print getCountryLabel($conf->global->MAIN_INFO_SOCIETE_PAYS,1); print '
'.$langs->trans("CompanyCurrency").''; print currency_name($conf->global->MAIN_MONNAIE,1); print ' ('.$conf->global->MAIN_MONNAIE.')'; print '
'.$langs->trans("Tel").'' . dol_print_phone($conf->global->MAIN_INFO_SOCIETE_TEL,$mysoc->pays_code) . '
'.$langs->trans("Fax").'' . dol_print_phone($conf->global->MAIN_INFO_SOCIETE_FAX,$mysoc->pays_code) . '
'.$langs->trans("Mail").'' . dol_print_email($conf->global->MAIN_INFO_SOCIETE_MAIL,0,0,0,80) . '
'.$langs->trans("Web").'' . dol_print_url($conf->global->MAIN_INFO_SOCIETE_WEB,'_blank',80) . '
'.$langs->trans("Gencod").'' . $conf->global->MAIN_INFO_SOCIETE_GENCOD . '
'.$langs->trans("Logo").''; print '
'; print $mysoc->logo; print ''; // On propose la generation de la vignette si elle n'existe pas if (!is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini) && preg_match('/(\.jpg|\.jpeg|\.png)$/i',$mysoc->logo)) { print 'logo).'">'.img_refresh($langs->trans('GenerateThumb')).'  '; } else if ($mysoc->logo_mini && is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) { print ''; } else { print ''; } print '
'; print '
'.$langs->trans("Note").'' . nl2br($conf->global->MAIN_INFO_SOCIETE_NOTE) . '
'; print '
'; // Identifiants de la societe (propre au pays) print '
'; print ''; print ''; print ''; $var=true; // Recupere code pays $code_pays=substr($langs->defaultlang,-2); // Par defaut, pays de la localisation if ($conf->global->MAIN_INFO_SOCIETE_PAYS) { $sql = "SELECT code from ".MAIN_DB_PREFIX."c_pays"; $sql .= " WHERE rowid = ".$conf->global->MAIN_INFO_SOCIETE_PAYS; $result=$db->query($sql); if ($result) { $obj = $db->fetch_object(); if ($obj->code) $code_pays=$obj->code; } else { dol_print_error($db); } } // Capital $var=!$var; print ''; // Forme juridique $var=!$var; print ''; // ProfId1 if ($langs->transcountry("ProfId1",$code_pays) != '-') { $var=!$var; print ''; } // ProfId2 if ($langs->transcountry("ProfId2",$code_pays) != '-') { $var=!$var; print ''; } // ProfId3 if ($langs->transcountry("ProfId3",$code_pays) != '-') { $var=!$var; print ''; } // ProfId4 if ($langs->transcountry("ProfId4",$code_pays) != '-') { $var=!$var; print ''; } // TVA if ($conf->use_javascript_ajax) { print "\n"; print ''; print "\n"; } $var=!$var; print ''; print ''; print ''; print '
'.$langs->trans("CompanyIds").''.$langs->trans("Value").'
'.$langs->trans("Capital").''; print $conf->global->MAIN_INFO_CAPITAL . '
'.$langs->trans("JuridicalStatus").''; print getFormeJuridiqueLabel($conf->global->MAIN_INFO_SOCIETE_FORME_JURIDIQUE,1); print '
'.$langs->transcountry("ProfId1",$code_pays).''; if ($langs->transcountry("ProfId1",$code_pays) != '-') { print $conf->global->MAIN_INFO_SIREN; } print '
'.$langs->transcountry("ProfId2",$code_pays).''; if ($langs->transcountry("ProfId2",$code_pays) != '-') { print $conf->global->MAIN_INFO_SIRET; } print '
'.$langs->transcountry("ProfId3",$code_pays).''; if ($langs->transcountry("ProfId3",$code_pays) != '-') { print $conf->global->MAIN_INFO_APE; } print '
'.$langs->transcountry("ProfId4",$code_pays).''; if ($langs->transcountry("ProfId4",$code_pays) != '-') { print $conf->global->MAIN_INFO_RCS; } print '
'.$langs->trans("VATIntra").''; if ($conf->global->MAIN_INFO_TVAINTRA) { $s=''; $s.=$conf->global->MAIN_INFO_TVAINTRA; $s.=''; $s.='   '; if ($conf->use_javascript_ajax) { $s.=''.$langs->trans("VATIntraCheck").''; print $form->textwithpicto($s,$langs->trans("VATIntraCheckDesc",$langs->trans("VATIntraCheck")),1); } else { print $s.'id_pays).'" target="_blank">'.img_picto($langs->trans("VATIntraCheckableOnEUSite"),'help').''; } } else { print ' '; } print '
'; print '
'; /* * Debut d'annee fiscale */ print '
'; print ''; print ''; print ''; print "\n"; $var=true; $var=!$var; print ''; print "
'.$langs->trans("FiscalYearInformation").''.$langs->trans("Value").'
'.$langs->trans("FiscalMonthStart").''; $monthstart=(! empty($conf->global->SOCIETE_FISCAL_MONTH_START)) ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1; print monthArrayOrSelected($monthstart) . '
"; /* * Options fiscale */ print '
'; print ''; print ''; print ''; print ''; print "\n"; $var=true; $var=!$var; print ""; print '\n"; $var=!$var; print ""; print '\n"; print "
'.$langs->trans("VATManagement").''.$langs->trans("Description").' 
'; print ""; print ""; print "\n"; print "
".$langs->trans("VATIsUsedDesc")."
".$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."
"; print "
'; print ""; print ""; print "\n"; print "
".$langs->trans("VATIsNotUsedDesc")."
".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."
"; print "
"; // Actions buttons print '
'; print ''.$langs->trans("Modify").''; print '
'; print '
'; } $db->close(); llxFooter('$Date$ - $Revision$'); ?>