Add html form for accountancy journals list
This commit is contained in:
parent
e8c60642e6
commit
a4defb8102
@ -25,12 +25,14 @@
|
||||
/**
|
||||
* Class to manage generation of HTML components for accounting management
|
||||
*/
|
||||
class FormAccounting
|
||||
class FormAccounting extends Form
|
||||
{
|
||||
|
||||
private $options_cache = array();
|
||||
|
||||
var $db;
|
||||
var $error;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
@ -41,6 +43,59 @@ class FormAccounting
|
||||
$this->db = $db;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return list of journals with label by nature
|
||||
*
|
||||
* @param string $selectid Preselected pcg_type
|
||||
* @param string $htmlname Name of field in html form
|
||||
* @param int $nature Limit the list to a particular type of journals (1:various operations / 2:sale / 3:purchase / 4:bank / 9: has-new)
|
||||
* @param int $showempty Add an empty field
|
||||
* @param array $event Event options
|
||||
* @param string $morecss More css non HTML object
|
||||
* @param string $usecache Key to use to store result into a cache. Next call with same key will reuse the cache.
|
||||
*
|
||||
* @return string String with HTML select
|
||||
*/
|
||||
function select_journal($selectid, $htmlname = 'journal', $nature=0, $showempty = 0, $event = array(), $morecss='maxwidth300 maxwidthonsmartphone', $usecache='')
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$sql = "SELECT rowid, code, label, nature, entity, active";
|
||||
$sql.= " FROM " . MAIN_DB_PREFIX . "accounting_journal";
|
||||
$sql.= " WHERE entity = ".$conf->entity;
|
||||
$sql.= " AND active = 1";
|
||||
if (empty($nature)) $sql.= " AND nature = ".$nature;
|
||||
$sql.= " ORDER BY code";
|
||||
|
||||
dol_syslog(get_class($this) . "::select_journal", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
|
||||
if (!$resql) {
|
||||
$this->error = "Error ".$this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::select_journal ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
|
||||
$options = array();
|
||||
$out = ajax_combobox($htmlname, $event);
|
||||
|
||||
$selected = 0;
|
||||
while ($obj = $this->db->fetch_object($resql))
|
||||
{
|
||||
$label = $obj->code . ' - ' . $obj->label;
|
||||
}
|
||||
$this->db->free($resql);
|
||||
|
||||
if ($usecache)
|
||||
{
|
||||
$this->options_cache[$usecache] = $options;
|
||||
}
|
||||
|
||||
$out .= Form::selectarray($htmlname, $options, $selectid, $showempty, 0, 0, '', 0, 0, 0, '', $morecss, 1);
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return list of accounting category.
|
||||
* Use mysoc->country_id or mysoc->country_code so they must be defined.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user