Merge branch 'master' into entreprise
This commit is contained in:
sparkyx 2021-03-12 19:19:00 +01:00
commit 3867346d28
297 changed files with 22561 additions and 7418 deletions

View file

@ -1,5 +1,4 @@
<?php
/*
* This file is part of NOALYSS.
*
@ -26,19 +25,14 @@
* @brief show button in the list of actions
*
*/
require_once NOALYSS_INCLUDE."/lib/select_box.class.php";
$http=new HttpInput();
// Create select box for new Action
Follow_Up::show_action_add(array("sa"=>"add_action"));
?>
<div class="content" style="display:inline" >
<div style="display:inline">
<form method="get" style="display:inline" action="do.php">
<?php echo dossier::hidden();
?>
<input type="submit" class="smallbutton" name="submit_query" value="<?php echo _("Ajout Action")?>">
<input type="hidden" name="ac" value="<?php echo $_REQUEST['ac']?>">
<input type="hidden" name="sa" value="add_action">
<?php echo $supl_hidden?>
<input id="bt_search" type="button" class="smallbutton" onclick="$('search_action').style.display='block'" value="<?php echo _('Recherche')?>">
</form>
</div>
<input id="bt_search" type="button" class="smallbutton" onclick="$('search_action').style.display='block'" value="<?php echo _('Recherche') ?>">
</div>
</div>

View file

@ -0,0 +1,159 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2019) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
/**
* @file
* @brief called from p_id already set,
* @see action_document_type_mtable::input
* @see
*/
// SQL Object Document_Type
$table=$this->get_table();
// db connx
$cn=$table->cn;
?>
<?php echo _('Prochain numéro') ?>
<p class="info" style="display:inline">
(
<?php echo _('numéro actuel') ?>
<?php
$last=0;
if ( $table->dt_id > 0) {
$ret=$cn->get_array("select last_value,is_called from seq_doc_type_".$table->dt_id);
$last=$ret[0]['last_value'];
/* !
* \note With PSQL sequence , the last_value column is 1 when before AND after the first call, to make the difference between them
* I have to check whether the sequence has been already called or not */
if ($ret[0]['is_called']=='f')
$last--;
}
echo $last;
?>
)
</p>
<?php
echo
Icon_Action::infobulle(15);
?>
<?php
$seq=new INum('seq', 0);
echo $seq->input();
?>
<div>
<h3 class="info" sytle="margin-block: 4px"><?php echo _("Détail") ?></h3>
<ul class="tab_row" style="padding-top: 0px">
<li>
<?php
$i=new ICheckBox("detail_operation",1);
if ( Document_Option::is_enable_operation_detail($table->dt_id)) $i->set_check(1);else $i->set_check(0);
echo $i->input();
echo _("Détail opération");
$select_detail_operation=new ISelect("select_option_operation");
$select_detail_operation->value=array(["value"=>"VEN","label"=>_("Prix vente")],
["value"=>"ACH","label"=>_("Prix achat")]);
$select_detail_operation->set_value(Document_Option::option_operation_detail($table->dt_id));
echo $select_detail_operation->input();
?>
</li>
<li>
<?php
$i=new ICheckBox("det_contact_mul",1);
if ( Document_Option::is_enable_contact_multiple($table->dt_id)) $i->set_check(1); else $i->set_check(0);
echo $i->input();
echo _("Autres fiches");
?>
</li>
<li>
<?php
$i=new ICheckBox("make_invoice",1);
if ( Document_Option::is_enable_make_invoice($table->dt_id)) $i->set_check(1); else $i->set_check(0);
echo $i->input();
echo _("Création de facture");
?>
</li>
<li>
<?php
$description=new ICheckBox("editable_description",1);
if ( Document_Option::is_enable_editable_description($table->dt_id)) $description->set_check(1);
else $description->set_check(0);
echo $description->input();
echo _("Description modifiable");
?>
</li>
<li>
<?php
$i=new ICheckBox("followup_comment",1);
if ( Document_Option::is_enable_comment($table->dt_id)) $i->set_check(1); else $i->set_check(0);
echo $i->input();
echo _("Commentaire");
$select_comment_type=new ISelect("select_comment");
$select_comment_type->value=array(["value"=>"ONE_EDIT","label"=>_("Unique")],
["value"=>"SOME_FIXED","label"=>_("Multiples")]);
$select_comment_type->set_value(Document_Option::option_comment($table->dt_id));
echo $select_comment_type->input();
?>
</li>
<li>
<?php
$i=new ICheckBox("videoconf_server",1);
$checked = (Document_Option::is_enable_video_conf($table->dt_id)==true) ?1:0;
$i->set_check($checked);
echo $i->input();
echo _("Serveur de videoconf");
$itVideoconfServer=new IText("videoconf_server_url");
$itVideoconfServer->value=Document_Option::option_video_conf($table->dt_id);
echo $itVideoconfServer->input();
?>
</li>
</ul>
</div>
<div>
<h3 class="info" sytle="margin-block: 4px"><?php echo _("Options contact") ?></h3>
<ul class="tab_row" style="padding-top: 0px">
<?php
$nb_option=count($aOption);
for ($i=0;$i<$nb_option;$i++)
{
echo '<li>';
echo HtmlInput::hidden("cor_id[]", $aOption[$i]["cor_id"]);
$is=new ICheckBox("contact_option$i",1);
if ($aOption[$i]['jdoc_enable'] ==1 ) {
$is->set_check(1);
} else {
$is->set_check(0);
}
echo $is->input();
echo "&nbsp;&nbsp;&nbsp;"._($aOption[$i]['cor_label']);
echo '</li>';
}
?>
</ul>
</div>

View file

