Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
7d8e2ccedd
@ -1,6 +1,6 @@
|
||||
# DOLIBARR ERP & CRM
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).
|
||||
|
||||
|
||||
@ -238,9 +238,9 @@
|
||||
<!--<rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
|
||||
<severity>0</severity>
|
||||
</rule>-->
|
||||
<rule ref="PEAR.Commenting.FunctionComment.Missing">
|
||||
<!--<rule ref="PEAR.Commenting.FunctionComment.Missing">
|
||||
<severity>0</severity>
|
||||
</rule>
|
||||
</rule>-->
|
||||
|
||||
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType" />
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/adherents/admin/public.php
|
||||
* \file htdocs/adherents/admin/website.php
|
||||
* \ingroup member
|
||||
* \brief File of main public page for member module
|
||||
* \author Laurent Destailleur
|
||||
|
||||
@ -20,9 +20,9 @@ if (!defined('REQUIRE_JQUERY_BLOCKUI')) define('REQUIRE_JQUERY_BLOCKUI', 1);
|
||||
|
||||
|
||||
/**
|
||||
* \file htdocs/admin/dolistore/ajax.php
|
||||
* \file htdocs/admin/dolistore/ajax/image.php
|
||||
* \ingroup admin
|
||||
* \brief Page des informations dolistore
|
||||
* \brief Page des informations dolistore
|
||||
*/
|
||||
require "../../../main.inc.php";
|
||||
|
||||
@ -56,4 +56,3 @@ try {
|
||||
else if ($trace[0]['args'][0] == 401) die('Bad auth key');
|
||||
else die('Can not access to '.$conf->global->MAIN_MODULE_DOLISTORE_API_SRV);
|
||||
}
|
||||
|
||||
|
||||
@ -25,9 +25,18 @@ include_once DOL_DOCUMENT_ROOT.'/admin/dolistore/class/PSWebServiceLibrary.class
|
||||
*/
|
||||
class Dolistore
|
||||
{
|
||||
// params
|
||||
public $start; // beginning of pagination
|
||||
public $end; // end of pagination
|
||||
/**
|
||||
* beginning of pagination
|
||||
* @var int
|
||||
*/
|
||||
|
||||
public $start;
|
||||
/**
|
||||
* end of pagination
|
||||
* @var int
|
||||
*/
|
||||
public $end;
|
||||
|
||||
public $per_page; // pagination: display per page
|
||||
public $categorie; // the current categorie
|
||||
public $search; // the search keywords
|
||||
@ -282,16 +291,33 @@ class Dolistore
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* get previous link
|
||||
*
|
||||
* @param string $text symbol previous
|
||||
* @return string html previous link
|
||||
*/
|
||||
function get_previous_link($text = '<<')
|
||||
{
|
||||
return '<a href="'.$this->get_previous_url().'" class="button">'.$text.'</a>';
|
||||
}
|
||||
|
||||
/**
|
||||
* get next link
|
||||
*
|
||||
* @param string $text symbol next
|
||||
* @return string html next link
|
||||
*/
|
||||
function get_next_link($text = '>>')
|
||||
{
|
||||
return '<a href="'.$this->get_next_url().'" class="button">'.$text.'</a>';
|
||||
}
|
||||
|
||||
/**
|
||||
* get previous url
|
||||
*
|
||||
* @return string previous url
|
||||
*/
|
||||
function get_previous_url()
|
||||
{
|
||||
$param_array = array();
|
||||
@ -309,6 +335,11 @@ class Dolistore
|
||||
return $this->url."&".$param;
|
||||
}
|
||||
|
||||
/**
|
||||
* get next url
|
||||
*
|
||||
* @return string next url
|
||||
*/
|
||||
function get_next_url()
|
||||
{
|
||||
$param_array = array();
|
||||
@ -326,6 +357,13 @@ class Dolistore
|
||||
return $this->url."&".$param;
|
||||
}
|
||||
|
||||
/**
|
||||
* version compare
|
||||
*
|
||||
* @param string $v1 version 1
|
||||
* @param string $v2 version 2
|
||||
* @return int result of compare
|
||||
*/
|
||||
function version_compare($v1, $v2)
|
||||
{
|
||||
$v1 = explode('.', $v1);
|
||||
@ -355,4 +393,3 @@ class Dolistore
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/admin/oauthlogintoken.php
|
||||
* \file htdocs/admin/oauthlogintokens.php
|
||||
* \ingroup oauth
|
||||
* \brief Setup page to configure oauth access to login information
|
||||
*/
|
||||
|
||||
@ -52,6 +52,12 @@ if (!$mode) $mode='config';
|
||||
|
||||
// used in library escpos maybe useful if php doesn't support gzdecode
|
||||
if (!function_exists('gzdecode')) {
|
||||
/**
|
||||
* Gzdecode
|
||||
*
|
||||
* @param string $data data to deflate
|
||||
* @return string data deflated
|
||||
*/
|
||||
function gzdecode($data)
|
||||
{
|
||||
return gzinflate(substr($data,10,-8));
|
||||
@ -450,4 +456,3 @@ if ($mode == 'template' && $user->admin)
|
||||
// End of page
|
||||
llxFooter();
|
||||
$db->close();
|
||||
|
||||
|
||||
@ -16,9 +16,9 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file ticket/admin/ticket_extrafields.php
|
||||
* \ingroup ticket
|
||||
* \brief Page to setup extra fields of ticket
|
||||
* \file admin/ticket_extrafields.php
|
||||
* \ingroup ticket
|
||||
* \brief Page to setup extra fields of ticket
|
||||
*/
|
||||
|
||||
require '../main.inc.php';
|
||||
|
||||
@ -26,6 +26,9 @@ require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
||||
class Login
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor of the class
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
global $db;
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file card.php
|
||||
* \file htdocs/asset/card.php
|
||||
* \ingroup asset
|
||||
* \brief Page to create/edit/view asset
|
||||
*/
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file document.php
|
||||
* \file htdocs/asset/document.php
|
||||
* \ingroup asset
|
||||
* \brief Tab for documents linked to Assets
|
||||
*/
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file info.php
|
||||
* \file htdocs/asset/info.php
|
||||
* \ingroup asset
|
||||
* \brief Page to show an asset information
|
||||
*/
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file list.php
|
||||
* \file htdocs/asset/list.php
|
||||
* \ingroup asset
|
||||
* \brief List page for asset
|
||||
*/
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file note.php
|
||||
* \file htdocs/asset/note.php
|
||||
* \ingroup asset
|
||||
* \brief Card with notes on Asset
|
||||
*/
|
||||
|
||||
@ -4237,4 +4237,3 @@ class PropaleLigne extends CommonObjectLine
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/core/class/fiscalyear.php
|
||||
* \file htdocs/core/class/fiscalyear.class.php
|
||||
* \ingroup fiscal year
|
||||
* \brief File of class to manage fiscal years
|
||||
*/
|
||||
@ -32,12 +32,12 @@ class Fiscalyear extends CommonObject
|
||||
* @var string ID to identify managed object
|
||||
*/
|
||||
public $element='fiscalyear';
|
||||
|
||||
|
||||
/**
|
||||
* @var string Name of table without prefix where object is stored
|
||||
*/
|
||||
public $table_element='accounting_fiscalyear';
|
||||
|
||||
|
||||
public $table_element_line = '';
|
||||
public $fk_element = '';
|
||||
public $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||
@ -48,7 +48,7 @@ class Fiscalyear extends CommonObject
|
||||
* @var string proper name for given parameter
|
||||
*/
|
||||
public $label;
|
||||
|
||||
|
||||
var $date_start;
|
||||
var $date_end;
|
||||
var $datec;
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file core/lib/assets.lib.php
|
||||
* \file htdocs/core/lib/asset.lib.php
|
||||
* \ingroup asset
|
||||
* \brief Library files with common functions for Assets
|
||||
*/
|
||||
@ -24,7 +24,7 @@
|
||||
/**
|
||||
* Prepare admin pages header
|
||||
*
|
||||
* @return array
|
||||
* @return array head array with tabs
|
||||
*/
|
||||
function AssetsAdminPrepareHead()
|
||||
{
|
||||
@ -65,6 +65,11 @@ function AssetsAdminPrepareHead()
|
||||
return $head;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare admin pages header
|
||||
*
|
||||
* @return array head array with tabs
|
||||
*/
|
||||
function AssetsPrepareHead()
|
||||
{
|
||||
global $langs, $conf;
|
||||
|
||||
@ -163,6 +163,12 @@ function fichinter_admin_prepare_head()
|
||||
return $head;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare array with list of tabs
|
||||
*
|
||||
* @param Object $object Object related to tabs
|
||||
* @return array Array of tabs to show
|
||||
*/
|
||||
function fichinter_rec_prepare_head($object)
|
||||
{
|
||||
global $langs, $conf; //, $user;
|
||||
|
||||
@ -607,19 +607,19 @@ function GETPOST($paramname, $check='none', $method=0, $filter=null, $options=nu
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a prefix to use for this Dolibarr instance, for session/cookie names or email id.
|
||||
* This prefix is valid in a web context only and is unique for instance and avoid conflict
|
||||
* between multi-instances, even when having two instances with one root dir or two instances
|
||||
* in virtual servers.
|
||||
*
|
||||
* @param string $mode '' (prefix for session name) or 'email' (prefix for email id)
|
||||
* @return string A calculated prefix
|
||||
*/
|
||||
if (! function_exists('dol_getprefix'))
|
||||
{
|
||||
function dol_getprefix($mode='')
|
||||
{
|
||||
/**
|
||||
* Return a prefix to use for this Dolibarr instance, for session/cookie names or email id.
|
||||
* This prefix is valid in a web context only and is unique for instance and avoid conflict
|
||||
* between multi-instances, even when having two instances with one root dir or two instances
|
||||
* in virtual servers.
|
||||
*
|
||||
* @param string $mode '' (prefix for session name) or 'email' (prefix for email id)
|
||||
* @return string A calculated prefix
|
||||
*/
|
||||
function dol_getprefix($mode='')
|
||||
{
|
||||
global $conf;
|
||||
|
||||
// If MAIL_PREFIX_FOR_EMAIL_ID is set and prefix is for email
|
||||
|
||||
@ -1167,6 +1167,14 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
|
||||
return $numFinal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get string between
|
||||
*
|
||||
* @param string $string String to test
|
||||
* @param int $start Value for start
|
||||
* @param int $end Value for end
|
||||
* @return string Return part of string
|
||||
*/
|
||||
function get_string_between($string, $start, $end)
|
||||
{
|
||||
$string = " ".$string;
|
||||
|
||||
@ -169,6 +169,12 @@ function invoice_admin_prepare_head()
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return array head with list of tabs to view object informations.
|
||||
*
|
||||
* @param Facture $object Invoice object
|
||||
* @return array head array with tabs
|
||||
*/
|
||||
function invoice_rec_prepare_head($object)
|
||||
{
|
||||
global $db, $langs, $conf;
|
||||
|
||||
@ -87,6 +87,11 @@ function resource_prepare_head($object)
|
||||
return $head;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare head for admin tabs
|
||||
*
|
||||
* @return array Array of head entries
|
||||
*/
|
||||
function resource_admin_prepare_head()
|
||||
{
|
||||
|
||||
|
||||
@ -103,12 +103,12 @@ function checkLoginPassEntity($usertotest,$passwordtotest,$entitytotest,$authmod
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog("Authentification ko - failed to load file '".$authfile."'",LOG_ERR);
|
||||
dol_syslog("Authentification ko - failed to load file '".$authfile."'", LOG_ERR);
|
||||
sleep(1);
|
||||
$langs->load('main');
|
||||
$langs->load('other');
|
||||
$langs->load('errors');
|
||||
$_SESSION["dol_loginmesg"]=$langs->trans("ErrorFailedToLoadLoginFileForMode",$mode);
|
||||
$_SESSION["dol_loginmesg"]=$langs->trans("ErrorFailedToLoadLoginFileForMode", $mode);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -118,18 +118,18 @@ function checkLoginPassEntity($usertotest,$passwordtotest,$entitytotest,$authmod
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show Dolibarr default login page.
|
||||
* Part of this code is also duplicated into main.inc.php::top_htmlhead
|
||||
*
|
||||
* @param Translate $langs Lang object (must be initialized by a new).
|
||||
* @param Conf $conf Conf object
|
||||
* @param Societe $mysoc Company object
|
||||
* @return void
|
||||
*/
|
||||
if (! function_exists('dol_loginfunction'))
|
||||
{
|
||||
function dol_loginfunction($langs,$conf,$mysoc)
|
||||
/**
|
||||
* Show Dolibarr default login page.
|
||||
* Part of this code is also duplicated into main.inc.php::top_htmlhead
|
||||
*
|
||||
* @param Translate $langs Lang object (must be initialized by a new).
|
||||
* @param Conf $conf Conf object
|
||||
* @param Societe $mysoc Company object
|
||||
* @return void
|
||||
*/
|
||||
function dol_loginfunction($langs,$conf,$mysoc)
|
||||
{
|
||||
global $dolibarr_main_demo,$db;
|
||||
global $smartphone,$hookmanager;
|
||||
@ -510,4 +510,3 @@ function getRandomPassword($generic=false)
|
||||
|
||||
return $generated_password;
|
||||
}
|
||||
|
||||
|
||||
@ -160,9 +160,9 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
||||
$urllogo = DOL_URL_ROOT . '/theme/login_logo.png';
|
||||
|
||||
if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output . '/logos/thumbs/' . $mysoc->logo_small)) {
|
||||
$urllogo = DOL_URL_ROOT . '/viewimage.php?cache=1&modulepart=companylogo&file=' . urlencode('thumbs/' . $mysoc->logo_small);
|
||||
$urllogo = DOL_URL_ROOT . '/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file=' . urlencode('thumbs/' . $mysoc->logo_small);
|
||||
} elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output . '/logos/' . $mysoc->logo)) {
|
||||
$urllogo = DOL_URL_ROOT . '/viewimage.php?cache=1&modulepart=companylogo&file=' . urlencode($mysoc->logo);
|
||||
$urllogo = DOL_URL_ROOT . '/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file=' . urlencode($mysoc->logo);
|
||||
$width = 128;
|
||||
} elseif (is_readable(DOL_DOCUMENT_ROOT . '/theme/dolibarr_logo.png')) {
|
||||
$urllogo = DOL_URL_ROOT . '/theme/dolibarr_logo.png';
|
||||
@ -175,20 +175,3 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
||||
|
||||
print '<div style="margin-left: 50px; margin-right: 50px;">';
|
||||
}
|
||||
|
||||
/**
|
||||
* Show footer for new member
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function llxFooterTicket()
|
||||
{
|
||||
print '</div>';
|
||||
|
||||
printCommonFooter('public');
|
||||
|
||||
dol_htmloutput_events();
|
||||
|
||||
print "</body>\n";
|
||||
print "</html>\n";
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
* Copyright (C) 2005-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2014 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||
* Copyright (C) 2018 Josep Lluís Amador <joseplluis@lliuretic.cat>
|
||||
*
|
||||
* 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
|
||||
@ -1328,7 +1329,7 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
||||
|
||||
// Search if cron entry already present
|
||||
$sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."cronjob";
|
||||
$sql.= " WHERE module_name = '".$this->db->escape($this->rights_class)."'";
|
||||
$sql.= " WHERE module_name = '".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."'";
|
||||
if ($class) $sql.= " AND classesname = '".$this->db->escape($class)."'";
|
||||
if ($objectname) $sql.= " AND objectname = '".$this->db->escape($objectname)."'";
|
||||
if ($method) $sql.= " AND methodename = '".$this->db->escape($method)."'";
|
||||
@ -1354,7 +1355,7 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
||||
if(is_int($status)){ $sql.= ' status,'; }
|
||||
$sql.= " entity, test)";
|
||||
$sql.= " VALUES (";
|
||||
$sql.= "'".$this->db->escape($this->rights_class)."', ";
|
||||
$sql.= "'".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."', ";
|
||||
$sql.= "'".$this->db->idate($now)."', ";
|
||||
$sql.= ($datestart ? "'".$this->db->idate($datestart)."'" : "NULL").", ";
|
||||
$sql.= ($dateend ? "'".$this->db->idate($dateend)."'" : "NULL").", ";
|
||||
@ -1417,7 +1418,7 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
||||
if (is_array($this->cronjobs))
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."cronjob";
|
||||
$sql.= " WHERE module_name = '".$this->db->escape($this->rights_class)."'";
|
||||
$sql.= " WHERE module_name = '".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
dol_syslog(get_class($this)."::delete_cronjobs", LOG_DEBUG);
|
||||
@ -1795,7 +1796,7 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
||||
$err=0;
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."rights_def";
|
||||
$sql.= " WHERE module = '".$this->db->escape($this->rights_class)."'";
|
||||
$sql.= " WHERE module = '".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
dol_syslog(get_class($this)."::delete_permissions", LOG_DEBUG);
|
||||
if (! $this->db->query($sql))
|
||||
@ -1833,7 +1834,7 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
||||
$menu->menu_handler='all';
|
||||
|
||||
//$menu->module=strtolower($this->name); TODO When right_class will be same than module name
|
||||
$menu->module=$this->rights_class;
|
||||
$menu->module=empty($this->rights_class)?strtolower($this->name):$this->rights_class;
|
||||
|
||||
if (! $this->menu[$key]['fk_menu'])
|
||||
{
|
||||
@ -1929,7 +1930,7 @@ class DolibarrModules // Can not be abstract, because we need to instantiate it
|
||||
$err=0;
|
||||
|
||||
//$module=strtolower($this->name); TODO When right_class will be same than module name
|
||||
$module=$this->rights_class;
|
||||
$module=empty($this->rights_class)?strtolower($this->name):$this->rights_class;
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu";
|
||||
$sql.= " WHERE module = '".$this->db->escape($module)."'";
|
||||
|
||||
@ -38,7 +38,7 @@ class html_cerfafr extends ModeleDon
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDb $db Database handler
|
||||
* @param DoliDb $db Database handler
|
||||
*/
|
||||
function __construct($db)
|
||||
{
|
||||
@ -167,7 +167,7 @@ class html_cerfafr extends ModeleDon
|
||||
$form = str_replace('__DATE__',dol_print_date($don->date,'day',false,$outputlangs),$form);
|
||||
//$form = str_replace('__IP__',$user->ip,$form); // TODO $user->ip not exist
|
||||
$form = str_replace('__AMOUNT__', price($don->amount), $form);
|
||||
$form = str_replace('__AMOUNTLETTERS__',chiffre_en_lettre($don->amount),$form);
|
||||
$form = str_replace('__AMOUNTLETTERS__',amountToLetters($don->amount),$form);
|
||||
$form = str_replace('__CURRENCY__',$outputlangs->transnoentitiesnoconv("Currency".$currency),$form);
|
||||
$form = str_replace('__CURRENCYCODE__',$conf->currency,$form);
|
||||
$form = str_replace('__MAIN_INFO_SOCIETE_NOM__',$mysoc->name,$form);
|
||||
@ -278,7 +278,15 @@ class html_cerfafr extends ModeleDon
|
||||
}
|
||||
}
|
||||
|
||||
function chiffre_en_lettre($montant, $devise1='', $devise2='')
|
||||
/**
|
||||
* numbers to letters
|
||||
*
|
||||
* @param mixed $montant amount
|
||||
* @param mixed $devise1 devise 1 ex: euro
|
||||
* @param mixed $devise2 devise 2 ex: centimes
|
||||
* @return string amount in letters
|
||||
*/
|
||||
function amountToLetters($montant, $devise1='', $devise2='')
|
||||
{
|
||||
if(empty($devise1)) $dev1='euros';
|
||||
else $dev1=$devise1;
|
||||
|
||||
@ -22,9 +22,8 @@
|
||||
/**
|
||||
* \defgroup produit Module product variants
|
||||
* \brief Module to manage product combinations based on product attributes
|
||||
* \file htdocs/core/modules/modAttributes.class.php
|
||||
* \file htdocs/core/modules/modVariants.class.php
|
||||
* \ingroup produit
|
||||
* \brief File to describe module to manage catalog of predefined products
|
||||
*/
|
||||
include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
|
||||
|
||||
@ -110,4 +109,3 @@ class modVariants extends DolibarrModules
|
||||
$this->rights = array(); // Permission array used by this module
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -422,6 +422,14 @@ class doc_generic_user_odt extends ModelePDFUser
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* get substitution array for object
|
||||
*
|
||||
* @param User $object user
|
||||
* @param Translation $outputlangs translation object
|
||||
* @param string $array_key key for array
|
||||
* @return array array of substitutions
|
||||
*/
|
||||
function get_substitutionarray_object($object,$outputlangs,$array_key='object')
|
||||
{
|
||||
$array_other=array();
|
||||
|
||||
@ -34,11 +34,18 @@ class CdavLib
|
||||
|
||||
private $langs;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param User $user user
|
||||
* @param DoliDB $db Database handler
|
||||
* @param Translation $langs translation
|
||||
*/
|
||||
function __construct($user, $db, $langs)
|
||||
{
|
||||
$this->user = $user;
|
||||
$this->db = $db;
|
||||
$this->langs = $langs;
|
||||
$this->user = $user;
|
||||
$this->db = $db;
|
||||
$this->langs = $langs;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -476,10 +476,12 @@ class Expedition extends CommonObject
|
||||
$sql.= ", e.note_private, e.note_public";
|
||||
$sql.= ', e.fk_incoterms, e.location_incoterms';
|
||||
$sql.= ', i.libelle as libelle_incoterms';
|
||||
$sql.= ', s.libelle as shipping_method';
|
||||
$sql.= ", el.fk_source as origin_id, el.sourcetype as origin";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."expedition as e";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = e.rowid AND el.targettype = '".$this->db->escape($this->element)."'";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON e.fk_incoterms = i.rowid';
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_shipment_mode as s ON e.fk_shipping_method = s.rowid';
|
||||
$sql.= " WHERE e.entity IN (".getEntity('expedition').")";
|
||||
if ($id) $sql.= " AND e.rowid=".$id;
|
||||
if ($ref) $sql.= " AND e.ref='".$this->db->escape($ref)."'";
|
||||
@ -497,9 +499,9 @@ class Expedition extends CommonObject
|
||||
$this->id = $obj->rowid;
|
||||
$this->ref = $obj->ref;
|
||||
$this->socid = $obj->socid;
|
||||
$this->ref_customer = $obj->ref_customer;
|
||||
$this->ref_ext = $obj->ref_ext;
|
||||
$this->ref_int = $obj->ref_int;
|
||||
$this->ref_customer = $obj->ref_customer;
|
||||
$this->ref_ext = $obj->ref_ext;
|
||||
$this->ref_int = $obj->ref_int;
|
||||
$this->statut = $obj->fk_statut;
|
||||
$this->user_author_id = $obj->fk_user_author;
|
||||
$this->date_creation = $this->db->jdate($obj->date_creation);
|
||||
@ -509,12 +511,13 @@ class Expedition extends CommonObject
|
||||
$this->date_delivery = $this->db->jdate($obj->date_delivery); // Date planed
|
||||
$this->fk_delivery_address = $obj->fk_address;
|
||||
$this->modelpdf = $obj->model_pdf;
|
||||
$this->shipping_method_id = $obj->fk_shipping_method;
|
||||
$this->shipping_method_id = $obj->fk_shipping_method;
|
||||
$this->shipping_method = $obj->shipping_method;
|
||||
$this->tracking_number = $obj->tracking_number;
|
||||
$this->origin = ($obj->origin?$obj->origin:'commande'); // For compatibility
|
||||
$this->origin_id = $obj->origin_id;
|
||||
$this->billed = $obj->billed;
|
||||
$this->fk_project = $obj->fk_projet;
|
||||
$this->fk_project = $obj->fk_projet;
|
||||
|
||||
$this->trueWeight = $obj->weight;
|
||||
$this->weight_units = $obj->weight_units;
|
||||
@ -530,13 +533,13 @@ class Expedition extends CommonObject
|
||||
$this->note_private = $obj->note_private;
|
||||
|
||||
// A denormalized value
|
||||
$this->trueSize = $obj->size."x".$obj->width."x".$obj->height;
|
||||
$this->trueSize = $obj->size."x".$obj->width."x".$obj->height;
|
||||
$this->size_units = $obj->size_units;
|
||||
|
||||
//Incoterms
|
||||
$this->fk_incoterms = $obj->fk_incoterms;
|
||||
$this->location_incoterms = $obj->location_incoterms;
|
||||
$this->libelle_incoterms = $obj->libelle_incoterms;
|
||||
$this->fk_incoterms = $obj->fk_incoterms;
|
||||
$this->location_incoterms = $obj->location_incoterms;
|
||||
$this->libelle_incoterms = $obj->libelle_incoterms;
|
||||
|
||||
$this->db->free($result);
|
||||
|
||||
|
||||
@ -33,12 +33,12 @@ class ExpenseReportIk extends CoreObject
|
||||
* @var string ID to identify managed object
|
||||
*/
|
||||
public $element='expenseik';
|
||||
|
||||
|
||||
/**
|
||||
* @var string Name of table without prefix where object is stored
|
||||
*/
|
||||
public $table_element='expensereport_ik';
|
||||
|
||||
|
||||
public $fk_element='fk_expense_ik';
|
||||
|
||||
/**
|
||||
@ -128,8 +128,15 @@ class ExpenseReportIk extends CoreObject
|
||||
return $categories;
|
||||
}
|
||||
|
||||
public static function getRangeByUser(User $userauthor, $fk_c_exp_tax_cat)
|
||||
{
|
||||
/**
|
||||
* Return an array of ranges for a user
|
||||
*
|
||||
* @param User $userauthor user author id
|
||||
* @param int $fk_c_exp_tax_cat category
|
||||
* @return boolean|array
|
||||
*/
|
||||
public static function getRangeByUser(User $userauthor, $fk_c_exp_tax_cat)
|
||||
{
|
||||
$default_range = (int) $userauthor->default_range; // if not defined, then 0
|
||||
$ranges = self::getRangesByCategory($fk_c_exp_tax_cat);
|
||||
|
||||
|
||||
@ -190,37 +190,35 @@ class LoanSchedule extends CommonObject
|
||||
|
||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($this->db->num_rows($resql))
|
||||
{
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
if ($resql) {
|
||||
if ($this->db->num_rows($resql)) {
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
|
||||
$this->id = $obj->rowid;
|
||||
$this->ref = $obj->rowid;
|
||||
$this->id = $obj->rowid;
|
||||
$this->ref = $obj->rowid;
|
||||
|
||||
$this->fk_loan = $obj->fk_loan;
|
||||
$this->datec = $this->db->jdate($obj->datec);
|
||||
$this->tms = $this->db->jdate($obj->tms);
|
||||
$this->datep = $this->db->jdate($obj->datep);
|
||||
$this->amount_capital = $obj->amount_capital;
|
||||
$this->amount_insurance = $obj->amount_insurance;
|
||||
$this->amount_interest = $obj->amount_interest;
|
||||
$this->fk_typepayment = $obj->fk_typepayment;
|
||||
$this->num_payment = $obj->num_payment;
|
||||
$this->note_private = $obj->note_private;
|
||||
$this->note_public = $obj->note_public;
|
||||
$this->fk_bank = $obj->fk_bank;
|
||||
$this->fk_user_creat = $obj->fk_user_creat;
|
||||
$this->fk_user_modif = $obj->fk_user_modif;
|
||||
$this->fk_loan = $obj->fk_loan;
|
||||
$this->datec = $this->db->jdate($obj->datec);
|
||||
$this->tms = $this->db->jdate($obj->tms);
|
||||
$this->datep = $this->db->jdate($obj->datep);
|
||||
$this->amount_capital = $obj->amount_capital;
|
||||
$this->amount_insurance = $obj->amount_insurance;
|
||||
$this->amount_interest = $obj->amount_interest;
|
||||
$this->fk_typepayment = $obj->fk_typepayment;
|
||||
$this->num_payment = $obj->num_payment;
|
||||
$this->note_private = $obj->note_private;
|
||||
$this->note_public = $obj->note_public;
|
||||
$this->fk_bank = $obj->fk_bank;
|
||||
$this->fk_user_creat = $obj->fk_user_creat;
|
||||
$this->fk_user_modif = $obj->fk_user_modif;
|
||||
|
||||
$this->type_code = $obj->type_code;
|
||||
$this->type_libelle = $obj->type_libelle;
|
||||
$this->type_code = $obj->type_code;
|
||||
$this->type_libelle = $obj->type_libelle;
|
||||
|
||||
$this->bank_account = $obj->fk_account;
|
||||
$this->bank_line = $obj->fk_bank;
|
||||
}
|
||||
$this->db->free($resql);
|
||||
$this->bank_account = $obj->fk_account;
|
||||
$this->bank_line = $obj->fk_bank;
|
||||
}
|
||||
$this->db->free($resql);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -374,13 +372,20 @@ class LoanSchedule extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
function calc_mens($capital,$rate,$nbterm)
|
||||
/**
|
||||
* Calculate mensuality
|
||||
*
|
||||
* @param double $capital Capital
|
||||
* @param double $rate rate
|
||||
* @param int $nbterm nb term
|
||||
* @return double mensuality
|
||||
*/
|
||||
function calc_mens($capital, $rate, $nbterm)
|
||||
{
|
||||
$result='';
|
||||
|
||||
if (!empty($capital)&&!empty($rate)&&!empty($nbterm))
|
||||
{
|
||||
$result=($capital*($rate/12))/(1-pow((1+($rate/12)),($nbterm*-1)));
|
||||
if (!empty($capital) && !empty($rate) && !empty($nbterm)) {
|
||||
$result = ($capital*($rate/12))/(1-pow((1+($rate/12)),($nbterm*-1)));
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
||||
@ -654,6 +654,9 @@ class PropalmergepdfproductLine
|
||||
var $tms='';
|
||||
var $import_key;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
return 1;
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
/**
|
||||
* Define head array for tabs of inventory tools setup pages
|
||||
*
|
||||
* @return Array of head
|
||||
* @return array Array of head
|
||||
*/
|
||||
function inventoryAdminPrepareHead()
|
||||
{
|
||||
@ -40,7 +40,7 @@ function inventoryAdminPrepareHead()
|
||||
$head[$h][1] = $langs->trans("Parameters");
|
||||
$head[$h][2] = 'settings';
|
||||
$h++;
|
||||
|
||||
|
||||
|
||||
// Show more tabs from modules
|
||||
// Entries must be declared in modules descriptor with line
|
||||
@ -55,10 +55,19 @@ function inventoryAdminPrepareHead()
|
||||
return $head;
|
||||
}
|
||||
|
||||
/**
|
||||
* Define head array for tabs of inventory tools setup pages
|
||||
*
|
||||
* @param Inventory $inventory Object inventory
|
||||
* @param string $title parameter
|
||||
* @param string $get parameter
|
||||
*
|
||||
* @return array Array of head
|
||||
*/
|
||||
function inventoryPrepareHead(&$inventory, $title='Inventory', $get='')
|
||||
{
|
||||
global $langs;
|
||||
|
||||
|
||||
return array(
|
||||
array(dol_buildpath('/product/inventory/card.php?id='.$inventory->id.$get, 1), $langs->trans($title),'inventory')
|
||||
);
|
||||
@ -66,26 +75,33 @@ function inventoryPrepareHead(&$inventory, $title='Inventory', $get='')
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Define head array for tabs of inventory tools setup pages
|
||||
*
|
||||
* @param Inventory $inventory Object inventory
|
||||
*
|
||||
* @return string html of products
|
||||
*/
|
||||
function inventorySelectProducts(&$inventory)
|
||||
{
|
||||
global $conf,$db,$langs;
|
||||
|
||||
|
||||
$except_product_id = array();
|
||||
|
||||
|
||||
foreach ($inventory->Inventorydet as $Inventorydet)
|
||||
{
|
||||
$except_product_id[] = $Inventorydet->fk_product;
|
||||
}
|
||||
|
||||
|
||||
ob_start();
|
||||
$form = new Form($db);
|
||||
$form->select_produits(-1, 'fk_product');
|
||||
|
||||
|
||||
$TChildWarehouses = array($inventory->fk_warehouse);
|
||||
$e = new Entrepot($db);
|
||||
$e->fetch($inventory->fk_warehouse);
|
||||
if(method_exists($e, 'get_children_warehouses')) $e->get_children_warehouses($e->id, $TChildWarehouses);
|
||||
|
||||
|
||||
$Tab = array();
|
||||
$sql = 'SELECT rowid, label
|
||||
FROM '.MAIN_DB_PREFIX.'entrepot WHERE rowid IN('.implode(', ', $TChildWarehouses).')';
|
||||
@ -96,9 +112,8 @@ function inventorySelectProducts(&$inventory)
|
||||
}
|
||||
print ' ';
|
||||
print $langs->trans('Warehouse').' : '.$form::selectarray('fk_warehouse', $Tab);
|
||||
|
||||
|
||||
$select_html = ob_get_clean();
|
||||
|
||||
|
||||
return $select_html;
|
||||
}
|
||||
|
||||
|
||||
@ -29,7 +29,12 @@ class ProjectStats extends Stats
|
||||
public $socid;
|
||||
public $year;
|
||||
|
||||
function __construct($db)
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
function __construct($db)
|
||||
{
|
||||
global $conf, $user;
|
||||
|
||||
|
||||
@ -29,6 +29,11 @@ class TaskStats extends Stats
|
||||
public $socid;
|
||||
public $year;
|
||||
|
||||
/**
|
||||
* Constructor of the class
|
||||
*
|
||||
* @param DoliDb $db Database handler
|
||||
*/
|
||||
function __construct($db)
|
||||
{
|
||||
global $conf, $user;
|
||||
|
||||
@ -180,11 +180,11 @@ else if (! empty($conf->global->ONLINE_SIGN_LOGO)) $logosmall=$conf->global->ONL
|
||||
$urllogo='';
|
||||
if (! empty($logosmall) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$logosmall))
|
||||
{
|
||||
$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&file='.urlencode('thumbs/'.$logosmall);
|
||||
$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode('thumbs/'.$logosmall);
|
||||
}
|
||||
elseif (! empty($logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$logo))
|
||||
{
|
||||
$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&file='.urlencode($logo);
|
||||
$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode($logo);
|
||||
$width=96;
|
||||
}
|
||||
// Output html code for logo
|
||||
|
||||
@ -682,12 +682,12 @@ else if (! empty($conf->global->ONLINE_PAYMENT_LOGO)) $logosmall=$conf->global->
|
||||
$urllogo='';
|
||||
if (! empty($logosmall) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$logosmall))
|
||||
{
|
||||
$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&file='.urlencode('thumbs/'.$logosmall);
|
||||
$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode('thumbs/'.$logosmall);
|
||||
$width=150;
|
||||
}
|
||||
elseif (! empty($logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$logo))
|
||||
{
|
||||
$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&file='.urlencode($logo);
|
||||
$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&entity='.$conf->entity.'&file='.urlencode($logo);
|
||||
$width=150;
|
||||
}
|
||||
// Output html code for logo
|
||||
|
||||
@ -25,11 +25,18 @@ if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1');
|
||||
if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
|
||||
if (!defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session)
|
||||
|
||||
// For MultiCompany module.
|
||||
// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php
|
||||
// TODO This should be useless. Because entity must be retreive from object ref and not from url.
|
||||
$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
|
||||
if (is_numeric($entity)) define("DOLENTITY", $entity);
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/ticket.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
|
||||
|
||||
// Load translation files required by the page
|
||||
$langs->loadLangs(array('companies', 'other', 'ticket', 'errors'));
|
||||
@ -64,5 +71,8 @@ if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) {
|
||||
}
|
||||
|
||||
// End of page
|
||||
llxFooter();
|
||||
htmlPrintOnlinePaymentFooter($mysoc,$langs,1,$suffix,$object);
|
||||
|
||||
llxFooter('', 'public');
|
||||
|
||||
$db->close();
|
||||
|
||||
1
htdocs/stripe/class/index.html
Normal file
1
htdocs/stripe/class/index.html
Normal file
@ -0,0 +1 @@
|
||||
|
||||
@ -1025,7 +1025,12 @@ class Ticket extends CommonObject
|
||||
$this->tms = '';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* print selected status
|
||||
*
|
||||
* @param string $selected selected status
|
||||
* @return void
|
||||
*/
|
||||
public function printSelectStatus($selected = "")
|
||||
{
|
||||
print Form::selectarray('search_fk_statut', $this->statuts_short, $selected, $show_empty = 1, $key_in_label = 0, $value_as_key = 0, $option = '', $translate = 1, $maxlen = 0, $disabled = 0, $sort = '', $morecss = '');
|
||||
|
||||
@ -44,12 +44,12 @@ class User extends CommonObject
|
||||
* @var string ID to identify managed object
|
||||
*/
|
||||
public $element='user';
|
||||
|
||||
|
||||
/**
|
||||
* @var string Name of table without prefix where object is stored
|
||||
*/
|
||||
public $table_element='user';
|
||||
|
||||
|
||||
public $fk_element='fk_user';
|
||||
public $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||
|
||||
@ -146,14 +146,14 @@ class User extends CommonObject
|
||||
public $default_c_exp_tax_cat;
|
||||
public $default_range;
|
||||
|
||||
public $fields=array(
|
||||
'rowid'=>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'),
|
||||
'lastname'=>array('type'=>'varchar(50)', 'label'=>'Name', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>20, 'searchall'=>1, 'comment'=>'Reference of object'),
|
||||
'firstname'=>array('type'=>'varchar(50)', 'label'=>'Name','enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'),
|
||||
);
|
||||
public $fields = array(
|
||||
'rowid'=>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'),
|
||||
'lastname'=>array('type'=>'varchar(50)', 'label'=>'Name', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>20, 'searchall'=>1, 'comment'=>'Reference of object'),
|
||||
'firstname'=>array('type'=>'varchar(50)', 'label'=>'Name','enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'),
|
||||
);
|
||||
|
||||
/**
|
||||
* Constructor de la classe
|
||||
* Constructor of the class
|
||||
*
|
||||
* @param DoliDb $db Database handler
|
||||
*/
|
||||
@ -1538,7 +1538,7 @@ class User extends CommonObject
|
||||
$adh->zip=$this->zip;
|
||||
$adh->state_id=$this->state_id;
|
||||
$adh->country_id=$this->country_id;
|
||||
|
||||
|
||||
$adh->email=$this->email;
|
||||
$adh->skype=$this->skype;
|
||||
$adh->phone=$this->office_phone;
|
||||
|
||||
@ -53,6 +53,11 @@ class ProductAttribute
|
||||
*/
|
||||
public $rang;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
public function __construct(DoliDB $db)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
@ -52,8 +52,13 @@ class ProductAttributeValue
|
||||
*/
|
||||
public $value;
|
||||
|
||||
public function __construct(DoliDB $db)
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
public function __construct(DoliDB $db)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$this->db = $db;
|
||||
|
||||
@ -70,7 +70,12 @@ class ProductCombination
|
||||
*/
|
||||
public $entity;
|
||||
|
||||
public function __construct(DoliDB $db)
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
public function __construct(DoliDB $db)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
||||
@ -52,10 +52,15 @@ class ProductCombination2ValuePair
|
||||
*/
|
||||
public $fk_prod_attr_val;
|
||||
|
||||
public function __construct(DoliDB $db)
|
||||
{
|
||||
$this->db = $db;
|
||||
}
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
public function __construct(DoliDB $db)
|
||||
{
|
||||
$this->db = $db;
|
||||
}
|
||||
|
||||
/**
|
||||
* Translates this class to a human-readable string
|
||||
|
||||
@ -56,11 +56,12 @@ if ((isset($_GET["modulepart"]) && $_GET["modulepart"] == 'medias'))
|
||||
if (! defined("NOLOGIN")) define("NOLOGIN",1);
|
||||
if (! defined("NOCSRFCHECK")) define("NOCSRFCHECK",1); // We accept to go on this page from external web site.
|
||||
if (! defined("NOIPCHECK")) define("NOIPCHECK",1); // Do not check IP defined into conf $dolibarr_main_restrict_ip
|
||||
// For multicompany
|
||||
$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
|
||||
if (is_numeric($entity)) define("DOLENTITY", $entity);
|
||||
}
|
||||
|
||||
// For multicompany
|
||||
$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
|
||||
if (is_numeric($entity)) define("DOLENTITY", $entity);
|
||||
|
||||
/**
|
||||
* Header empty
|
||||
*
|
||||
|
||||
@ -239,6 +239,13 @@ exit(0);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* script cron usage
|
||||
*
|
||||
* @param string $path path
|
||||
* @param string $script_file filename
|
||||
* @return void
|
||||
*/
|
||||
function usage($path,$script_file)
|
||||
{
|
||||
global $conf;
|
||||
@ -252,4 +259,3 @@ function usage($path,$script_file)
|
||||
print "For example, to run pending tasks every 5mn, you can add this line:\n";
|
||||
print "*/5 * * * * ".$path.$script_file." securitykey userlogin > ".DOL_DATA_ROOT."/".$script_file.".log\n";
|
||||
}
|
||||
|
||||
|
||||
@ -74,14 +74,24 @@ class BonPrelevementTest extends PHPUnit_Framework_TestCase
|
||||
print "\n";
|
||||
}
|
||||
|
||||
// Static methods
|
||||
public static function setUpBeforeClass()
|
||||
/**
|
||||
* setUpBeforeClass
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function setUpBeforeClass()
|
||||
{
|
||||
global $conf,$user,$langs,$db;
|
||||
$db->begin(); // This is to have all actions inside a transaction even if test launched without suite.
|
||||
|
||||
print __METHOD__."\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDownAfterClass
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function tearDownAfterClass()
|
||||
{
|
||||
global $conf,$user,$langs,$db;
|
||||
|
||||
@ -173,6 +173,11 @@ class RestAPIUserTest extends PHPUnit_Framework_TestCase
|
||||
$this->assertEquals(1, $object['statut']);
|
||||
}
|
||||
|
||||
/**
|
||||
* testRestCreateUser
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testRestCreateUser()
|
||||
{
|
||||
|
||||
|
||||
@ -91,6 +91,11 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
|
||||
print "\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* setUpBeforeClass
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function setUpBeforeClass()
|
||||
{
|
||||
global $conf,$user,$langs,$db;
|
||||
@ -131,6 +136,11 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
|
||||
print __METHOD__."\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDownAfterClass
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function tearDownAfterClass()
|
||||
{
|
||||
global $conf,$user,$langs,$db;
|
||||
|
||||
@ -42,6 +42,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
)
|
||||
);
|
||||
|
||||
/**
|
||||
* setUpBeforeClass
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function setUpBeforeClass()
|
||||
{
|
||||
// Make sure we backup and remove the configuration file to force new install.
|
||||
@ -54,12 +59,22 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
self::shareSession(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* dropTestDatabase
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected static function dropTestDatabase()
|
||||
{
|
||||
$mysqli = new mysqli(self::$db_host, self::$db_admin_user, self::$db_admin_pass);
|
||||
$mysqli->query("DROP DATABASE " . self::$db_name);
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDownAfterClass
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function tearDownAfterClass()
|
||||
{
|
||||
// Remove the generated configuration and restore the backed up file.
|
||||
@ -70,6 +85,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
self::dropTestDatabase();
|
||||
}
|
||||
|
||||
/**
|
||||
* setUp
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
// Populating the database can take quite long.
|
||||
@ -77,17 +97,32 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
$this->setBrowserUrl(self::$url);
|
||||
}
|
||||
|
||||
/**
|
||||
* testInstallRedirect
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testInstallRedirect()
|
||||
{
|
||||
$this->url('/');
|
||||
$this->assertContains('/install/index.php', $this->url());
|
||||
}
|
||||
|
||||
/**
|
||||
* testInstallPageTitle
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testInstallPageTitle()
|
||||
{
|
||||
$this->assertContains('Dolibarr', $this->title());
|
||||
}
|
||||
|
||||
/**
|
||||
* testInstallProcess
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testInstallProcess()
|
||||
{
|
||||
// FIXME: the button itself should have an ID
|
||||
@ -95,6 +130,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
$this->assertContains('/install/check.php', $this->url());
|
||||
}
|
||||
|
||||
/**
|
||||
* testCheckPage
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testCheckPage()
|
||||
{
|
||||
$unavailable_choices = $this->byId('navail_choices');
|
||||
@ -109,6 +149,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
$this->assertContains('/install/fileconf.php', $this->url());
|
||||
}
|
||||
|
||||
/**
|
||||
* testForm
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testForm()
|
||||
{
|
||||
$this->assertFalse($this->byClassName('hideroot')->displayed());
|
||||
@ -153,12 +198,22 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
$this->byId('db_pass_root')->value('');
|
||||
}
|
||||
|
||||
/**
|
||||
* testFormSubmit
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFormSubmit()
|
||||
{
|
||||
$this->byName('forminstall')->submit();
|
||||
$this->assertContains('/install/step1.php', $this->url());
|
||||
}
|
||||
|
||||
/**
|
||||
* testStep1
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testStep1()
|
||||
{
|
||||
$this->assertFalse($this->byId('pleasewait')->displayed());
|
||||
@ -170,6 +225,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
$this->assertContains('/install/step2.php', $this->url());
|
||||
}
|
||||
|
||||
/**
|
||||
* testStep2
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testStep2()
|
||||
{
|
||||
$this->byName('forminstall')->submit();
|
||||
@ -178,6 +238,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
|
||||
// There is no step 3
|
||||
|
||||
/**
|
||||
* testStep4
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testStep4()
|
||||
{
|
||||
// FIXME: should have an ID
|
||||
@ -191,6 +256,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
$this->assertContains('/install/step5.php', $this->url());
|
||||
}
|
||||
|
||||
/**
|
||||
* testStep5
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testStep5()
|
||||
{
|
||||
// FIXME: this button should have an ID
|
||||
@ -198,6 +268,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
|
||||
$this->assertContains('/admin/index.php', $this->url());
|
||||
}
|
||||
|
||||
/**
|
||||
* testFirstLogin
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFirstLogin()
|
||||
{
|
||||
$this->assertEquals('login', $this->byTag('form')->attribute('id'));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user