altocompta/include/class_itva_popup.php
Dany De Bontridder a7999c308a Merged revisions 3017-3033 via svnmerge from
file:///home/developper/svn/phpcompta/branches/rel500

........
  r3018 | danydb | 2010-04-16 12:45:48 +0200 (Fri, 16 Apr 2010) | 4 lines
  
  Quick_writing
  =============
  Advanced->direct writing remove the flag direct_write
........
  r3019 | danydb | 2010-04-16 13:11:06 +0200 (Fri, 16 Apr 2010) | 7 lines
  
  Advanced->Periode
  ==================
  * give the number of operation
  * do not propose to remove a used periode
  * fix cosmetic
  * add confirm for "cloture" and "remove"
........
  r3020 | danydb | 2010-04-16 15:31:03 +0200 (Fri, 16 Apr 2010) | 2 lines
  
  IPoste : add documentation : sample of code
........
  r3021 | danydb | 2010-04-16 15:31:32 +0200 (Fri, 16 Apr 2010) | 2 lines
  
  Iposte update doc : typo
........
  r3022 | danydb | 2010-04-16 21:12:47 +0200 (Fri, 16 Apr 2010) | 2 lines
  
  Add info for error
........
  r3023 | danydb | 2010-04-17 00:37:08 +0200 (Sat, 17 Apr 2010) | 2 lines
  
  ac_common.php add a function h2info
........
  r3024 | danydb | 2010-04-17 01:19:21 +0200 (Sat, 17 Apr 2010) | 2 lines
  
  Button is not printed
........
  r3025 | danydb | 2010-04-17 01:20:14 +0200 (Sat, 17 Apr 2010) | 2 lines
  
  extension :Logout button and name plugin is not printed
........
  r3026 | danydb | 2010-04-17 01:40:01 +0200 (Sat, 17 Apr 2010) | 1 line
  
  Appearance : improve disable html elt appearance
........
  r3027 | danydb | 2010-04-17 01:43:05 +0200 (Sat, 17 Apr 2010) | 1 line
  
  Periode : improve usuability
........
  r3028 | danydb | 2010-04-17 01:43:21 +0200 (Sat, 17 Apr 2010) | 1 line
  
  Fix several bugs in itva_popup
........
  r3029 | danydb | 2010-04-17 14:12:47 +0200 (Sat, 17 Apr 2010) | 2 lines
  
  New Manuel for windows
........
  r3030 | danydb | 2010-04-17 15:18:25 +0200 (Sat, 17 Apr 2010) | 6 lines
  
  
  Document modele
  ===============
  New : can decide if a document must be used with the ledger of sales, purchase or follow up
........
  r3031 | danydb | 2010-04-18 00:05:25 +0200 (Sun, 18 Apr 2010) | 1 line
  
  Add function tr
........
  r3032 | danydb | 2010-04-18 00:06:15 +0200 (Sun, 18 Apr 2010) | 1 line
  
  Correct style : you can now click on the selected menu
........
  r3033 | danydb | 2010-04-18 19:58:24 +0200 (Sun, 18 Apr 2010) | 3 lines
  
  
  scripts.js : add function deleteRow(tablename, object) to use with IButton
........
2010-04-19 09:24:02 +00:00

136 lines
4.3 KiB
PHP

<?php
/*
* This file is part of PhpCompta.
*
* 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
*/
/* $Revision: 1615 $ */
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
/*!\file
* \brief Html Input
*/
require_once ('class_ipopup.php');
require_once('class_ibutton.php');
require_once('class_ispan.php');
/**
*@brief let you choose a TVA in a popup
*@code
$a=new IPopup('popup_tva');
$a->set_title('Choix de la tva');
echo $a->input();
$tva=new ITva_Popup("tva1");
$tva->with_button(true);
// We can add a label for the code
$tva->add_label('code');
$tva->js='onchange="set_tva_label(this);"';
echo $tva->input();
@endcode
*/
class ITva_Popup extends HtmlInput
{
public function __construct($p_name=null) {
$this->name=$p_name;
$this->button=true;
}
function with_button($p) {
if ($p == true )
$this->button=true;
else
$this->button=false;
}
/*!\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;
$this->js=(isset($this->js))?$this->js:"";
if ( $this->readOnly==true) return $this->display();
$str='<input type="TEXT" name="%s" value="%s" id="%s" size="3" "%s">';
$r=sprintf($str,$this->name,$this->value,$this->name,$this->js);
if ( $this->button==true)
$r.=$this->dbutton();
if ( isset($this->code)){
if ( $this->cn != NULL){
/* check if tva_id == integer */
if (trim($this->value)!='' && isNumber($this->value)==1 && strpos($this->value,',') === false)
$this->code->value=$this->cn->get_value('select tva_label from tva_rate where tva_id=$1',
array($this->value));;
}
$r.=$this->code->input();
$this->set_attribute('jcode',$this->code->name);
$this->set_attribute('gDossier',dossier::id());
$this->set_attribute('ctl',$this->name);
$r.=$this->get_js_attr();
}
return $r;
}
/**
*@brief show a button, if it is pushed show a popup to select the need vat
*@note
* - a ipopup must be created before with the name popup_tva
* - the javascript scripts.js must be loaded
*@return string with html code
*/
function dbutton() {
if( trim($this->name)=='') throw new Exception (_('Le nom ne peut être vide'));
// button
$bt=new IButton('bt_'.$this->name);
$bt->label=_('tva');
$bt->set_attribute('gDossier',dossier::id());
$bt->set_attribute('ctl',$this->name);
$bt->set_attribute('popup','popup_tva');
if ( isset($this->code))
$bt->set_attribute('jcode',$this->code->name);
$bt->javascript='popup_select_tva(this)';
$r=$bt->input();
return $r;
}
/*!\brief print in html the readonly value of the widget*/
public function display()
{
$r='<input text name="%s" value="%s" id="%s" disabled>';
$res=sprinf($r,$this->name,$this->value,$this->name);
return $res;
}
/**
*@brief add a field to show the selected tva's label
*@param $p_code is the name of the label where you can see the label of VAT
*@param $p_cn is a database connection if NULL it doesn't seek in the database
*/
public function add_label($p_code,$p_cn=null) {
$this->cn=$p_cn;
$this->code=new ISpan($p_code);
}
static public function test_me()
{
$a=new IPopup('popup_tva');
$a->set_title('Choix de la tva');
echo $a->input();
$tva=new ITva_Popup("tva1");
$tva->with_button(true);
// We can add a label for the code
$tva->add_label('code');
$tva->js='onchange="set_tva_label(this);"';
echo $tva->input();
echo $tva->dbutton();
}
}