Task #988 - FOLLOWUP : plusieurs intervenants
Plusieurs intervenants pour les actions de gestion * ajax pour ajouter, enlever * dans la recherche
This commit is contained in:
parent
7aabfa478f
commit
92ca5ceebe
11 changed files with 602 additions and 112 deletions
|
|
@ -431,6 +431,16 @@ case 'fs':
|
|||
$ctl=$ctl.'_content';
|
||||
$html=$r;
|
||||
break;
|
||||
case 'action_add_concerned_card':
|
||||
require_once 'ajax_add_concerned_card.php';
|
||||
return;
|
||||
break;
|
||||
case 'action_save_concerned':
|
||||
require 'ajax_action_save_concerned.php';
|
||||
return;
|
||||
case 'action_remove_concerned':
|
||||
require 'ajax_action_remove_concerned.php';
|
||||
return;
|
||||
case 'ac':
|
||||
if ( $g_user->check_action(FICCAT)==1 )
|
||||
{
|
||||
|
|
|
|||
193
html/js/card.js
193
html/js/card.js
|
|
@ -113,6 +113,115 @@ function search_card(obj)
|
|||
alert('search_card failed'+e.message);
|
||||
}
|
||||
}
|
||||
/**
|
||||
*@brief Display form for select card to add to action : other_concerned
|
||||
*action_add_concerned_card
|
||||
*/
|
||||
function action_add_concerned_card(obj)
|
||||
{
|
||||
try
|
||||
{
|
||||
var dossier = 0;
|
||||
var inp="";
|
||||
var ag_id=0;
|
||||
|
||||
if (obj.dossier) {
|
||||
dossier = obj.dossier; /* From the button */
|
||||
}
|
||||
if (obj.ag_id) {
|
||||
ag_id=obj.ag_id;
|
||||
}
|
||||
/* from the form */
|
||||
if (obj.elements) {
|
||||
if (obj.elements['gDossier'])
|
||||
{
|
||||
dossier = obj.elements['gDossier'].value;
|
||||
}
|
||||
|
||||
if (obj.elements['query']) {
|
||||
inp = obj.elements['query'].value;
|
||||
}
|
||||
|
||||
if (obj.elements['ag_id']) {
|
||||
ag_id = obj.elements['ag_id'].value;
|
||||
}
|
||||
}
|
||||
if (dossier == 0) {
|
||||
throw "obj.dossier not found";
|
||||
}
|
||||
if (ag_id == 0) {
|
||||
throw "obj.ag_id not found";
|
||||
}
|
||||
var query = encodeJSON({
|
||||
'gDossier': dossier,
|
||||
'op': 'action_add_concerned_card',
|
||||
'query' : inp,
|
||||
'ctl' : 'unused',
|
||||
'ag_id' : ag_id
|
||||
});
|
||||
|
||||
waiting_box();
|
||||
|
||||
|
||||
var action = new Ajax.Request('ajax_card.php',
|
||||
{
|
||||
method: 'get',
|
||||
parameters: query,
|
||||
onFailure: errorFid,
|
||||
onSuccess: function (req, txt)
|
||||
{
|
||||
try {
|
||||
console.log(1);
|
||||
remove_waiting_box();
|
||||
var answer = req.responseXML;
|
||||
var a = answer.getElementsByTagName('ctl');
|
||||
if (a.length == 0)
|
||||
{
|
||||
var rec = req.responseText;
|
||||
alert('erreur :' + rec);
|
||||
}
|
||||
console.log(2);
|
||||
var html = answer.getElementsByTagName('code');
|
||||
console.log(3);
|
||||
var namectl = a[0].firstChild.nodeValue;
|
||||
console.log(31);
|
||||
var nodeXml = html[0];
|
||||
console.log(32);
|
||||
var code_html = getNodeText(nodeXml);
|
||||
console.log(33);
|
||||
code_html = unescape_xml(code_html);
|
||||
console.log(34);
|
||||
|
||||
var sx = 0;
|
||||
if (window.scrollY)
|
||||
{
|
||||
sx = window.scrollY + 40;
|
||||
}
|
||||
else
|
||||
{
|
||||
sx = document.body.scrollTop + 60;
|
||||
}
|
||||
console.log(4);
|
||||
var div_style = "top:" + sx + "px;height:80%";
|
||||
if ( ! $('search_card')) { add_div({id: 'search_card', cssclass: 'inner_box', html: "", style: div_style, drag: true}); }
|
||||
$('search_card').innerHTML = code_html;
|
||||
$('query').focus();
|
||||
console.log(5);
|
||||
}catch (e) {
|
||||
console.log('Erreur ')+e.message;
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
alert('search_card failed' + e.message);
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
*@brief when you submit the form for searching a card
|
||||
*@param obj form
|
||||
|
|
@ -176,6 +285,7 @@ function result_card_search(req)
|
|||
{
|
||||
try
|
||||
{
|
||||
|
||||
remove_waiting_box();
|
||||
var answer=req.responseXML;
|
||||
var a=answer.getElementsByTagName('ctl');
|
||||
|
|
@ -204,6 +314,7 @@ function result_card_search(req)
|
|||
var div_style="top:"+sx+"px;height:80%";
|
||||
add_div({id:'search_card',cssclass:'inner_box',html:"",style:div_style,drag:true,effect:'blinddown'});
|
||||
$('search_card').innerHTML=code_html;
|
||||
$('query').focus();
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
|
|
@ -483,7 +594,11 @@ function select_card_type(obj)
|
|||
method:'get',
|
||||
parameters:queryString,
|
||||
onFailure:errorFid,
|
||||
onSuccess:fill_box
|
||||
onSuccess:function(req) {
|
||||
|
||||
fill_box(req);
|
||||
$('lk_cat_card_table').focus();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
@ -724,3 +839,79 @@ try {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
/***
|
||||
* In Follow-up, update, it is possible to add several card as concerned person or company
|
||||
* this function save it into the database, display the result and remove the search_card div
|
||||
* @param {type} p_dossier dossier
|
||||
* @param {type} p_fiche_id fiche.f_id
|
||||
* @param {type} p_action_id action_gestion.ag_id
|
||||
* @returns {undefined} nothing
|
||||
*/
|
||||
function action_save_concerned(p_dossier, p_fiche_id, p_action_id) {
|
||||
var query = encodeJSON({'gDossier': p_dossier, 'f_id': p_fiche_id, 'ag_id': p_action_id,'op':'action_save_concerned','ctl':'unused'});
|
||||
var a=new Ajax.Request('ajax_card.php',
|
||||
{
|
||||
method: 'get',
|
||||
parameters: query,
|
||||
onFailure: errorFid,
|
||||
onSuccess: function (req, txt)
|
||||
{
|
||||
try {
|
||||
console.log(1);
|
||||
remove_waiting_box();
|
||||
var answer = req.responseXML;
|
||||
var a = answer.getElementsByTagName('ctl');
|
||||
if (a.length == 0)
|
||||
{
|
||||
var rec = req.responseText;
|
||||
alert('erreur :' + rec);
|
||||
}
|
||||
var html = answer.getElementsByTagName('code');
|
||||
var namectl = a[0].firstChild.nodeValue;
|
||||
var nodeXml=html[0];
|
||||
var code_html = getNodeText(nodeXml);
|
||||
code_html = unescape_xml(code_html);
|
||||
removeDiv('search_card');
|
||||
$('concerned_card_td').innerHTML = code_html;
|
||||
} catch (e) {
|
||||
console.log('Erreur ') + e.message;
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
function action_remove_concerned(p_dossier,p_fiche_id,p_action_id)
|
||||
{
|
||||
var query = encodeJSON({'gDossier': p_dossier, 'f_id': p_fiche_id, 'ag_id': p_action_id,'op':'action_remove_concerned','ctl':'unused'});
|
||||
var a=new Ajax.Request('ajax_card.php',
|
||||
{
|
||||
method: 'get',
|
||||
parameters: query,
|
||||
onFailure: errorFid,
|
||||
onSuccess: function (req, txt)
|
||||
{
|
||||
try {
|
||||
console.log(1);
|
||||
remove_waiting_box();
|
||||
var answer = req.responseXML;
|
||||
var a = answer.getElementsByTagName('ctl');
|
||||
if (a.length == 0)
|
||||
{
|
||||
var rec = req.responseText;
|
||||
alert('erreur :' + rec);
|
||||
}
|
||||
var html = answer.getElementsByTagName('code');
|
||||
var namectl = a[0].firstChild.nodeValue;
|
||||
var nodeXml=html[0];
|
||||
var code_html = getNodeText(nodeXml);
|
||||
code_html = unescape_xml(code_html);
|
||||
removeDiv('search_card');
|
||||
$('concerned_card_td').innerHTML = code_html;
|
||||
} catch (e) {
|
||||
console.log('Erreur ') + e.message;
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
46
include/ajax_action_remove_concerned.php
Normal file
46
include/ajax_action_remove_concerned.php
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
/*
|
||||
* This file is part of NOALYSS.
|
||||
*
|
||||
* NOALYSS 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.
|
||||
*
|
||||
* NOALYSS 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 NOALYSS; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
// Copyright 2014 Author Dany De Bontridder danydb@aevalys.eu
|
||||
|
||||
// require_once '.php';
|
||||
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
|
||||
$ag_id=HtmlInput::default_value_get("ag_id", "0");
|
||||
$f_id=HtmlInput::default_value_get("f_id", "0");
|
||||
if ( $ag_id == 0 || $f_id == 0 ) throw new Exception ("Invalid values", 0);
|
||||
require_once 'class_follow_up.php';
|
||||
$follow=new Follow_Up($cn,$ag_id);
|
||||
|
||||
ob_start();
|
||||
$follow->remove_linked_card($f_id);
|
||||
echo $follow->display_linked();
|
||||
HtmlInput::button_action_add_concerned_card( $follow->ag_id);
|
||||
|
||||
$response = ob_get_clean();
|
||||
|
||||
$html = escape_xml($response);
|
||||
header('Content-type: text/xml; charset=UTF-8');
|
||||
echo <<<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<data>
|
||||
<ctl>unused</ctl>
|
||||
<code>$html</code>
|
||||
</data>
|
||||
EOF;
|
||||
?>
|
||||
47
include/ajax_action_save_concerned.php
Normal file
47
include/ajax_action_save_concerned.php
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
/*
|
||||
* This file is part of NOALYSS.
|
||||
*
|
||||
* NOALYSS 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.
|
||||
*
|
||||
* NOALYSS 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 NOALYSS; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
// Copyright 2014 Author Dany De Bontridder danydb@aevalys.eu
|
||||
|
||||
// require_once '.php';
|
||||
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
|
||||
/**
|
||||
* Insert into follow-up the card (f_id) for the action_gestion (ag_id)
|
||||
*/
|
||||
require_once 'class_follow_up.php';
|
||||
$follow=new Follow_Up($cn,$ag_id);
|
||||
$follow->insert_linked_card($f_id);
|
||||
/**
|
||||
* Display all the linked card
|
||||
*/
|
||||
|
||||
ob_start();
|
||||
$follow->display_linked();
|
||||
echo HtmlInput::button_action_add_concerned_card( $ag_id);
|
||||
$response = ob_get_clean();
|
||||
$html = escape_xml($response);
|
||||
header('Content-type: text/xml; charset=UTF-8');
|
||||
echo <<<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<data>
|
||||
<ctl>unused</ctl>
|
||||
<code>$html</code>
|
||||
</data>
|
||||
EOF;
|
||||
?>
|
||||
83
include/ajax_add_concerned_card.php
Normal file
83
include/ajax_add_concerned_card.php
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of NOALYSS.
|
||||
*
|
||||
* NOALYSS 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.
|
||||
*
|
||||
* NOALYSS 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 NOALYSS; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
// Copyright 2014 Author Dany De Bontridder danydb@aevalys.eu
|
||||
// require_once '.php';
|
||||
if (!defined('ALLOWED'))
|
||||
die('Appel direct ne sont pas permis');
|
||||
ob_start();
|
||||
|
||||
$ag_id=HtmlInput::default_value_get("ag_id", "0");
|
||||
|
||||
if ($ag_id == 0 ) throw new Exception('ag_id is null');
|
||||
|
||||
require_once('class_acc_ledger.php');
|
||||
$r=HtmlInput::title_box(_("Détail fiche"), 'search_card');
|
||||
|
||||
$r.='<form id="search_card1_frm" method="GET" onsubmit="action_add_concerned_card(this);return false;">';
|
||||
$q=new IText('query');
|
||||
$q->value=(isset($query))?$query:'';
|
||||
$r.='<span style="margin-left:50px">';
|
||||
$r.=_('Fiche contenant').HtmlInput::infobulle(19);
|
||||
$r.=$q->input();
|
||||
$r.=HtmlInput::submit('fs', _('Recherche'), "", "smallbutton");
|
||||
$r.='</span>';
|
||||
$r.=dossier::hidden().HtmlInput::hidden('op', 'add_concerned_card');
|
||||
$r.=HtmlInput::request_to_hidden(array('ag_id'));
|
||||
$r.='</form>';
|
||||
$query=HtmlInput::default_value_get("query", "");
|
||||
$sql_array['query']=$query;
|
||||
$sql_array['typecard']='all';
|
||||
|
||||
$fiche=new Fiche($cn);
|
||||
/* Build the SQL and show result */
|
||||
$sql=$fiche->build_sql($sql_array);
|
||||
|
||||
|
||||
/* We limit the search to MAX_SEARCH_CARD records */
|
||||
$sql=$sql.' order by vw_name limit '.MAX_SEARCH_CARD;
|
||||
$a=$cn->get_array($sql);
|
||||
for ($i=0; $i<count($a); $i++)
|
||||
{
|
||||
$array[$i]['quick_code']=$a[$i]['quick_code'];
|
||||
$array[$i]['name']=h($a[$i]['vw_name']);
|
||||
$array[$i]['accounting']=$a[$i]['accounting'];
|
||||
$array[$i]['first_name']=h($a[$i]['vw_first_name']);
|
||||
$array[$i]['description']=h($a[$i]['vw_description']);
|
||||
$array[$i]['javascript']=sprintf("action_save_concerned(%d,'%s','%s')",$gDossier,$a[$i]['f_id'],$ag_id);
|
||||
}//foreach
|
||||
|
||||
|
||||
echo $r;
|
||||
require_once('template/card_result.php');
|
||||
$response=ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
|
||||
$html=escape_xml($response);
|
||||
if ( !headers_sent() ) { header('Content-type: text/xml; charset=UTF-8');} else {echo $response;echo $html;}
|
||||
echo <<<EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<data>
|
||||
<ctl>unused</ctl>
|
||||
<code>$html</code>
|
||||
</data>
|
||||
EOF;
|
||||
?>
|
||||
|
|
@ -165,18 +165,20 @@ class Follow_Up
|
|||
$date = new IDate();
|
||||
$date->readOnly = $readonly;
|
||||
$date->name = "ag_timestamp";
|
||||
$date->id= "ag_timestamp";
|
||||
$date->value = $this->ag_timestamp;
|
||||
|
||||
$remind_date = new IDate();
|
||||
$remind_date->readOnly = $readonly;
|
||||
$remind_date->name = "ag_remind_date";
|
||||
$remind_date->id = "ag_remind_date";
|
||||
$remind_date->value = $this->ag_remind_date;
|
||||
|
||||
|
||||
// Doc Type
|
||||
$doc_type = new ISelect();
|
||||
$doc_type->name = "dt_id";
|
||||
$doc_type->value = $this->db->make_array("select dt_id,dt_value from document_type order by dt_value");
|
||||
$doc_type->value = $this->db->make_array("select dt_id,dt_value from document_type order by dt_value",1);
|
||||
$doc_type->selected = $this->dt_id;
|
||||
$doc_type->readOnly = $readonly;
|
||||
$str_doc_type = $doc_type->input();
|
||||
|
|
@ -338,7 +340,8 @@ class Follow_Up
|
|||
$sp->name = 'qcode_dest_label';
|
||||
$sp->value = $qcode_dest_label;
|
||||
|
||||
// contact
|
||||
// autre - a refaire pour avoir plusieurs fiches
|
||||
// Sur le modèle des tags
|
||||
$ag_contact = new ICard();
|
||||
$ag_contact->readOnly = $readonly;
|
||||
$ag_contact->jrn = 0;
|
||||
|
|
@ -1012,7 +1015,7 @@ class Follow_Up
|
|||
function fromArray($p_array)
|
||||
{
|
||||
global $g_user;
|
||||
$this->ag_id = (isset($p_array['ag_id'])) ? $p_array['ag_id'] : "";
|
||||
$this->ag_id = (isset($p_array['ag_id'])) ? $p_array['ag_id'] : 0;
|
||||
$this->ag_ref = (isset($p_array['ag_ref'])) ? $p_array['ag_ref'] : "";
|
||||
$this->qcode_dest = (isset($p_array['qcode_dest'])) ? $p_array['qcode_dest'] : "";
|
||||
$this->f_id_dest = (isset($p_array['f_id_dest'])) ? $p_array['f_id_dest'] : 0;
|
||||
|
|
@ -1311,7 +1314,7 @@ class Follow_Up
|
|||
if ($fiche->id == 0)
|
||||
$str = ' and false ';
|
||||
else
|
||||
$str = " and (f_id_dest= " . $fiche->id . " ) ";
|
||||
$str = " and (f_id_dest= " . $fiche->id . " or ag_id in (select ag_id from action_person as ap where ap.f_id=". $fiche->id .") )";
|
||||
}
|
||||
}
|
||||
if (isset($tdoc) && $tdoc != -1)
|
||||
|
|
@ -1531,7 +1534,7 @@ class Follow_Up
|
|||
$a_tag[$e]['t_id']);
|
||||
echo '<span style="border:1px solid black;margin-right:5px;">';
|
||||
echo $a_tag[$e]['t_tag'];
|
||||
echo HtmlInput::anchor( " ⵝ ", "javascript:void(0)", $js_remove, ' class="smallbutton " style="padding:0px;display:inline" ');
|
||||
echo HtmlInput::anchor( " ⵝ ", "javascript:void(0)", $js_remove, ' class="smallbutton" style="padding:0px;display:inline" ');
|
||||
echo '</span>';
|
||||
echo ' ';
|
||||
echo ' ';
|
||||
|
|
@ -1623,4 +1626,72 @@ class Follow_Up
|
|||
array($mag_id[$i]));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Verify that data are correct
|
||||
* @throws Exception
|
||||
*/
|
||||
function verify()
|
||||
{
|
||||
if ( $this->dt_id == -1 ) {
|
||||
throw new Exception (_('Type action invalide'),10);
|
||||
}
|
||||
if ( isDate($this->ag_timestamp) != $this->ag_timestamp )
|
||||
throw new Exception (_('Date invalide'),20);
|
||||
if ( isDate($this->ag_remind_date) != $this->ag_remind_date )
|
||||
throw new Exception (_('Date invalide'),30);
|
||||
}
|
||||
/**
|
||||
* Add another concerned (tiers, supplier...)
|
||||
* @global type $g_user
|
||||
* @param type $p_fiche_id
|
||||
*/
|
||||
function insert_linked_card($p_fiche_id)
|
||||
{
|
||||
global $g_user;
|
||||
if ( $g_user->can_write_action($this->ag_id)) {
|
||||
/**
|
||||
* insert into action_person
|
||||
*/
|
||||
$count=$this->db->get_value('select count(*) from action_person where f_id=$1 and ag_id=$2',array($p_fiche_id,$this->ag_id));
|
||||
if ( $count == 0 )
|
||||
{
|
||||
$this->db->exec_sql('insert into action_person (ag_id,f_id) values ($1,$2)',array($this->ag_id,$p_fiche_id));
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Remove another concerned (tiers, supplier...)
|
||||
* @global type $g_user
|
||||
* @param type $p_fiche_id
|
||||
*/
|
||||
function remove_linked_card($p_fiche_id)
|
||||
{
|
||||
global $g_user;
|
||||
if ( $g_user->can_write_action($this->ag_id)) {
|
||||
$this->db->exec_sql('delete from action_person where ag_id = $1 and f_id = $2',array($this->ag_id,$p_fiche_id));
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Display the other concerned (tiers, supplier...)
|
||||
* @return string
|
||||
*/
|
||||
function display_linked()
|
||||
{
|
||||
$a_linked=$this->db->get_array('select ap_id,f_id from action_person where ag_id=$1',array($this->ag_id));
|
||||
if ( count($a_linked) == 0 ) return "";
|
||||
for ($i=0;$i<count($a_linked);$i++)
|
||||
{
|
||||
$fiche=new Fiche($this->db,$a_linked[$i]['f_id']);
|
||||
$qc=$fiche->get_quick_code();
|
||||
$js_remove=sprintf("onclick=\"action_remove_concerned('%s','%s','%s')\"",dossier::id(),
|
||||
$a_linked[$i]['f_id'],$this->ag_id);
|
||||
echo '<span style="border:1px solid black;margin-right:5px;">';
|
||||
echo $qc;
|
||||
echo HtmlInput::anchor( " ⵝ ", "javascript:void(0)", $js_remove, ' class="smallbutton" style="padding:0px;display:inline" ');
|
||||
echo '</span>';
|
||||
echo ' ';
|
||||
echo ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -878,7 +878,16 @@ class HtmlInput
|
|||
$rmOperation=sprintf("javascript:if ( confirm('"._('Voulez-vous effacer cette relation ')."')==true ) {remove_operation('%s','%s');}",
|
||||
dossier::id(),
|
||||
$p_operation);
|
||||
$js= '<a class="smallbutton" style="padding:0px;display:inline" style="color:orange" id="acop'.$p_operation.'" href="'.$rmOperation.'">'."ⵝ".'</a>';
|
||||
$js= '<a class="tinybutton" id="acop'.$p_operation.'" href="'.$rmOperation.'">'."ⵝ".'</a>';
|
||||
return $js;
|
||||
}
|
||||
static function button_action_add_concerned_card($p_agid)
|
||||
{
|
||||
$dossier=Dossier::id();
|
||||
$javascript= <<<EOF
|
||||
obj={dossier:$dossier,ag_id:$p_agid};action_add_concerned_card(obj);
|
||||
EOF;
|
||||
$js=HtmlInput::button_action(_('Ajout autres'), $javascript);
|
||||
return $js;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<?php for ($i=0;$i<sizeof($array);$i++) : ?>
|
||||
<?php $class=($i%2==0)?'odd':'even';?>
|
||||
<tr class="<?php echo $class;?>">
|
||||
<td style="padding-right:55">
|
||||
<td style="padding-right:55px">
|
||||
<a href="javascript:void(0)" class="one" onclick="<?php echo $array[$i]['javascript']?>">
|
||||
<?php echo $array[$i]['quick_code']?>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -1,24 +1,17 @@
|
|||
<?php
|
||||
//This file is part of NOALYSS and is under GPL
|
||||
//see licence.txt
|
||||
?><fieldset>
|
||||
<legend>
|
||||
<?php echo _('Informations générales')?>
|
||||
</legend>
|
||||
<div style="float:right">
|
||||
<?echo $retour;
|
||||
?>
|
||||
</div>
|
||||
?><div>
|
||||
<h2 class="gest_name"><?php echo $sp->input(); ?></h2>
|
||||
<div style="float:left;width: 45%">
|
||||
<div style="width:47%;float:left;">
|
||||
|
||||
|
||||
<table >
|
||||
<table>
|
||||
<tr>
|
||||
<TD>
|
||||
<?php echo _('N° document')?>
|
||||
</TD>
|
||||
<TD style="font-weight: bolder;" >
|
||||
<TD class="highlight">
|
||||
<?php echo $this->ag_id;?>
|
||||
</TD>
|
||||
</TR>
|
||||
|
|
@ -31,7 +24,63 @@
|
|||
?>
|
||||
</TD>
|
||||
</TR>
|
||||
<tr>
|
||||
<TD>
|
||||
<?php echo _('Type')?>
|
||||
</TD>
|
||||
<TD>
|
||||
<?php echo $str_doc_type;
|
||||
?>
|
||||
</TD>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<tr>
|
||||
<TD>
|
||||
<?php echo _('Destinataire')?>
|
||||
</TD>
|
||||
<TD>
|
||||
<?php echo $w->search().$w->input();
|
||||
?>
|
||||
</td>
|
||||
</Tr>
|
||||
<tr>
|
||||
<TD>
|
||||
<?php echo _('Contact')?>
|
||||
</TD>
|
||||
<TD>
|
||||
<?php echo $ag_contact->search().$ag_contact->input();
|
||||
?>
|
||||
</td>
|
||||
</Tr>
|
||||
<tr>
|
||||
<TD colspan="2">
|
||||
<?php echo $spcontact->input(); ?>
|
||||
</td>
|
||||
</Tr>
|
||||
<?php if ($this->ag_id > 0 ): ?>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo _('Autres concernés')?>
|
||||
</td>
|
||||
<td id="concerned_card_td">
|
||||
<?php
|
||||
echo $this->display_linked();
|
||||
echo HtmlInput::button_action_add_concerned_card( $this->ag_id)?>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
<?php if ($p_view != 'READ') echo $str_add_button;?>
|
||||
|
||||
</div>
|
||||
<div style="width:47%;float:left">
|
||||
<table>
|
||||
|
||||
|
||||
<TD>
|
||||
<?php echo _('Date')?>
|
||||
</TD>
|
||||
|
|
@ -59,47 +108,6 @@
|
|||
?>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<tr>
|
||||
<TD>
|
||||
<?php echo _('Destinataire')?>
|
||||
</TD>
|
||||
<TD>
|
||||
<?php echo $w->search().$w->input();
|
||||
?>
|
||||
</td>
|
||||
</Tr>
|
||||
<tr>
|
||||
<TD>
|
||||
<?php echo _('Contact')?>
|
||||
</TD>
|
||||
<TD>
|
||||
<?php echo $ag_contact->search().$ag_contact->input();
|
||||
?>
|
||||
</td>
|
||||
</Tr>
|
||||
<tr>
|
||||
<TD colspan="2">
|
||||
<?php echo $spcontact->input(); ?>
|
||||
</td>
|
||||
</Tr>
|
||||
</table>
|
||||
<?php if ($p_view != 'READ') echo $str_add_button;?>
|
||||
|
||||
</div>
|
||||
<div style="float:left;width:45%">
|
||||
<table>
|
||||
|
||||
<tr>
|
||||
<TD>
|
||||
<?php echo _('Type')?>
|
||||
</TD>
|
||||
<TD>
|
||||
<?php echo $str_doc_type;
|
||||
?>
|
||||
</TD>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<TD>
|
||||
<?php echo _('Etat')?>
|
||||
|
|
@ -143,9 +151,9 @@
|
|||
</table>
|
||||
|
||||
</div>
|
||||
<div style="float:right;clear:both"></div>
|
||||
<div style="float:left;width:45%">
|
||||
<h4 style="display:inline">Opérations concernées</h4>
|
||||
<div style="clear: both"></div>
|
||||
<div style="float:left;width: 47%">
|
||||
<h4 style="display:inline;">Opérations concernées</h4>
|
||||
<ol>
|
||||
|
||||
<?php
|
||||
|
|
@ -169,7 +177,7 @@
|
|||
<?php if ($p_view != 'READ') echo '<span class="noprint">'.$iconcerned->input().'</span>';?>
|
||||
</div>
|
||||
|
||||
<div style="float:left;width:45%">
|
||||
<div style="float:left;width: 47%">
|
||||
<h4 style="display:inline"><?php echo _("Actions concernées")?></h4>
|
||||
<ol>
|
||||
|
||||
|
|
@ -183,7 +191,7 @@
|
|||
dossier::id(),
|
||||
$action[$o]['ag_id'],$_REQUEST['ag_id']);
|
||||
$showAction='<a class="line" href="'.$base."&ag_id=".$action[$o]['ag_id'].'">';
|
||||
$js= '<a class="mtitle" style="color:orange" id="acact'.$action[$o]['ag_id'].'" href="'.$rmAction.'">'._("Effacer").'</a>';
|
||||
$js= '<a class="tinybutton" id="acact'.$action[$o]['ag_id'].'" href="'.$rmAction.'">ⵝ</a>';
|
||||
echo '<li id="act'.$action[$o]['ag_id'].'">'.$showAction.$action[$o]['str_date']." ".$action[$o]['ag_ref']." ".
|
||||
h($action[$o]['sub_title']).'('.h($action[$o]['dt_value']).')</a>'." "
|
||||
.$js.'</li>';
|
||||
|
|
@ -199,8 +207,9 @@
|
|||
</ol>
|
||||
<?php if ( $p_view != 'READ') echo '<span class="noprint">'.$iaction->input().'</span>';?>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="myfieldset">
|
||||
</div>
|
||||
<div style="clear: both"></div>
|
||||
<div id="div_action_description">
|
||||
<h1 class="legend">
|
||||
<?php echo _('Description')?>
|
||||
</h1>
|
||||
|
|
@ -220,23 +229,30 @@ function small(p_id_textarea){
|
|||
<?php if ($p_view != 'NEW') : ?>
|
||||
Document créé le <?php echo $this->ag_timestamp ?> par <?php echo $this->ag_owner?>
|
||||
<?php endif; ?>
|
||||
<h4 class="info"><?php echo _('Titre')?></h4>
|
||||
<p style="margin-left:100">
|
||||
<h4 class="info" style="margin-left:110px"><?php echo _('Titre')?></h4>
|
||||
<p style="margin-left:100px">
|
||||
<?php echo $title->input();
|
||||
?>
|
||||
</p>
|
||||
<h4 class="info"> <?php echo _('Commentaire')?></h4>
|
||||
<div style="margin-left:100px">
|
||||
<?php
|
||||
$style_enl='style="display:inline"';$style_small='style="display:none"';
|
||||
|
||||
for( $c=0;$c<count($acomment);$c++){
|
||||
if ( $p_view != 'READ')
|
||||
if ($c == 0) { $m_desc=_('Description');}
|
||||
else
|
||||
if ($c == 1) { $m_desc=_('Commentaire');}
|
||||
else
|
||||
{ $m_desc="";}?>
|
||||
<h4 class="info" > <?php echo $m_desc;?></h4>
|
||||
|
||||
<?php
|
||||
if ( $p_view != 'READ')
|
||||
{
|
||||
$rmComment=sprintf("javascript:if ( confirm('"._('Voulez-vous effacer ce commentaire')." ?')==true ) {remove_comment('%s','%s');}",
|
||||
dossier::id(),
|
||||
$acomment[$c]['agc_id']);
|
||||
$js= '<a class="mtitle" style="color:red" id="accom'.$acomment[$c]['agc_id'].'" href="'.$rmComment.'">Effacer</a>';
|
||||
$js= '<a class="tinybutton" id="accom'.$acomment[$c]['agc_id'].'" href="'.$rmComment.'">ⵝ</a>';
|
||||
echo hb('n°'.$acomment[$c]['agc_id'].'('.$acomment[$c]['tech_user']." ".$acomment[$c]['str_agc_date'].')').$js.
|
||||
'<pre style="white-space: -moz-pre-wrap;white-space: pre-wrap;border:1px solid blue;width:80%;" id="com'.$acomment[$c]['agc_id'].'"> '.
|
||||
" ".h($acomment[$c]['agc_comment']).'</pre>'
|
||||
|
|
@ -265,6 +281,7 @@ echo '</span>';
|
|||
</div>
|
||||
<?php if ( $p_view !='READ' ) :?>
|
||||
<input type='button' class="button" class="noprint" value='Montrer articles' id="toggleButton" onclick='toggleShowDetail()'>
|
||||
<input type='button' class="button" class="noprint" value='Générer' id="toggleButtonGenerate" onclick="$('div_generate_document').show()">
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
/**
|
||||
|
|
@ -282,8 +299,8 @@ endfor;
|
|||
if ($show_row !=0 ) :
|
||||
|
||||
?>
|
||||
<fieldset id="fldDetail" style='display:block;top:2px'>
|
||||
<LEGEND> <?php echo _('Détail des articles')?>
|
||||
<div id="fldDetail" class="myfieldset" style='padding-bottom: 100px;display:block;top:2px'>
|
||||
<LEGEND> <?php echo _('Détail')?>
|
||||
</LEGEND>
|
||||
<?php // hidden fields
|
||||
$show_row=0;
|
||||
|
|
@ -323,9 +340,10 @@ if ( ($aCard[$i] != 0 && $p_view == 'READ') || $p_view != 'READ'):
|
|||
<?php endif; ?>
|
||||
<?php endfor; ?>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<script language="JavaScript">
|
||||
if ( $('e_march0') && $('e_march0').value =='') { toggleShowDetail();}
|
||||
$('div_generate_document').hide();
|
||||
function toggleShowDetail() {
|
||||
try {var detail=g('fldDetail');
|
||||
var but=g('toggleButton');
|
||||
|
|
@ -333,25 +351,25 @@ function toggleShowDetail() {
|
|||
else { but.value="<?php echo _("Cacher les détails")?>";detail.style.display='block';} }
|
||||
catch (error) {alert(error);}
|
||||
}
|
||||
</script>
|
||||
|
||||
</script>
|
||||
<?php if ( $show_row != 0 ): ?>
|
||||
<div style="float: right; text-align: right; padding-right: 5px; font-size: 1.2em; font-weight: bold; color: blue;">
|
||||
<div>
|
||||
|
||||
<div style="float: right; text-align: left; font-size: 1.2em; font-weight: bold; color: blue;" id="sum">
|
||||
<br><span style="text-align: right" id="htva">0.0</span>
|
||||
<br><span style="text-align: right" id="tva">0.0</span>
|
||||
<br><span style="text-align: right" id="tvac">0.0</span>
|
||||
<div style=" float:right;margin-right: 2px"" id="sum">
|
||||
<br><span style="text-align: right;" class="highlight" id="htva">0.0</span>
|
||||
<br><span style="text-align: right" class="highlight" id="tva">0.0</span>
|
||||
<br><span style="text-align: right" class="highlight" id="tvac">0.0</span>
|
||||
</div>
|
||||
|
||||
<div style="float: right; text-align: right; padding-right: 5px; font-size: 1.2em; font-weight: bold; color: blue;">
|
||||
<div style="float:right;margin-right: 230px" >
|
||||
<br>Total HTVA
|
||||
<br>Total TVA
|
||||
<br>Total TVAC
|
||||
</div>
|
||||
|
||||
<?php if ( ! $readonly ) : ?>
|
||||
<div style="position:float;float:right">
|
||||
<div style="float:right" >
|
||||
<input name="act" id="act_bt" class="smallbutton" value="<?php echo _('Actualiser')?>" onclick="compute_all_ledger();" type="button">
|
||||
<input type="button" class="smallbutton" onclick="gestion_add_row()" value="<?php echo _("Ajouter une ligne")?>">
|
||||
</div>
|
||||
|
|
@ -359,7 +377,7 @@ function toggleShowDetail() {
|
|||
<?php endif; ?>
|
||||
</div>
|
||||
<?php if ( $this->ag_id != 0 && ! $readonly) : ?>
|
||||
<div style="position:float;float:left">
|
||||
<div >
|
||||
<p>
|
||||
<?php
|
||||
$query= http_build_query(array('gDossier'=>Dossier::id(),'ag_id'=>$this->ag_id,'create_invoice'=>1,'ac'=>$menu->get('code_invoice')));
|
||||
|
|
@ -369,23 +387,23 @@ function toggleShowDetail() {
|
|||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</fieldset>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div style="clear:both"></div>
|
||||
<?php if ($p_view != 'READ' && $str_select_doc != '') : ?>
|
||||
<fieldset class="noprint" >
|
||||
<div id="div_generate_document" class="noprint" style="display:none" >
|
||||
<legend>
|
||||
<?php echo _('Document à générer')?>
|
||||
</legend>
|
||||
<?php echo $str_select_doc;
|
||||
echo $str_submit_generate;
|
||||
?>
|
||||
</fieldset>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<div class="myfieldset" id="div_action_attached_doc">
|
||||
<legend>
|
||||
<?php echo _('Pièces attachées')?>
|
||||
</legend>
|
||||
|
|
@ -464,6 +482,6 @@ catch(exception) { alert('<?php echo j(_('Je ne peux pas ajouter de fichier'))?>
|
|||
</span>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<script>compute_all_ledger()</script>
|
||||
|
|
@ -57,9 +57,27 @@ create table key_distribution_activity
|
|||
);
|
||||
|
||||
comment on table key_distribution is 'Distribution key for analytic';
|
||||
comment on table key_distribution_ledger is 'Legder where the distribution key can be used' ;
|
||||
comment on table key_distribution_detail is 'Row of activity and percent';
|
||||
comment on table key_distribution_activity is 'activity (account) linked to the row';
|
||||
comment on column key_distribution.kd_id is 'PK';
|
||||
comment on column key_distribution.kd_name is 'Name of the key';
|
||||
comment on column key_distribution.kd_description is 'Description of the key';
|
||||
|
||||
comment on table key_distribution_ledger is 'Legder where the distribution key can be used' ;
|
||||
comment on column key_distribution_ledger.kl_id is 'pk';
|
||||
comment on column key_distribution_ledger.kd_id is 'fk to key_distribution';
|
||||
comment on column key_distribution_ledger.jrn_def_id is 'fk to jrnd_def, ledger where this key is available';
|
||||
|
||||
|
||||
comment on table key_distribution_detail is 'Row of activity and percent';
|
||||
comment on column key_distribution_detail.ke_id is 'pk';
|
||||
comment on column key_distribution_detail.kd_id is 'fk to key_distribution';
|
||||
comment on column key_distribution_detail.ke_row is 'group order';
|
||||
|
||||
comment on table key_distribution_activity is 'Contains the analytic account';
|
||||
comment on column key_distribution_activity.ka_id is 'pk';
|
||||
comment on column key_distribution_activity.ke_id is 'fk to key_distribution_detail';
|
||||
comment on column key_distribution_activity.po_id is 'fk to poste_analytique';
|
||||
comment on column key_distribution_activity.pa_id is 'fk to plan_analytique';
|
||||
|
||||
drop view vw_fiche_attr cascade;
|
||||
|
||||
|
|
@ -155,9 +173,14 @@ create index jrnx_j_qcode_ix on jrnx (j_qcode);
|
|||
CREATE TABLE action_person
|
||||
(
|
||||
ap_id SERIAL NOT NULL,
|
||||
ag_id int4 NOT NULL,
|
||||
f_id int4, PRIMARY KEY (ap_id));
|
||||
ag_id int4 NOT NULL references action_gestion(ag_id) on update cascade on delete cascade,,
|
||||
f_id int4 not null references fiche(f_id) on update cascade on delete cascade,
|
||||
PRIMARY KEY (ap_id));
|
||||
|
||||
COMMENT ON TABLE action_person IS 'Person involved in the action';
|
||||
comment on column action_person.ap_id is 'pk';
|
||||
comment on column action_person.ag_id is 'fk to action_action';
|
||||
comment on column action_person.ag_id is 'fk to fiche';
|
||||
|
||||
ALTER TABLE action_person ADD CONSTRAINT action_gestion_ag_id_fk2 FOREIGN KEY (ag_id) REFERENCES action_gestion (ag_id);
|
||||
ALTER TABLE action_person ADD CONSTRAINT fiche_f_id_fk2 FOREIGN KEY (f_id) REFERENCES fiche(f_id);
|
||||
|
|
@ -184,4 +207,6 @@ CREATE TRIGGER trg_category_card_before_delete
|
|||
BEFORE delete
|
||||
ON fiche_def
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE comptaproc.category_card_before_delete();
|
||||
EXECUTE PROCEDURE comptaproc.category_card_before_delete();
|
||||
|
||||
alter table action_gestion add constraint fk_action_gestion_document_type foreign key (ag_type) references document_type(dt_id);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class Acc_Ledger_SoldTest extends PHPUnit_Framework_TestCase
|
|||
protected function setUp()
|
||||
{
|
||||
include 'global.php';
|
||||
$this->object=new Acc_Ledger_Sold($g_connection,2);
|
||||
$this->object=new Acc_Ledger_Sold($g_connection, 2);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -38,7 +38,7 @@ class Acc_Ledger_SoldTest extends PHPUnit_Framework_TestCase
|
|||
*/
|
||||
public function testVerify()
|
||||
{
|
||||
$this->object->verify(array());
|
||||
$this->object->verify(array());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -69,7 +69,8 @@ class Acc_Ledger_SoldTest extends PHPUnit_Framework_TestCase
|
|||
public function testExtra_info()
|
||||
{
|
||||
$info=$this->object->extra_info();
|
||||
if ( ! is_string($info) ) {
|
||||
if (!is_string($info))
|
||||
{
|
||||
$this->assertTrue(FALSE);
|
||||
}
|
||||
}
|
||||
|
|
@ -93,8 +94,9 @@ class Acc_Ledger_SoldTest extends PHPUnit_Framework_TestCase
|
|||
public function testInput()
|
||||
{
|
||||
$_REQUEST['ac']='VEN';
|
||||
$info=$this->object->input();
|
||||
if ( ! is_string($info) ) {
|
||||
$info=$this->object->input();
|
||||
if (!is_string($info))
|
||||
{
|
||||
$this->assertTrue(FALSE);
|
||||
}
|
||||
}
|
||||
|
|
@ -123,16 +125,4 @@ class Acc_Ledger_SoldTest extends PHPUnit_Framework_TestCase
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Acc_Ledger_Sold::test_me
|
||||
* @todo Implement testTest_me().
|
||||
*/
|
||||
public function testTest_me()
|
||||
{
|
||||
// Remove the following lines when you implement this test.
|
||||
$this->markTestIncomplete(
|
||||
'This test has not been implemented yet.'
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue