reconcilaction : possibility to select only one operation

This commit is contained in:
Dany De Bontridder 2020-08-18 19:11:23 +02:00
parent 3450d5f350
commit 23b88e2bb8
5 changed files with 125 additions and 58 deletions

View file

@ -1,4 +1,5 @@
<?php
/*
* This file is part of NOALYSS.
*
@ -15,78 +16,105 @@
* 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
/* !\file
* \brief Html Input
* - name is the name and id of the input
* - extra amount of the operation to reconcile
* - extra2 ledger paid
*/
require_once NOALYSS_INCLUDE.'/lib/html_input.class.php';
class IConcerned extends HtmlInput
{
private $hideOperation; //!< string of j_id to hide, separated by comma to avoid to reconcile an operation with itself
public function __construct($p_name='',$p_value='',$p_id="")
{
$this->name=$p_name;
$this->value=$p_value;
$this->amount_id=null;
$this->paid='';
$this->id=$p_id;
$this->tiers=""; // id of the field for the tiers to be updated
$this->div=""; // Dom Element to show the search result
$this->hideOperation=""; // string of j_id to hide, separated by comma to avoid to reconcile an operation with itself
}
/*!\brief show the html input of the widget*/
public function input($p_name=null,$p_value=null)
private $hideOperation; //!< string of j_id to hide, separated by comma to avoid to reconcile an operation with itself
private $singleOperation; //!< do not allow to select several operations
public function __construct($p_name='', $p_value='', $p_id="")
{
$this->name=$p_name;
$this->value=$p_value;
$this->amount_id=null;
$this->paid='';
$this->id=$p_id;
// id of the field for the tiers to be updated
$this->tiers="";
// Dom Element to show the search result
$this->div="";
// string of j_id to hide, separated by comma to avoid to reconcile an operation with itself
$this->hideOperation="";
// by default we can select several operation
$this->singleOperation=0;
}
/* !\brief show the html input of the widget */
public function input($p_name=null, $p_value=null)
{
$this->name=($p_name==null)?$this->name:$p_name;
$this->value=($p_value==null)?$this->value:$p_value;
if ( $this->readOnly==true) return $this->display();
if ($this->readOnly==true)
return $this->display();
$this->id=($this->id=="")?$this->name:$this->id;
$javascript=sprintf("search_reconcile(".dossier::id().",'%s','%s','%s','%s','%s')",
$this->name,
$this->amount_id,
$this->paid,
$this->div,
$this->tiers );
$javascript=sprintf("search_reconcile(".dossier::id().",'%s','%s','%s','%s','%s')", $this->name,
$this->amount_id, $this->paid, $this->div, $this->tiers);
$r=Icon_Action::icon_magnifier(uniqid(), $javascript);
$r.=sprintf("
<INPUT TYPE=\"text\" style=\"color:black;background:lightyellow;border:solid 1px grey;\" NAME=\"%s\" ID=\"%s\" VALUE=\"%s\" SIZE=\"8\" hide_operation=\"%s\" readonly>
<INPUT TYPE=\"text\" style=\"color:black;background:lightyellow;border:solid 1px grey;\" NAME=\"%s\" ID=\"%s\" VALUE=\"%s\" SIZE=\"8\" hide_operation=\"%s\" readonly single_operation=\"%s\">
<INPUT class=\"smallbutton\" TYPE=\"button\" onClick=\"$('%s').value=''\" value=\"X\">
",
$this->name,
$this->id,
$this->value,
$this->hideOperation,
$this->id
);
", $this->name, $this->id, $this->value, $this->hideOperation,$this->singleOperation,
$this->id
);
return $r;
}
/**
* setter
* @param $p_string
* @param number $p_string jrn.jr_id of the operation to hide
*/
function set_hideOperation($p_string)
{
$this->hideOperation=strip_tags($p_string);
}
/*!\brief print in html the readonly value of the widget*/
/**
* Set the value of single operation, limit to one operation if TRUE
* @param bool $p_value TRUE or false
*/
function set_singleOperation($p_value){
if ( $p_value == TRUE ) {
$this->singleOperation=1;
return;
}
if ( $p_value == FALSE ) {
$this->singleOperation=0;
return;
}
throw new Exception (_("setSingleOperation failed"));
}
function get_singleOperation(){
return $this->singleOperation;
}
/* !\brief print in html the readonly value of the widget */
public function display()
{
$r=sprintf("<span><b>%s</b></span>",$this->value);
$r.=sprintf('<input type="hidden" name="%s" value="%s">', $this->name,$this->value);
$r=sprintf("<span><b>%s</b></span>", $this->value);
$r.=sprintf('<input type="hidden" name="%s" value="%s">', $this->name, $this->value);
return $r;
}
static public function test_me()
{
}
}