Skip to content

Commit

Permalink
[ task #901 ] Add Extrafeild on Fiche Inter
Browse files Browse the repository at this point in the history
  • Loading branch information
FHenry committed May 18, 2013
1 parent 5d73ce4 commit cbf29e2
Show file tree
Hide file tree
Showing 7 changed files with 255 additions and 3 deletions.
4 changes: 3 additions & 1 deletion ChangeLog
Expand Up @@ -11,10 +11,12 @@ For users:
- New: Add graph of bank account input/output into input-output report page.
- New: Add script export-bank-receipts.
- New: Add option "filter=bank" onto script rebuild_merge_pdf.php to merge
PDF that has one payment on a specific bank account.
PDF that has one payment on a specific bank account.*
- New: [ task #901 ] Add Extrafeild on Fiche Inter
For developers:
- New: DolGraph can build graph with three lines.


***** ChangeLog for 3.4 compared to 3.3.2 *****
For users:
- New: Can use ODS templates as document templates.
Expand Down
38 changes: 38 additions & 0 deletions htdocs/core/lib/fichinter.lib.php
Expand Up @@ -88,4 +88,42 @@ function fichinter_prepare_head($object)
return $head;
}

/**
* Return array head with list of tabs to view object informations.
*
* @return array head array with tabs
*/
function fichinter_admin_prepare_head()
{
global $langs, $conf, $user;

$h = 0;
$head = array();

$h = 0;

$head[$h][0] = DOL_URL_ROOT."/admin/fichinter.php";
$head[$h][1] = $langs->trans("Interventions");
$head[$h][2] = 'ficheinter';
$h++;

// Show more tabs from modules
// Entries must be declared in modules descriptor with line
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
// $this->tabs = array('entity:-tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to remove a tab
complete_head_from_modules($conf,$langs,$object,$head,$h,'fichinter_admin');

$head[$h][0] = DOL_URL_ROOT.'/fichinter/admin/fichinter_extrafields.php';
$head[$h][1] = $langs->trans("ExtraFields");
$head[$h][2] = 'attributes';
$h++;



complete_head_from_modules($conf,$langs,$object,$head,$h,'fichinter_admin','remove');

return $head;
}


?>
158 changes: 158 additions & 0 deletions htdocs/fichinter/admin/fichinter_extrafields.php
@@ -0,0 +1,158 @@
<?php
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
*
* 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 3 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, see <http://www.gnu.org/licenses/>.
*/

/**
* \file htdocs/fichinter/admin/fichinter_extrafields.php
* \ingroup fichinter
* \brief Page to setup extra fields of ficheinter
*/


require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/fichinter.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';

$langs->load("companies");
$langs->load("admin");
$langs->load("members");

$extrafields = new ExtraFields($db);
$form = new Form($db);

// List of supported format
$tmptype2label=getStaticMember(get_class($extrafields),'type2label');
$type2label=array('');
foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);

$action=GETPOST('action', 'alpha');
$attrname=GETPOST('attrname', 'alpha');
$elementtype='fichinter'; //Must be the $element of the class that manage extrafield

if (!$user->admin) accessforbidden();


/*
* Actions
*/

require DOL_DOCUMENT_ROOT.'/core/admin_extrafields.inc.php';



/*
* View
*/


llxHeader();


$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print_fiche_titre($langs->trans("InterventionsSetup"),$linkback,'setup');


$head=fichinter_admin_prepare_head();

dol_fiche_head($head, 'attributes', $langs->trans("Ficheinter"), 0, 'fichinter');


print $langs->trans("DefineHereComplementaryAttributes",$textobject).'<br>'."\n";
print '<br>';

// Load attribute_label
$extrafields->fetch_name_optionals_label($elementtype);

print "<table summary=\"listofattributes\" class=\"noborder\" width=\"100%\">";

