From 98f1218f9211ef505dec9ce35c9973ba85b37e96 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 2 Sep 2010 19:41:49 +0000 Subject: [PATCH] Fix: Restore working when not using canvas until finding a better way to mix both mode. --- htdocs/societe/soc.php | 2236 +++++++++++++++++++++++++++++++++------- 1 file changed, 1878 insertions(+), 358 deletions(-) diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index d36b563f671..e796ad51467 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -50,462 +50,1982 @@ $socid = isset($_GET["socid"])?$_GET["socid"]:''; if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'societe', $socid); -// For canvas usage -if (empty($_GET["canvas"])) + + +if (! GETPOST("canvas")) { - $_GET["canvas"] = 'default'; - if ($_REQUEST["private"]==1) $_GET["canvas"] = 'individual'; - - // Get object canvas - $socstatic = new Societe($db); - if (!empty($socid)) $socstatic->getCanvas($socid); -} + // ----------------------------------------- + // When used in standard mode + // ----------------------------------------- -// Initialization Company Canvas -$canvas = (!empty($socstatic->canvas)?$socstatic->canvas:$_GET["canvas"]); -$soc = new Canvas($db); -$soc->load_canvas('thirdparty@societe',$canvas); + // Initialization Company Object + $soc = new Societe($db); -/* - * Actions - */ -if ($_POST["getcustomercode"]) -{ - // We defined value code_client - $_POST["code_client"]="Acompleter"; -} + /* + * Actions + */ -if ($_POST["getsuppliercode"]) -{ - // We defined value code_fournisseur - $_POST["code_fournisseur"]="Acompleter"; -} - -// Add new third party -if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"]) -&& ($_POST["action"] == 'add' || $_POST["action"] == 'update') && $user->rights->societe->creer) -{ - require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); - $error=0; - - if ($_POST["action"] == 'update') + if ($_POST["getcustomercode"]) { - // Load properties of company - $soc->fetch($socid); + // We defined value code_client + $_POST["code_client"]="Acompleter"; } - if ($_REQUEST["private"] == 1) + if ($_POST["getsuppliercode"]) { - $soc->object->particulier = $_REQUEST["private"]; - - $soc->object->nom = empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?trim($_POST["prenom"].' '.$_POST["nom"]):trim($_POST["nom"].' '.$_POST["prenom"]); - $soc->object->nom_particulier = $_POST["nom"]; - $soc->object->prenom = $_POST["prenom"]; - $soc->object->civilite_id = $_POST["civilite_id"]; + // We defined value code_fournisseur + $_POST["code_fournisseur"]="Acompleter"; } - else + + // Add new third party + if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"]) + && ($_POST["action"] == 'add' || $_POST["action"] == 'update') && $user->rights->societe->creer) { - $soc->object->nom = $_POST["nom"]; - } - $soc->object->address = $_POST["adresse"]; - $soc->object->adresse = $_POST["adresse"]; // TODO obsolete - $soc->object->cp = $_POST["cp"]; - $soc->object->ville = $_POST["ville"]; - $soc->object->pays_id = $_POST["pays_id"]; - $soc->object->departement_id = $_POST["departement_id"]; - $soc->object->tel = $_POST["tel"]; - $soc->object->fax = $_POST["fax"]; - $soc->object->email = trim($_POST["email"]); - $soc->object->url = $_POST["url"]; - $soc->object->siren = $_POST["idprof1"]; - $soc->object->siret = $_POST["idprof2"]; - $soc->object->ape = $_POST["idprof3"]; - $soc->object->idprof4 = $_POST["idprof4"]; - $soc->object->prefix_comm = $_POST["prefix_comm"]; - $soc->object->code_client = $_POST["code_client"]; - $soc->object->code_fournisseur = $_POST["code_fournisseur"]; - $soc->object->capital = $_POST["capital"]; - $soc->object->gencod = $_POST["gencod"]; - $soc->object->canvas = $_GET["canvas"]; + require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); + $error=0; - $soc->object->tva_assuj = $_POST["assujtva_value"]; - - // Local Taxes - $soc->object->localtax1_assuj = $_POST["localtax1assuj_value"]; - $soc->object->localtax2_assuj = $_POST["localtax2assuj_value"]; - - $soc->object->tva_intra = $_POST["tva_intra"]; - - $soc->object->forme_juridique_code = $_POST["forme_juridique_code"]; - $soc->object->effectif_id = $_POST["effectif_id"]; - if ($_REQUEST["private"] == 1) - { - $soc->object->typent_id = 8; // TODO predict another method if the field "special" change of rowid - } - else - { - $soc->object->typent_id = $_POST["typent_id"]; - } - $soc->object->client = $_POST["client"]; - $soc->object->fournisseur = $_POST["fournisseur"]; - $soc->object->fournisseur_categorie = $_POST["fournisseur_categorie"]; - - $soc->object->commercial_id = $_POST["commercial_id"]; - $soc->object->default_lang = $_POST["default_lang"]; - - // Check parameters - if (empty($_POST["cancel"])) - { - if (! empty($soc->object->email) && ! isValidEMail($soc->object->email)) + if ($_POST["action"] == 'update') { - $error = 1; - $langs->load("errors"); - $soc->object->error = $langs->trans("ErrorBadEMail",$soc->object->email); - $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; + // Load properties of company + $soc->fetch($socid); } - if (! empty($soc->object->url) && ! isValidUrl($soc->object->url)) + + if ($_REQUEST["private"] == 1) { - $error = 1; - $langs->load("errors"); - $soc->object->error = $langs->trans("ErrorBadUrl",$soc->object->url); - $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; + $soc->particulier = $_REQUEST["private"]; + + $soc->nom = empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?trim($_POST["prenom"].' '.$_POST["nom"]):trim($_POST["nom"].' '.$_POST["prenom"]); + $soc->nom_particulier = $_POST["nom"]; + $soc->prenom = $_POST["prenom"]; + $soc->civilite_id = $_POST["civilite_id"]; } - if ($soc->object->fournisseur && ! $conf->fournisseur->enabled) + else { - $error = 1; - $langs->load("errors"); - $soc->object->error = $langs->trans("ErrorSupplierModuleNotEnabled"); - $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; + $soc->nom = $_POST["nom"]; } - } + $soc->address = $_POST["adresse"]; + $soc->adresse = $_POST["adresse"]; // TODO obsolete + $soc->cp = $_POST["cp"]; + $soc->ville = $_POST["ville"]; + $soc->pays_id = $_POST["pays_id"]; + $soc->departement_id = $_POST["departement_id"]; + $soc->tel = $_POST["tel"]; + $soc->fax = $_POST["fax"]; + $soc->email = trim($_POST["email"]); + $soc->url = $_POST["url"]; + $soc->siren = $_POST["idprof1"]; + $soc->siret = $_POST["idprof2"]; + $soc->ape = $_POST["idprof3"]; + $soc->idprof4 = $_POST["idprof4"]; + $soc->prefix_comm = $_POST["prefix_comm"]; + $soc->code_client = $_POST["code_client"]; + $soc->code_fournisseur = $_POST["code_fournisseur"]; + $soc->capital = $_POST["capital"]; + $soc->gencod = $_POST["gencod"]; - if (! $error) - { - if ($_POST["action"] == 'add') + $soc->tva_assuj = $_POST["assujtva_value"]; + + // Local Taxes + $soc->localtax1_assuj = $_POST["localtax1assuj_value"]; + $soc->localtax2_assuj = $_POST["localtax2assuj_value"]; + + $soc->tva_intra = $_POST["tva_intra"]; + + $soc->forme_juridique_code = $_POST["forme_juridique_code"]; + $soc->effectif_id = $_POST["effectif_id"]; + if ($_REQUEST["private"] == 1) { - $db->begin(); + $soc->typent_id = 8; // TODO predict another method if the field "special" change of rowid + } + else + { + $soc->typent_id = $_POST["typent_id"]; + } + $soc->client = $_POST["client"]; + $soc->fournisseur = $_POST["fournisseur"]; + $soc->fournisseur_categorie = $_POST["fournisseur_categorie"]; - if (empty($soc->object->client)) $soc->object->code_client=''; - if (empty($soc->object->fournisseur)) $soc->object->code_fournisseur=''; + $soc->commercial_id = $_POST["commercial_id"]; + $soc->default_lang = $_POST["default_lang"]; - $result = $soc->object->create($user); - if ($result >= 0) + // Check parameters + if (empty($_POST["cancel"])) + { + if (! empty($soc->email) && ! isValidEMail($soc->email)) { - if ($soc->object->particulier) - { - dol_syslog("This thirdparty is a personal people",LOG_DEBUG); - $contact=new Contact($db); - - $contact->civilite_id = $soc->object->civilite_id; - $contact->name=$soc->object->nom_particulier; - $contact->firstname=$soc->object->prenom; - $contact->address=$soc->object->address; - $contact->cp=$soc->object->cp; - $contact->ville=$soc->object->ville; - $contact->fk_pays=$soc->object->fk_pays; - $contact->socid=$soc->object->id; // fk_soc - $contact->status=1; - $contact->email=$soc->object->email; - $contact->priv=0; - - $result=$contact->create($user); - } + $error = 1; + $langs->load("errors"); + $soc->error = $langs->trans("ErrorBadEMail",$soc->email); + $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; } - else + if (! empty($soc->url) && ! isValidUrl($soc->url)) { - $mesg=$soc->object->error; + $error = 1; + $langs->load("errors"); + $soc->error = $langs->trans("ErrorBadUrl",$soc->url); + $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; } - - if ($result >= 0) + if ($soc->fournisseur && ! $conf->fournisseur->enabled) { - $db->commit(); + $error = 1; + $langs->load("errors"); + $soc->error = $langs->trans("ErrorSupplierModuleNotEnabled"); + $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; + } + } - if ( $soc->object->client == 1 ) + if (! $error) + { + if ($_POST["action"] == 'add') + { + $db->begin(); + + if (empty($soc->client)) $soc->code_client=''; + if (empty($soc->fournisseur)) $soc->code_fournisseur=''; + + $result = $soc->create($user); + if ($result >= 0) { - Header("Location: ".DOL_URL_ROOT."/comm/fiche.php?socid=".$soc->object->id); - return; + if ($soc->particulier) + { + dol_syslog("This thirdparty is a personal people",LOG_DEBUG); + $contact=new Contact($db); + + $contact->civilite_id = $soc->civilite_id; + $contact->name=$soc->nom_particulier; + $contact->firstname=$soc->prenom; + $contact->address=$soc->address; + $contact->cp=$soc->cp; + $contact->ville=$soc->ville; + $contact->fk_pays=$soc->fk_pays; + $contact->socid=$soc->id; // fk_soc + $contact->status=1; + $contact->email=$soc->email; + $contact->priv=0; + + $result=$contact->create($user); + } } else { - if ( $soc->object->fournisseur == 1 ) + $mesg=$soc->error; + } + + if ($result >= 0) + { + $db->commit(); + + if ( $soc->client == 1 ) { - Header("Location: ".DOL_URL_ROOT."/fourn/fiche.php?socid=".$soc->object->id); + Header("Location: ".DOL_URL_ROOT."/comm/fiche.php?socid=".$soc->id); return; } else { - Header("Location: ".$_SERVER["PHP_SELF"]."?socid=".$soc->object->id); - return; + if ( $soc->fournisseur == 1 ) + { + Header("Location: ".DOL_URL_ROOT."/fourn/fiche.php?socid=".$soc->id); + return; + } + else + { + Header("Location: ".$_SERVER["PHP_SELF"]."?socid=".$soc->id); + return; + } } + exit; } - exit; - } - else - { - $db->rollback(); + else + { + $db->rollback(); - $langs->load("errors"); - $mesg=$langs->trans($soc->object->error); - $_GET["action"]='create'; - } - } - - if ($_POST["action"] == 'update') - { - if ($_POST["cancel"]) - { - Header("Location: ".$_SERVER["PHP_SELF"]."?socid=".$socid); - exit; + $langs->load("errors"); + $mesg=$langs->trans($soc->error); + $_GET["action"]='create'; + } } - $oldsoc = new Canvas($db); - $oldsoc->load_canvas('thirdparty@societe',$canvas); - $result=$oldsoc->fetch($socid); - - // To not set code if third party is not concerned. But if it had values, we keep them. - if (empty($soc->object->client) && empty($oldsoc->code_client)) $soc->object->code_client=''; - if (empty($soc->object->fournisseur)&& empty($oldsoc->code_fournisseur)) $soc->object->code_fournisseur=''; - //var_dump($soc);exit; - - $result = $soc->object->update($socid,$user,1,$oldsoc->object->codeclient_modifiable(),$oldsoc->object->codefournisseur_modifiable()); - if ($result >= 0) + if ($_POST["action"] == 'update') { - Header("Location: ".$_SERVER["PHP_SELF"]."?socid=".$socid); - exit; - } - else - { - $soc->object->id = $socid; - $reload = 0; + if ($_POST["cancel"]) + { + Header("Location: ".$_SERVER["PHP_SELF"]."?socid=".$socid); + exit; + } - $mesg = $soc->object->error; - $_GET["action"]= "edit"; + $oldsoc=new Societe($db); + $result=$oldsoc->fetch($socid); + + // To not set code if third party is not concerned. But if it had values, we keep them. + if (empty($soc->client) && empty($oldsoc->code_client)) $soc->code_client=''; + if (empty($soc->fournisseur)&& empty($oldsoc->code_fournisseur)) $soc->code_fournisseur=''; + //var_dump($soc);exit; + + $result = $soc->update($socid,$user,1,$oldsoc->codeclient_modifiable(),$oldsoc->codefournisseur_modifiable()); + if ($result >= 0) + { + Header("Location: ".$_SERVER["PHP_SELF"]."?socid=".$socid); + exit; + } + else + { + $soc->id = $socid; + $reload = 0; + + $mesg = $soc->error; + $_GET["action"]= "edit"; + } } } } -} -if ($_REQUEST["action"] == 'confirm_delete' && $_REQUEST["confirm"] == 'yes' && $user->rights->societe->supprimer) -{ - $soc = new Societe($db); - $soc->fetch($socid); - $result = $soc->delete($socid); - - if ($result >= 0) + if ($_REQUEST["action"] == 'confirm_delete' && $_REQUEST["confirm"] == 'yes' && $user->rights->societe->supprimer) { - Header("Location: ".DOL_URL_ROOT."/societe/societe.php?delsoc=".$soc->nom.""); - exit; - } - else - { - $reload = 0; - $langs->load("errors"); - $mesg=$langs->trans($soc->error); - $_GET["action"]=''; - } -} - - -/* - * Generate document - */ -if ($_REQUEST['action'] == 'builddoc') // En get ou en post -{ - if (is_numeric($_REQUEST['model'])) - { - $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Model")); - } - else - { - require_once(DOL_DOCUMENT_ROOT.'/includes/modules/societe/modules_societe.class.php'); - $soc = new Societe($db); $soc->fetch($socid); - $soc->fetch_thirdparty(); + $result = $soc->delete($socid); - /*if ($_REQUEST['model']) - { - $fac->setDocModel($user, $_REQUEST['model']); - } + if ($result >= 0) + { + Header("Location: ".DOL_URL_ROOT."/societe/societe.php?delsoc=".$soc->nom.""); + exit; + } + else + { + $reload = 0; + $langs->load("errors"); + $mesg=$langs->trans($soc->error); + $_GET["action"]=''; + } + } + + + /* + * Generate document + */ + if ($_REQUEST['action'] == 'builddoc') // En get ou en post + { + if (is_numeric($_REQUEST['model'])) + { + $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Model")); + } + else + { + require_once(DOL_DOCUMENT_ROOT.'/includes/modules/societe/modules_societe.class.php'); + + $soc = new Societe($db); + $soc->fetch($socid); + $soc->fetch_thirdparty(); + + // Define output language + $outputlangs = $langs; + $newlang=''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$fac->client->default_lang; + if (! empty($newlang)) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlang); + } + $result=thirdparty_doc_create($db, $soc->id, '', $_REQUEST['model'], $outputlangs); + if ($result <= 0) + { + dol_print_error($db,$result); + exit; + } + else + { + Header ('Location: '.$_SERVER["PHP_SELF"].'?socid='.$soc->id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#builddoc')); + exit; + } + } + } + + + /* + * View + */ + + $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; + llxHeader('','',$help_url); + + $form = new Form($db); + $formfile = new FormFile($db); + $formadmin = new FormAdmin($db); + $formcompany = new FormCompany($db); + + $countrynotdefined=$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; + + + if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] || + $_GET["action"] == 'create' || $_POST["action"] == 'create') + { + /* + * Sheet mode creation */ + if ($user->rights->societe->creer) + { + // Load object modCodeTiers + $module=$conf->global->SOCIETE_CODECLIENT_ADDON; + if (! $module) dolibarr_error('',$langs->trans("ErrorModuleThirdPartyCodeInCompanyModuleNotDefined")); + if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php') + { + $module = substr($module, 0, dol_strlen($module)-4); + } + require_once(DOL_DOCUMENT_ROOT ."/includes/modules/societe/".$module.".php"); + $modCodeClient = new $module; + $module=$conf->global->SOCIETE_CODEFOURNISSEUR_ADDON; + if (! $module) $module=$conf->global->SOCIETE_CODECLIENT_ADDON; + if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php') + { + $module = substr($module, 0, dol_strlen($module)-4); + } + require_once(DOL_DOCUMENT_ROOT ."/includes/modules/societe/".$module.".php"); + $modCodeFournisseur = new $module; + + /* + * Company Fact creation mode + */ + if ($_GET["type"]=='f') { $soc->fournisseur=1; } + if ($_GET["type"]=='c') { $soc->client=1; } + if ($_GET["type"]=='p') { $soc->client=2; } + if ($_GET["type"]=='cp') { $soc->client=3; } + if ($_REQUEST["private"]==1) { $soc->particulier=1; } + + $soc->nom=$_POST["nom"]; + $soc->prenom=$_POST["prenom"]; + $soc->particulier=$_REQUEST["private"]; + $soc->prefix_comm=$_POST["prefix_comm"]; + $soc->client=$_POST["client"]?$_POST["client"]:$soc->client; + $soc->code_client=$_POST["code_client"]; + $soc->fournisseur=$_POST["fournisseur"]?$_POST["fournisseur"]:$soc->fournisseur; + $soc->code_fournisseur=$_POST["code_fournisseur"]; + $soc->adresse=$_POST["adresse"]; + $soc->address=$_POST["adresse"]; // TODO obsolete + $soc->cp=$_POST["cp"]; + $soc->ville=$_POST["ville"]; + $soc->departement_id=$_POST["departement_id"]; + $soc->tel=$_POST["tel"]; + $soc->fax=$_POST["fax"]; + $soc->email=$_POST["email"]; + $soc->url=$_POST["url"]; + $soc->capital=$_POST["capital"]; + $soc->gencod=$_POST["gencod"]; + $soc->siren=$_POST["idprof1"]; + $soc->siret=$_POST["idprof2"]; + $soc->ape=$_POST["idprof3"]; + $soc->idprof4=$_POST["idprof4"]; + $soc->typent_id=($_POST["typent_id"]&&!$_POST["cleartype"])?$_POST["typent_id"]:($_REQUEST["private"]?'TE_PRIVATE':''); + $soc->effectif_id=($_POST["effectif_id"]&&!$_POST["cleartype"])?$_POST["effectif_id_id"]:($_REQUEST["private"]?'EF1-5':''); + + $soc->tva_assuj = $_POST["assujtva_value"]; + + //Local Taxes + $soc->localtax1_assuj = $_POST["localtax1assuj_value"]; + $soc->localtax2_assuj = $_POST["localtax2assuj_value"]; + + $soc->tva_intra=$_POST["tva_intra"]; + + $soc->commercial_id=$_POST["commercial_id"]; + $soc->default_lang=$_POST["default_lang"]; + + // We set pays_id, pays_code and label for the selected country + $soc->pays_id=$_POST["pays_id"]?$_POST["pays_id"]:$mysoc->pays_id; + if ($soc->pays_id) + { + $sql = "SELECT code, libelle"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_pays"; + $sql.= " WHERE rowid = ".$soc->pays_id; + $resql=$db->query($sql); + if ($resql) + { + $obj = $db->fetch_object($resql); + } + else + { + dol_print_error($db); + } + $soc->pays_code=$obj->code; + $soc->pays=$obj->libelle; + } + + print_fiche_titre($langs->trans("NewCompany")); + + if ($conf->use_javascript_ajax) + { + print "\n".''."\n"; + + print "
\n"; + print $langs->trans("ThirdPartyType").':   '; + print ' '.$langs->trans("Company/Fundation"); + print '     '; + print ' '.$langs->trans("Individual"); + print ' ('.$langs->trans("ToCreateContactWithSameName").')'; + print "
\n"; + print "
\n"; + } + + dol_htmloutput_errors($soc->error,$soc->errors); + + print '
'; + + print ''; + print ''; + print ''; + print ''; + if ($modCodeClient->code_auto || $modCodeFournisseur->code_auto) print ''; + + print ''; + + // Name, firstname + if ($soc->particulier) + { + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } + else + { + print ''; + print ''; + } + + // Prospect/Customer + print ''; + + print ''; + + // Supplier + print ''; + print ''; + print ''; + + // Category + if ($soc->fournisseur) + { + $load = $soc->LoadSupplierCateg(); + if ( $load == 0) + { + if (sizeof($soc->SupplierCategories) > 0) + { + print ''; + print ''; + } + } + } + + // Barcode + if ($conf->global->MAIN_MODULE_BARCODE) + { + print ''; + } + + // Address + print ''; + + // Zip / Town + print ''; + print ''; + + // Country + print ''; + + // State + print ''; + + // Phone / Fax + print ''; + print ''; + + print ''; + print ''; + + print ''; + + + print ''; + // IdProf1 (SIREN for France) + $idprof=$langs->transcountry('ProfId1',$soc->pays_code); + if ($idprof!='-') + { + print ''; + } + else print ''; + // IdProf2 (SIRET for France) + $idprof=$langs->transcountry('ProfId2',$soc->pays_code); + if ($idprof!='-') + { + print ''; + } + else print ''; + print ''; + print ''; + // IdProf3 (APE for France) + $idprof=$langs->transcountry('ProfId3',$soc->pays_code); + if ($idprof!='-') + { + print ''; + } + else print ''; + // IdProf4 (NU for France) + $idprof=$langs->transcountry('ProfId4',$soc->pays_code); + if ($idprof!='-') + { + print ''; + } + else print ''; + print ''; + + // Legal Form + print ''; + print ''; + + print ''; + print ''; + + if ($conf->global->MAIN_MULTILANGS) + { + print ''; + print ''; + } + + // Assujeti TVA + $html = new Form($db); + print ''; + print ''; + print ''; + print ''; + + print ''; + + // Code TVA + if ($conf->use_javascript_ajax) + { + print "\n"; + print ''; + print "\n"; + } + + // Local Taxes + if($mysoc->pays_code=='ES') + { + if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") + { + print ''; + + } + elseif($mysoc->localtax1_assuj=="1") + { + print ''; + } + elseif($mysoc->localtax2_assuj=="1") + { + print ''; + } + } + + if ($user->rights->societe->client->voir) + { + // Assign a Name + print ''; + print ''; + print ''; + } + + + + print ''."\n"; + + print '
'.$langs->trans('LastName').''.$langs->trans('Prefix').'
'.$langs->trans('FirstName').' 
'.$langs->trans("UserTitle").''; + print $formcompany->select_civilite($contact->civilite_id).' 
'.$langs->trans('Name').''.$langs->trans('Prefix').'
'.$langs->trans('ProspectCustomer').''.$langs->trans('CustomerCode').''; + print '
'; + $tmpcode=$soc->code_client; + if ($modCodeClient->code_auto) $tmpcode=$modCodeClient->getNextValue($soc,0); + print ''; + print ''; + $s=$modCodeClient->getToolTip($langs,$soc,0); + print $form->textwithpicto('',$s,1); + print '
'; + + print '
'.$langs->trans('Supplier').''; + print $form->selectyesno("fournisseur",$soc->fournisseur,1); + print ''.$langs->trans('SupplierCode').''; + print '
'; + $tmpcode=$soc->code_fournisseur; + if ($modCodeFournisseur->code_auto) $tmpcode=$modCodeFournisseur->getNextValue($soc,1); + print ''; + print ''; + $s=$modCodeFournisseur->getToolTip($langs,$soc,1); + print $form->textwithpicto('',$s,1); + print '
'; + + print '
'.$langs->trans('SupplierCategory').''; + print $form->selectarray("fournisseur_categorie",$soc->SupplierCategories,$_POST["fournisseur_categorie"],1); + print '
'.$langs->trans('Gencod').''; + print $soc->gencod; + print '
'.$langs->trans('Address').'
'.$langs->trans('Zip').''; + if ($conf->use_javascript_ajax && $conf->global->MAIN_AUTOFILL_TOWNFROMZIP) print ' '; + print ''.$langs->trans('Town').'
'.$langs->trans('Country').''; + $form->select_pays($soc->pays_id,'pays_id'); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); + print '
'.$langs->trans('State').''; + if ($soc->pays_id) + { + $formcompany->select_departement($soc->departement_id,$soc->pays_code); + } + else + { + print $countrynotdefined; + } + print '
'.$langs->trans('Phone').''.$langs->trans('Fax').'
'.$langs->trans('EMail').($conf->global->SOCIETE_MAIL_REQUIRED?'*':'').''.$langs->trans('Web').'
'.$langs->trans('Capital').' '.$langs->trans("Currency".$conf->monnaie).'
'.$idprof.''; + $soc->show_input_id_prof(1,'idprof1',$soc->siren); + print '  '.$idprof.''; + $soc->show_input_id_prof(2,'idprof2',$soc->siret); + print '  
'.$idprof.''; + $soc->show_input_id_prof(3,'idprof3',$soc->ape); + print '  '.$idprof.''; + $soc->show_input_id_prof(4,'idprof4',$soc->idprof4); + print '  
'.$langs->trans('JuridicalStatus').''; + if ($soc->pays_id) + { + $formcompany->select_forme_juridique($soc->forme_juridique_code,$soc->pays_code); + } + else + { + print $countrynotdefined; + } + print '
'.$langs->trans("Type").''."\n"; + print $form->selectarray("typent_id",$formcompany->typent_array(0), $soc->typent_id); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); + print ''.$langs->trans("Staff").''; + print $form->selectarray("effectif_id",$formcompany->effectif_array(0), $soc->effectif_id); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); + print '
'.$langs->trans("DefaultLang").''."\n"; + $formadmin->select_lang(($soc->default_lang?$soc->default_lang:$conf->global->MAIN_LANG_DEFAULT),'default_lang',0,0,1); + print '
'.$langs->trans('VATIsUsed').''; + print $html->selectyesno('assujtva_value',1,1); // Assujeti par defaut en creation + print ''.$langs->trans('VATIntra').''; + $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').''; + } + print '
'.$langs->trans("LocalTax1IsUsedES").''; + print $html->selectyesno('localtax1assuj_value',0,1); + print ''.$langs->trans("LocalTax2IsUsedES").''; + print $html->selectyesno('localtax2assuj_value',0,1); + print '
'.$langs->trans("LocalTax1IsUsedES").''; + print $html->selectyesno('localtax1assuj_value',0,1); + print '
'.$langs->trans("LocalTax2IsUsedES").''; + print $html->selectyesno('localtax2assuj_value',0,1); + print '
'.$langs->trans("AllocateCommercial").''; + $form->select_users($soc->commercial_id,'commercial_id',1); + print '
'; + print ''; + print '
'."\n"; + print '
'."\n"; - // Define output language - $outputlangs = $langs; - $newlang=''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$fac->client->default_lang; - if (! empty($newlang)) - { - $outputlangs = new Translate("",$conf); - $outputlangs->setDefaultLang($newlang); } - $result=thirdparty_doc_create($db, $soc->id, '', $_REQUEST['model'], $outputlangs); - if ($result <= 0) + } + elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit') + { + /* + * Company Fact Mode edition + */ + print_fiche_titre($langs->trans("EditCompany")); + + if ($socid) { - dol_print_error($db,$result); + // Load object modCodeTiers + $module=$conf->global->SOCIETE_CODECLIENT_ADDON; + if (! $module) dolibarr_error('',$langs->trans("ErrorModuleThirdPartyCodeInCompanyModuleNotDefined")); + if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php') + { + $module = substr($module, 0, dol_strlen($module)-4); + } + require_once(DOL_DOCUMENT_ROOT ."/includes/modules/societe/".$module.".php"); + $modCodeClient = new $module; + // We verified if the tag prefix is used + if ($modCodeClient->code_auto) + { + $prefixCustomerIsUsed = $modCodeClient->verif_prefixIsUsed(); + } + $module=$conf->global->SOCIETE_CODEFOURNISSEUR_ADDON; + if (! $module) $module=$conf->global->SOCIETE_CODECLIENT_ADDON; + if (substr($module, 0, 15) == 'mod_codeclient_' && substr($module, -3) == 'php') + { + $module = substr($module, 0, dol_strlen($module)-4); + } + require_once(DOL_DOCUMENT_ROOT ."/includes/modules/societe/".$module.".php"); + $modCodeFournisseur = new $module; + // On verifie si la balise prefix est utilisee + if ($modCodeFournisseur->code_auto) + { + $prefixSupplierIsUsed = $modCodeFournisseur->verif_prefixIsUsed(); + } + + if ($reload || ! $_POST["nom"]) + { + $soc = new Societe($db); + $soc->id = $socid; + $soc->fetch($socid); + } + else + { + $soc->id=$_POST["socid"]; + $soc->nom=$_POST["nom"]; + $soc->prefix_comm=$_POST["prefix_comm"]; + $soc->client=$_POST["client"]; + $soc->code_client=$_POST["code_client"]; + $soc->fournisseur=$_POST["fournisseur"]; + $soc->code_fournisseur=$_POST["code_fournisseur"]; + $soc->adresse=$_POST["adresse"]; // TODO obsolete + $soc->address=$_POST["adresse"]; + $soc->cp=$_POST["cp"]; + $soc->ville=$_POST["ville"]; + $soc->pays_id=$_POST["pays_id"]?$_POST["pays_id"]:$mysoc->pays_id; + $soc->departement_id=$_POST["departement_id"]; + $soc->tel=$_POST["tel"]; + $soc->fax=$_POST["fax"]; + $soc->email=$_POST["email"]; + $soc->url=$_POST["url"]; + $soc->capital=$_POST["capital"]; + $soc->siren=$_POST["idprof1"]; + $soc->siret=$_POST["idprof2"]; + $soc->ape=$_POST["idprof3"]; + $soc->idprof4=$_POST["idprof4"]; + $soc->typent_id=$_POST["typent_id"]; + $soc->effectif_id=$_POST["effectif_id"]; + $soc->gencod=$_POST["gencod"]; + $soc->forme_juridique_code=$_POST["forme_juridique_code"]; + $soc->default_lang=$_POST["default_lang"]; + + $soc->tva_assuj = $_POST["assujtva_value"]; + $soc->tva_intra=$_POST["tva_intra"]; + + //Local Taxes + $soc->localtax1_assuj = $_POST["localtax1assuj_value"]; + $soc->localtax2_assuj = $_POST["localtax2assuj_value"]; + + // We set pays_id, and pays_code label of the chosen country + if ($soc->pays_id) + { + $sql = "SELECT code, libelle from ".MAIN_DB_PREFIX."c_pays where rowid = ".$soc->pays_id; + $resql=$db->query($sql); + if ($resql) + { + $obj = $db->fetch_object($resql); + } + else + { + dol_print_error($db); + } + $soc->pays_code=$obj->code; + $soc->pays=$langs->trans("Country".$obj->code)?$langs->trans("Country".$obj->code):$obj->libelle; + } + } + + dol_htmloutput_errors($soc->error,$soc->errors); + + if ($conf->use_javascript_ajax) + { + print "\n".''."\n"; + } + + print '
'; + print ''; + print ''; + print ''; + if ($modCodeClient->code_auto || $modCodeFournisseur->code_auto) print ''; + + print ''; + + // Name + print ''; + + // Prefix + print ''; + + // Prospect/Customer + print ''; + print ''; + + // Supplier + print ''; + print ''; + print ''; + + // Category + if ($soc->fournisseur) + { + $load = $soc->LoadSupplierCateg(); + if ( $load == 0) + { + if (sizeof($soc->SupplierCategories) > 0) + { + print ''; + print ''; + } + } + } + + if ($conf->global->MAIN_MODULE_BARCODE) + { + print ''; + } + + // Address + print ''; + + // Zip / Town + print ''; + print ''; + + // Country + print ''; + + // Department + print ''; + + // Phone / Fax + print ''; + print ''; + + // EMail / Web + print ''; + print ''; + + print ''; + // IdProf1 (SIREN for France) + $idprof=$langs->transcountry('ProfId1',$soc->pays_code); + if ($idprof!='-') + { + print ''; + } + else print ''; + // IdProf2 (SIRET for France) + $idprof=$langs->transcountry('ProfId2',$soc->pays_code); + if ($idprof!='-') + { + print ''; + } + else print ''; + print ''; + print ''; + // IdProf3 (APE for France) + $idprof=$langs->transcountry('ProfId3',$soc->pays_code); + if ($idprof!='-') + { + print ''; + } + else print ''; + // IdProf4 (NU for France) + $idprof=$langs->transcountry('ProfId4',$soc->pays_code); + if ($idprof!='-') + { + print ''; + } + else print ''; + print ''; + + // VAT payers + print ''; + + // VAT Code + if ($conf->use_javascript_ajax) + { + print "\n"; + print ''; + print "\n"; + } + print ''; + print ''; + print ''; + + // Local Taxes + if($mysoc->pays_code=='ES') + { + if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") + { + print ''; + + } + elseif($mysoc->localtax1_assuj=="1") + { + print ''; + + } + elseif($mysoc->localtax2_assuj=="1") + { + print ''; + } + } + + print ''; + + print ''; + + print ''; + print ''; + + if ($conf->global->MAIN_MULTILANGS) + { + print ''; + print ''; + } + + print '
'.$langs->trans('Name').'
'.$langs->trans("Prefix").''; + // It does not change the prefix mode using the auto numbering prefix + if (($prefixCustomerIsUsed || $prefixSupplierIsUsed) && $soc->prefix_comm) + { + print ''; + print $soc->prefix_comm; + } + else + { + print ''; + } + print '
'.$langs->trans('ProspectCustomer').''.$langs->trans('CustomerCode').''; + + print '
'; + if ((!$soc->code_client || $soc->code_client == -1) && $modCodeClient->code_auto) + { + $tmpcode=$soc->code_client; + if (empty($tmpcode) && $modCodeClient->code_auto) $tmpcode=$modCodeClient->getNextValue($soc,0); + print ''; + } + else if ($soc->codeclient_modifiable()) + { + print ''; + } + else + { + print $soc->code_client; + print ''; + } + print ''; + $s=$modCodeClient->getToolTip($langs,$soc,0); + print $form->textwithpicto('',$s,1); + print '
'; + + print '
'.$langs->trans('Supplier').''; + print $form->selectyesno("fournisseur",$soc->fournisseur,1); + print ''.$langs->trans('SupplierCode').''; + + print '
'; + if ((!$soc->code_fournisseur || $soc->code_fournisseur == -1) && $modCodeFournisseur->code_auto) + { + $tmpcode=$soc->code_fournisseur; + if (empty($tmpcode) && $modCodeFournisseur->code_auto) $tmpcode=$modCodeFournisseur->getNextValue($soc,1); + print ''; + } + else if ($soc->codefournisseur_modifiable()) + { + print ''; + } + else + { + print $soc->code_fournisseur; + print ''; + } + print ''; + $s=$modCodeFournisseur->getToolTip($langs,$soc,1); + print $form->textwithpicto('',$s,1); + print '
'; + + print '
'.$langs->trans('SupplierCategory').''; + print $form->selectarray("fournisseur_categorie",$soc->SupplierCategories,'',1); + print '
'.$langs->trans('Gencod').''; + print '
'.$langs->trans('Address').'
'.$langs->trans('Zip').''; + if ($conf->use_javascript_ajax && $conf->global->MAIN_AUTOFILL_TOWNFROMZIP) print ' '; + print ''.$langs->trans('Town').'
'.$langs->trans('Country').''; + $form->select_pays($soc->pays_id,'pays_id'); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); + print '
'.$langs->trans('State').''; + $formcompany->select_departement($soc->departement_id,$soc->pays_code); + print '
'.$langs->trans('Phone').''.$langs->trans('Fax').'
'.$langs->trans('EMail').($conf->global->SOCIETE_MAIL_REQUIRED?'*':'').''.$langs->trans('Web').'
'.$idprof.''; + $soc->show_input_id_prof(1,'idprof1',$soc->siren); + print '  '.$idprof.''; + $soc->show_input_id_prof(2,'idprof2',$soc->siret); + print '  
'.$idprof.''; + $soc->show_input_id_prof(3,'idprof3',$soc->ape); + print '  '.$idprof.''; + $soc->show_input_id_prof(4,'idprof4',$soc->idprof4); + print '  
'.$langs->trans('VATIsUsed').''; + print $form->selectyesno('assujtva_value',$soc->tva_assuj,1); + print ''.$langs->trans('VATIntra').''; + $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').''; + } + print '
'.$langs->trans("LocalTax1IsUsedES").''; + print $form->selectyesno('localtax1assuj_value',$soc->localtax1_assuj,1); + print ''.$langs->trans("LocalTax2IsUsedES").''; + print $form->selectyesno('localtax2assuj_value',$soc->localtax2_assuj,1); + print '
'.$langs->trans("LocalTax1IsUsedES").''; + print $form->selectyesno('localtax1assuj_value',$soc->localtax1_assuj,1); + print '
'.$langs->trans("LocalTax2IsUsedES").''; + print $form->selectyesno('localtax2assuj_value',$soc->localtax2_assuj,1); + print '
'.$langs->trans("Capital").' '.$langs->trans("Currency".$conf->monnaie).'
'.$langs->trans('JuridicalStatus').''; + $formcompany->select_forme_juridique($soc->forme_juridique_code,$soc->pays_code); + print '
'.$langs->trans("Type").''; + print $form->selectarray("typent_id",$formcompany->typent_array(0), $soc->typent_id); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); + print ''.$langs->trans("Staff").''; + print $form->selectarray("effectif_id",$formcompany->effectif_array(0), $soc->effectif_id); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); + print '
'.$langs->trans("DefaultLang").''."\n"; + $formadmin->select_lang($soc->default_lang,'default_lang',0,0,1); + print '
'; + print '
'; + + print '
'; + print ''; + print '     '; + print ''; + print '
'; + + print '
'; + } + } + else + { + /* + * Company Fact Sheet mode visu + */ + $soc = new Societe($db); + $soc->id = $socid; + $result=$soc->fetch($socid); + if ($result < 0) + { + dol_print_error($db,$soc->error); exit; } + + $head = societe_prepare_head($soc); + + dol_fiche_head($head, 'company', $langs->trans("ThirdParty"),0,'company'); + + $html = new Form($db); + + + // Confirm delete third party + if ($_GET["action"] == 'delete') + { + $html = new Form($db); + $ret=$html->form_confirm($_SERVER["PHP_SELF"]."?socid=".$soc->id,$langs->trans("DeleteACompany"),$langs->trans("ConfirmDeleteCompany"),"confirm_delete",'',0,2); + if ($ret == 'html') print '
'; + } + + // Template + if ($mesg) + { + print '
'; + print $mesg; + print '
'; + } + + print '
'; + print ''; + print ''; + + // Name + print ''; + print ''; + + print ''; + + if ($soc->client) + { + print ''; + } + + if ($soc->fournisseur) { + print ''; + } + + if ($conf->global->MAIN_MODULE_BARCODE) + { + print ''; + } + + print ""; + + print '"; + print '"; + + // Country + print ''; + + // Department + print ''; + + print ''; + print ''; + + // EMail + print ''; + + // Web + print ''; + + // ProfId1 (SIREN for France) + $profid=$langs->transcountry('ProfId1',$soc->pays_code); + if ($profid!='-') + { + print ''; + } + else print ''; + // ProfId2 (SIRET for France) + $profid=$langs->transcountry('ProfId2',$soc->pays_code); + if ($profid!='-') + { + print ''; + } + else print ''; + + // ProfId3 (APE for France) + $profid=$langs->transcountry('ProfId3',$soc->pays_code); + if ($profid!='-') + { + print ''; + } + else print ''; + // ProfId4 (NU for France) + $profid=$langs->transcountry('ProfId4',$soc->pays_code); + if ($profid!='-') + { + print ''; + } + else print ''; + + // VAT payers + $html = new Form($db); + print ''; + + // VAT Code + if ($conf->use_javascript_ajax) + { + print "\n"; + print ''; + print "\n"; + } + print ''; + print ''; -/* - * View - */ - -$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; -llxHeader('','',$help_url); - -$form = new Form($db); -$formfile = new FormFile($db); -$formadmin = new FormAdmin($db); -$formcompany = new FormCompany($db); - -if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] || -$_GET["action"] == 'create' || $_POST["action"] == 'create') -{ - /* - * Sheet mode creation - */ - if ($user->rights->societe->creer) - { - $title = $soc->object->getTitle('create'); - print_fiche_titre($title); - - $soc->object->assign_post(); - - // Assign values - $soc->assign_values('create'); - - dol_htmloutput_errors($soc->object->error,$soc->object->errors); - - // Display canvas - $soc->display_canvas(); - - } -} -elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit') -{ - /* - * Company Fact Mode edition - */ - - $title = $soc->object->getTitle('edit'); - print_fiche_titre($title); - - if ($socid) - { - if ($reload || ! $_POST["nom"]) + // Local Taxes + if($mysoc->pays_code=='ES') { - $soc = new Canvas($db); - $soc->load_canvas('thirdparty@societe',$canvas); - $soc->object->id = $socid; - $soc->fetch($socid, 'edit'); + if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1") + { + print ''; + + } + elseif($mysoc->localtax1_assuj=="1") + { + print ''; + } + elseif($mysoc->localtax2_assuj=="1") + { + print ''; + } } + + // Capital + print ''; + + // Legal + print ''; + + // Type + Staff + $arr = $formcompany->typent_array(1); + $soc->typent= $arr[$soc->typent_code]; + print ''; + + // Default language + if ($conf->global->MAIN_MULTILANGS) + { + require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); + print ''; + } + + // Ban + print ''; + print ''; + + // Parent company + print ''; + print ''; + + // Commercial + print ''; + print ''; + + // Module Adherent + if ($conf->adherent->enabled) + { + $langs->load("members"); + print ''; + print ''; + print "\n"; } - dol_htmloutput_errors($soc->object->error,$soc->object->errors); - - // Assign values - $soc->assign_values('edit'); - - // Display canvas - $soc->display_canvas(); + print '
'.$langs->trans('Name').''; + print $form->showrefnav($soc,'socid','',($user->societe_id?0:1),'rowid','nom'); + print '
'.$langs->trans('Prefix').''.$soc->prefix_comm.'
'; + print $langs->trans('CustomerCode').''; + print $soc->code_client; + if ($soc->check_codeclient() <> 0) print ' ('.$langs->trans("WrongCustomerCode").')'; + print '
'; + print $langs->trans('SupplierCode').''; + print $soc->code_fournisseur; + if ($soc->check_codefournisseur() <> 0) print ' ('.$langs->trans("WrongSupplierCode").')'; + print '
'.$langs->trans('Gencod').''.$soc->gencod.'
".$langs->trans('Address')."".nl2br($soc->address)."
'.$langs->trans('Zip').''.$soc->cp."'.$langs->trans('Town').''.$soc->ville."
'.$langs->trans("Country").''; + $img=picto_from_langcode($soc->pays_code); + if ($soc->isInEEC()) print $form->textwithpicto(($img?$img.' ':'').$soc->pays,$langs->trans("CountryIsInEEC"),1,0); + else print ($img?$img.' ':'').$soc->pays; + print '
'.$langs->trans('State').''.$soc->departement.'
'.$langs->trans('Phone').''.dol_print_phone($soc->tel,$soc->pays_code,0,$soc->id,'AC_TEL').''.$langs->trans('Fax').''.dol_print_phone($soc->fax,$soc->pays_code,0,$soc->id,'AC_FAX').'
'.$langs->trans('EMail').''; + print dol_print_email($soc->email,0,$soc->id,'AC_EMAIL'); + print ''.$langs->trans('Web').''; + print dol_print_url($soc->url); + print '
'.$profid.''; + print $soc->siren; + if ($soc->siren) + { + if ($soc->id_prof_check(1,$soc) > 0) print '   '.$soc->id_prof_url(1,$soc); + else print ' ('.$langs->trans("ErrorWrongValue").')'; + } + print '
  '.$profid.''; + print $soc->siret; + if ($soc->siret) + { + if ($soc->id_prof_check(2,$soc) > 0) print '   '.$soc->id_prof_url(2,$soc); + else print ' ('.$langs->trans("ErrorWrongValue").')'; + } + print '
  
