Merge branch 'Upstream/develop'
This commit is contained in:
commit
102e85e1e7
@ -5,6 +5,7 @@ English Dolibarr ChangeLog
|
||||
|
||||
***** ChangeLog for 3.7 compared to 3.6.* *****
|
||||
For users:
|
||||
- New: Add proposals into referer page of thirdparty.
|
||||
- New: On contact list can set filter on both active and not active (no more exclusive select).
|
||||
- New: Each user can include its own external ics calendar into dolibarr agenda view.
|
||||
- New: Intervention documents are now available in ECM module.
|
||||
|
||||
@ -254,11 +254,11 @@ foreach($property as $key => $prop)
|
||||
$varprop.="\t\t\$sql.= \" ";
|
||||
if ($prop['istime'])
|
||||
{
|
||||
$varprop.='".(! isset($this->'.$prop['field'].') || dol_strlen($this->'.$prop['field'].')==0?\'NULL\':$this->db->idate(';
|
||||
$varprop.='".(! isset($this->'.$prop['field'].') || dol_strlen($this->'.$prop['field'].')==0?\'NULL\':"\'".$this->db->idate(';
|
||||
$varprop.="\$this->".$prop['field']."";
|
||||
$varprop.='))."';
|
||||
$varprop.=')."\'")."';
|
||||
if ($i < count($property)) $varprop.=",";
|
||||
$varprop.="\";";
|
||||
$varprop.='";';
|
||||
}
|
||||
elseif ($prop['ischar'])
|
||||
{
|
||||
|
||||
@ -1,95 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* This program 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/accountancy/class/accountancyaccount.class.php
|
||||
* \ingroup accounting
|
||||
* \brief Fichier de la classe des comptes comptables
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* \class AccountancyAccount
|
||||
* \brief Classe permettant la gestion des comptes
|
||||
*/
|
||||
class AccountancyAccount
|
||||
{
|
||||
var $db;
|
||||
var $error;
|
||||
|
||||
var $rowid;
|
||||
var $fk_pcg_version;
|
||||
var $pcg_type;
|
||||
var $pcg_subtype;
|
||||
var $label;
|
||||
var $account_number;
|
||||
var $account_parent;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
function __construct($db)
|
||||
{
|
||||
$this->db = $db;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Insert account into database
|
||||
*
|
||||
* @param User $user User making add
|
||||
* @return int <0 if KO, Id line added if OK
|
||||
*/
|
||||
function create($user)
|
||||
{
|
||||
$now=dol_now();
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."accountingaccount";
|
||||
$sql.= " (date_creation, fk_user_author, numero,intitule)";
|
||||
$sql.= " VALUES ('".$this->db->idate($now)."',".$user->id.",'".$this->numero."','".$this->intitule."')";
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$id = $this->db->last_insert_id(MAIN_DB_PREFIX."accountingaccount");
|
||||
|
||||
if ($id > 0)
|
||||
{
|
||||
$this->id = $id;
|
||||
$result = $this->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = -2;
|
||||
$this->error="AccountancyAccount::Create Erreur $result";
|
||||
dol_syslog($this->error, LOG_ERR);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = -1;
|
||||
$this->error="AccountancyAccount::Create Erreur $result";
|
||||
dol_syslog($this->error, LOG_ERR);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
@ -43,20 +43,22 @@ class AccountingAccount
|
||||
var $active;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
function __construct($db, $rowid = '')
|
||||
* @param DoliDB $db Database handle
|
||||
*/
|
||||
function __construct($db)
|
||||
|
||||
{
|
||||
$this->db = $db;
|
||||
|
||||
if ($rowid != '')
|
||||
return $this->fetch($rowid);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Load record in memory
|
||||
* Load record in memory
|
||||
*
|
||||
* @param int $rowid Id
|
||||
* @param string $account_number Account number
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function fetch($rowid = null, $account_number = null)
|
||||
{
|
||||
@ -95,8 +97,11 @@ class AccountingAccount
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief insert line in accountingaccount
|
||||
* \param user utilisateur qui effectue l'insertion
|
||||
* Insert line in accountingaccount
|
||||
*
|
||||
* @param User $user Use making action
|
||||
* @param int $notrigger Disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function create($user, $notrigger = 0)
|
||||
{
|
||||
@ -195,8 +200,8 @@ class AccountingAccount
|
||||
/**
|
||||
* Update record
|
||||
*
|
||||
* @param User $user update
|
||||
* @return int if KO, >0 if OK
|
||||
* @param User $user Use making update
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function update($user)
|
||||
{
|
||||
@ -231,8 +236,7 @@ class AccountingAccount
|
||||
/**
|
||||
* Check usage of accounting code
|
||||
*
|
||||
* @param User $user update
|
||||
* @return int if KO, >0 if OK
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function checkUsage()
|
||||
{
|
||||
@ -264,10 +268,10 @@ class AccountingAccount
|
||||
/**
|
||||
* Delete object in database
|
||||
*
|
||||
* @param User $user User object of making delete
|
||||
* @param int $notrigger 1=Disable all triggers
|
||||
* @return int
|
||||
*/
|
||||
* @param User $user User that deletes
|
||||
* @param int $notrigger 0=triggers after, 1=disable triggers
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function delete($user, $notrigger = 0)
|
||||
{
|
||||
global $conf, $langs;
|
||||
@ -363,8 +367,8 @@ class AccountingAccount
|
||||
/**
|
||||
* Account desactivate
|
||||
*
|
||||
* @param User $user update
|
||||
* @return int if KO, >0 if OK
|
||||
* @param int $id Id
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function account_desactivate($id)
|
||||
{
|
||||
@ -398,8 +402,8 @@ class AccountingAccount
|
||||
/**
|
||||
* Account activate
|
||||
*
|
||||
* @param User $user update
|
||||
* @return int if KO, >0 if OK
|
||||
* @param int $id Id
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function account_activate($id)
|
||||
{
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copytight (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -51,7 +51,6 @@ $link='';
|
||||
if ($statut == '') $link='<a href="'.$_SERVER["PHP_SELF"].'?statut=all">'.$langs->trans("IncludeClosedAccount").'</a>';
|
||||
if ($statut == 'all') $link='<a href="'.$_SERVER["PHP_SELF"].'">'.$langs->trans("OnlyOpenedAccount").'</a>';
|
||||
print_fiche_titre($langs->trans("AccountsArea"),$link);
|
||||
print '<br>';
|
||||
|
||||
|
||||
// On charge tableau des comptes financiers (ouverts par defaut)
|
||||
|
||||
@ -207,7 +207,6 @@ if ($type == 'directory')
|
||||
if ($section === '0')
|
||||
{
|
||||
$filearray=array();
|
||||
$textifempty='<br><div align="center"><font class="warning">'.$langs->trans("DirNotSynchronizedSyncFirst").'</font></div><br>';
|
||||
}
|
||||
else $filearray=dol_dir_list($upload_dir,"files",0,'',array('^\.','(\.meta|_preview\.png)$','^temp$','^CVS$'),$sortfield, $sorting,1);
|
||||
|
||||
@ -216,6 +215,7 @@ if ($type == 'directory')
|
||||
$param.='§ion='.$section;
|
||||
$textifempty = $langs->trans('NoFileFound');
|
||||
}
|
||||
else if ($section === '0') $textifempty='<br><div align="center"><font class="warning">'.$langs->trans("DirNotSynchronizedSyncFirst").'</font></div><br>';
|
||||
else $textifempty=($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("ECMSelectASection"));
|
||||
|
||||
$formfile->list_of_documents($filearray,'','ecm',$param,1,$relativepath,$user->rights->ecm->upload,1,$textifempty,$maxlengthname,'',$url);
|
||||
|
||||
@ -145,7 +145,8 @@ if (file_exists($fullpathselecteddir))
|
||||
{
|
||||
if (empty($val['fullrelativename'])) // If we did not find entry into database, but found a directory (dol_is_dir was ok at previous test)
|
||||
{
|
||||
$val['fullrelativename']=$file; $val['id']=0;
|
||||
$val['fullrelativename']=$file;
|
||||
$val['id']=0;
|
||||
$val['label']=$file;
|
||||
$val['description']='';
|
||||
$nboffilesinsubdir=$langs->trans("Unknown");
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
* Parent class for class inheritance lines of business objects
|
||||
* This class is useless for the moment so no inherit are done on it
|
||||
*/
|
||||
abstract class CommonObjectLine extends CommonObject
|
||||
abstract class CommonObjectLine
|
||||
{
|
||||
/**
|
||||
* Call trigger based on this instance
|
||||
|
||||
@ -759,7 +759,7 @@ class FormFile
|
||||
|
||||
if ($nboffiles > 0) include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
|
||||
|
||||
$var=true;
|
||||
$var=false;
|
||||
foreach($filearray as $key => $file) // filearray must be only files here
|
||||
{
|
||||
if ($file['name'] != '.'
|
||||
|
||||
@ -127,7 +127,7 @@ function fichinter_admin_prepare_head()
|
||||
$h++;
|
||||
|
||||
$head[$h][0] = DOL_URL_ROOT.'/fichinter/admin/fichinterdet_extrafields.php';
|
||||
$head[$h][1] = $langs->trans("ExtraFields");
|
||||
$head[$h][1] = $langs->trans("ExtraFieldsLines");
|
||||
$head[$h][2] = 'attributesdet';
|
||||
$h++;
|
||||
|
||||
|
||||
@ -154,7 +154,7 @@ class EcmDirectory // extends CommonObject
|
||||
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('MYECMDIR_CREATE',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
|
||||
if (! $error)
|
||||
@ -219,7 +219,7 @@ class EcmDirectory // extends CommonObject
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('MYECMDIR_MODIFY',$user);
|
||||
if ($result < 0) { $error++; }
|
||||
if ($result < 0) { $error++; }
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@ -356,10 +356,10 @@ class EcmDirectory // extends CommonObject
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
|
||||
if ($mode != 'databaseonly')
|
||||
{
|
||||
$file = $conf->ecm->dir_output . "/" . $relativepath;
|
||||
@ -511,7 +511,7 @@ class EcmDirectory // extends CommonObject
|
||||
|
||||
|
||||
/**
|
||||
* Reconstruit l'arborescence des categories sous la forme d'un tableau
|
||||
* Reconstruit l'arborescence des categories sous la forme d'un tableau à partir de la base de donnée
|
||||
* Renvoi un tableau de tableau('id','id_mere',...) trie selon arbre et avec:
|
||||
* id Id de la categorie
|
||||
* id_mere Id de la categorie mere
|
||||
@ -693,7 +693,7 @@ class EcmDirectory // extends CommonObject
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Call trigger based on this instance
|
||||
*
|
||||
@ -725,6 +725,6 @@ class EcmDirectory // extends CommonObject
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ $(document).ready(function() {
|
||||
},
|
||||
// Called if we click on a dir (not a file)
|
||||
function(elem) {
|
||||
id=elem.attr('id').substr(12);
|
||||
id=elem.attr('id').substr(12); // We get id that is 'fmdirlia_id_xxx' (id we want is xxx)
|
||||
jQuery("#formuserfile_section_dir").val(elem.attr('rel'));
|
||||
jQuery("#formuserfile_section_id").val(id);
|
||||
jQuery('#formuserfile').show();
|
||||
@ -65,6 +65,9 @@ $(document).ready(function() {
|
||||
function loadandshowpreview(filedirname,section)
|
||||
{
|
||||
//alert('filedirname='+filedirname);
|
||||
//console.log(filedirname);
|
||||
//console.log(section);
|
||||
|
||||
$('#ecmfileview').empty();
|
||||
|
||||
var url = '<?php echo dol_buildpath('/core/ajax/ajaxdirpreview.php',1); ?>?action=preview&module=ecm§ion='+section+'&file='+urlencode(filedirname);
|
||||
|
||||
@ -131,8 +131,9 @@ if ($object->client)
|
||||
$obj = $db->fetch_object($resql);
|
||||
$nbFactsClient = $obj->nb;
|
||||
$thirdTypeArray['customer']=$langs->trans("customer");
|
||||
if($conf->facture->enabled && $user->rights->facture->lire) $elementTypeArray['invoice']=$langs->trans('Invoices');
|
||||
if ($conf->commande->enabled && $user->rights->commande->lire) $elementTypeArray['order']=$langs->trans('Orders');
|
||||
if ($conf->propal->enabled && $user->rights->propal->lire) $elementTypeArray['propal']=$langs->trans('Proposals');
|
||||
if ($conf->facture->enabled && $user->rights->facture->lire) $elementTypeArray['invoice']=$langs->trans('Invoices');
|
||||
}
|
||||
|
||||
if ($object->fournisseur)
|
||||
@ -177,6 +178,19 @@ if ($type_element == 'invoice')
|
||||
$doc_number='f.facnumber';
|
||||
$thirdTypeSelect='customer';
|
||||
}
|
||||
if ($type_element == 'propal')
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
|
||||
$documentstatic=new Propal($db);
|
||||
$sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.datep as datePrint, ';
|
||||
$tables_from = MAIN_DB_PREFIX."propal as c,".MAIN_DB_PREFIX."propaldet as d";
|
||||
$where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid;
|
||||
$where.= " AND d.fk_propal = c.rowid";
|
||||
$where.= " AND c.entity = ".$conf->entity;
|
||||
$datePrint = 'c.datep';
|
||||
$doc_number='c.ref';
|
||||
$thirdTypeSelect='customer';
|
||||
}
|
||||
if ($type_element == 'order')
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user