print '<tr class="liste_titre">';
print '<td align="center">'.$langs->trans("Position").'</td>';
print '<td>'.$langs->trans("Label").'</td>';
print '<td>'.$langs->trans("AttributeCode").'</td>';
print '<td>'.$langs->trans("Type").'</td>';
print '<td align="right">'.$langs->trans("Size").'</td>';
print '<td align="center">'.$langs->trans("Unique").'</td>';
print '<td align="center">'.$langs->trans("Required").'</td>';
print '<td width="80">&nbsp;</td>';
print "</tr>\n";

$var=True;
foreach($extrafields->attribute_type as $key => $value)
{
$var=!$var;
print "<tr ".$bc[$var].">";
print "<td>".$extrafields->attribute_pos[$key]."</td>\n";
print "<td>".$extrafields->attribute_label[$key]."</td>\n";
print "<td>".$key."</td>\n";
print "<td>".$type2label[$extrafields->attribute_type[$key]]."</td>\n";
print '<td align="right">'.$extrafields->attribute_size[$key]."</td>\n";
print '<td align="center">'.yn($extrafields->attribute_unique[$key])."</td>\n";
print '<td align="center">'.yn($extrafields->attribute_required[$key])."</td>\n";
print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=edit&attrname='.$key.'">'.img_edit().'</a>';
print "&nbsp; <a href=\"".$_SERVER["PHP_SELF"]."?action=delete&attrname=$key\">".img_delete()."</a></td>\n";
print "</tr>";
// $i++;
}

print "</table>";

dol_fiche_end();


// Buttons
if ($action != 'create' && $action != 'edit')
{
print '<div class="tabsAction">';
print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
print "</div>";
}


/* ************************************************************************** */
/* */
/* Creation d'un champ optionnel
/* */
/* ************************************************************************** */

if ($action == 'create')
{
print "<br>";
print_titre($langs->trans('NewAttribute'));

require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
}

/* ************************************************************************** */
/* */
/* Edition d'un champ optionnel */
/* */
/* ************************************************************************** */
if ($action == 'edit' && ! empty($attrname))
{
print "<br>";
print_titre($langs->trans("FieldEdition", $attrname));

require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
}

llxFooter();

$db->close();
?>
3 changes: 1 addition & 2 deletions htdocs/fichinter/fiche.php
Expand Up @@ -641,8 +641,7 @@
{
$langs->load('mails');

if ($object->fetch($id) > 0)
{
if ($object->fetch($id) > 0) {

$object->fetch_thirdparty();

Expand Down
10 changes: 10 additions & 0 deletions htdocs/install/mysql/migration/3.4.0-3.5.0.sql
Expand Up @@ -22,4 +22,14 @@ DELETE FROM llx_menu where module='holiday';

ALTER TABLE llx_projet_task ADD COLUMN planned_workload real DEFAULT 0 NOT NULL AFTER duration_effective;

create table llx_fichinter_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;

ALTER TABLE llx_fichinter_extrafields ADD INDEX idx_ficheinter_extrafields (fk_object);


20 changes: 20 additions & 0 deletions htdocs/install/mysql/tables/llx_fichinter_extrafields.key.sql
@@ -0,0 +1,20 @@
-- ===================================================================
-- Copyright (C) 2013 Florian Henry <florian.henry@open-cocncept.pro>
--
-- 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 3 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, see <http://www.gnu.org/licenses/>.
--
-- ===================================================================


ALTER TABLE llx_fichinter_extrafields ADD INDEX idx_ficheinter_extrafields (fk_object);
25 changes: 25 additions & 0 deletions htdocs/install/mysql/tables/llx_fichinter_extrafields.sql
@@ -0,0 +1,25 @@
-- ===================================================================
-- Copyright (C) 2013 florian Henry <florian.henry@open-concept.pro>
--
-- 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 3 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, see <http://www.gnu.org/licenses/>.
--
-- ===================================================================

create table llx_fichinter_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;

0 comments on commit cbf29e2

Please sign in to comment.