@ -13,7 +13,7 @@
echo HtmlInput::request_to_hidden(array("closed_action","remind_date_end","remind_date","sag_ref", "remind_date","only_internal", "state", "gDossier", "qcode", "start_date", "end_date", "ag_id", "ag_dest_query",
"tdoc", "action_query","date_start","date_end","hsstate","searchtag"));
?>
<div id="other_div" class="inner_box" style="left:25%;width:40%;display: none">
<div id="other_div" class="inner_box" style="left:25%;width:45rem;display: none">
<?php echo HtmlInput::title_box(_('Actions sur plusieurs documents'),'other_div', 'hide','action_hide_checkbox();') ?>
<?php echo _("Sélectionner les documents et l' action :")?>
<ul style='list-style-type: none;padding-left:30px;margin: 0px' >
@ -33,16 +33,16 @@ echo HtmlInput::request_to_hidden(array("closed_action","remind_date_end","remin
<li>
<?php $radio->value="ETIADD";echo $radio->input(); ?>
<?php echo _("Ajout d'étiquettes");?>
<?php echo Tag::button_search('add'); ?>
<?php echo Tag::add_clear_button('add'); ?>
<?php echo Tag_Action::select_tag_search('add'); ?>
<?php echo Tag_Action::add_clear_button('add'); ?>
<span id="addtag_choose_td">
</span>
</li>
<li>
<?php $radio->value="ETIREM";echo $radio->input(); ?>
<?php echo _("Enlever des étiquettes");?>
<?php echo Tag::button_search('rem'); ?>
<?php echo Tag::add_clear_button('rem'); ?>
<?php echo Tag_Action::select_tag_search('rem'); ?>
<?php echo Tag_Action::add_clear_button('rem'); ?>
<span id="remtag_choose_td">
</span>
</li>
@ -61,6 +61,7 @@ echo HtmlInput::request_to_hidden(array("closed_action","remind_date_end","remin
?>
</div>
<script>
var obj=document.getElementById('other_div');
new Draggable('other_div',{starteffect:function(){
new Effect.Highlight(obj.id,{scroll:window,queue:'end'});
}

View file

@ -38,7 +38,7 @@
<?php
echo HtmlInput::title_box(_('Recherche avancée'), "search_action_div", "close", "", "n");
?>
<form method="get" id="fsearchaction" style="padding:10px" onsubmit="result_search_action('fsearchaction');return false;">
<form method="get" id="fsearchaction" style="padding:10px" onsubmit="waiting_box();result_search_action('fsearchaction');return false;">
<?php echo HtmlInput::hidden('ctlc',$_GET['ctlc'])?>
<?php endif; ?>
<?php echo dossier::hidden()?>
@ -56,6 +56,10 @@
<td style="text-align:right" ><?php echo _("Etat")?></td>
<td><?php echo $type_state->input()?></td>
</tr>
<tr>
<td style="text-align:right"> <?php echo _("Affiche aussi les actions fermées");?></td>
<td><?php echo $closed_action->input();?></td>
</tr>
<tr>
<td style="text-align:right" ><?php echo _("Exclure Etat")?></td>
<td><?php echo $hsExcptype_state->input()?></td>
@ -103,10 +107,7 @@
<?php echo $remind_date_end->input();?>
</td>
</tr>
<tr>
<td style="text-align:right"> <?php echo _("Affiche aussi les actions fermées");?></td>
<td><?php echo $closed_action->input();?></td>
</tr>
</table>
@ -128,18 +129,32 @@
<p>
<?php echo _('Etiquette'); ?>
<span id="searchtag_choose_td">
<?php echo Tag::button_search('search'); ?>
<?php echo Tag_Action::select_tag_search('search'); ?>
<?php
if ( isset($_GET['searchtag'])) {
echo Tag::add_clear_button('search');
for ($i=0;$i<count($_GET['searchtag']);$i++) {
$t=new Tag($cn, $_GET['searchtag'][$i]);
$http=new HttpInput();
echo Tag_Action::add_clear_button('search');
$asearchtag= $http->get("searchtag","array",array());
for ($i=0;$i<count($asearchtag);$i++) {
$t=new Tag_Action($cn, $asearchtag[$i]);
echo $t->update_search_cell('search');
}
}
?>
</span>
</p>
<p>
<?php
echo _("Option étiquettes");
$iselect= new ISelect("tag_option");
$iselect->value=array(
array("value"=>0,"label"=>_("Toutes les étiquettes")),
array("value"=>1,"label"=>_("Au moins une étiquette"))
);
$iselect->set_value($http->request("tag_option","number",0));
echo $iselect->input();
?>
</p>
<input type="hidden" name="sa" value="list">
<?php echo $supl_hidden?>

View file

@ -26,6 +26,7 @@
* @brief show the result of a search into a inner windows
*
*/
?>
<form onsubmit="set_action_related('fresultaction');return false;" id="fresultaction">
<?php echo HtmlInput::hidden('ctlc',$_GET['ctlc'])?>
@ -63,6 +64,7 @@
<?php
$ck=new ICheckBox('ag_id[]');
$ck->value=$a_row[$i]['ag_id'];
$ck->set_range("ag_id_search_ck");
echo $ck->input();
?>
</td>
@ -86,4 +88,7 @@
<?php endfor;?>
</table>
<?php echo HtmlInput::submit("save_action", _("Mettre à jour"))?>
</form>
</form>
<?php
echo ICheckBox::javascript_set_range("ag_id_search_ck");
?>

View file

@ -174,19 +174,19 @@ bcscale(2);
</td>
<td style="text-align: right">
<?php echo nbm(abs($sum_fin));echo ($sum_fin < 0)?'C':($sum_fin == 0)?'=':'D'; ?>
<?php echo nbm(abs($sum_fin));echo ($sum_fin < 0)?'C':(($sum_fin == 0)?'=':'D'); ?>
</td>
<td style="text-align: right">
<?php echo nbm($sum_lt_30);echo ($sum_lt_30 < 0)?'C':($sum_lt_30 == 0)?'=':'D';?>
<?php echo nbm($sum_lt_30);echo ($sum_lt_30 < 0)?'C':(($sum_lt_30 == 0)?'=':'D');?>
</td>
<td style="text-align: right">
<?php echo nbm($sum_gt_30_lt_60);echo ($sum_gt_30_lt_60 < 0)?'C':($sum_gt_30_lt_60 == 0)?'=':'D';?>
<?php echo nbm($sum_gt_30_lt_60);echo ($sum_gt_30_lt_60 < 0)?'C':(($sum_gt_30_lt_60 == 0)?'=':'D');?>
</td>
<td style="text-align: right">
<?php echo nbm($sum_gt_60_lt_90);echo ($sum_gt_60_lt_90 < 0)?'C':($sum_gt_60_lt_90 == 0)?'=':'D';?>
<?php echo nbm($sum_gt_60_lt_90);echo ($sum_gt_60_lt_90 < 0)?'C':(($sum_gt_60_lt_90 == 0)?'=':'D');?>
</td>
<td style="text-align: right">
<?php echo nbm($sum_gt_90);echo ($sum_gt_90 < 0)?'C':($sum_gt_90 == 0)?'=':'D';?>
<?php echo nbm($sum_gt_90);echo ($sum_gt_90 < 0)?'C':(($sum_gt_90 == 0)?'=':'D');?>
</td>
</tr>
</table>

View file

@ -18,41 +18,47 @@
<?php endif; ?>
<tr>
<?php
$nFirstDay=$g_user->get_first_week_day();
$nDay=$nFirstDay;
for ($i=0;$i<=6;$i++){
echo "<th>";
echo $week[$i];
$nDay=($nDay>6)?0:$nDay;
echo $week[$nDay];
$nDay++;
echo "</th>";
}
?>
</tr>
<?php
$ind=1;
$week=0;
$week=$nFirstDay;
$nCol=0;
$today_month=date('m');
$today_day=date('j');
while ($ind <= $this->day) {
if ( $week == 0 ) echo "<tr>";
$class="workday";
if ( $week == 0 || $week == 6) $class="weekend";
// compute the date
$timestamp_date=mktime(0,0,0,$this->month,$ind,$this->year);
$date_calendar=date('w',$timestamp_date);
$st="";
if ( $today_month==$this->month && $today_day==$ind)
$st=' style="border:1px solid red" ';
if ( $date_calendar == $week ) {
echo '<td class="'.$class.'" '.$st.'>'.'<span class="day">'.$ind."</span>";
echo $cell[$ind];
echo '</td>';
$ind++;$week++;
} else {
echo "<td></td>";
$week++;
if ( $nCol == 0 ) echo "<tr>";
$class="workday";
if ( $week == 0 || $week == 6) $class="weekend";
// compute the date
$timestamp_date=mktime(0,0,0,$this->month,$ind,$this->year);
$date_calendar=date('w',$timestamp_date);
$st="";
if ( $today_month==$this->month && $today_day==$ind)
$st=' style="border:1px solid red" ';
if ( $date_calendar == $week ) {
echo '<td class="'.$class.'" '.$st.'>'.'<span class="day">'.$ind."</span>";
echo $cell[$ind];
echo '</td>';
$ind++;$week++;$nCol++;
} else {
echo "<td></td>";
$week++;$nCol++;
}
//if ( $ind > $this->day ) exit();
if ( $nCol == 7 ) { echo "</tr>";$nCol=0;}
if ( $week == 7 ) { $week=0;}
}
//if ( $ind > $this->day ) exit();
if ( $week == 7 ) { echo "</tr>";$week=0;}
}
if ( $week != 0 ) { echo "</tr>";}
if ( $nCol != 0 ) { echo "</tr>";}
?>
</table>

View file

@ -0,0 +1,120 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
/**
* @file
* @brief Show the option of a contact,
* parameters received
* - $fiche_id
* - $ag_id
* - $a_option array
* - $a_option.cor_id
* - $a_option.cor_label
* - $a_option.cor_type
* - $a_option.ap_id (-1 if option for this contact doesn't exist)
* @see Card_Multiple
*/
?>
<h3 class="info" style="margin:1px">
<?=$aIdentity['name']." ".$aIdentity['first_name']." ".$aIdentity['qcode']?>
</h2>
<form method="POST" onsubmit="save_linked_card_option(this);return false">
<input type="hidden" name="op" value="card">
<input type="hidden" name="op2" value="save_card_option">
<input type="hidden" name="ctl" value="notused">
<input type="hidden" name="ag_id" value="<?=$ag_id?>">
<input type="hidden" name="f_id" value="<?=$fiche_id?>">
<input type="hidden" name="action_person_id" value="<?=$p_action_person_id?>">
<?= Dossier::hidden() ?>
<?php
$nb_option=count($a_option);
for ($i=0; $i<$nb_option; $i++):
switch ($a_option[$i]['cor_type'])
{
case 0:
$input=new IText("ap_value[]");
break;
case 2:
$input=new IDate("ap_value[]");
break;
case 1:
$input=new INum("ap_value[]");
break;
case 3:
$input=new ISelect("ap_value[]");
$input->value=array();
// for select , we need to take the list
if (!empty($a_option[$i]['cor_value_select']))
{
$a_select=explode("|", $a_option[$i]['cor_value_select']);
if (is_array($a_select))
{
$nb=count($a_select);
$array=[];
for ($e=0; $e<$nb; $e++)
{
$a["label"]=$a_select[$e];
$a["value"]=$a_select[$e];
$array[$e]=$a;
}
$input->value=$array;
$input->selected = $a_option[$i]['ap_value'] ;
}
}
break;
case 4:
$input=new InputSwitch("ap_value[]");
if ( $a_option[$i]['ap_value'] =="") {
$a_option[$i]['ap_value']=0;
}
break;
}
$input->set_value ($a_option[$i]['ap_value']);
echo '<span style="display:table-row">';
echo '<span style="display:table-cell">';
echo $a_option[$i]['cor_label'];
echo HtmlInput::hidden("f_id",$fiche_id);
echo HtmlInput::hidden("ap_id[]",$a_option[$i]['ap_id']);
echo HtmlInput::hidden("cor_id[]",$a_option[$i]['cor_id']);
echo '</span>';
echo '<span style="display:table-cell">';
echo $input->input();
echo '</span>';
echo '</span>';
endfor;
?>
<ul class="aligned-block">
<li>
<?=HtmlInput::button_close("d_linked_card_option")?>
</li>
<li>
<?=HtmlInput::submit("save",_("Sauver"))?>
</li>
</ul>
</form>

View file

@ -0,0 +1,51 @@
<?php
//This file is part of NOALYSS and is under GPL
//see licence.txt
$nb_array=count($array);
?>
<fieldset id="asearch" style="height:41rem">
<legend><?php echo _('Résultats'); ?></legend>
<div style="height:100%;overflow:auto;">
<?php if ($nb_array > 10) :
echo _("recherche rapide");
echo HtmlInput::filter_table("card_list", '1,2,3', 0);
endif;
?>
<?php printf (_("Nombre de fiches trouvées %d montrées %d"),$count_card,$nb_array);?>
<table id="card_list" class="result" >
<th><?= ICheckBox::toggle_checkbox("all", "search_card2_frm")?></th>
<th><?=_("QCode")?></th>
<th><?=_("Société")?></th>
<th><?=_("Nom")?></th>
<th><?=_("Description")?></th>
<?php for ($i=0; $i<$nb_array; $i++) : ?>
<?php $class=($i%2==0)?'odd':'even'; ?>
<tr class="<?php echo $class; ?>">
<td style="padding-right:55px">
<?php echo $array[$i]['checkbox'] ?>
</td>
<td style="padding-right:55px">
<?php echo $array[$i]['quick_code'] ?>
</td>
<td>
<?php echo $array[$i]['company'] ?>
</td>
<td>
<?php echo $array[$i]['name'] ?>
<?php echo $array[$i]['first_name'] ?>
</td>
<td>
<?php echo $array[$i]['description'] ?>
</td>
</tr>
<?php endfor; ?>
</table>
<span style="font-style: italic;">
<?php echo _("Nombre d'enregistrements:$i"); ?>
</span>
<br>
</div>
</fieldset>

View file

@ -5,6 +5,34 @@
<fieldset id="asearch" style="height:88%">
<legend><?php echo _('Résultats'); ?></legend>
<div style="height:88%;overflow:auto;">
<?php
// compute the url, $sql_array is defined in ajax_card.php
echo '<ul class="aligned-block" style="padding:1px;margin-top: 0px;margin-bottom: 0px;">';
if ( $page_card != 0 ) {
// show previous arrow to left
echo '<li style="padding:1px">';
echo '<form method="GET" onsubmit="this.ctl=\'ipop_card\';search_get_card(this);return false;">';
$url=$sql_array;
$url["page_card"]=$page_card-1;
echo HtmlInput::array_to_hidden(array('accvis','inp','jrn','label','typecard','price','tvaid','amount_from_type','page_card','query','inactive_card'), $url);
echo HtmlInput::submit("previous","<");
echo '</form>';
echo '</li>';
}
if ( $record_start < $total_card && $nb_found >= MAX_SEARCH_CARD) {
echo '<li style="padding:1px">';
echo '<form method="GET" onsubmit="this.ctl=\'ipop_card\';search_get_card(this);return false;">';
$url=$sql_array;
$url["page_card"]=$page_card+1;
echo HtmlInput::array_to_hidden(array('accvis','inp','jrn','label','typecard','price','tvaid','amount_from_type','page_card','query','inactive_card'), $url);
echo HtmlInput::submit("next",">");
echo '</form>';
echo '</li>';
}
echo '</ul>';
?>
<table class="result" >
<?php for ($i=0;$i<sizeof($array);$i++) : ?>
<?php $class=($i%2==0)?'odd':'even';?>
@ -40,7 +68,7 @@ if ( $accvis == 1 ) :
<?php endfor; ?>
</table>
<span style="font-style: italic;">
<?php echo _("Nombre d'enregistrements:$i"); ?>
<?php echo _("Nombre d'enregistrements trouvé:$total_card"); ?>
</span>
<br>
</div>

View file

@ -1,4 +1,5 @@
<?php
require_once NOALYSS_INCLUDE."/class/follow_up_other_concerned.class.php";
//This file is part of NOALYSS and is under GPL
//see licence.txt
$uniq=uniqid("tab",TRUE);
@ -7,7 +8,7 @@ $uniq=uniqid("tab",TRUE);
<table>
<tr class="highlight">
<tr class="highlight">
<TD>
<?php echo _('N° document')?>
</TD>
@ -57,29 +58,50 @@ $uniq=uniqid("tab",TRUE);
echo _('Pas de catégorie de contact');
endif;
endif;
?>
</td>
</Tr>
<?php
//----------------------- Video Conf --------------------------------------------------------------------------------
if (Document_Option::is_enable_video_conf($this->dt_id)):?>
<tr>
<td><?=_("VideoConf")?></td>
<td><A href="<?=Document_Option::option_video_conf($this->dt_id)?>" target="_blank">
<?=_("Salle de réunion")?>
</a>
</tr>
<?php endif;?>
<tr>
<TD colspan="2">
<?php echo $spcontact->input(); ?>
</td>
</Tr>
<?php if ($this->ag_id > 0 ): ?>
<?php
//----------------------- Contact Multiple ----------------------------------------------------------------------------
if ($this->ag_id > 0 && Document_Option::is_enable_contact_multiple($this->dt_id)):
?>
<tr>
<td>
<?php echo _('Autres concernés')?>
</td>
<td id="concerned_card_td">
<?php
echo $this->display_linked();
if ($g_user->can_write_action($this->ag_id) == true ):
echo HtmlInput::button_action_add_concerned_card( $this->ag_id);
$followup_other_concerned=new Follow_Up_Other_Concerned($this->db,$this->ag_id);
echo $followup_other_concerned->display_linked_count();
if ($p_view != 'READ' && $g_user->can_write_action($this->ag_id) == true ):
echo $followup_other_concerned->button_action_add_concerned_card();
endif;
?>
</td>
<td>
<?php
$csv="export.php?".
http_build_query(["gDossier"=>Dossier::id(),
"act"=>"CSV:FollowUpContactOption",
"ag_id"=>$ag_id]);
echo HtmlInput::anchor(_("Export CSV"), $csv,"",' class="line" title="Export Contacts options"');
?>
</td>
</tr>
<?php endif; ?>
@ -148,12 +170,12 @@ $uniq=uniqid("tab",TRUE);
<?php if ($this->ag_id > 0 ): ?>
<tr>
<TD>
Dossier / tags
Dossier / Etiquette
</TD>
<td id="action_tag_td">
<td id="action_tag_td" style="max-width:35rem">
<?php
$this->tag_cell();
$this->tag_cell($p_view);
?>
</td>
</TR>
@ -235,177 +257,196 @@ function small(p_id_textarea){
<?php echo $title->input();
?>
</p>
<div style="margin-left:10px;">
<div>
<?php
/**********************************************************************************************************************
* Start BLOCK Comment and description
**********************************************************************************************************************/
?>
<?php
$style_enl='style="display:inline"';$style_small='style="display:none"';
// description
$description = new ITextarea("ag_description");
$description->id="ag_description";
$has_description = false;
//---------------------------------- Description -------------------------------------------------------------------
if ( count($acomment)> 0) {
$has_description = true;
$editable_description = Document_Option::is_enable_editable_description($this->dt_id);
if ( $p_view != 'READ' && $editable_description == true){
echo h2(_("Description"));
$itDescription=new ITextarea("ag_description");
$itDescription->style='class="input_text field_follow_up" style="height:21rem;width:98%"';
for( $c=0;$c<count($acomment);$c++){
if ($c == 0) { $m_desc=_('Description');}
else
{ $m_desc=_('Commentaire');}
$comment="";
if ( $p_view != 'READ' && $c > 0)
{
$rmComment=sprintf("return confirm_box(null,'"._('Voulez-vous effacer ce commentaire')." ?',function() {remove_comment('%s','%s');});",
dossier::id(),
$acomment[$c]['agc_id']);
$js=Icon_Action::trash("accom".$acomment[$c]['agc_id'], $rmComment);
$comment= h($m_desc.' '.$acomment[$c]['agc_id'].'('.$acomment[$c]['tech_user']." ".$acomment[$c]['str_agc_date'].')').$js.
'<pre class="field_follow_up" id="com'.$acomment[$c]['agc_id'].'"> '.
" ".h($acomment[$c]['agc_comment']).'</pre>'
;
$ag_description_id= $acomment[0]['agc_id'];
$itDescription->value=$acomment[0]['agc_comment'];
$itDescription->id="ag_description";
}
else
{
$comment=h($m_desc.' '.$acomment[$c]['agc_id'].'('.$acomment[$c]['tech_user']." ".$acomment[$c]['str_agc_date'].')').
'<pre class="field_follow_up" id="com'.$acomment[$c]['agc_id'].'"> '.
" ".h($acomment[$c]['agc_comment']).'</pre>'
;
// One editable comment is available
$editable_description=new Inplace_Edit($itDescription);
$editable_description->add_json_param("op", "followup_comment_oneedit");
$editable_description->add_json_param("agc_id", $ag_description_id);
$editable_description->add_json_param("ag_id", $ag_id);
$editable_description->add_json_param("gDossier", Dossier::id());
$editable_description->set_callback("ajax_misc.php");
echo $editable_description->input();
}
elseif ($p_view == 'READ' || $editable_description == false)
{
echo h2(_("Description"));
echo '<pre class="field_follow_up">';
echo h($acomment[0]['agc_comment']);
echo '</pre>';
}
} else {
echo h2(_("Description"));
echo $description->input();
}
//---------------------------------- Comment -----------------------------------------------------------------------
if ( Document_Option::can_add_comment($ag_id) &&
Document_Option::option_comment($this->dt_id) == "ONE_EDIT" )
{
if (count($acomment) > 1 ) {
echo h2(_("Commentaire"));
$comment=new ITextarea("ag_comment_edit");
$comment->style='class="input_text field_follow_up" style="height:21rem;width:98%"';
$ag_comment_id= (count($acomment) > 1)?$acomment[1]['agc_id']:-1;
$comment->value=(count($acomment) > 1 )?$acomment[1]['agc_comment']:'';
$comment->id="ag_comment_edit";
if ( $p_view != 'READ') {
// One editable comment is available
$editable_comment=new Inplace_Edit($comment);
$editable_comment->add_json_param("op", "followup_comment_oneedit");
$editable_comment->add_json_param("agc_id", $ag_comment_id);
$editable_comment->add_json_param("ag_id", $ag_id);
$editable_comment->add_json_param("gDossier", Dossier::id());
$editable_comment->set_callback("ajax_misc.php");
echo '<p></p>';
echo $editable_comment->input();
} else {
echo '<p></p>';
echo $comment->display();
}
} else {
echo '<span class="noprint">';
if ( $p_view == 'UPD' && $has_description && Document_Option::can_add_comment($ag_id) ) {
echo h2(_("Commentaire"));
echo '<p></p>';
echo $desc->input();
}
echo '</span>';
}
}
if ( count($acomment) > 0
&& Document_Option::can_add_comment($ag_id)
&& Document_Option::option_comment($this->dt_id) == "SOME_FIXED")
{
echo h2(_("Commentaire"));
for( $c=1;$c<count($acomment);$c++){
$m_desc=_('Commentaire');
$comment="";
if ( $p_view != 'READ' && $c > 0)
{
$rmComment=sprintf("return confirm_box(null,'"._('Voulez-vous effacer ce commentaire').
" ?',function() {remove_comment('%s','%s');});",
dossier::id(),
$acomment[$c]['agc_id']);
$js=Icon_Action::trash("accom".$acomment[$c]['agc_id'], $rmComment);
$comment= h($m_desc.' '.$acomment[$c]['agc_id'].'('.$acomment[$c]['tech_user']." ".
$acomment[$c]['str_agc_date'].')').$js.
'<pre class="field_follow_up" id="com'.$acomment[$c]['agc_id'].'"> '.
" ".h($acomment[$c]['agc_comment']).'</pre>'
;
}
else
{
$comment=h($m_desc.' '.$acomment[$c]['agc_id'].'('.$acomment[$c]['tech_user']." ".
$acomment[$c]['str_agc_date'].')').
'<pre class="field_follow_up" id="com'.$acomment[$c]['agc_id'].'"> '.
" ".h($acomment[$c]['agc_comment']).'</pre>'
;
}
$comment=preg_replace('/#([0-9]+)/','<a class="line" href="javascript:void()" onclick="view_action(\1,'.
Dossier::id().',0)" >\1</a>',$comment);
echo '<p></p>';
echo $comment;
} // end for
if ( $has_description && $p_view == 'UPD' && Document_Option::can_add_comment($ag_id)) {
echo '<span class="noprint">';
echo '<p></p>';
echo $desc->input();
}
echo '</span>';
if ($p_view == 'UPD') {
}
}
}
$comment=preg_replace('/#([0-9]+)/','<a class="line" href="javascript:void()" onclick="view_action(\1,'.Dossier::id().',0)" >\1</a>',$comment);
echo $comment;
}
echo '<span class="noprint">';
echo $desc->input();
echo '</span>';
?>
<?php if ($p_view != "READ" ): ?>
<p class="noprint">
<input type="button" id="bt_enlarge" <?php echo $style_enl?> value="+" onclick="enlarge('ag_comment');return false;">
<input type="button" id="bt_small" <?php echo $style_small?> value="-" style="display:none" onclick="small('ag_comment');return false;">
</p>
<?php endif; ?>
</div>
</div>
<?php if ( $p_view !='READ' ) :?>
<input type='button' class="button" class="noprint" value="<?php echo _('Montrer articles');?>" id="toggleButton" onclick='toggleShowDetail()'>
<?php endif; ?>
<?php
/**
* check if there card to show,
*/
$show_row=0;
for ($i=0;$i<count($aArticle);$i++) :
if ( ($aCard[$i] != 0 && $p_view == 'READ') || $p_view != 'READ'){ $show_row=1;break;}
endfor;
<?php
/**********************************************************************************************************************
* START BLOCK Display Detail of follow up
*
**********************************************************************************************************************/
?>
<?php
/*
* display detail if there card or if we are in UPDATE or NEW mode
*/
if ($show_row !=0 ) :
// Display detail if detail_operation is set
if ( $this->ag_id > 0 && Document_Option::is_enable_operation_detail($this->dt_id)) Follow_Up_Detail::display($this,$p_view);
?>
<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;
for ($i=0;$i<count($aArticle);$i++) :
echo $aArticle[$i]['ad_id'];
echo $aArticle[$i]['hidden_tva'];
echo $aArticle[$i]['hidden_htva'];
if ( ($aCard[$i] != 0 && $p_view == 'READ') || $p_view != 'READ'){ $show_row=1;}
endfor;
?>
<div>
<table style="width:100%" id="art" >
<tr>
<th><?php echo _('Fiche')?></th>
<th><?php echo _('Description')?></th>
<th><?php echo _('prix unitaire')?></th>
<th><?php echo _('quantité')?></th>
<th><?php echo _('Code TVA')?></th>
<th><?php echo _('Montant TVA')?></th>
<th><?php echo _('Montant TVAC')?></th>
<?php
/**********************************************************************************************************************
* END BLOCK Display Detail of follow up
**********************************************************************************************************************/
?>
<div style="clear:both"></div>
</tr>
<?php for ($i=0;$i<count($aArticle);$i++): ?>
<?php
if ( ($aCard[$i] != 0 && $p_view == 'READ') || $p_view != 'READ'):
$show_row++;
?>
<TR>
<TD><?php echo $aArticle[$i]['fid'] ?></TD>
<TD><?php echo $aArticle[$i]['desc'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['pu'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['quant'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['tvaid'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['tva'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['tvac'] ?></TD>
</TR>
<?php endif; ?>
<?php endfor; ?>
</table>
</div>
<?php if ($p_view != "READ" ): ?>
<script language="JavaScript">
if ( $('e_march0') && $('e_march0').value =='') { toggleShowDetail();}
function toggleShowDetail() {
try {var detail=g('fldDetail');
var but=g('toggleButton');
if (detail.style.display=='block' ) { but.value="<?php echo _("Montrer les détails")?>";detail.style.display='none';}
else { but.value="<?php echo _("Cacher les détails")?>";detail.style.display='block';} }
catch (error) {alert(error);}
}
</script>
<?php endif; ?>
<?php if ( $show_row != 0 ): ?>
<div>
<div style=" float:right;margin-right: 2px" id="sum">
<br><span style="text-align: right;" class="highlight" id="htva"><?php echo bcsub($tot_item,$tot_vat) ?></span>
<br><span style="text-align: right" class="highlight" id="tva"><?php echo $tot_vat?></span>
<br><span style="text-align: right" class="highlight" id="tvac"><?php echo $tot_item?></span>
</div>
<div style="float:right;margin-right: 230px" >
<br>Total HTVA
<br>Total TVA
<br>Total TVAC
</div>
<div id="div_action_attached_doc">
<h2>
<?php echo _('Pièces attachées')?>
</h2>
<div class="noprint">
<?php
/**********************************************************************************************************************
* start BLOCK generate document
**********************************************************************************************************************/
?>
<?php if ( ! $readonly ) : ?>
<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>
<?php endif; ?>
<?php if ($p_view != 'READ' && $str_select_doc != '') : ?>
<?php if ($p_view != 'READ' && $str_select_doc != '') : ?>
<?php echo _('Document à générer')?>
</legend>
<?php echo $str_select_doc;
echo $str_submit_generate;
endif; ?>
<legend>
</div>
<?php if ( $this->ag_id != 0 && ! $readonly) : ?>
<div >
<p>
<?php
$query= http_build_query(array('gDossier'=>Dossier::id(),'ag_id'=>$this->ag_id,'create_invoice'=>1,'ac'=>$menu->get('code_invoice')));
echo HtmlInput::button_anchor(_("Transformer en facture"),"do.php?".$query,"create_invoice", ' target="_blank" ',"button");
?>
</p>
</div>
<?php endif; ?>
<?php endif; ?>
</div>
<?php endif; ?>
<div style="clear:both"></div>
<div class="myfieldset" id="div_action_attached_doc">
<legend>
<?php echo _('Pièces attachées')?>
</legend>
<?php
/**********************************************************************************************************************
* end BLOCK generate document
**********************************************************************************************************************/
?>
</div>
<div class="print">
<table>
<?php
@ -456,6 +497,11 @@ try {
docAdded=document.getElementById('add_file');
new_element=document.createElement('li');
new_element.innerHTML='<input class="inp" type="file" value="" name="file_upload[]"/><label>Description</label> <input type="input" class="input_text" name="input_desc[]" >';
new_element.innerHTML+='<span id="<?=uniqid("file")?>" onclick="document.getElementById(\'add_file\').removeChild(this.parentNode)" class="icon">&#xe80f;</span>';
docAdded.appendChild(new_element);
}
catch(exception) { alert('<?php echo j(_('Je ne peux pas ajouter de fichier'))?>'); alert(exception.message);}
@ -470,6 +516,10 @@ catch(exception) { alert('<?php echo j(_('Je ne peux pas ajouter de fichier'))?>
?>
<label><?php echo _('Description')?></label>
<input type="input" class="input_text" name="input_desc[]" >
<?php
$js="document.getElementById('add_file').removeChild(this.parentNode)";
echo Icon_Action::trash(uniqid(),$js);
?>
</li>
</ol>
<span >
@ -483,7 +533,7 @@ Document créé le <?php echo $this->ag_timestamp ?> par <?php echo $this->ag_ow
<?php endif; ?>
</div>
<script>compute_all_ledger()</script>
<script>
$('related_action_tab<?php echo $uniq?>').onclick=function() {
$('related_action_tab<?php echo $uniq?>').className='tabs_selected';

View file

@ -1,87 +0,0 @@
<?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 Author Dany De Bontridder danydb@aevalys.eu
/**\file
* \brief this file respond to an ajax request to modify a type of document
*/
require_once NOALYSS_INCLUDE.'/class/document_type.class.php';
echo HtmlInput::title_box(_('Type de document'),'change_doc_div');
$doc_type=new Document_type($cn,$dt_id);
$doc_type->get();
?>
<form method="POST" id="cat_doc_f" onsubmit="cat_doc_change_record('cat_doc_f');">
<?php echo HtmlInput::request_to_hidden(array("ac","gDossier","dt_id"))?>
<table>
<tr>
<td> <?php echo _('Nom')?>
</td>
<td>
<?php
$name=new IText('dt_name',$doc_type->dt_value);
echo $name->input();
?>
</td>
</tr>
<tr>
<td><?php echo _('Préfixe')?>
</td>
<td>
<?php
$prefix=new IText('dt_prefix',$doc_type->dt_prefix);
echo $prefix->input();
?>
</td>
</tr>
<tr>
<td><?php echo _('numéro actuel')?>
</td>
<td>
<?php
$ret= $cn->get_array("select last_value,is_called from seq_doc_type_".$doc_type->dt_id) ;
$last=$ret[0]['last_value'];
/*!
*\note With PSQL sequence , the last_value column is 1 when before AND after the first call, to make the difference between them
* I have to check whether the sequence has been already called or not */
if ($ret[0]['is_called']=='f' ) $last--;
echo $last;
?>
</td>
<tr>
<td><?php echo _('Prochain numéro')?>
<?php echo
Icon_Action::infobulle(15);
?>
</td>
<td>
<?php
$seq=new INum('seq',0);
echo $seq->input();
?>
</td>
</tr>
</table>
<?php echo HtmlInput::submit("save",_('Sauver'));?>
</form>

View file

@ -73,7 +73,10 @@
if ($write == 1)
{
$ck = new ICheckBox('f_id[]', $row['f_id']);
echo $ck->input();
if ( $allcard != 1 ) {
$ck->set_range("range".$p_cat);
}
echo $ck->input();
}
?>
</td>
@ -83,6 +86,10 @@
</table>
<?php echo $str_add_card?>
<?php
if ( $allcard != 1 ) { echo ICheckBox::javascript_set_range("range".$p_cat); }
?>
<?php echo HtmlInput::hidden('action',"1");?>
<?php echo HtmlInput::hidden('delete',"0");?>
<?php echo HtmlInput::hidden('move',"0");?>

View file

@ -69,4 +69,6 @@ for ($i=0;$i<$nb_dossier;$i++):
<?php
endfor;
?>
</table>
</table>
<?php
echo HtmlInput::button_close("folder_list_div");?>

View file

@ -0,0 +1,209 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
/**
* @file
* @brief Called from Follow_Up_Detail for displaying detail
* @see Follow_Up_Detail::display
*/
// Number of articles
$article_count=(count($p_follow_up->aAction_detail)==0)?MAX_ARTICLE:count($p_follow_up->aAction_detail);
// total item and vat
$tot_item=0;
$tot_vat=0;
$text=new IText();
$num=new INum();
$itva=new ITva_Popup();
$readonly=($p_view == "READ")?true:false;
// Check for the Price on ACH or VEN
$cn=Dossier::connect();
$document_type=$p_follow_up->db->get_value("select ag_type from action_gestion where ag_id = $1",[$p_follow_up->ag_id]);
$option_detail= Document_Option::option_operation_detail($document_type);
// default menu for invoice
$menu=new Default_Menu();
?>
<div id="follow_up_detail">
<?php echo h2(_("Détail opération")) ?>
<?php echo HtmlInput::hidden("nb_item", $article_count); ?>
<table style="width:100%" id="sold_item">
<tr>
<th><?php echo _('Fiche') ?></th>
<th><?php echo _('Description') ?></th>
<th><?php echo _('prix unitaire') ?></th>
<th><?php echo _('quantité') ?></th>
<th><?php echo _('Code TVA') ?></th>
<th><?php echo _('Montant TVA') ?></th>
<th><?php echo _('Montant TVAC') ?></th>
</tr>
<?php
for ($i=0; $i<$article_count; $i++):
/* fid = Icard */
$icard=new ICard();
$icard->jrn=-10;
$icard->table=0;
$icard->noadd="no";
$icard->extra='all';
$icard->name="e_march".$i;
$tmp_ad=(isset($p_follow_up->aAction_detail[$i]))?$p_follow_up->aAction_detail[$i]:false;
$icard->readOnly=$readonly;
$icard->value='';
$aCard[$i]=0;
if ($tmp_ad)
{
$march=new Fiche($p_follow_up->db);
$f=$tmp_ad->get_parameter('qcode');
if ($f!=0)
{
$march->id=$f;
$icard->value=$march->get_quick_code();
$aCard[$i]=$f;
}
}
$icard->set_dblclick("fill_ipopcard(this);");
// name of the field to update with the name of the card
$icard->set_attribute('label', "e_march".$i."_label");
// name of the field to update with the name of the card
$icard->set_attribute('typecard', $icard->extra);
$icard->set_attribute('ipopup', 'ipopcard');
$icard->set_function('fill_data');
$icard->javascript=sprintf(' onchange="fill_data_onchange(\'%s\');" ', $icard->name);
// name of the field to update with the name of the card
$icard->set_attribute('label', 'e_march' . $i . '_label');
// name of the field with the price autocomplete
if ( $option == 'ACH'){
$icard->set_attribute('purchase', 'e_march' . $i . '_price');
} else {
$icard->set_attribute('price','e_march'.$i.'_price');
}
// name of the field with the TVA_ID
$icard->set_attribute('tvaid', 'e_march' . $i . '_tva_id');
$icard->amount_from_type=$option_detail;
$aArticle[$i]['fid']=$icard->search().$icard->input();
$text->javascript=' onchange="clean_tva('.$i.');compute_ledger('.$i.')"';
$text->css_size="100%";
$text->name="e_march".$i."_label";
$text->id="e_march".$i."_label";
$text->size=40;
$text->value=($tmp_ad)?$tmp_ad->get_parameter('text'):"";
$text->readOnly=$readonly;
$aArticle[$i]['desc']=$text->input();
$num->javascript=' onchange="format_number(this,4);clean_tva('.$i.');compute_ledger('.$i.')"';
$num->name="e_march".$i."_price";
$num->id="e_march".$i."_price";
$num->size=8;
$num->readOnly=$readonly;
$num->value=($tmp_ad)?$tmp_ad->get_parameter('price_unit'):0;
$aArticle[$i]['pu']=$num->input();
$num->name="e_quant".$i;
$num->id="e_quant".$i;
$num->size=8;
$num->value=($tmp_ad)?$tmp_ad->get_parameter('quantity'):0;
$aArticle[$i]['quant']=$num->input();
$itva->name='e_march'.$i.'_tva_id';
$itva->id='e_march'.$i.'_tva_id';
$itva->value=($tmp_ad)?$tmp_ad->get_parameter('tva_id'):0;
$itva->readOnly=$readonly;
$itva->js=' onchange="format_number(this);clean_tva('.$i.');compute_ledger('.$i.')"';
$itva->set_attribute('compute', $i);
$aArticle[$i]['tvaid']=$itva->input();
$num->name="e_march".$i."_tva_amount";
$num->id="e_march".$i."_tva_amount";
$num->value=($tmp_ad)?$tmp_ad->get_parameter('tva_amount'):0;
$num->javascript=" onchange=\"compute_ledger('".$i." ')\"";
$num->size=8;
$aArticle[$i]['tva']=$num->input();
$tot_vat=bcadd($tot_vat, $num->value);
$num->name="tvac_march".$i;
$num->id="tvac_march".$i;
$num->value=($tmp_ad)?$tmp_ad->get_parameter('total'):0;
$num->size=8;
$aArticle[$i]['tvac']=$num->input();
$tot_item=bcadd($tot_item, $num->value);
$aArticle[$i]['hidden_htva']=HtmlInput::hidden('htva_march'.$i, 0);
$aArticle[$i]['hidden_tva']=HtmlInput::hidden('tva_march'.$i, 0);
$aArticle[$i]['ad_id']=($tmp_ad)?HtmlInput::hidden('ad_id'.$i, $tmp_ad->get_parameter('id')):HtmlInput::hidden('ad_id'.$i,
0);
?>
<TR>
<TD><?php echo $aArticle[$i]['fid'] ?></TD>
<TD><?php echo $aArticle[$i]['desc'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['pu'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['quant'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['tvaid'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['tva'] ?></TD>
<TD class="num"><?php echo $aArticle[$i]['tvac'] ?>
<?php echo $aArticle[$i]['hidden_tva']; ?>
<?php echo $aArticle[$i]['hidden_htva']; ?>
<?php echo $aArticle[$i]['ad_id']; ?>
</TD>
</TR>
<?php
endfor;
?>
</table>
<div>
<div style=" float:right;margin-right: 2px" id="sum">
<br><span style="text-align: right;" class="highlight" id="htva"><?php echo bcsub($tot_item, $tot_vat) ?></span>
<br><span style="text-align: right" class="highlight" id="tva"><?php echo $tot_vat ?></span>
<br><span style="text-align: right" class="highlight" id="tvac"><?php echo $tot_item ?></span>
</div>
<div style="float:right;margin-right: 230px" >
<br>Total HTVA
<br>Total TVA
<br>Total TVAC
</div>
</div>
<div id="d_add_rows">
<?php if ( $p_view != 'READ' ) echo Html_Input_Noalyss::ledger_add_item("O"); ?>
<?php echo HtmlInput::button('actualiser', _('Recalculer'), ' onClick="compute_all_ledger();"'); ?>
</div>
<script>compute_all_ledger()</script>
<?php
if (Document_Option::is_enable_make_invoice($p_follow_up->dt_id)):
?>
<p id="follow_up_detail_invoice">
<?php
$query=http_build_query(array('gDossier'=>Dossier::id(), 'ag_id'=>$p_follow_up->ag_id, 'create_invoice'=>1, 'ac'=>$menu->get('code_invoice')));
echo HtmlInput::button_anchor(_("Transformer en facture"), "do.php?".$query, "create_invoice",
' target="_blank" ', "button");
?>
</p>
<?php
endif;
?>

View file

@ -0,0 +1,71 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
/**
* @file
* @brief display a table
*/
$aColumn = $this->get_option();
$r='0,1,2';
$nb_column=count($aColumn);
for ( $e=0;$e<$nb_column;$e++) {
$r.=','.($e+3);
}
?>
<?=HtmlInput::filter_table("action_concerned_list_tb1", $r, 1);?>
<table id="action_concerned_list_tb1" class="result">
<tr>
<th>
<?=_("Code")?>
</th>
<th>
<?=_("Nom")?>
</th>
<th>
<?=_("Prénom")?>
</th>
<?php
for ($o=0;$o< $nb_column;$o++){
echo th($aColumn[$o]["cor_label"]);
}
?>
<?php
$aOther=$this->db->get_array("
select (select ad_value from fiche_detail fd1 where fd1.f_id=ap.f_id and ad_id=23) as qcode ,
f_id
,ap.ap_id
from action_person ap
join action_gestion on (ap.ag_id=action_gestion.ag_id)
where ap.ag_id=$1 order by 1",[$this->ag_id]);
$nb_other=count($aOther);
for ($x=0;$x<$nb_other;$x++) {
echo $this->display_row($aOther[$x]['f_id'],$x,$aColumn);
}
?>
</tr>
</table>

View file

@ -0,0 +1,69 @@
<?php
/*
* This file is part of NOALYSS.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright (2002-2020) Author Dany De Bontridder <danydb@noalyss.eu>
if (!defined('ALLOWED'))
die('Appel direct ne sont pas permis');
$sup_parameter=HtmlInput::array_to_string(["sc","sb","f_id","qcode"], $_REQUEST,"&amp;");
$cn=Dossier::connect();
/**
* @file
* @brief display a button for adding an followup action
*/
echo HtmlInput::button(uniqid(), _("Ajout action"),
'onclick="document.getElementById(\'action_add_d\').style.display=\'block\';"');
?>
<div id="action_add_d" class="inner_box" style="width:25rem;display:none;top:10rem;">
<?php echo HtmlInput::title_box(_("Choississez une action"), "action_add_d"); ?>
<div style="text-align: center">
<form method="get" >
<?php
echo HtmlInput::array_to_hidden(["ac", "sc", "sb", "f_id", "qcode", "gDossier"], $_REQUEST);
if ( ! empty ($pa_param)) {
foreach ($pa_param as $key=> $value)
{
echo HtmlInput::hidden($key,$value);
}
}
?>
<?php
$action=new ISelect("action_type");
$action->style='style="width:95%"';
$action->value=$cn->make_array("select dt_id,dt_value from document_type order by 2");
$action->selected=$action->value[0]['value'];
$action->rowsize=10;
echo $action->input();
?>
<ul class="aligned-block">
<li>
<?php echo HtmlInput::submit("add_action", _("Ajout")); ?>
</li>
<li>
<?php echo HtmlInput::button_hide("action_add_d") ?>
</li>
</ul>
</form>
</div>
</div>

View file

@ -4,7 +4,7 @@
?>
<div id="jrn_name_div">
<h2 id="jrn_name"> <?php echo $this->get_name()?></h2>
<h1 id="jrn_name"> <?php echo $this->get_name()?></h1>
</div>
<table>
<tr>

View file

@ -3,7 +3,7 @@
//see licence.txt
?><fieldset>
<div id="jrn_name_div">
<h2 id="jrn_name"> <?php echo $this->get_name()?></h2>
<h1 id="jrn_name"> <?php echo $this->get_name()?></h1>
</div>
<legend><?php echo $f_legend ?> </legend>
<?php

View file

@ -14,7 +14,7 @@
require_once NOALYSS_INCLUDE."/lib/select_box.class.php";
$select_box=new \Select_Box("sb_".$jr_id, _("Autre action"));
$select_box->set_position("in-absolute");
$select_box->set_position("normal");
$cn=Dossier::connect();
// Contains all the linked actions
$a_followup = Follow_Up::get_all_operation($jr_id);
@ -44,6 +44,7 @@ $a_tab['linked_operation_div']=array('id'=>'linked_operation_div'.$div,'label'=>
$a_tab['document_operation_div']=array('id'=>'document_operation_div'.$div,'label'=>_('Document').'('.$nb_document.')','display'=>'block');
$a_tab['linked_action_div']=array('id'=>'linked_action_div'.$div,'label'=>_('Actions Gestion').'('.count($a_followup).')','display'=>'none');
$a_tab['analytic_div']=array('id'=>'analytic_div'.$div,'label'=>_('Comptabilité Analytique'),'display'=>'none');
$a_tab['tag_operation_div']=array('id'=>'tag_operation_div'.$div,'label'=>_('Etiquette'),'display'=>'none');
// show tabs
@ -173,7 +174,7 @@ endif;
<?php
// display title only in popup
if ($div == 'popup') :
?>
?> er
<h1 class="legend"><?php echo $a_tab['linked_operation_div']['label']?></h1>
<?php endif; ?>
<?php
@ -187,8 +188,22 @@ if ($aRap != null ) {
$opRap=new Acc_Operation($cn);
$opRap->jr_id=$aRap[$e];
$internal=$opRap->get_internal();
$array_jr=$cn->get_array('select jr_date,jr_pj_number,jr_montant,jr_comment from jrn where jr_id=$1',array($aRap[$e]));
$array_jr=$cn->get_array('select jr_date,jr_pj_number,jr_montant,jr_comment , jr_internal
from jrn where jr_id=$1',
array($aRap[$e]));
$amount=$array_jr[0]['jr_montant'];
switch (substr($array_jr[0]['jr_internal'],0,1)) {
case 'A':
$amount = $cn->get_value("select sum(qp_price+qp_vat-qp_vat_sided) from quant_purchase qp
where qp_internal=$1",
array($internal));
break;
case 'V':
$amount=$cn->get_value("select sum(qs_price+qs_vat-qs_vat_sided) from quant_sold qs
where qs_internal=$1",
array($internal));
break;
}
$total_rec=bcadd($total_rec,$amount);
$str="modifyOperation(".$aRap[$e].",".$gDossier.")";
@ -294,7 +309,23 @@ require_once NOALYSS_TEMPLATE.'/ledger_detail_file.php';
</span>
<?php endif;?>
</div>
<div id="tag_operation_div<?=$div?>" style="overflow:auto;display:<?php echo $a_tab['tag_operation_div']['display']?>">
<div id="operation_tag_td<?=$div?>">
<?php
/******************************************************************************************************************
* Tags on operation
*****************************************************************************************************************/
$tag_operation=new Tag_Operation($cn);
$tag_operation->set_jrn_id($obj->det->jr_id);
$tag_operation->tag_cell($div);
?>
</div>
<?php
// Button add tags
if ( $access=='W') { echo Tag_Operation::button_search($obj->det->jr_id,$div);}
?>
</div>
<hr>
<?php
echo '<p style="text-align:center">';

View file

@ -32,7 +32,7 @@ $date->value=format_date($obj->det->jr_date);
<?php
$bk=new Fiche($cn,$obj->det->array[0]['qf_bank']);
$view_card_detail=HtmlInput::card_detail($bk->get_quick_code(),h($bk->getName()), ' class="line" ');
echo td(_('Compte en banque')).td($view_card_detail).td();;
echo td(_('Compte en banque')).td($view_card_detail).td();
?>
</tr>

View file

@ -87,5 +87,40 @@ echo $f_accounting->input(); ?>
<?php echo $f_paid->input(); ?>
</td>
</tr>
<tr>
<td style="text-align:right;width:30em">
<?php
$iselect= new ISelect($this->div."tag_option");
$iselect->value=array(
array("value"=>0,"label"=>_("Toutes les étiquettes")),
array("value"=>1,"label"=>_("Au moins une étiquette"))
);
$iselect->set_value($http->request($this->div."tag_option","number",0));
echo $iselect->input();
?>
<?php
echo Tag_Operation::select_tag_search($this->div);
?>
</td>
<td >
<span id="<?=$this->div?>tag_choose_td">
<?php
$aTag= $http->request($this->div."tag","string",0);
if (is_array($aTag) ) {
$nb_tag=count($aTag);
for ($j=0;$j< $nb_tag;$j++) {
$tag_operation=new Tag_Operation($this->cn,$aTag[$j]);
$tag_operation->update_search_cell($this->div);
}
}
?>
</span>
</td>
</tr>
</table>

View file

@ -10,7 +10,7 @@ global $g_failed;
if ( count($this->content) == 0 ) :
?>
<h2 class="info2"><?php echo _('Désolé aucun résultat trouvé')?></h2>
<h2 class="error"><?php echo _('Désolé aucun résultat trouvé')?></h2>
<?php exit();
endif;?>

View file

@ -8,7 +8,7 @@ require_once NOALYSS_INCLUDE.'/class/acc_reconciliation.class.php';
$gDossier=dossier::id();
if ( count($this->content) == 0 ) :
?>
<h2 class="info2"><?php echo _('Désolé aucun résultat trouvé')?></h2>
<h2 class="error"><?php echo _('Désolé aucun résultat trouvé')?></h2>
<?php
else :

View file

@ -1,25 +1,31 @@
<?php
//This file is part of NOALYSS and is under GPL
//see licence.txt
?><div class="<?php echo $style_menu; ?>">
<?php if ( count($amenu) > 4 && $level == 0) :
<?php if ( count($amenu) > 4 && $level == 0) {
$style ='style= "width:100%"';
elseif ($level==0):
switch (count($amenu))
{
case 4:
case 3:
$width=count($amenu)*20;
$left=round((100-$width)/2);
$style="style=\"width:$width%;margin-left:$left%\"";
break;
default:
$style="";
}
elseif ($level==0){
$http=new HttpInput();
$access_code=$http->request("ac");
switch (count($amenu))
{
case 4:
case 3:
$width=count($amenu)*20;
$left=round((100-$width)/2);
$style="style=\"width:$width%;margin-left:$left%\"";
break;
default:
$style="";
}
}
else:
else {
$style=" class=\"mtitle\"";
endif;?>
}?>
<table <?php echo $style?> >
@ -28,55 +34,57 @@ $style="";
global $g_user;
// Display the menu
for($i=0;$i < count($amenu);$i++):
if ( (count($amenu)==1)):
$class="selectedcell";
if ( (count($amenu)==1)) {
$class="mtitle selectedcell";
?>
<td class="<?php echo $class?>">
<a class="mtitle" href="do.php?gDossier=<?php echo Dossier::id()?>&ac=<?php echo $_REQUEST['ac']?>" title="<?php echo h(gettext($amenu[$i]['me_description']))?>" >
<a class="mtitle" href="do.php?gDossier=<?php echo Dossier::id()?>&ac=<?php echo $access_code?>" title="<?php echo h(gettext($amenu[$i]['me_description']))?>" >
<?php echo gettext($amenu[$i]['me_menu'])?>
</a>
</td>
<?php
else:
$class="mtitle";
$js="";
if ( $amenu[$i]['me_url']!='')
{
$url=$amenu[$i]['me_url'];
}
elseif ($amenu[$i]['me_javascript'] != '')
{
$url="javascript:void(0)";
$js=sprintf(' onclick="%s"',$amenu[$i]['me_javascript']);
}
else
{
$a_request=explode('/', $_REQUEST['ac']);
if ( $level == 0) {
$url=$a_request[0];
if (count($a_request) > 1 &&
$url.'/'.$amenu[$i]['me_code'] == $a_request[0].'/'.$a_request[1])
$class="selectedcell";
} elseif ($level == 1)
}
else {
$class="mtitle";
$js="";
if ( $amenu[$i]['me_url']!='')
{
$url=$a_request[0].'/'.$a_request[1];
$url=$amenu[$i]['me_url'];
}
$url.='/'.$amenu[$i]['me_code'];
if ($url == $_REQUEST['ac']) $class="selectedcell";
$url="do.php?gDossier=".Dossier::id()."&ac=".$url;
}
elseif ($amenu[$i]['me_javascript'] != '')
{
$url="javascript:void(0)";
$js=sprintf(' onclick="%s"',$amenu[$i]['me_javascript']);
}
else
{
$a_request=explode('/', $access_code);
if ( $level == 0) {
$url=$a_request[0];
?> <td class="<?php echo $class?>">
<a class="mtitle" href="<?php echo $url;?>" <?php echo $js?> title="<?php echo h(gettext($amenu[$i]['me_description']))?>">
<?php echo gettext($amenu[$i]['me_menu'])?>
</a>
</td>
if (count($a_request) > 1 &&
$url.'/'.$amenu[$i]['me_code'] == $a_request[0].'/'.$a_request[1])
$class="selectedcell";
} elseif ($level == 1)
{
$url=$a_request[0].'/'.$a_request[1];
}
$url.='/'.$amenu[$i]['me_code'];
if ($url == $access_code ) $class="mtitle selectedcell";
$url="do.php?gDossier=".Dossier::id()."&ac=".$url;
}
?>
<td class="<?php echo $class?>">
<a class="mtitle" href="<?php echo $url;?>" <?php echo $js?> title="<?php echo h(gettext($amenu[$i]['me_description']))?>">
<?php echo gettext($amenu[$i]['me_menu'])?>
</a>
</td>
<?php
endif;
} // end elseif ($level==0)
?>
<?php

View file

@ -117,6 +117,6 @@ echo dossier::hidden();
echo HtmlInput::hidden('sa','mod_template');
echo HtmlInput::hidden('id',$doc->md_id);
echo HtmlInput::submit("mod",_('Sauver'));
echo HtmlInput::button_hide("mod_doc");
?>
</form>

View file

@ -11,14 +11,14 @@
<?php
$http=new HttpInput();
if ( $cn->get_value("select count(*) from profile join profile_user using (p_id)
where user_name=$1 and with_calc=true",array($_SESSION['g_user'])) ==1):
where user_name=$1 and with_calc=true",array($_SESSION[SESSION_KEY.'g_user'])) ==1):
echo '<div id="calc">';
echo IButton::show_calc();
echo '</div>';
endif;
if ( $cn->get_value("select count(*) from profile join profile_user using (p_id)
where user_name=$1 and with_direct_form=true",array($_SESSION['g_user'])) ==1):
where user_name=$1 and with_direct_form=true",array($_SESSION[SESSION_KEY.'g_user'])) ==1):
?>
<div id="direct">
<form method="get">

View file

@ -98,7 +98,7 @@ if ( $type == 'ACH' || $type == 'VEN'||$new):
<td>
<?php
$negative->javascript="toggle_row_warning_enable('negative_amount','row_warning')";
$negative->input();
echo $negative->input();
?>
</td>
</tr>

View file

@ -70,9 +70,18 @@ de fin d'exercice: amortissements, régulations de compte... Avec une 13ième p
</td>
</tr>
</table>
<?php
echo HtmlInput::submit("add_exercicebt", _("Ajout d'un exercice comptable"));
?>
<ul class="aligned-block">
<li>
<?php
echo HtmlInput::submit("add_exercicebt", _("Ajout d'un exercice comptable"));
?>
</li>
<li>
<?php
echo HtmlInput::button_hide('exercice_add');
?>
</li>
</ul>
</form>
<script charset="UTF8" lang="javascript">
function validate()

View file

@ -0,0 +1,40 @@
<?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 Author Dany De Bontridder danydb@aevalys.eu
/**
* @file
* display pre_operation value
*/
$name=new IText("opd_name",$array["e_comm"]);
$description=new IText("od_description",$array["od_description"]);
$description->style=' class="itextarea" style="width:30em;height:4em;vertical-align:top"';
?>
<?php echo _("Nom du modèle"),$name->input();?>
<p>
<?php echo _('Description (max 50 car.)'); ?>
<?php echo $description->input();?>
</p>
<p>
<?php echo _("Journal") ?>
<?php echo $select_ledger->input(); ?>
</p>

View file

@ -5,12 +5,12 @@
<legend><?php echo $f_legend ?>
</legend>
<?php echo $f_type?><?php echo $f_client_qcode?><?php echo $f_client_bt?> <?php echo $f_client?><br>
<input type="hidden" id="p_jrn" name="p_jrn" value="<?php echo $this->jrn_def_id; ?>">
<?php echo $str_add_button?>
</fieldset>
<fieldset>
<legend><?php echo $f_legend_detail?></legend>
<div class="fieldset" style="overflow:auto;height:400px">
<h1 class="fiedset"><?php echo $f_legend_detail?></h1>
<table id="sold_item" width="100%" border="0">
<tr>
<th style="width:auto"colspan="2">Code <?php echo Icon_Action::infobulle(0)?></th>
@ -53,6 +53,8 @@ echo '</tr>';
?>
</table>
</div>
<div style="position:float;float:right;text-align:right;padding-right:5px;font-size:1.2em;font-weight:bold;color:blue">
<?php echo HtmlInput::button('act',_('Actualiser'),'onClick="compute_all_ledger();"'); ?>
</div>
@ -79,6 +81,5 @@ echo '</tr>';
<?php endif; ?>
</div>
</fieldset>

View file

@ -5,7 +5,8 @@
<div id="security_action_tbl">
<?php
echo HtmlInput::button("grant_all_action", _("Toutes les actions"), " onclick=\" grant_action(1) \"");
echo HtmlInput::button("revoke_all_action", _("Aucune action"), " onclick=\" grant_action (0) \"");
function display_security_fieldset($p_legend,$p_array,$sec_User) {
$gDossier=dossier::id();

View file

@ -16,6 +16,8 @@ $t_actif->value=[
['label'=>_('Non actif'),'value'=>'N']
];
$t_actif->selected=$data->t_actif;
$icheckbox=new ICheckBox("tagcell_color");
$icheckbox->javascript='onclick="uncheck_other(this,\'tagcell_color\');"';
?>
<p>
<?php echo _("Etiquette (tag)")?> : <?php echo $t_tag->input(); ?>
@ -24,7 +26,28 @@ $t_actif->selected=$data->t_actif;
<?php echo _("Description")?> : <?php echo $t_description->input(); ?>
</p>
<p>
<?=_("Etiquette(tag) actif") ?><?=$t_actif->input()?>
<?=_("Couleur")?>
</p>
<?php
if ( $data->t_id == '-1') $data->t_color=1;
$nb_color=36;
for ($i=1 ; $i != $nb_color+1 ; $i++ ) {
?>
<span class="tagcell <?="tagcell-color".$i?>">
<?=_("Exemple").$i ?>
<?php $icheckbox->value=$i;
if ( $data->t_color==$i) { $icheckbox->set_check($i);} else {$icheckbox->selected=false;}
echo $icheckbox->input();
?>
</span>
<?php
} // end loop $i
?>
<p>
<?=_("Etiquette actif") ?><?=$t_actif->input()?>
</p>
<?php
// If exist you can remove it
@ -35,4 +58,4 @@ if ( $data->t_id != '-1') :
<?php
endif;
?>
?>

View file

@ -2,6 +2,7 @@
//This file is part of NOALYSS and is under GPL
//see licence.txt
?><?php
$http=new HttpInput();
$max=$this->cn->count($ret);
echo HtmlInput::filter_table("tag_tb", '0,1', '1');
$nDossier=Dossier::id();
@ -14,15 +15,21 @@ $nDossier=Dossier::id();
<th>
<?php echo _("Description")?>
</th>
<th>
<?php echo _("Actif")?>
</th>
</tr>
<?php
$gDossier=Dossier::id();
$ac=$_REQUEST['ac'];
$ac=$http->request('ac');
for ($i=0;$i<$max;$i++):
$row=Database::fetch_array($ret, $i);
?>
$row=Database::fetch_array($ret, $i);
?>
<tr class="<?php echo (($i%2==0)?'even':'odd');?>">
<td>
<td class="tagcell-color<?=$row['t_color']?>">
<?php
$js=sprintf("show_tag('%s','%s','%s','p')",$gDossier,$ac,$row['t_id']);
echo HtmlInput::anchor($row['t_tag'], "", "onclick=\"$js\"");
@ -33,6 +40,7 @@ $ac=$_REQUEST['ac'];
echo $row['t_description'];
?>
</td>
<td>
<?php
$id=sprintf("tag_onoff%d",$row['t_id']);

View file

@ -2,12 +2,15 @@
//This file is part of NOALYSS and is under GPL
//see licence.txt
?><?php
echo HtmlInput::title_box('Tag', $p_prefix.'tag_div');
$max=$this->cn->count($ret);
if ( $max == 0 ) {
echo h2(_("Aucune étiquette disponible"),' class="notice"');
return;
}
require_once NOALYSS_INCLUDE."/lib/output_html_tab.class.php";
$tab_tag=new Html_Tab($p_prefix."tab_tag",_("Etiquettes"));
ob_start();
?>
<?php echo _("Cherche")." ".HtmlInput::filter_table($p_prefix.'tag_tb_id', '0,1', 1); ?>
<?php echo HtmlInput::button_action(_('Uniquement actif'), 'show_only_row(\''.$p_prefix.'tag_tb_id'.'\',\'tag_status\',\'Y\')');?>
@ -30,13 +33,13 @@ $gDossier=Dossier::id();
<tr <?=$attr?> class="<?php echo (($i%2==0)?'even':'odd');?>">
<td>
<?php
$js=sprintf("search_add_tag('%s','%s','%s')",$gDossier,$row['t_id'],$p_prefix);
$js=sprintf("search_add_tag('%s','%s','%s','t')",$gDossier,$row['t_id'],$p_prefix);
echo HtmlInput::anchor($row['t_tag'], "", "onclick=\"$js\"");
?>
</td>
<td>
<?php
echo $row['t_description'];
echo h($row['t_description']);
?>
</td>
<td>
@ -51,7 +54,56 @@ $gDossier=Dossier::id();
endfor;
?>
</table>
<?php
$tab_tag->set_content(ob_get_contents());
ob_end_clean();
// Tab for the groups
//
ob_start();
$tab_tag_group=new Html_Tab($p_prefix."tab_tag_group",_("Groupe"));
$aGroup=$this->cn->get_array("select tg_id, tg_name from tag_group order by 2 desc");
$nb_agroup=count($aGroup);
?>
<table class="result">
<tr>
<th><?=_("Groupe")?></th>
</tr>
<?php for ($i=0;$i<$nb_agroup;$i++):?>
<tr>
<td>
<?php
$js=sprintf("search_add_tag('%s','%s','%s','g')",$gDossier,$aGroup[$i]['tg_id'],$p_prefix);
echo HtmlInput::anchor($aGroup[$i]['tg_name'], "", "onclick=\"$js\"");
?>
</td>
</tr>
<?php endfor;?>
</table>
<?php
$tab_tag_group->set_content(ob_get_contents());
ob_end_clean();
// Both tab
$output=new Output_Html_Tab();
$output->add($tab_tag);
$output->add($tab_tag_group);
ob_start();
$output->output();
?>
<?=HtmlInput::button_close($p_prefix.'tag_div')?>
<script>
show_only_row('<?=$p_prefix?>tag_tb_id','tag_status','Y');
</script>
<?=HtmlInput::button_close($p_prefix.'tag_div')?>
<?=$output->build_js($p_prefix."tab_tag");?>
</script>
<?php
$res =ob_get_contents();
ob_end_clean();
return $res;
?>

View file

@ -5,7 +5,9 @@
* @file
* @brief list of tags
*/
?><?php
$http=new HttpInput();
?>
<?php
echo HtmlInput::title_box('Tag', 'tag_div');
$max=$this->cn->count($ret);
if ( $max == 0 ) {
@ -25,20 +27,38 @@ if ( $max == 0 ) {
</tr>
<?php
$gDossier=Dossier::id();
if (isNumber($_REQUEST['ag_id']) == 0 ) die ('ERROR : parameters invalid');
$id="none";
if ( get_class($this) == 'Tag_Action' ) {
$id=$http->request("ag_id","number");
} elseif (get_class($this)=='Tag_Operation')
{
$id=$http->request("jrn_id");
}
if (isNumber($id) == 0 ) die ('ERROR : parameters invalid');
for ($i=0;$i<$max;$i++):
$row=Database::fetch_array($ret, $i);
?>
<tr class="<?php echo (($i%2==0)?'even':'odd');?>">
<td>
<td class="tagcell-color<?=$row['t_color']?>">
<?php
$js=sprintf("action_tag_add('%s','%s','%s')",$gDossier,$_REQUEST['ag_id'],$row['t_id']);
if ( get_class($this) == 'Tag_Action' ) {
$js=sprintf("action_tag_add('%s','%s','%s','%s')",$gDossier,$id,$row['t_id'],$row['tag_type']);
} else {
$js=sprintf("new operation_tag('%s').add('%s','%s','%s','%s')",$p_prefix,$gDossier,$id,$row['t_id'],$row['tag_type']);
}
echo HtmlInput::anchor($row['t_tag'], "", "onclick=\"$js\"");
?>
</td>
<td>
<?php
echo $row['t_description'];
if ( $row['t_description'] != "G"):
echo $row['t_description'];
else :
echo '<span class="icon">&#xe83e;</span>';
endif;
?>
</td>
</tr>

View file

@ -28,23 +28,71 @@
*/
?>
<div style="margin-left: 30">
<table>
<tr>
<TD> <?php echo _('Répertoire temporaire');?> </TD>
<TD> <?php echo $ictmp->input(); echo Icon_Action::infobulle(200);?></TD>
<div style="margin-left: 5em">
<h2><?=_("Application")?></h2>
<div style="margin-left:5rem">
</tr>
<TR>
<table>
<tr>
<td>
<?php echo _('Administrateur de noalyss')?>
</td>
<td>
<?php echo $icadmin->input();echo Icon_Action::infobulle(210)?>
</td>
</tr>
<tr>
<td>
<?php echo _('Mot de passe administrateur de noalyss')?>
</td>
<td>
<?php echo $icpassword_admin->input();?>
<?php echo Icon_Action::infobulle(209)?>
</td>
</tr>
<TD><?php echo _('Changement de langue');?></TD>
<TD> <?php echo $iclocale->input();echo Icon_Action::infobulle(201)?></TD>
</TR>
<TR>
<TD><?php echo _('Chemin complet vers les executable de Postgresql');?> </TD>
<TD><?php echo $icpath->input();echo Icon_Action::infobulle(202)?></TD>
</TR>
<TR>
</table>
</div>
<h2><?=_("Serveur")?></h2>
<div style="margin-left:5rem">
<table>
<tr>
<TD> <?php echo _('Répertoire temporaire');?> </TD>
<TD> <?php echo $ictmp->input(); echo Icon_Action::infobulle(200);?></TD>
</tr>
<TR>
<TD><?php echo _('Changement de langue');?></TD>
<TD> <?php echo $iclocale->input();echo Icon_Action::infobulle(201)?></TD>
</TR>
<TR>
<TD><?php echo _('Chemin complet vers les executable de Postgresql');?> </TD>
<TD><?php echo $icpath->input();echo Icon_Action::infobulle(202)?></TD>
</TR>
<tr>
<td><?php echo _('Mode Serveur mutualisé'). Icon_Action::infobulle(207) ?></td>
<td><?php echo $smulti->input() ?></td>
</tr>
<tr id="div_db" style="visibility:hidden">
<td>
<?php echo _('Nom base de donnée');?>
</td>
<td>
<?php echo $icdbname->input();echo Icon_Action::infobulle(206) ?>
<a href="https://wiki.noalyss.eu/doku.php?id=installation:installation_sur_serveur_mutualise" target="_blank"><?php echo _('Aide');?></a>
</td>
</tr>
</table>
</div>
<h2><?=_("Postgresql")?></h2>
<div style="margin-left:5rem">
<table>
<TR>
<TD><?php echo _('Utilisateur Postgresql');?> </TD>
<TD><?php echo $icuser->input();echo Icon_Action::infobulle(203)?></TD>
</TR>
@ -52,23 +100,6 @@
<TD><?php echo _('Mot de passe de l\'utilisateur Postgresql');?> </TD>
<TD><?php echo $icpasswd->input();echo Icon_Action::infobulle(204)?></TD>
</TR>
<tr>
<td>
<?php echo _('Administrateur de noalyss')?>
</td>
<td>
<?php echo $icadmin->input();echo Icon_Action::infobulle(210)?>
</td>
</tr>
<tr>
<td>
<?php echo _('Mot de passe administrateur de noalyss')?>
</td>
<td>
<?php echo $icpassword_admin->input();?>
<?php echo Icon_Action::infobulle(209)?>
</td>
</tr>
<TR>
<TD><?php echo _('Adresse Serveur Postgresql');?> </TD>
<TD><?php echo $ichost->input();echo Icon_Action::infobulle(208)?></TD>
@ -77,21 +108,8 @@
<TD><?php echo _('Port de Postgresql');?> </TD>
<TD><?php echo $icport->input();echo Icon_Action::infobulle(205)?></TD>
</TR>
<tr>
<td><?php echo _('Mode Serveur mutualisé'). Icon_Action::infobulle(207) ?></td>
<td><?php echo $smulti->input() ?></td>
</tr>
<tr id="div_db" style="visibility:hidden">
<td>
<?php echo _('Nom base de donnée');?>
</td>
<td>
<?php echo $icdbname->input();echo Icon_Action::infobulle(206) ?>
<a href="https://wiki.noalyss.eu/doku.php?id=installation:installation_sur_serveur_mutualise" target="_blank"><?php echo _('Aide');?></a>
</td>
</tr>
</table>
</div>
</div>
<div class="notice">
<?php

View file

@ -100,7 +100,7 @@ echo HtmlInput::title_box("Note","todo_list_div".$this->tl_id,'close',$close_sha
<?php echo HtmlInput::hidden('id',$this->tl_id) ?>
<p style='text-align: center'>
<ol style="list-style: none;">
<?php if ($this->use_login == $_SESSION['g_user']) : ?>
<?php if ($this->use_login == $_SESSION[SESSION_KEY.'g_user']) : ?>
<li style="display:inline">
<input type="submit" class="smallbutton" value="<?php echo _('Sauve');?>" onclick="todo_list_save(<?php echo $this->tl_id?>);return false">
</li>