'.$profid.''; + print $soc->ape; + if ($soc->ape) + { + if ($soc->id_prof_check(3,$soc) > 0) print '   '.$soc->id_prof_url(3,$soc); + else print ' ('.$langs->trans("ErrorWrongValue").')'; + } + print '
  '.$profid.''; + print $soc->idprof4; + if ($soc->idprof4) + { + if ($soc->id_prof_check(4,$soc) > 0) print '   '.$soc->id_prof_url(4,$soc); + else print ' ('.$langs->trans("ErrorWrongValue").')'; + } + print '
  
'; + print $langs->trans('VATIsUsed'); + print ''; + print yn($soc->tva_assuj); + print ''.$langs->trans('VATIntra').''; + if ($soc->tva_intra) + { + $s=''; + $s.=$soc->tva_intra; + $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 { - Header ('Location: '.$_SERVER["PHP_SELF"].'?socid='.$soc->id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#builddoc')); - exit; + print ' '; } - } -} + print '
'.$langs->trans("LocalTax1IsUsedES").''; + print yn($soc->localtax1_assuj); + print ''.$langs->trans("LocalTax2IsUsedES").''; + print yn($soc->localtax2_assuj); + print '
'.$langs->trans("LocalTax1IsUsedES").''; + print yn($soc->localtax1_assuj); + print '
'.$langs->trans("LocalTax2IsUsedES").''; + print yn($soc->localtax2_assuj); + print '
'.$langs->trans('Capital').''; + if ($soc->capital) print $soc->capital.' '.$langs->trans("Currency".$conf->monnaie); + else print ' '; + print '
'.$langs->trans('JuridicalStatus').''.$soc->forme_juridique.'
'.$langs->trans("Type").''.$soc->typent.''.$langs->trans("Staff").''.$soc->effectif.'
'.$langs->trans("DefaultLang").''; + //$s=picto_from_langcode($soc->default_lang); + //print ($s?$s.' ':''); + $langs->load("languages"); + $labellang = ($soc->default_lang?$langs->trans('Language_'.$soc->default_lang):''); + print $labellang; + print '
'; + print '
'; + print $langs->trans('RIB'); + print ''; + if ($user->rights->societe->creer) + print ''.img_edit().''; else + print ' '; + print '
'; + print '
'; + print $soc->display_rib(); + print '
'; + print '
'; + print $langs->trans('ParentCompany'); + print ''; + if ($user->rights->societe->creer) + print ''.img_edit() .''; + else + print ' '; + print '
'; + print '
'; + if ($soc->parent) { - $soc->object->assign_post(); + $socm = new Societe($db); + $socm->fetch($soc->parent); + print $socm->getNomUrl(1).' '.($socm->code_client?"(".$socm->code_client.")":""); + print $socm->ville?' - '.$socm->ville:''; + } + else { + print $langs->trans("NoParentCompany"); + } + print '
'; + print '
'; + print $langs->trans('SalesRepresentatives'); + print ''; + if ($user->rights->societe->creer) + print ''.img_edit().''; + else + print ' '; + print '
'; + print '
'; + + $sql = "SELECT count(sc.rowid) as nb"; + $sql.= " FROM ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + $sql.= " WHERE sc.fk_soc =".$soc->id; + + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $obj = $db->fetch_object($resql); + print $obj->nb?($obj->nb):$langs->trans("NoSalesRepresentativeAffected"); + } + else { + dol_print_error($db); + } + print '
'.$langs->trans("LinkedToDolibarrMember").''; + $adh=new Adherent($db); + $result=$adh->fetch('','',$soc->id); + if ($result > 0) + { + $adh->ref=$adh->getFullName($langs); + print $adh->getNomUrl(1); + } + else + { + print $langs->trans("UserNotLinkedToMember"); + } + print '
'; + print '
'; + print "\n"; + + + /* + * Actions + */ + if ($_GET["action"] == '') + { + print '
'; + + if ($user->rights->societe->creer) + { + print ''.$langs->trans("Modify").''; + } + + if ($user->rights->societe->contact->creer) + { + print ''.$langs->trans("AddContact").''; + } + + if ($user->rights->societe->supprimer) + { + print ''.$langs->trans('Delete').''; + } + + print '
'; + print '
'; + } + + + + print ''; + print ''; + print ''; + print '
'; + print ''; // ancre + + /* + * Documents generes + */ + $filedir=$conf->societe->dir_output.'/'.$soc->id; + $urlsource=$_SERVER["PHP_SELF"]."?socid=".$soc->id; + $genallowed=$user->rights->societe->creer; + $delallowed=$user->rights->societe->supprimer; + + $var=true; + + $somethingshown=$formfile->show_documents('company',$soc->id,$filedir,$urlsource,$genallowed,$delallowed,'',0,0,0,28,0,'',0,'',$soc->default_lang); + + print ''; + print '
'; + + print '
'; + + // Contacts list + $result=show_contacts($conf,$langs,$db,$soc); + + // Projects list + $result=show_projects($conf,$langs,$db,$soc); } + } else { + // ----------------------------------------- + // When used with CANVAS + // ----------------------------------------- + + //$_GET["canvas"] = 'default'; + //if ($_REQUEST["private"]==1) $_GET["canvas"] = 'individual'; + + // Get object canvas + $socstatic = new Societe($db); + if (!empty($socid)) $socstatic->getCanvas($socid); + + + // Initialization Company Canvas + $canvas = (!empty($socstatic->canvas)?$socstatic->canvas:$_GET["canvas"]); + $soc = new Canvas($db); + $soc->load_canvas('thirdparty@societe',$canvas); + + /* - * Company Fact Sheet mode visu + * Actions */ - - $soc->id = $socid; - $result=$soc->fetch($socid); - if ($result < 0) + + if ($_POST["getcustomercode"]) { - dol_print_error($db,$soc->error); - exit; + // We defined value code_client + $_POST["code_client"]="Acompleter"; } - $head = societe_prepare_head($soc); - $title = $soc->object->getTitle('view'); + if ($_POST["getsuppliercode"]) + { + // We defined value code_fournisseur + $_POST["code_fournisseur"]="Acompleter"; + } + + // Add new third party + if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"]) + && ($_POST["action"] == 'add' || $_POST["action"] == 'update') && $user->rights->societe->creer) + { + require_once(DOL_DOCUMENT_ROOT."/lib/functions2.lib.php"); + $error=0; + + if ($_POST["action"] == 'update') + { + // Load properties of company + $soc->fetch($socid); + } + + if ($_REQUEST["private"] == 1) + { + $soc->object->particulier = $_REQUEST["private"]; + + $soc->object->nom = empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?trim($_POST["prenom"].' '.$_POST["nom"]):trim($_POST["nom"].' '.$_POST["prenom"]); + $soc->object->nom_particulier = $_POST["nom"]; + $soc->object->prenom = $_POST["prenom"]; + $soc->object->civilite_id = $_POST["civilite_id"]; + } + else + { + $soc->object->nom = $_POST["nom"]; + } + $soc->object->address = $_POST["adresse"]; + $soc->object->adresse = $_POST["adresse"]; // TODO obsolete + $soc->object->cp = $_POST["cp"]; + $soc->object->ville = $_POST["ville"]; + $soc->object->pays_id = $_POST["pays_id"]; + $soc->object->departement_id = $_POST["departement_id"]; + $soc->object->tel = $_POST["tel"]; + $soc->object->fax = $_POST["fax"]; + $soc->object->email = trim($_POST["email"]); + $soc->object->url = $_POST["url"]; + $soc->object->siren = $_POST["idprof1"]; + $soc->object->siret = $_POST["idprof2"]; + $soc->object->ape = $_POST["idprof3"]; + $soc->object->idprof4 = $_POST["idprof4"]; + $soc->object->prefix_comm = $_POST["prefix_comm"]; + $soc->object->code_client = $_POST["code_client"]; + $soc->object->code_fournisseur = $_POST["code_fournisseur"]; + $soc->object->capital = $_POST["capital"]; + $soc->object->gencod = $_POST["gencod"]; + $soc->object->canvas = $_GET["canvas"]; + + $soc->object->tva_assuj = $_POST["assujtva_value"]; + + // Local Taxes + $soc->object->localtax1_assuj = $_POST["localtax1assuj_value"]; + $soc->object->localtax2_assuj = $_POST["localtax2assuj_value"]; + + $soc->object->tva_intra = $_POST["tva_intra"]; + + $soc->object->forme_juridique_code = $_POST["forme_juridique_code"]; + $soc->object->effectif_id = $_POST["effectif_id"]; + if ($_REQUEST["private"] == 1) + { + $soc->object->typent_id = 8; // TODO predict another method if the field "special" change of rowid + } + else + { + $soc->object->typent_id = $_POST["typent_id"]; + } + $soc->object->client = $_POST["client"]; + $soc->object->fournisseur = $_POST["fournisseur"]; + $soc->object->fournisseur_categorie = $_POST["fournisseur_categorie"]; + + $soc->object->commercial_id = $_POST["commercial_id"]; + $soc->object->default_lang = $_POST["default_lang"]; + + // Check parameters + if (empty($_POST["cancel"])) + { + if (! empty($soc->object->email) && ! isValidEMail($soc->object->email)) + { + $error = 1; + $langs->load("errors"); + $soc->object->error = $langs->trans("ErrorBadEMail",$soc->object->email); + $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; + } + if (! empty($soc->object->url) && ! isValidUrl($soc->object->url)) + { + $error = 1; + $langs->load("errors"); + $soc->object->error = $langs->trans("ErrorBadUrl",$soc->object->url); + $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; + } + if ($soc->object->fournisseur && ! $conf->fournisseur->enabled) + { + $error = 1; + $langs->load("errors"); + $soc->object->error = $langs->trans("ErrorSupplierModuleNotEnabled"); + $_GET["action"] = $_POST["action"]=='add'?'create':'edit'; + } + } + + if (! $error) + { + if ($_POST["action"] == 'add') + { + $db->begin(); + + if (empty($soc->object->client)) $soc->object->code_client=''; + if (empty($soc->object->fournisseur)) $soc->object->code_fournisseur=''; + + $result = $soc->object->create($user); + if ($result >= 0) + { + if ($soc->object->particulier) + { + dol_syslog("This thirdparty is a personal people",LOG_DEBUG); + $contact=new Contact($db); + + $contact->civilite_id = $soc->object->civilite_id; + $contact->name=$soc->object->nom_particulier; + $contact->firstname=$soc->object->prenom; + $contact->address=$soc->object->address; + $contact->cp=$soc->object->cp; + $contact->ville=$soc->object->ville; + $contact->fk_pays=$soc->object->fk_pays; + $contact->socid=$soc->object->id; // fk_soc + $contact->status=1; + $contact->email=$soc->object->email; + $contact->priv=0; + + $result=$contact->create($user); + } + } + else + { + $mesg=$soc->object->error; + } + + if ($result >= 0) + { + $db->commit(); + + if ( $soc->object->client == 1 ) + { + Header("Location: ".DOL_URL_ROOT."/comm/fiche.php?socid=".$soc->object->id); + return; + } + else + { + if ( $soc->object->fournisseur == 1 ) + { + Header("Location: ".DOL_URL_ROOT."/fourn/fiche.php?socid=".$soc->object->id); + return; + } + else + { + Header("Location: ".$_SERVER["PHP_SELF"]."?socid=".$soc->object->id); + return; + } + } + exit; + } + else + { + $db->rollback(); + + $langs->load("errors"); + $mesg=$langs->trans($soc->object->error); + $_GET["action"]='create'; + } + } + + if ($_POST["action"] == 'update') + { + if ($_POST["cancel"]) + { + Header("Location: ".$_SERVER["PHP_SELF"]."?socid=".$socid); + exit; + } + + $oldsoc = new Canvas($db); + $oldsoc->load_canvas('thirdparty@societe',$canvas); + $result=$oldsoc->fetch($socid); + + // To not set code if third party is not concerned. But if it had values, we keep them. + if (empty($soc->object->client) && empty($oldsoc->code_client)) $soc->object->code_client=''; + if (empty($soc->object->fournisseur)&& empty($oldsoc->code_fournisseur)) $soc->object->code_fournisseur=''; + //var_dump($soc);exit; + + $result = $soc->object->update($socid,$user,1,$oldsoc->object->codeclient_modifiable(),$oldsoc->object->codefournisseur_modifiable()); + if ($result >= 0) + { + Header("Location: ".$_SERVER["PHP_SELF"]."?socid=".$socid); + exit; + } + else + { + $soc->object->id = $socid; + $reload = 0; + + $mesg = $soc->object->error; + $_GET["action"]= "edit"; + } + } + } + } + + if ($_REQUEST["action"] == 'confirm_delete' && $_REQUEST["confirm"] == 'yes' && $user->rights->societe->supprimer) + { + $soc = new Societe($db); + $soc->fetch($socid); + $result = $soc->delete($socid); + + if ($result >= 0) + { + Header("Location: ".DOL_URL_ROOT."/societe/societe.php?delsoc=".$soc->nom.""); + exit; + } + else + { + $reload = 0; + $langs->load("errors"); + $mesg=$langs->trans($soc->error); + $_GET["action"]=''; + } + } - dol_fiche_head($head, 'company', $title, 0, 'company'); - - // Assign values - $soc->assign_values('view'); - - // Display canvas - $soc->display_canvas(); /* - * Actions + * Generate document */ - if ($_GET["action"] == '') + if ($_REQUEST['action'] == 'builddoc') // En get ou en post { - print '
'; + if (is_numeric($_REQUEST['model'])) + { + $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Model")); + } + else + { + require_once(DOL_DOCUMENT_ROOT.'/includes/modules/societe/modules_societe.class.php'); + $soc = new Societe($db); + $soc->fetch($socid); + $soc->fetch_thirdparty(); + + /*if ($_REQUEST['model']) + { + $fac->setDocModel($user, $_REQUEST['model']); + } + */ + + // Define output language + $outputlangs = $langs; + $newlang=''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id']; + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$fac->client->default_lang; + if (! empty($newlang)) + { + $outputlangs = new Translate("",$conf); + $outputlangs->setDefaultLang($newlang); + } + $result=thirdparty_doc_create($db, $soc->id, '', $_REQUEST['model'], $outputlangs); + if ($result <= 0) + { + dol_print_error($db,$result); + exit; + } + else + { + Header ('Location: '.$_SERVER["PHP_SELF"].'?socid='.$soc->id.(empty($conf->global->MAIN_JUMP_TAG)?'':'#builddoc')); + exit; + } + } + } + + + /* + * View + */ + + $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; + llxHeader('','',$help_url); + + $form = new Form($db); + $formfile = new FormFile($db); + $formadmin = new FormAdmin($db); + $formcompany = new FormCompany($db); + + if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] || + $_GET["action"] == 'create' || $_POST["action"] == 'create') + { + /* + * Sheet mode creation + */ if ($user->rights->societe->creer) { - print ''.$langs->trans("Modify").''; - } + $title = $soc->object->getTitle('create'); + print_fiche_titre($title); - if ($user->rights->societe->contact->creer) + $soc->object->assign_post(); + + // Assign values + $soc->assign_values('create'); + + dol_htmloutput_errors($soc->object->error,$soc->object->errors); + + // Display canvas + $soc->display_canvas(); + + } + } + elseif ($_GET["action"] == 'edit' || $_POST["action"] == 'edit') + { + /* + * Company Fact Mode edition + */ + + $title = $soc->object->getTitle('edit'); + print_fiche_titre($title); + + if ($socid) { - print ''.$langs->trans("AddContact").''; - } + if ($reload || ! $_POST["nom"]) + { + $soc = new Canvas($db); + $soc->load_canvas('thirdparty@societe',$canvas); + $soc->object->id = $socid; + $soc->fetch($socid, 'edit'); + } + else + { + $soc->object->assign_post(); + } - if ($user->rights->societe->supprimer) + dol_htmloutput_errors($soc->object->error,$soc->object->errors); + + // Assign values + $soc->assign_values('edit'); + + // Display canvas + $soc->display_canvas(); + } + } + else + { + /* + * Company Fact Sheet mode visu + */ + + $soc->id = $socid; + $result=$soc->fetch($socid); + if ($result < 0) { - print ''.$langs->trans('Delete').''; + dol_print_error($db,$soc->error); + exit; } - print '
'; + $head = societe_prepare_head($soc); + $title = $soc->object->getTitle('view'); + + dol_fiche_head($head, 'company', $title, 0, 'company'); + + // Assign values + $soc->assign_values('view'); + + // Display canvas + $soc->display_canvas(); + + /* + * Actions + */ + if ($_GET["action"] == '') + { + print '
'; + + if ($user->rights->societe->creer) + { + print ''.$langs->trans("Modify").''; + } + + if ($user->rights->societe->contact->creer) + { + print ''.$langs->trans("AddContact").''; + } + + if ($user->rights->societe->supprimer) + { + print ''.$langs->trans('Delete').''; + } + + print '
'; + print '
'; + } + + + + print ''; + print ''; + print ''; + print '
'; + print ''; // ancre + + /* + * Documents generes + */ + $filedir=$conf->societe->dir_output.'/'.$soc->id; + $urlsource=$_SERVER["PHP_SELF"]."?socid=".$soc->id; + $genallowed=$user->rights->societe->creer; + $delallowed=$user->rights->societe->supprimer; + + $var=true; + + $somethingshown=$formfile->show_documents('company',$soc->id,$filedir,$urlsource,$genallowed,$delallowed,'',0,0,0,28,0,'',0,'',$soc->default_lang); + + print ''; + print '
'; + print '
'; + + // Contacts list + $result=show_contacts($conf,$langs,$db,$soc); + + // Projects list + $result=show_projects($conf,$langs,$db,$soc); } - - - print ''; - print ''; - print ''; - print '
'; - print ''; // ancre - - /* - * Documents generes - */ - $filedir=$conf->societe->dir_output.'/'.$soc->id; - $urlsource=$_SERVER["PHP_SELF"]."?socid=".$soc->id; - $genallowed=$user->rights->societe->creer; - $delallowed=$user->rights->societe->supprimer; - - $var=true; - - $somethingshown=$formfile->show_documents('company',$soc->id,$filedir,$urlsource,$genallowed,$delallowed,'',0,0,0,28,0,'',0,'',$soc->default_lang); - - print ''; - print '
'; - - print '
'; - - // Contacts list - $result=show_contacts($conf,$langs,$db,$soc); - - // Projects list - $result=show_projects($conf,$langs,$db,$soc); } + $db->close(); llxFooter('$Date$ - $Revision$'); + ?>