From 8104948dce257d4beacb98e0951e6b9d154cded1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 13 Oct 2008 16:39:53 +0000 Subject: [PATCH] New: task #7560 : Droit et definition d'un filtre d'export des interventions --- ChangeLog | 3 +- htdocs/exports/export.php | 2 + htdocs/fichinter/fiche.php | 61 +++---------- htdocs/fichinter/fichinter.class.php | 31 ++++--- htdocs/fichinter/index.php | 8 +- htdocs/html.formfile.class.php | 11 ++- .../modules/export/export_csv.modules.php | 1 + .../modules/export/export_excel.modules.php | 1 + .../modules/export/export_tsv.modules.php | 3 +- .../modules/fichinter/pdf_soleil.modules.php | 3 +- htdocs/includes/modules/modFacture.class.php | 2 +- .../includes/modules/modFicheinter.class.php | 87 ++++++++++++------- htdocs/langs/fr_FR/interventions.lang | 12 +++ 13 files changed, 121 insertions(+), 104 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3b846d2e069..92b8c7a624f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,9 +7,10 @@ For users: - Support bookmark add of product cards. - New view in ecm module. - Look enhancements for graphics (add transparency). -- Added statistics report for supplier invoices +- Added statistics report for supplier invoices. - Added average amount in invoices statistics reports. - Can move a contract line to another contract of same third party. +- Add an export definition to export interventions. For translators: - The errors language file contains only error or warning messages with diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 60799443d4a..b8b79562b3b 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -38,6 +38,7 @@ if (! $user->societe_id == 0) $entitytoicon=array( 'invoice'=>'bill','invoice_line'=>'bill', 'order'=>'order' ,'order_line'=>'order', + 'intervention'=>'intervention' ,'inter_line'=>'intervention', 'member'=>'user' ,'member_type'=>'group','subscription'=>'payment', 'tax'=>'generic' ,'tax_type'=>'generic', 'account'=>'account', @@ -50,6 +51,7 @@ $entitytolang=array( // Translation code 'company'=>'Company','contact'=>'Contact', 'invoice'=>'Bill','invoice_line'=>'InvoiceLine', 'order'=>'Order','order_line'=>'OrderLine', + 'intervention'=>'Intervention' ,'inter_line'=>'InterLine', 'member'=>'Member','member_type'=>'MemberType','subscription'=>'Subscription', 'tax'=>'SocialContribution','tax_type'=>'DictionnarySocialContributions', 'account'=>'BankTransactions', diff --git a/htdocs/fichinter/fiche.php b/htdocs/fichinter/fiche.php index e57a081bbc3..f432002491e 100644 --- a/htdocs/fichinter/fiche.php +++ b/htdocs/fichinter/fiche.php @@ -19,10 +19,10 @@ */ /** - \file htdocs/fichinter/fiche.php - \brief Fichier fiche intervention - \ingroup ficheinter - \version $Id$ + * \file htdocs/fichinter/fiche.php + * \brief Fichier fiche intervention + * \ingroup ficheinter + * \version $Id$ */ require("./pre.inc.php"); @@ -96,7 +96,6 @@ if ($_POST["action"] == 'add') { $fichinter = new Fichinter($db); - $fichinter->date = dolibarr_mktime($_POST["phour"], $_POST["pmin"] , $_POST["psec"], $_POST["pmonth"], $_POST["pday"], $_POST["pyear"]); $fichinter->socid = $_POST["socid"]; $fichinter->duree = $_POST["duree"]; $fichinter->projet_id = $_POST["projetidp"]; @@ -130,7 +129,6 @@ if ($_POST["action"] == 'update') { $fichinter = new Fichinter($db); - $fichinter->date = dolibarr_mktime($_POST["phour"], $_POST["pmin"] , $_POST["psec"], $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); $fichinter->socid = $_POST["socid"]; $fichinter->projet_id = $_POST["projetidp"]; $fichinter->author = $user->id; @@ -142,7 +140,7 @@ if ($_POST["action"] == 'update') } /* - * G�n�rer ou reg�n�rer le document PDF + * Build doc */ if ($_REQUEST['action'] == 'builddoc') // En get ou en post { @@ -164,14 +162,13 @@ if ($_REQUEST['action'] == 'builddoc') // En get ou en post } } -/* - * Classer dans un projet - */ +// Set into a project if ($_POST['action'] == 'classin') { $fichinter = new Fichinter($db); $fichinter->fetch($_GET['id']); - $fichinter->set_project($user, $_POST['projetidp']); + $result=$fichinter->set_project($user, $_POST['projetidp']); + if ($result < 0) dolibarr_print_error($db,$fichinter->error); } if ($_REQUEST['action'] == 'confirm_delete' && $_REQUEST['confirm'] == 'yes') @@ -186,14 +183,6 @@ if ($_REQUEST['action'] == 'confirm_delete' && $_REQUEST['confirm'] == 'yes') exit; } -if ($_POST['action'] == 'setdate_delivery') -{ - $fichinter = new Fichinter($db); - $fichinter->fetch($_GET['id']); - $result=$fichinter->set_date_delivery($user,dolibarr_mktime(12, 0, 0, $_POST['liv_month'], $_POST['liv_day'], $_POST['liv_year'])); - if ($result < 0) dolibarr_print_error($db,$fichinter->error); -} - if ($_POST['action'] == 'setdescription') { $fichinter = new Fichinter($db); @@ -202,6 +191,8 @@ if ($_POST['action'] == 'setdescription') if ($result < 0) dolibarr_print_error($db,$fichinter->error); } + + /* * Ajout d'une ligne d'intervention */ @@ -254,7 +245,6 @@ if ($_POST['action'] == 'updateligne' && $user->rights->ficheinter->creer && $_P $duration = ConvertTime2Seconds($_POST['durationhour'],$_POST['durationmin']); $fichinterline->desc=$desc; - $fichinterline->datei=$date_intervention; $fichinterline->duration=$duration; $result = $fichinterline->update(); @@ -409,10 +399,6 @@ if ($_GET["action"] == 'create') print ''; print "".$langs->trans("Company")."".$societe->getNomUrl(1).""; - print "".$langs->trans("Date").""; - $html->select_date(time(),"p",'','','','fichinter'); - print ""; - print ""; print "".$langs->trans("Ref").""; @@ -549,29 +535,6 @@ elseif ($_GET["id"] > 0) // Societe print "".$langs->trans("Company")."".$fichinter->client->getNomUrl(1).""; - // Date - print ''; - print ''; - if ($_GET['action'] != 'editdate_delivery' && $fichinter->brouillon) print ''; - print '
'; - print $langs->trans('Date'); - print 'id.'">'.img_edit($langs->trans('SetDateCreate'),1).'
'; - print ''; - if ($_GET['action'] == 'editdate_delivery') - { - print '
'; - print ''; - $html->select_date($fichinter->date,'liv_','','','',"editdate_delivery"); - print ''; - print '
'; - } - else - { - print dolibarr_print_date($fichinter->date,'%a %d %B %Y'); - } - print ''; - print ''; - // Projet if ($conf->projet->enabled) { @@ -905,13 +868,13 @@ elseif ($_GET["id"] > 0) } // Delete - if ($fichinter->statut == 0 && $user->rights->ficheinter->supprimer) + if (($fichinter->statut == 0 && $user->rights->ficheinter->creer) || $user->rights->ficheinter->supprimer) { print 'use_javascript_ajax && $conf->global->MAIN_CONFIRM_AJAX) { $url = $_SERVER["PHP_SELF"].'?id='.$fichinter->id.'&action=confirm_delete&confirm=yes'; - print 'href="#" onClick="dialogConfirm(\''.$url.'\',\''.$langs->trans("ConfirmDeleteIntervention").'\',\''.$langs->trans("Yes").'\',\''.$langs->trans("No").'\',\'delete\')"'; + print 'href="#" onClick="dialogConfirm(\''.$url.'\',\''.dol_escape_js($langs->trans("ConfirmDeleteIntervention",$fichinter->ref)).'\',\''.$langs->trans("Yes").'\',\''.$langs->trans("No").'\',\'delete\')"'; } else { diff --git a/htdocs/fichinter/fichinter.class.php b/htdocs/fichinter/fichinter.class.php index b6e34324a7a..b1627828dda 100644 --- a/htdocs/fichinter/fichinter.class.php +++ b/htdocs/fichinter/fichinter.class.php @@ -102,11 +102,10 @@ class Fichinter extends CommonObject $result=$soc->fetch($this->socid); $this->verifyNumRef($soc); - $sql = "INSERT INTO ".MAIN_DB_PREFIX."fichinter (fk_soc, datei, datec, ref, fk_user_author, description, model_pdf"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."fichinter (fk_soc, datec, ref, fk_user_author, description, model_pdf"; if ($this->projet_id) $sql.= ", fk_projet"; $sql.= ") "; $sql.= " VALUES (".$this->socid.","; - $sql.= " ".$this->db->idate($this->date).","; $sql.= " ".$this->db->idate(mktime()).", '".$this->ref."', ".$this->author; $sql.= ", '".addslashes($this->description)."', '".$this->modelpdf."'"; if ($this->projet_id) $sql .= ", ".$this->projet_id; @@ -420,26 +419,26 @@ class Fichinter extends CommonObject { if ($user->rights->ficheinter->creer) { - //verif que le projet et la societe concordent - $sql = 'SELECT p.rowid, p.title FROM '.MAIN_DB_PREFIX.'projet as p WHERE p.fk_soc ='.$this->socid.' AND p.rowid='.$project_id; - $sqlres = $this->db->query($sql); - if ($sqlres) + $sql = 'UPDATE '.MAIN_DB_PREFIX.'fichinter'; + $sql.= ' SET fk_projet = '.($project_id <= 0?'NULL':$project_id); + $sql.= ' WHERE rowid = '.$this->id; + + dolibarr_syslog("Fichinter::set_project sql=".$sql); + $resql=$this->db->query($sql); + if ($resql) { - $numprojet = $this->db->num_rows($sqlres); - if ($numprojet > 0) - { - $this->projetidp=$project_id; - $sql = 'UPDATE '.MAIN_DB_PREFIX.'fichinter SET fk_projet = '.$project_id; - $sql .= ' WHERE rowid = '.$this->id.' AND fk_statut = 0 ;'; - $this->db->query($sql); - } + $this->projetidp=$project_id; } else { - - dolibarr_syslog("Fichinter::set_project Erreur SQL"); + $this->error=$this->db->error(); + dolibarr_syslog("Fichinter::set_project Error ".$this->error); } } + else + { + dolibarr_syslog("Fichinter::set_project Error Permission refused"); + } } /** diff --git a/htdocs/fichinter/index.php b/htdocs/fichinter/index.php index 3095b9c49c9..12e513b0f0d 100644 --- a/htdocs/fichinter/index.php +++ b/htdocs/fichinter/index.php @@ -52,6 +52,7 @@ $offset = $limit * $page ; $pageprev = $page - 1; $pagenext = $page + 1; + /* * View */ @@ -59,10 +60,13 @@ $pagenext = $page + 1; llxHeader(); -$sql = "SELECT s.nom,s.rowid as socid, f.ref,".$db->pdate("f.datei")." as dp, f.rowid as fichid, f.fk_statut, f.description, f.duree"; +$sql = "SELECT s.nom,s.rowid as socid, f.ref, f.rowid as fichid, f.fk_statut,"; +$sql.= " fd.description, ".$db->pdate("fd.date")." as dp, fd.duree"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user"; -$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."fichinter as f "; +$sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +$sql.= ", ".MAIN_DB_PREFIX."fichinter as f "; +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."fichinterdet as fd ON fd.fk_fichinter = f.rowid"; $sql.= " WHERE f.fk_soc = s.rowid "; if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; if ($socid > 0) diff --git a/htdocs/html.formfile.class.php b/htdocs/html.formfile.class.php index a73f5f1892c..60c925872e6 100644 --- a/htdocs/html.formfile.class.php +++ b/htdocs/html.formfile.class.php @@ -385,9 +385,10 @@ class FormFile * \param relativepath Relative path of docs (autodefined if not provided) * \param permtodelete Permission to delete * \param useinecm Change output for use in ecm module + * \param textifempty Text to show if filearray is empty * \return int <0 if KO, nb of files shown if OK */ - function list_of_documents($filearray,$object,$modulepart,$param,$forcedownload=0,$relativepath='',$permtodelete=1,$useinecm=0) + function list_of_documents($filearray,$object,$modulepart,$param,$forcedownload=0,$relativepath='',$permtodelete=1,$useinecm=0,$textifempty='') { global $user, $conf, $langs; global $bc; @@ -441,7 +442,13 @@ class FormFile print "\n"; } } - if (sizeof($filearray) == 0) print ''.$langs->trans("NoFileFound").''; + if (sizeof($filearray) == 0) + { + print ''; + if (empty($textifempty)) print $langs->trans("NoFileFound"); + else print $textifempty; + print ''; + } print ""; // Fin de zone diff --git a/htdocs/includes/modules/export/export_csv.modules.php b/htdocs/includes/modules/export/export_csv.modules.php index d301991f6e1..f777966c1d1 100644 --- a/htdocs/includes/modules/export/export_csv.modules.php +++ b/htdocs/includes/modules/export/export_csv.modules.php @@ -161,6 +161,7 @@ class ExportCsv extends ModeleExports foreach($array_selected_sorted as $code => $value) { $alias=$array_alias[$code]; + if (empty($alias)) dolibarr_print_error('','Bad value for field with code='.$code.'. Try to redefine export.'); $newvalue=$objp->$alias; // Translation newvalue diff --git a/htdocs/includes/modules/export/export_excel.modules.php b/htdocs/includes/modules/export/export_excel.modules.php index 2548bdddcf4..bfee82aff10 100644 --- a/htdocs/includes/modules/export/export_excel.modules.php +++ b/htdocs/includes/modules/export/export_excel.modules.php @@ -153,6 +153,7 @@ class ExportExcel extends ModeleExports { $alias=$array_export_fields_label[$code]; //print "dd".$alias; + if (empty($alias)) dolibarr_print_error('','Bad value for field with code='.$code.'. Try to redefine export.'); $this->worksheet->write($this->row, $this->col, $langs->transnoentities($alias), $formatheader); $this->col++; } diff --git a/htdocs/includes/modules/export/export_tsv.modules.php b/htdocs/includes/modules/export/export_tsv.modules.php index 07b49dcf6f8..0a239eaea64 100644 --- a/htdocs/includes/modules/export/export_tsv.modules.php +++ b/htdocs/includes/modules/export/export_tsv.modules.php @@ -161,7 +161,8 @@ class ExportTsv extends ModeleExports foreach($array_selected_sorted as $code => $value) { $alias=$array_alias[$code]; - $newvalue=$objp->$alias; + if (empty($alias)) dolibarr_print_error('','Bad value for field with code='.$code.'. Try to redefine export.'); + $newvalue=$objp->$alias; // Translation newvalue if (eregi('^\((.*)\)$',$newvalue,$reg)) diff --git a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php index e071323a29c..12136d10528 100644 --- a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php +++ b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php @@ -238,9 +238,8 @@ class pdf_soleil extends ModelePDFFicheinter $pdf->rect(100, 40, 100, 40); - $pdf->SetTextColor(200,0,0); + $pdf->SetTextColor(0,0,100); $pdf->SetFont('Arial','B',14); - $pdf->Text(11, 88, "Date : " . dolibarr_print_date($fichinter->date,'day')); $pdf->Text(11, 94, $langs->trans("InterventionCard")." : ".$fichinter->ref); $pdf->SetFillColor(220,220,220); diff --git a/htdocs/includes/modules/modFacture.class.php b/htdocs/includes/modules/modFacture.class.php index abdcd1b1dbb..7ae2e43fb11 100644 --- a/htdocs/includes/modules/modFacture.class.php +++ b/htdocs/includes/modules/modFacture.class.php @@ -65,7 +65,7 @@ class modFacture extends DolibarrModules // Dir $this->dirs = array(); - // D�pendances + // Dependencies $this->depends = array("modSociete"); $this->requiredby = array("modComptabilite","modComptabiliteExpert"); $this->conflictwith = array(); diff --git a/htdocs/includes/modules/modFicheinter.class.php b/htdocs/includes/modules/modFicheinter.class.php index e439bc00723..722010c9379 100644 --- a/htdocs/includes/modules/modFicheinter.class.php +++ b/htdocs/includes/modules/modFicheinter.class.php @@ -20,31 +20,30 @@ */ /** - \defgroup ficheinter Module intervention cards - \brief Module to manage intervention cards - \version $Id$ + * \defgroup ficheinter Module intervention cards + * \brief Module to manage intervention cards + * \version $Id$ */ /** - \file htdocs/includes/modules/modFicheinter.class.php - \ingroup ficheinter - \brief Fichier de description et activation du module Ficheinter + * \file htdocs/includes/modules/modFicheinter.class.php + * \ingroup ficheinter + * \brief Fichier de description et activation du module Ficheinter */ include_once(DOL_DOCUMENT_ROOT ."/includes/modules/DolibarrModules.class.php"); /** - \class modFicheinter - \brief Classe de description et activation du module Ficheinter + * \class modFicheinter + * \brief Classe de description et activation du module Ficheinter */ - class modFicheinter extends DolibarrModules { /** * \brief Constructeur. Definit les noms, constantes et boites - * \param DB handler d'acc�s base + * \param DB Database access handler */ function modFicheinter($DB) { @@ -66,12 +65,14 @@ class modFicheinter extends DolibarrModules // Dir $this->dirs = array(); - // Config pages - $this->config_page_url = array("fichinter.php"); - - // D�pendances + // Dependencies $this->depends = array("modSociete","modCommercial"); $this->requiredby = array(); + $this->conflictwith = array(); + $this->langfiles = array("bills","companies","interventions"); + + // Config pages + $this->config_page_url = array("fichinter.php"); // Constantes $this->const = array(); @@ -93,25 +94,51 @@ class modFicheinter extends DolibarrModules // Permissions $this->rights = array(); $this->rights_class = 'ficheinter'; + $r=0; + + $r++; + $this->rights[$r][0] = 61; + $this->rights[$r][1] = 'Lire les fiches d\'intervention'; + $this->rights[$r][2] = 'r'; + $this->rights[$r][3] = 1; + $this->rights[$r][4] = 'lire'; - $this->rights[1][0] = 61; - $this->rights[1][1] = 'Lire les fiches d\'intervention'; - $this->rights[1][2] = 'r'; - $this->rights[1][3] = 1; - $this->rights[1][4] = 'lire'; + $r++; + $this->rights[$r][0] = 62; + $this->rights[$r][1] = 'Creer/modifier les fiches d\'intervention'; + $this->rights[$r][2] = 'w'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'creer'; - $this->rights[2][0] = 62; - $this->rights[2][1] = 'Creer/modifier les fiches d\'intervention'; - $this->rights[2][2] = 'w'; - $this->rights[2][3] = 0; - $this->rights[2][4] = 'creer'; - - $this->rights[3][0] = 64; - $this->rights[3][1] = 'Supprimer les fiches d\'intervention'; - $this->rights[3][2] = 'd'; - $this->rights[3][3] = 0; - $this->rights[3][4] = 'supprimer'; + $r++; + $this->rights[$r][0] = 64; + $this->rights[$r][1] = 'Supprimer les fiches d\'intervention'; + $this->rights[$r][2] = 'd'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'supprimer'; + $r++; + $this->rights[$r][0] = 67; + $this->rights[$r][1] = 'Exporter les fiches interventions'; + $this->rights[$r][2] = 'r'; + $this->rights[$r][3] = 0; + $this->rights[$r][4] = 'export'; + + //Exports + //-------- + $r=1; + + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='InterventionCardsAndInterventionLines'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_permission[$r]=array(array("ficheinter","export")); + $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.cp'=>'Zip','s.ville'=>'Town','s.fk_pays'=>'Country','s.tel'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InterId",'f.ref'=>"InterRef",'f.datec'=>"InterDateCreation",'f.duree'=>"InterDuration",'f.fk_statut'=>'InterStatus','f.description'=>"InterNote",'fd.rowid'=>'InterLineId','fd.date'=>"InterLineDate",'fd.duree'=>"InterLineDuration",'fd.description'=>"InterLineDesc"); + $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.cp'=>'company','s.ville'=>'company','s.fk_pays'=>'company','s.tel'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','f.rowid'=>"intervention",'f.ref'=>"intervention",'f.datec'=>"intervention",'f.duree'=>"intervention",'f.fk_statut'=>"intervention",'f.description'=>"intervention",'fd.rowid'=>"intervention",'fd.date'=>"inter_line",'fd.duree'=>'inter_line','fd.description'=>'inter_line'); + $this->export_alias_array[$r]=array('s.rowid'=>"socid",'s.nom'=>'soc_name','s.address'=>'soc_adres','s.cp'=>'soc_zip','s.ville'=>'soc_ville','s.fk_pays'=>'soc_pays','s.tel'=>'soc_tel','s.siren'=>'soc_siren','s.siret'=>'soc_siret','s.ape'=>'soc_ape','s.idprof4'=>'soc_idprof4','s.code_compta'=>'soc_customer_accountancy','s.code_compta_fournisseur'=>'soc_supplier_accountancy','f.rowid'=>"interid",'f.ref'=>"ref",'f.datec'=>"datecreation",'f.duree'=>"duration",'f.fk_statut'=>'status','f.description'=>"note",'fd.rowid'=>'lineid','fd.date'=>"linedate",'fd.duree'=>'lineduration','fd.description'=>"linedescription"); + $this->export_sql_start[$r]='SELECT DISTINCT '; + $this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'fichinter as f, '.MAIN_DB_PREFIX.'fichinterdet as fd, '.MAIN_DB_PREFIX.'societe as s)'; + $this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_fichinter'; + $r++; + } diff --git a/htdocs/langs/fr_FR/interventions.lang b/htdocs/langs/fr_FR/interventions.lang index 711325b184d..54c6cb8cc10 100644 --- a/htdocs/langs/fr_FR/interventions.lang +++ b/htdocs/langs/fr_FR/interventions.lang @@ -19,6 +19,18 @@ ConfirmValidateIntervention= ConfirmDeleteInterventionLine=Êtes-vous sûr de vouloir effacer cette ligne ? NameAndSignatureOfInternalContact=Nom et signature de l'intervenant : NameAndSignatureOfExternalContact=Nom et signature du client : +InterventionCardsAndInterventionLines=Fiches interventions et lignes d'interventions +InterId=Id intervention +InterRef=Réf. intervention +InterDateCreation=Date création +InterDuration=Durée totale +InterStatus=Statut +InterNote=Description +InterLine=Ligne intervention +InterLineId=Id ligne détail +InterLineDate=Date ligne +InterLineDuration=Durée ligne +InterLineDesc=Description ligne ##### Types de contacts ##### TypeContact_fichinter_internal_INTERREPFOLL=Responsable suivi de l'intervention TypeContact_fichinter_internal_INTERVENING=Intervenant