forked from Wavyzz/dolibarr
Fix month on 2 chars. Some setup return on 1 char only. More phpunit
assert.
This commit is contained in:
@@ -102,14 +102,14 @@ function getDoliDBInstance($type, $host, $user, $pass, $name, $port)
|
|||||||
/**
|
/**
|
||||||
* Get list of entity id to use
|
* Get list of entity id to use
|
||||||
*
|
*
|
||||||
* @param string $element Current element
|
* @param string $element Current element
|
||||||
* 'societe', 'socpeople', 'actioncomm', 'agenda', 'resource',
|
* 'societe', 'socpeople', 'actioncomm', 'agenda', 'resource',
|
||||||
* 'product', 'productprice', 'stock',
|
* 'product', 'productprice', 'stock',
|
||||||
* 'propal', 'facture', 'facture_fourn',
|
* 'propal', 'facture', 'facture_fourn',
|
||||||
* 'categorie', 'bank_account', 'bank_account', 'adherent', 'user',
|
* 'categorie', 'bank_account', 'bank_account', 'adherent', 'user',
|
||||||
* 'commande', 'commande_fournisseur', 'expedition', 'intervention', 'survey',
|
* 'commande', 'commande_fournisseur', 'expedition', 'intervention', 'survey',
|
||||||
* 'contract', 'tax', 'expensereport', 'holiday', 'multicurrency', 'project',
|
* 'contract', 'tax', 'expensereport', 'holiday', 'multicurrency', 'project',
|
||||||
* 'email_template', 'event',
|
* 'email_template', 'event',
|
||||||
* @param int $shared 0=Return id of entity, 1=Return id entity + shared entities
|
* @param int $shared 0=Return id of entity, 1=Return id entity + shared entities
|
||||||
* @return mixed Entity id(s) to use
|
* @return mixed Entity id(s) to use
|
||||||
*/
|
*/
|
||||||
@@ -121,7 +121,7 @@ function getEntity($element=false, $shared=0)
|
|||||||
if ($element == 'actioncomm') $element='agenda';
|
if ($element == 'actioncomm') $element='agenda';
|
||||||
if ($element == 'fichinter') $element='intervention';
|
if ($element == 'fichinter') $element='intervention';
|
||||||
if ($element == 'categorie') $element='category';
|
if ($element == 'categorie') $element='category';
|
||||||
|
|
||||||
if (is_object($mc))
|
if (is_object($mc))
|
||||||
{
|
{
|
||||||
return $mc->getEntity($element, $shared);
|
return $mc->getEntity($element, $shared);
|
||||||
@@ -203,7 +203,7 @@ function getBrowserInfo($user_agent)
|
|||||||
elseif (preg_match('/opera(\/|\s)([\d\.]*)/i', $user_agent, $reg)) { $name='opera'; $version=$reg[2]; }
|
elseif (preg_match('/opera(\/|\s)([\d\.]*)/i', $user_agent, $reg)) { $name='opera'; $version=$reg[2]; }
|
||||||
elseif (preg_match('/(MSIE\s([0-9]+\.[0-9]))|.*(Trident\/[0-9]+.[0-9];\srv:([0-9]+\.[0-9]+))/i', $user_agent, $reg)) { $name='ie'; $version=end($reg); } // MS products at end
|
elseif (preg_match('/(MSIE\s([0-9]+\.[0-9]))|.*(Trident\/[0-9]+.[0-9];\srv:([0-9]+\.[0-9]+))/i', $user_agent, $reg)) { $name='ie'; $version=end($reg); } // MS products at end
|
||||||
elseif (preg_match('/l(i|y)n(x|ks)(\(|\/|\s)*([\d\.]+)/i', $user_agent, $reg)) { $name='lynxlinks'; $version=$reg[4]; }
|
elseif (preg_match('/l(i|y)n(x|ks)(\(|\/|\s)*([\d\.]+)/i', $user_agent, $reg)) { $name='lynxlinks'; $version=$reg[4]; }
|
||||||
|
|
||||||
if ($tablet) {
|
if ($tablet) {
|
||||||
$layout = 'tablet';
|
$layout = 'tablet';
|
||||||
} elseif ($phone) {
|
} elseif ($phone) {
|
||||||
@@ -268,7 +268,7 @@ function GETPOST($paramname,$check='',$method=0,$filter=NULL,$options=NULL)
|
|||||||
{
|
{
|
||||||
$tmp=dol_getdate(dol_now(), true);
|
$tmp=dol_getdate(dol_now(), true);
|
||||||
$out = $tmp['mon'];
|
$out = $tmp['mon'];
|
||||||
}
|
}
|
||||||
elseif ($reg[1] == 'YEAR')
|
elseif ($reg[1] == 'YEAR')
|
||||||
{
|
{
|
||||||
$tmp=dol_getdate(dol_now(), true);
|
$tmp=dol_getdate(dol_now(), true);
|
||||||
@@ -280,7 +280,7 @@ function GETPOST($paramname,$check='',$method=0,$filter=NULL,$options=NULL)
|
|||||||
$out = $mysoc->country_id;
|
$out = $mysoc->country_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($check)
|
switch ($check)
|
||||||
{
|
{
|
||||||
case 'int':
|
case 'int':
|
||||||
@@ -337,13 +337,13 @@ function GETPOST($paramname,$check='',$method=0,$filter=NULL,$options=NULL)
|
|||||||
* This prefix is unique for instance and avoid conflict between multi-instances,
|
* This prefix 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
|
* even when having two instances with one root dir or two instances in virtual servers
|
||||||
*
|
*
|
||||||
* @param string $mode '' or 'email'
|
* @param string $mode '' or 'email'
|
||||||
* @return string A calculated prefix
|
* @return string A calculated prefix
|
||||||
*/
|
*/
|
||||||
function dol_getprefix($mode='')
|
function dol_getprefix($mode='')
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
// If MAIL_PREFIX_FOR_EMAIL_ID is set and prefix is for email
|
// If MAIL_PREFIX_FOR_EMAIL_ID is set and prefix is for email
|
||||||
if ($mode == 'email' && ! empty($conf->global->MAIL_PREFIX_FOR_EMAIL_ID))
|
if ($mode == 'email' && ! empty($conf->global->MAIL_PREFIX_FOR_EMAIL_ID))
|
||||||
{
|
{
|
||||||
@@ -425,15 +425,15 @@ function dol_buildpath($path, $type=0)
|
|||||||
if ($type == 1) $res = DOL_URL_ROOT.'/'.$path; // Standard value
|
if ($type == 1) $res = DOL_URL_ROOT.'/'.$path; // Standard value
|
||||||
if ($type == 2) $res = DOL_MAIN_URL_ROOT.'/'.$path; // Standard value
|
if ($type == 2) $res = DOL_MAIN_URL_ROOT.'/'.$path; // Standard value
|
||||||
if ($type == 3) $res = DOL_URL_ROOT.'/'.$path;
|
if ($type == 3) $res = DOL_URL_ROOT.'/'.$path;
|
||||||
|
|
||||||
foreach ($conf->file->dol_document_root as $key => $dirroot) // ex: array(["main"]=>"/home/main/htdocs", ["alt0"]=>"/home/dirmod/htdocs", ...)
|
foreach ($conf->file->dol_document_root as $key => $dirroot) // ex: array(["main"]=>"/home/main/htdocs", ["alt0"]=>"/home/dirmod/htdocs", ...)
|
||||||
{
|
{
|
||||||
if ($key == 'main')
|
if ($key == 'main')
|
||||||
{
|
{
|
||||||
if ($type == 3)
|
if ($type == 3)
|
||||||
{
|
{
|
||||||
global $dolibarr_main_url_root;
|
global $dolibarr_main_url_root;
|
||||||
|
|
||||||
// Define $urlwithroot
|
// Define $urlwithroot
|
||||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||||
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||||
@@ -460,12 +460,12 @@ function dol_buildpath($path, $type=0)
|
|||||||
if ($type == 3)
|
if ($type == 3)
|
||||||
{
|
{
|
||||||
global $dolibarr_main_url_root;
|
global $dolibarr_main_url_root;
|
||||||
|
|
||||||
// Define $urlwithroot
|
// Define $urlwithroot
|
||||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||||
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||||
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||||
|
|
||||||
$res=(preg_match('/^http/i',$conf->file->dol_url_root[$key])?'':$urlwithroot).$conf->file->dol_url_root[$key].'/'.$path; // Test on start with http is for old conf syntax
|
$res=(preg_match('/^http/i',$conf->file->dol_url_root[$key])?'':$urlwithroot).$conf->file->dol_url_root[$key].'/'.$path; // Test on start with http is for old conf syntax
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -732,13 +732,13 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename='
|
|||||||
throw new Exception('Incorrect log level');
|
throw new Exception('Incorrect log level');
|
||||||
}
|
}
|
||||||
if ($level > $conf->global->SYSLOG_LEVEL) return;
|
if ($level > $conf->global->SYSLOG_LEVEL) return;
|
||||||
|
|
||||||
// If adding log inside HTML page is required
|
// If adding log inside HTML page is required
|
||||||
if (! empty($_REQUEST['logtohtml']) && (! empty($conf->global->MAIN_ENABLE_LOG_TO_HTML) || ! empty($conf->global->MAIN_LOGTOHTML))) // MAIN_LOGTOHTML kept for backward compatibility
|
if (! empty($_REQUEST['logtohtml']) && (! empty($conf->global->MAIN_ENABLE_LOG_TO_HTML) || ! empty($conf->global->MAIN_LOGTOHTML))) // MAIN_LOGTOHTML kept for backward compatibility
|
||||||
{
|
{
|
||||||
$conf->logbuffer[] = dol_print_date(time(),"%Y-%m-%d %H:%M:%S")." ".$message;
|
$conf->logbuffer[] = dol_print_date(time(),"%Y-%m-%d %H:%M:%S")." ".$message;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Remove this. MAIN_ENABLE_LOG_INLINE_HTML should be deprecated and use a log handler dedicated to HTML output
|
//TODO: Remove this. MAIN_ENABLE_LOG_INLINE_HTML should be deprecated and use a log handler dedicated to HTML output
|
||||||
// If enable html log tag enabled and url parameter log defined, we show output log on HTML comments
|
// If enable html log tag enabled and url parameter log defined, we show output log on HTML comments
|
||||||
if (! empty($conf->global->MAIN_ENABLE_LOG_INLINE_HTML) && ! empty($_GET["log"]))
|
if (! empty($conf->global->MAIN_ENABLE_LOG_INLINE_HTML) && ! empty($_GET["log"]))
|
||||||
@@ -747,7 +747,7 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename='
|
|||||||
print $message."\n";
|
print $message."\n";
|
||||||
print "Log end -->\n";
|
print "Log end -->\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'message' => $message,
|
'message' => $message,
|
||||||
'script' => (isset($_SERVER['PHP_SELF'])? basename($_SERVER['PHP_SELF'],'.php') : false),
|
'script' => (isset($_SERVER['PHP_SELF'])? basename($_SERVER['PHP_SELF'],'.php') : false),
|
||||||
@@ -755,7 +755,7 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename='
|
|||||||
'user' => ((is_object($user) && $user->id) ? $user->login : false),
|
'user' => ((is_object($user) && $user->id) ? $user->login : false),
|
||||||
'ip' => false
|
'ip' => false
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! empty($_SERVER["REMOTE_ADDR"])) $data['ip'] = $_SERVER['REMOTE_ADDR'];
|
if (! empty($_SERVER["REMOTE_ADDR"])) $data['ip'] = $_SERVER['REMOTE_ADDR'];
|
||||||
// This is when PHP session is ran inside a web server but not inside a client request (example: init code of apache)
|
// This is when PHP session is ran inside a web server but not inside a client request (example: init code of apache)
|
||||||
else if (! empty($_SERVER['SERVER_ADDR'])) $data['ip'] = $_SERVER['SERVER_ADDR'];
|
else if (! empty($_SERVER['SERVER_ADDR'])) $data['ip'] = $_SERVER['SERVER_ADDR'];
|
||||||
@@ -814,7 +814,7 @@ function dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $pi
|
|||||||
global $conf, $langs, $hookmanager;
|
global $conf, $langs, $hookmanager;
|
||||||
|
|
||||||
if ($notab == -1) $notab = 0; // For better compatiblity with modules for 6.0
|
if ($notab == -1) $notab = 0; // For better compatiblity with modules for 6.0
|
||||||
|
|
||||||
$out="\n".'<div class="tabs" data-role="controlgroup" data-type="horizontal">'."\n";
|
$out="\n".'<div class="tabs" data-role="controlgroup" data-type="horizontal">'."\n";
|
||||||
|
|
||||||
// Show title
|
// Show title
|
||||||
@@ -944,7 +944,7 @@ function dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $pi
|
|||||||
{
|
{
|
||||||
$out = $hookmanager->resPrint;
|
$out = $hookmanager->resPrint;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1003,7 +1003,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
if ($object->element == 'member') $modulepart='memberphoto';
|
if ($object->element == 'member') $modulepart='memberphoto';
|
||||||
if ($object->element == 'user') $modulepart='userphoto';
|
if ($object->element == 'user') $modulepart='userphoto';
|
||||||
if ($object->element == 'product') $modulepart='product';
|
if ($object->element == 'product') $modulepart='product';
|
||||||
|
|
||||||
if ($object->element == 'product')
|
if ($object->element == 'product')
|
||||||
{
|
{
|
||||||
$width=80; $cssclass='photoref';
|
$width=80; $cssclass='photoref';
|
||||||
@@ -1011,7 +1011,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
$maxvisiblephotos=(isset($conf->global->PRODUCT_MAX_VISIBLE_PHOTO)?$conf->global->PRODUCT_MAX_VISIBLE_PHOTO:5);
|
$maxvisiblephotos=(isset($conf->global->PRODUCT_MAX_VISIBLE_PHOTO)?$conf->global->PRODUCT_MAX_VISIBLE_PHOTO:5);
|
||||||
if ($conf->browser->phone) $maxvisiblephotos=1;
|
if ($conf->browser->phone) $maxvisiblephotos=1;
|
||||||
if ($showimage) $morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref">'.$object->show_photos($conf->product->multidir_output[$object->entity],'small',$maxvisiblephotos,0,0,0,$width,0).'</div>';
|
if ($showimage) $morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref">'.$object->show_photos($conf->product->multidir_output[$object->entity],'small',$maxvisiblephotos,0,0,0,$width,0).'</div>';
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!empty($conf->global->PRODUCT_NODISPLAYIFNOPHOTO)) {
|
if (!empty($conf->global->PRODUCT_NODISPLAYIFNOPHOTO)) {
|
||||||
$nophoto='';
|
$nophoto='';
|
||||||
@@ -1023,11 +1023,11 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($showimage)
|
if ($showimage)
|
||||||
{
|
{
|
||||||
if ($modulepart != 'unknown')
|
if ($modulepart != 'unknown')
|
||||||
{
|
{
|
||||||
$phototoshow = $form->showphoto($modulepart,$object,0,0,0,'photoref','small',1,0,$maxvisiblephotos);
|
$phototoshow = $form->showphoto($modulepart,$object,0,0,0,'photoref','small',1,0,$maxvisiblephotos);
|
||||||
if ($phototoshow)
|
if ($phototoshow)
|
||||||
@@ -1040,7 +1040,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
elseif ($conf->browser->layout != 'phone') // Show No photo link (picto of pbject)
|
elseif ($conf->browser->layout != 'phone') // Show No photo link (picto of pbject)
|
||||||
{
|
{
|
||||||
$morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref">';
|
$morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref">';
|
||||||
if ($object->element == 'action')
|
if ($object->element == 'action')
|
||||||
{
|
{
|
||||||
$cssclass='photorefcenter';
|
$cssclass='photorefcenter';
|
||||||
$nophoto=img_picto('', 'title_agenda', '', false, 1);
|
$nophoto=img_picto('', 'title_agenda', '', false, 1);
|
||||||
@@ -1061,7 +1061,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
if ($showbarcode) $morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref">'.$form->showbarcode($object).'</div>';
|
if ($showbarcode) $morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref">'.$form->showbarcode($object).'</div>';
|
||||||
if ($object->element == 'societe' && ! empty($conf->use_javascript_ajax) && $user->rights->societe->creer && ! empty($conf->global->MAIN_DIRECT_STATUS_UPDATE)) {
|
if ($object->element == 'societe' && ! empty($conf->use_javascript_ajax) && $user->rights->societe->creer && ! empty($conf->global->MAIN_DIRECT_STATUS_UPDATE)) {
|
||||||
$morehtmlstatus.=ajax_object_onoff($object, 'status', 'status', 'InActivity', 'ActivityCeased');
|
$morehtmlstatus.=ajax_object_onoff($object, 'status', 'status', 'InActivity', 'ActivityCeased');
|
||||||
}
|
}
|
||||||
elseif ($object->element == 'product')
|
elseif ($object->element == 'product')
|
||||||
{
|
{
|
||||||
//$morehtmlstatus.=$langs->trans("Status").' ('.$langs->trans("Sell").') ';
|
//$morehtmlstatus.=$langs->trans("Status").' ('.$langs->trans("Sell").') ';
|
||||||
@@ -1081,39 +1081,39 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
elseif ($object->element == 'facture' || $object->element == 'invoice' || $object->element == 'invoice_supplier')
|
elseif ($object->element == 'facture' || $object->element == 'invoice' || $object->element == 'invoice_supplier')
|
||||||
{
|
{
|
||||||
$tmptxt=$object->getLibStatut(6, $object->totalpaye);
|
$tmptxt=$object->getLibStatut(6, $object->totalpaye);
|
||||||
if (empty($tmptxt) || $tmptxt == $object->getLibStatut(3) || $conf->browser->layout=='phone') $tmptxt=$object->getLibStatut(5, $object->totalpaye);
|
if (empty($tmptxt) || $tmptxt == $object->getLibStatut(3) || $conf->browser->layout=='phone') $tmptxt=$object->getLibStatut(5, $object->totalpaye);
|
||||||
$morehtmlstatus.=$tmptxt;
|
$morehtmlstatus.=$tmptxt;
|
||||||
}
|
}
|
||||||
elseif ($object->element == 'chargesociales')
|
elseif ($object->element == 'chargesociales')
|
||||||
{
|
{
|
||||||
$tmptxt=$object->getLibStatut(6, $object->totalpaye);
|
$tmptxt=$object->getLibStatut(6, $object->totalpaye);
|
||||||
if (empty($tmptxt) || $tmptxt == $object->getLibStatut(3) || $conf->browser->layout=='phone') $tmptxt=$object->getLibStatut(5, $object->totalpaye);
|
if (empty($tmptxt) || $tmptxt == $object->getLibStatut(3) || $conf->browser->layout=='phone') $tmptxt=$object->getLibStatut(5, $object->totalpaye);
|
||||||
$morehtmlstatus.=$tmptxt;
|
$morehtmlstatus.=$tmptxt;
|
||||||
}
|
}
|
||||||
elseif ($object->element == 'loan')
|
elseif ($object->element == 'loan')
|
||||||
{
|
{
|
||||||
$tmptxt=$object->getLibStatut(6, $object->totalpaye);
|
$tmptxt=$object->getLibStatut(6, $object->totalpaye);
|
||||||
if (empty($tmptxt) || $tmptxt == $object->getLibStatut(3) || $conf->browser->layout=='phone') $tmptxt=$object->getLibStatut(5, $object->totalpaye);
|
if (empty($tmptxt) || $tmptxt == $object->getLibStatut(3) || $conf->browser->layout=='phone') $tmptxt=$object->getLibStatut(5, $object->totalpaye);
|
||||||
$morehtmlstatus.=$tmptxt;
|
$morehtmlstatus.=$tmptxt;
|
||||||
}
|
}
|
||||||
elseif ($object->element == 'contrat')
|
elseif ($object->element == 'contrat')
|
||||||
{
|
{
|
||||||
if ($object->statut==0) $morehtmlstatus.=$object->getLibStatut(2);
|
if ($object->statut==0) $morehtmlstatus.=$object->getLibStatut(2);
|
||||||
else $morehtmlstatus.=$object->getLibStatut(4);
|
else $morehtmlstatus.=$object->getLibStatut(4);
|
||||||
}
|
}
|
||||||
else { // Generic case
|
else { // Generic case
|
||||||
$tmptxt=$object->getLibStatut(6);
|
$tmptxt=$object->getLibStatut(6);
|
||||||
if (empty($tmptxt) || $tmptxt == $object->getLibStatut(3) || $conf->browser->layout=='phone') $tmptxt=$object->getLibStatut(5);
|
if (empty($tmptxt) || $tmptxt == $object->getLibStatut(3) || $conf->browser->layout=='phone') $tmptxt=$object->getLibStatut(5);
|
||||||
$morehtmlstatus.=$tmptxt;
|
$morehtmlstatus.=$tmptxt;
|
||||||
}
|
}
|
||||||
if (! empty($object->name_alias)) $morehtmlref.='<div class="refidno">'.$object->name_alias.'</div>'; // For thirdparty
|
if (! empty($object->name_alias)) $morehtmlref.='<div class="refidno">'.$object->name_alias.'</div>'; // For thirdparty
|
||||||
|
|
||||||
if ($object->element == 'product' || $object->element == 'bank_account')
|
if ($object->element == 'product' || $object->element == 'bank_account')
|
||||||
{
|
{
|
||||||
if(! empty($object->label)) $morehtmlref.='<div class="refidno">'.$object->label.'</div>';
|
if(! empty($object->label)) $morehtmlref.='<div class="refidno">'.$object->label.'</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($object->element != 'product' && $object->element != 'bookmark')
|
if ($object->element != 'product' && $object->element != 'bookmark')
|
||||||
{
|
{
|
||||||
$morehtmlref.='<div class="refidno">';
|
$morehtmlref.='<div class="refidno">';
|
||||||
$morehtmlref.=$object->getBannerAddress('refaddress',$object);
|
$morehtmlref.=$object->getBannerAddress('refaddress',$object);
|
||||||
@@ -1125,7 +1125,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
|
|||||||
$morehtmlref.=$langs->trans("TechnicalID").': '.$object->id;
|
$morehtmlref.=$langs->trans("TechnicalID").': '.$object->id;
|
||||||
$morehtmlref.='</div>';
|
$morehtmlref.='</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<div class="'.($onlybanner?'arearefnobottom ':'arearef ').'heightref valignmiddle" width="100%">';
|
print '<div class="'.($onlybanner?'arearefnobottom ':'arearef ').'heightref valignmiddle" width="100%">';
|
||||||
print $form->showrefnav($object, $paramid, $morehtml, $shownav, $fieldid, $fieldref, $morehtmlref, $moreparam, $nodbprefix, $morehtmlleft, $morehtmlstatus, $morehtmlright);
|
print $form->showrefnav($object, $paramid, $morehtml, $shownav, $fieldid, $fieldref, $morehtmlref, $moreparam, $nodbprefix, $morehtmlleft, $morehtmlstatus, $morehtmlright);
|
||||||
print '</div>';
|
print '</div>';
|
||||||
@@ -1301,9 +1301,9 @@ function dol_print_date($time,$format='',$tzoutput='tzserver',$outputlangs='',$e
|
|||||||
$reduceformat=(! empty($conf->dol_optimize_smallscreen) && in_array($format,array('day','dayhour')))?1:0;
|
$reduceformat=(! empty($conf->dol_optimize_smallscreen) && in_array($format,array('day','dayhour')))?1:0;
|
||||||
$formatwithoutreduce = preg_replace('/reduceformat/','',$format);
|
$formatwithoutreduce = preg_replace('/reduceformat/','',$format);
|
||||||
if ($formatwithoutreduce != $format) { $format = $formatwithoutreduce; $reduceformat=1; } // so format 'dayreduceformat' is processed like day
|
if ($formatwithoutreduce != $format) { $format = $formatwithoutreduce; $reduceformat=1; } // so format 'dayreduceformat' is processed like day
|
||||||
|
|
||||||
// Change predefined format into computer format. If found translation in lang file we use it, otherwise we use default.
|
// Change predefined format into computer format. If found translation in lang file we use it, otherwise we use default.
|
||||||
// TODO Add format daysmallyear and dayhoursmallyear
|
// TODO Add format daysmallyear and dayhoursmallyear
|
||||||
if ($format == 'day') $format=($outputlangs->trans("FormatDateShort")!="FormatDateShort"?$outputlangs->trans("FormatDateShort"):$conf->format_date_short);
|
if ($format == 'day') $format=($outputlangs->trans("FormatDateShort")!="FormatDateShort"?$outputlangs->trans("FormatDateShort"):$conf->format_date_short);
|
||||||
else if ($format == 'hour') $format=($outputlangs->trans("FormatHourShort")!="FormatHourShort"?$outputlangs->trans("FormatHourShort"):$conf->format_hour_short);
|
else if ($format == 'hour') $format=($outputlangs->trans("FormatHourShort")!="FormatHourShort"?$outputlangs->trans("FormatHourShort"):$conf->format_hour_short);
|
||||||
else if ($format == 'hourduration') $format=($outputlangs->trans("FormatHourShortDuration")!="FormatHourShortDuration"?$outputlangs->trans("FormatHourShortDuration"):$conf->format_hour_short_duration);
|
else if ($format == 'hourduration') $format=($outputlangs->trans("FormatHourShortDuration")!="FormatHourShortDuration"?$outputlangs->trans("FormatHourShortDuration"):$conf->format_hour_short_duration);
|
||||||
@@ -1375,7 +1375,8 @@ function dol_print_date($time,$format='',$tzoutput='tzserver',$outputlangs='',$e
|
|||||||
if (preg_match('/__b__/i',$format))
|
if (preg_match('/__b__/i',$format))
|
||||||
{
|
{
|
||||||
// Here ret is string in PHP setup language (strftime was used). Now we convert to $outputlangs.
|
// Here ret is string in PHP setup language (strftime was used). Now we convert to $outputlangs.
|
||||||
$month=adodb_strftime('%m',$time+$offsettz+$offsetdst); // TODO Remove this
|
$month=adodb_strftime('%m',$time+$offsettz+$offsetdst); // TODO Replace this with function Date PHP. We also should not use anymore offsettz and offsetdst but only offsettzstring.
|
||||||
|
$month=sprintf("%02d", $month); // $month may be return with format '06' on some installation and '6' on other, so we force it to '06'.
|
||||||
if ($encodetooutput)
|
if ($encodetooutput)
|
||||||
{
|
{
|
||||||
$monthtext=$outputlangs->transnoentities('Month'.$month);
|
$monthtext=$outputlangs->transnoentities('Month'.$month);
|
||||||
@@ -1805,7 +1806,7 @@ function dol_print_phone($phone,$countrycode='',$cid=0,$socid=0,$addlink='',$sep
|
|||||||
$newphone=($separ!=''?'(':'').substr($newphone,0,3).($separ!=''?')':'').$separ.substr($newphone,3,3).($separ!=''?'-':'').substr($newphone,6,4);
|
$newphone=($separ!=''?'(':'').substr($newphone,0,3).($separ!=''?')':'').$separ.substr($newphone,3,3).($separ!=''?'-':'').substr($newphone,6,4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($addlink)) // Link on phone number (+ link to add action if conf->global->AGENDA_ADDACTIONFORPHONE set)
|
if (! empty($addlink)) // Link on phone number (+ link to add action if conf->global->AGENDA_ADDACTIONFORPHONE set)
|
||||||
{
|
{
|
||||||
if (! empty($conf->browser->phone) || (! empty($conf->clicktodial->enabled) && ! empty($conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS))) // If phone or option for, we use link of phone
|
if (! empty($conf->browser->phone) || (! empty($conf->clicktodial->enabled) && ! empty($conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS))) // If phone or option for, we use link of phone
|
||||||
@@ -1935,7 +1936,7 @@ function dol_user_country()
|
|||||||
* @param int $mode thirdparty|contact|member|other
|
* @param int $mode thirdparty|contact|member|other
|
||||||
* @param int $id Id of object
|
* @param int $id Id of object
|
||||||
* @param int $noprint No output. Result is the function return
|
* @param int $noprint No output. Result is the function return
|
||||||
* @param string $charfornl Char to use instead of nl2br. '' means we use a standad nl2br.
|
* @param string $charfornl Char to use instead of nl2br. '' means we use a standad nl2br.
|
||||||
* @return string|void Nothing if noprint is 0, formatted address if noprint is 1
|
* @return string|void Nothing if noprint is 0, formatted address if noprint is 1
|
||||||
* @see dol_format_address
|
* @see dol_format_address
|
||||||
*/
|
*/
|
||||||
@@ -1956,7 +1957,7 @@ function dol_print_address($address, $htmlid, $mode, $id, $noprint=0, $charfornl
|
|||||||
{
|
{
|
||||||
if (empty($charfornl)) $out.=nl2br($address);
|
if (empty($charfornl)) $out.=nl2br($address);
|
||||||
else $out.=preg_replace('/[\r\n]+/', $charfornl, $address);
|
else $out.=preg_replace('/[\r\n]+/', $charfornl, $address);
|
||||||
|
|
||||||
$showgmap=$showomap=0;
|
$showgmap=$showomap=0;
|
||||||
|
|
||||||
// TODO Add a hook here
|
// TODO Add a hook here
|
||||||
@@ -2084,7 +2085,7 @@ function dol_print_graph($htmlid,$width,$height,$data,$showlegend=0,$type='pie',
|
|||||||
print '<div class="nographyettext">'.$langs->trans("NotEnoughDataYet").'</div>';
|
print '<div class="nographyettext">'.$langs->trans("NotEnoughDataYet").'</div>';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($conf->use_javascript_ajax)) return;
|
if (empty($conf->use_javascript_ajax)) return;
|
||||||
$jsgraphlib='flot';
|
$jsgraphlib='flot';
|
||||||
$datacolor=array();
|
$datacolor=array();
|
||||||
@@ -2253,7 +2254,7 @@ function dol_trunc($string,$size=40,$trunc='right',$stringencoding='UTF-8',$nodo
|
|||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
if ($size==0 || ! empty($conf->global->MAIN_DISABLE_TRUNC)) return $string;
|
if ($size==0 || ! empty($conf->global->MAIN_DISABLE_TRUNC)) return $string;
|
||||||
|
|
||||||
if (empty($stringencoding)) $stringencoding='UTF-8';
|
if (empty($stringencoding)) $stringencoding='UTF-8';
|
||||||
// reduce for small screen
|
// reduce for small screen
|
||||||
if ($conf->dol_optimize_smallscreen==1 && $display==1) $size = round($size/3);
|
if ($conf->dol_optimize_smallscreen==1 && $display==1) $size = round($size/3);
|
||||||
@@ -3206,7 +3207,7 @@ function load_fiche_titre($titre, $morehtmlright='', $picto='title_generic.png',
|
|||||||
* @param string $options More parameters for links ('' by default, does not include sortfield neither sortorder)
|
* @param string $options More parameters for links ('' by default, does not include sortfield neither sortorder)
|
||||||
* @param string $sortfield Field to sort on ('' by default)
|
* @param string $sortfield Field to sort on ('' by default)
|
||||||
* @param string $sortorder Order to sort ('' by default)
|
* @param string $sortorder Order to sort ('' by default)
|
||||||
* @param string $center String in the middle ('' by default). We often find here string $massaction comming from $form->selectMassAction()
|
* @param string $center String in the middle ('' by default). We often find here string $massaction comming from $form->selectMassAction()
|
||||||
* @param int $num Number of records found by select with limit+1
|
* @param int $num Number of records found by select with limit+1
|
||||||
* @param int|string $totalnboflines Total number of records/lines for all pages (if known). Use a negative value of number to not show number. Use '' if unknown.
|
* @param int|string $totalnboflines Total number of records/lines for all pages (if known). Use a negative value of number to not show number. Use '' if unknown.
|
||||||
* @param string $picto Icon to use before title (should be a 32x32 transparent png file)
|
* @param string $picto Icon to use before title (should be a 32x32 transparent png file)
|
||||||
@@ -3220,11 +3221,11 @@ function load_fiche_titre($titre, $morehtmlright='', $picto='title_generic.png',
|
|||||||
function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $center='', $num=-1, $totalnboflines='', $picto='title_generic.png', $pictoisfullpath=0, $morehtml='', $morecss='', $limit=-1, $hideselectlimit=0)
|
function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $center='', $num=-1, $totalnboflines='', $picto='title_generic.png', $pictoisfullpath=0, $morehtml='', $morecss='', $limit=-1, $hideselectlimit=0)
|
||||||
{
|
{
|
||||||
global $conf,$langs;
|
global $conf,$langs;
|
||||||
|
|
||||||
$savlimit = $limit;
|
$savlimit = $limit;
|
||||||
$savtotalnboflines = $totalnboflines;
|
$savtotalnboflines = $totalnboflines;
|
||||||
$totalnboflines=abs($totalnboflines);
|
$totalnboflines=abs($totalnboflines);
|
||||||
|
|
||||||
if ($picto == 'setup') $picto='title_setup.png';
|
if ($picto == 'setup') $picto='title_setup.png';
|
||||||
if (($conf->browser->name == 'ie') && $picto=='title_generic.png') $picto='title.gif';
|
if (($conf->browser->name == 'ie') && $picto=='title_generic.png') $picto='title.gif';
|
||||||
if ($limit < 0) $limit = $conf->liste_limit;
|
if ($limit < 0) $limit = $conf->liste_limit;
|
||||||
@@ -3237,7 +3238,7 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
|
|||||||
$nextpage = 0;
|
$nextpage = 0;
|
||||||
}
|
}
|
||||||
//print 'totalnboflines='.$totalnboflines.'-savlimit='.$savlimit.'-limit='.$limit.'-num='.$num.'-nextpage='.$nextpage;
|
//print 'totalnboflines='.$totalnboflines.'-savlimit='.$savlimit.'-limit='.$limit.'-num='.$num.'-nextpage='.$nextpage;
|
||||||
|
|
||||||
print "\n";
|
print "\n";
|
||||||
print "<!-- Begin title '".$titre."' -->\n";
|
print "<!-- Begin title '".$titre."' -->\n";
|
||||||
print '<table width="100%" border="0" class="notopnoleftnoright'.($morecss?' '.$morecss:'').'" style="margin-bottom: 6px;"><tr>';
|
print '<table width="100%" border="0" class="notopnoleftnoright'.($morecss?' '.$morecss:'').'" style="margin-bottom: 6px;"><tr>';
|
||||||
@@ -3338,7 +3339,7 @@ function print_fleche_navigation($page, $file, $options='', $nextpage=0, $betwee
|
|||||||
//$pagesizechoices.=',0:'.$langs->trans("All"); // Not yet supported
|
//$pagesizechoices.=',0:'.$langs->trans("All"); // Not yet supported
|
||||||
//$pagesizechoices.=',2:2';
|
//$pagesizechoices.=',2:2';
|
||||||
if (! empty($conf->global->MAIN_PAGESIZE_CHOICES)) $pagesizechoices=$conf->global->MAIN_PAGESIZE_CHOICES;
|
if (! empty($conf->global->MAIN_PAGESIZE_CHOICES)) $pagesizechoices=$conf->global->MAIN_PAGESIZE_CHOICES;
|
||||||
|
|
||||||
print '<li class="pagination">';
|
print '<li class="pagination">';
|
||||||
print '<select class="flat selectlimit" name="limit" title="'.dol_escape_htmltag($langs->trans("MaxNbOfRecordPerPage")).'">';
|
print '<select class="flat selectlimit" name="limit" title="'.dol_escape_htmltag($langs->trans("MaxNbOfRecordPerPage")).'">';
|
||||||
$tmpchoice=explode(',',$pagesizechoices);
|
$tmpchoice=explode(',',$pagesizechoices);
|
||||||
@@ -3378,7 +3379,7 @@ function print_fleche_navigation($page, $file, $options='', $nextpage=0, $betwee
|
|||||||
</script>
|
</script>
|
||||||
';
|
';
|
||||||
}
|
}
|
||||||
print '</li>';
|
print '</li>';
|
||||||
}
|
}
|
||||||
if ($page > 0)
|
if ($page > 0)
|
||||||
{
|
{
|
||||||
@@ -3417,7 +3418,7 @@ function print_fleche_navigation($page, $file, $options='', $nextpage=0, $betwee
|
|||||||
function vatrate($rate, $addpercent=false, $info_bits=0, $usestarfornpr=0)
|
function vatrate($rate, $addpercent=false, $info_bits=0, $usestarfornpr=0)
|
||||||
{
|
{
|
||||||
$morelabel='';
|
$morelabel='';
|
||||||
|
|
||||||
if (preg_match('/%/',$rate))
|
if (preg_match('/%/',$rate))
|
||||||
{
|
{
|
||||||
$rate=str_replace('%','',$rate);
|
$rate=str_replace('%','',$rate);
|
||||||
@@ -3620,7 +3621,7 @@ function price2num($amount,$rounding='',$alreadysqlnb=0)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Output a dimension with best unit
|
* Output a dimension with best unit
|
||||||
*
|
*
|
||||||
* @param float $dimension Dimension
|
* @param float $dimension Dimension
|
||||||
* @param int $unit Unit of dimension (0, -3, ...)
|
* @param int $unit Unit of dimension (0, -3, ...)
|
||||||
* @param string $type 'weight', 'volume', ...
|
* @param string $type 'weight', 'volume', ...
|
||||||
@@ -3632,16 +3633,16 @@ function price2num($amount,$rounding='',$alreadysqlnb=0)
|
|||||||
function showDimensionInBestUnit($dimension, $unit, $type, $outputlangs, $round=-1, $forceunitoutput='no')
|
function showDimensionInBestUnit($dimension, $unit, $type, $outputlangs, $round=-1, $forceunitoutput='no')
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
|
||||||
|
|
||||||
if (($forceunitoutput == 'no' && $dimension < 1/10000) || (is_numeric($forceunitoutput) && $forceunitoutput == -6))
|
if (($forceunitoutput == 'no' && $dimension < 1/10000) || (is_numeric($forceunitoutput) && $forceunitoutput == -6))
|
||||||
{
|
{
|
||||||
$dimension = $dimension * 1000000;
|
$dimension = $dimension * 1000000;
|
||||||
$unit = $unit - 6;
|
$unit = $unit - 6;
|
||||||
}
|
}
|
||||||
elseif (($forceunitoutput == 'no' && $dimension < 1/10) || (is_numeric($forceunitoutput) && $forceunitoutput == -3))
|
elseif (($forceunitoutput == 'no' && $dimension < 1/10) || (is_numeric($forceunitoutput) && $forceunitoutput == -3))
|
||||||
{
|
{
|
||||||
$dimension = $dimension * 1000;
|
$dimension = $dimension * 1000;
|
||||||
$unit = $unit - 3;
|
$unit = $unit - 3;
|
||||||
}
|
}
|
||||||
elseif (($forceunitoutput == 'no' && $dimension > 100000000) || (is_numeric($forceunitoutput) && $forceunitoutput == 6))
|
elseif (($forceunitoutput == 'no' && $dimension > 100000000) || (is_numeric($forceunitoutput) && $forceunitoutput == 6))
|
||||||
{
|
{
|
||||||
@@ -3653,9 +3654,9 @@ function showDimensionInBestUnit($dimension, $unit, $type, $outputlangs, $round=
|
|||||||
$dimension = $dimension / 1000;
|
$dimension = $dimension / 1000;
|
||||||
$unit = $unit + 3;
|
$unit = $unit + 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret=price($dimension, 0, $outputlangs, 0, 0, $round).' '.measuring_units_string($unit, $type);
|
$ret=price($dimension, 0, $outputlangs, 0, 0, $round).' '.measuring_units_string($unit, $type);
|
||||||
|
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3686,12 +3687,12 @@ function get_localtax($vatrate, $local, $thirdparty_buyer="", $thirdparty_seller
|
|||||||
$vatratecleaned = trim($reg[1]);
|
$vatratecleaned = trim($reg[1]);
|
||||||
$vatratecode = $reg[2];
|
$vatratecode = $reg[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if ($thirdparty_buyer->country_code != $thirdparty_seller->country_code)
|
/*if ($thirdparty_buyer->country_code != $thirdparty_seller->country_code)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
// Some test to guess with no need to make database access
|
// Some test to guess with no need to make database access
|
||||||
if ($mysoc->country_code == 'ES') // For spain localtaxes 1 and 2, tax is qualified if buyer use local taxe
|
if ($mysoc->country_code == 'ES') // For spain localtaxes 1 and 2, tax is qualified if buyer use local taxe
|
||||||
{
|
{
|
||||||
@@ -3732,7 +3733,7 @@ function get_localtax($vatrate, $local, $thirdparty_buyer="", $thirdparty_seller
|
|||||||
{
|
{
|
||||||
$conf->global->MAIN_GET_LOCALTAXES_VALUES_FROM_THIRDPARTY = 1;
|
$conf->global->MAIN_GET_LOCALTAXES_VALUES_FROM_THIRDPARTY = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search local taxes
|
// Search local taxes
|
||||||
if (! empty($conf->global->MAIN_GET_LOCALTAXES_VALUES_FROM_THIRDPARTY))
|
if (! empty($conf->global->MAIN_GET_LOCALTAXES_VALUES_FROM_THIRDPARTY))
|
||||||
{
|
{
|
||||||
@@ -3789,7 +3790,7 @@ function get_localtax($vatrate, $local, $thirdparty_buyer="", $thirdparty_seller
|
|||||||
if ($local==1) return $obj->localtax1;
|
if ($local==1) return $obj->localtax1;
|
||||||
elseif ($local==2) return $obj->localtax2;
|
elseif ($local==2) return $obj->localtax2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3849,7 +3850,7 @@ function get_localtax_by_third($local)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get vat rate and npr from id.
|
* Get vat rate and npr from id.
|
||||||
* You can call getLocalTaxesFromRate after to get other fields
|
* You can call getLocalTaxesFromRate after to get other fields
|
||||||
*
|
*
|
||||||
* @param int $vatrowid Line ID into vat rate table.
|
* @param int $vatrowid Line ID into vat rate table.
|
||||||
* @return array array(localtax_type1(1-6 / 0 if not found), rate of localtax1, ...)
|
* @return array array(localtax_type1(1-6 / 0 if not found), rate of localtax1, ...)
|
||||||
@@ -3903,7 +3904,7 @@ function getLocalTaxesFromRate($vatrate, $local, $buyer, $seller, $firstparamisi
|
|||||||
$vatratecleaned = $reg[1];
|
$vatratecleaned = $reg[1];
|
||||||
$vatratecode = $reg[2];
|
$vatratecode = $reg[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search local taxes
|
// Search local taxes
|
||||||
$sql = "SELECT t.localtax1, t.localtax1_type, t.localtax2, t.localtax2_type, t.accountancy_code_sell, t.accountancy_code_buy";
|
$sql = "SELECT t.localtax1, t.localtax1_type, t.localtax2, t.localtax2_type, t.accountancy_code_sell, t.accountancy_code_buy";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t";
|
$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t";
|
||||||
@@ -3976,7 +3977,7 @@ function getLocalTaxesFromRate($vatrate, $local, $buyer, $seller, $firstparamisi
|
|||||||
/**
|
/**
|
||||||
* Return vat rate of a product in a particular selling country or default country vat if product is unknown
|
* Return vat rate of a product in a particular selling country or default country vat if product is unknown
|
||||||
* Function called by get_default_tva
|
* Function called by get_default_tva
|
||||||
*
|
*
|
||||||
* @param int $idprod Id of product or 0 if not a predefined product
|
* @param int $idprod Id of product or 0 if not a predefined product
|
||||||
* @param Societe $thirdparty_seller Thirdparty with a ->country_code defined (FR, US, IT, ...)
|
* @param Societe $thirdparty_seller Thirdparty with a ->country_code defined (FR, US, IT, ...)
|
||||||
* @param int $idprodfournprice Id product_fournisseur_price (for "supplier" order/invoice)
|
* @param int $idprodfournprice Id product_fournisseur_price (for "supplier" order/invoice)
|
||||||
@@ -4014,7 +4015,7 @@ function get_product_vat_for_country($idprod, $thirdparty_seller, $idprodfournpr
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// TODO Read default product vat according to countrycode and product. Vat for couple countrycode/product is a feature not implemeted yet.
|
// TODO Read default product vat according to countrycode and product. Vat for couple countrycode/product is a feature not implemeted yet.
|
||||||
// May be usefull/required if hidden option SERVICE_ARE_ECOMMERCE_200238EC is on
|
// May be usefull/required if hidden option SERVICE_ARE_ECOMMERCE_200238EC is on
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4324,7 +4325,7 @@ function yn($yesno, $case=1, $color=0)
|
|||||||
/**
|
/**
|
||||||
* Return a path to have a directory according to object.
|
* Return a path to have a directory according to object.
|
||||||
* New usage: $conf->product->multidir_output[$object->entity].'/'.get_exdir(0, 0, 0, 1, $object, 'modulepart')
|
* New usage: $conf->product->multidir_output[$object->entity].'/'.get_exdir(0, 0, 0, 1, $object, 'modulepart')
|
||||||
* Old usage: '015' with level 3->"0/1/5/", '015' with level 1->"5/", 'ABC-1' with level 3 ->"0/0/1/"
|
* Old usage: '015' with level 3->"0/1/5/", '015' with level 1->"5/", 'ABC-1' with level 3 ->"0/0/1/"
|
||||||
*
|
*
|
||||||
* @param string $num Id of object (deprecated, $object will be used in future)
|
* @param string $num Id of object (deprecated, $object will be used in future)
|
||||||
* @param int $level Level of subdirs to return (1, 2 or 3 levels). (deprecated, global option will be used in future)
|
* @param int $level Level of subdirs to return (1, 2 or 3 levels). (deprecated, global option will be used in future)
|
||||||
@@ -4341,7 +4342,7 @@ function get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart)
|
|||||||
$path = '';
|
$path = '';
|
||||||
|
|
||||||
$arrayforoldpath=array('cheque','user','category','holiday','shipment','supplier_invoice','invoice_supplier','mailing');
|
$arrayforoldpath=array('cheque','user','category','holiday','shipment','supplier_invoice','invoice_supplier','mailing');
|
||||||
if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) $arrayforoldpath[]='product';
|
if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) $arrayforoldpath[]='product';
|
||||||
if (! empty($level) && in_array($modulepart, $arrayforoldpath))
|
if (! empty($level) && in_array($modulepart, $arrayforoldpath))
|
||||||
{
|
{
|
||||||
// This part should be removed once all code is using "get_exdir" to forge path, with all parameters provided
|
// This part should be removed once all code is using "get_exdir" to forge path, with all parameters provided
|
||||||
@@ -4494,7 +4495,7 @@ function dolGetFirstLineOfText($text)
|
|||||||
{
|
{
|
||||||
$firstline=preg_replace('/<br[^>]*>.*$/s','',$text); // The s pattern modifier means the . can match newline characters
|
$firstline=preg_replace('/<br[^>]*>.*$/s','',$text); // The s pattern modifier means the . can match newline characters
|
||||||
$firstline=preg_replace('/<div[^>]*>.*$/s','',$firstline); // The s pattern modifier means the . can match newline characters
|
$firstline=preg_replace('/<div[^>]*>.*$/s','',$firstline); // The s pattern modifier means the . can match newline characters
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -5400,7 +5401,7 @@ function picto_from_langcode($codelang)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Complete or removed entries into a head array (used to build tabs).
|
* Complete or removed entries into a head array (used to build tabs).
|
||||||
* For example, with value added by external modules. Such values are declared into $conf->modules_parts['tab'].
|
* For example, with value added by external modules. Such values are declared into $conf->modules_parts['tab'].
|
||||||
* Or by change using hook completeTabsHead
|
* Or by change using hook completeTabsHead
|
||||||
*
|
*
|
||||||
@@ -5430,7 +5431,7 @@ function picto_from_langcode($codelang)
|
|||||||
function complete_head_from_modules($conf,$langs,$object,&$head,&$h,$type,$mode='add')
|
function complete_head_from_modules($conf,$langs,$object,&$head,&$h,$type,$mode='add')
|
||||||
{
|
{
|
||||||
global $hookmanager;
|
global $hookmanager;
|
||||||
|
|
||||||
if (isset($conf->modules_parts['tabs'][$type]) && is_array($conf->modules_parts['tabs'][$type]))
|
if (isset($conf->modules_parts['tabs'][$type]) && is_array($conf->modules_parts['tabs'][$type]))
|
||||||
{
|
{
|
||||||
foreach ($conf->modules_parts['tabs'][$type] as $value)
|
foreach ($conf->modules_parts['tabs'][$type] as $value)
|
||||||
@@ -5496,7 +5497,7 @@ function complete_head_from_modules($conf,$langs,$object,&$head,&$h,$type,$mode=
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// No need to make a return $head. Var is modified as a reference
|
// No need to make a return $head. Var is modified as a reference
|
||||||
if (! empty($hookmanager))
|
if (! empty($hookmanager))
|
||||||
{
|
{
|
||||||
@@ -5534,11 +5535,11 @@ function printCommonFooter($zone='private')
|
|||||||
{
|
{
|
||||||
print '<!-- Reposition management (does not work if a redirect is done after action of submission) -->'."\n";
|
print '<!-- Reposition management (does not work if a redirect is done after action of submission) -->'."\n";
|
||||||
print '<script type="text/javascript" language="javascript">jQuery(document).ready(function() {'."\n";
|
print '<script type="text/javascript" language="javascript">jQuery(document).ready(function() {'."\n";
|
||||||
|
|
||||||
print '<!-- If page_y set, we set scollbar with it -->'."\n";
|
print '<!-- If page_y set, we set scollbar with it -->'."\n";
|
||||||
print "page_y=getParameterByName('page_y', 0);";
|
print "page_y=getParameterByName('page_y', 0);";
|
||||||
print "if (page_y > 0) $('html, body').scrollTop(page_y);\n";
|
print "if (page_y > 0) $('html, body').scrollTop(page_y);\n";
|
||||||
|
|
||||||
print '<!-- Set handler to add page_y param on some a href links -->'."\n";
|
print '<!-- Set handler to add page_y param on some a href links -->'."\n";
|
||||||
print 'jQuery(".reposition").click(function() {
|
print 'jQuery(".reposition").click(function() {
|
||||||
var page_y = $(document).scrollTop();
|
var page_y = $(document).scrollTop();
|
||||||
@@ -5546,7 +5547,7 @@ function printCommonFooter($zone='private')
|
|||||||
this.href=this.href+\'&page_y=\'+page_y;
|
this.href=this.href+\'&page_y=\'+page_y;
|
||||||
});'."\n";
|
});'."\n";
|
||||||
print '});'."\n";
|
print '});'."\n";
|
||||||
|
|
||||||
if (empty($conf->dol_use_jmobile))
|
if (empty($conf->dol_use_jmobile))
|
||||||
{
|
{
|
||||||
print '<!-- Set handler to switch left menu page -->'."\n";
|
print '<!-- Set handler to switch left menu page -->'."\n";
|
||||||
@@ -5555,10 +5556,10 @@ function printCommonFooter($zone='private')
|
|||||||
if ($conf->theme == 'md') print " $('.login_block').toggle();";
|
if ($conf->theme == 'md') print " $('.login_block').toggle();";
|
||||||
print '});'."\n";
|
print '});'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</script>'."\n";
|
print '</script>'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Google Analytics (need Google module)
|
// Google Analytics (need Google module)
|
||||||
if (! empty($conf->google->enabled) && ! empty($conf->global->MAIN_GOOGLE_AN_ID))
|
if (! empty($conf->google->enabled) && ! empty($conf->global->MAIN_GOOGLE_AN_ID))
|
||||||
{
|
{
|
||||||
@@ -5717,9 +5718,9 @@ function natural_search($fields, $value, $mode=0, $nofirstand=0)
|
|||||||
{
|
{
|
||||||
$value=preg_replace('/([<>=]+)\s+([0-9'.preg_quote($langs->trans("DecimalSeparator"),'/').'\-])/','\1\2',$value); // Clean string '< 10' into '<10' so we can the explode on space to get all tests to do
|
$value=preg_replace('/([<>=]+)\s+([0-9'.preg_quote($langs->trans("DecimalSeparator"),'/').'\-])/','\1\2',$value); // Clean string '< 10' into '<10' so we can the explode on space to get all tests to do
|
||||||
}
|
}
|
||||||
|
|
||||||
$value = preg_replace('/\s*\|\s*/','|', $value);
|
$value = preg_replace('/\s*\|\s*/','|', $value);
|
||||||
|
|
||||||
$crits = explode(' ', $value);
|
$crits = explode(' ', $value);
|
||||||
$res = '';
|
$res = '';
|
||||||
if (! is_array($fields)) $fields = array($fields);
|
if (! is_array($fields)) $fields = array($fields);
|
||||||
@@ -5774,15 +5775,15 @@ function natural_search($fields, $value, $mode=0, $nofirstand=0)
|
|||||||
$tmpcrit=trim($tmpcrit);
|
$tmpcrit=trim($tmpcrit);
|
||||||
$tmpcrit2=$tmpcrit;
|
$tmpcrit2=$tmpcrit;
|
||||||
$tmpbefore='%'; $tmpafter='%';
|
$tmpbefore='%'; $tmpafter='%';
|
||||||
if (preg_match('/^[\^\$]/', $tmpcrit))
|
if (preg_match('/^[\^\$]/', $tmpcrit))
|
||||||
{
|
{
|
||||||
$tmpbefore='';
|
$tmpbefore='';
|
||||||
$tmpcrit2 = preg_replace('/^[\^\$]/', '', $tmpcrit2);
|
$tmpcrit2 = preg_replace('/^[\^\$]/', '', $tmpcrit2);
|
||||||
}
|
}
|
||||||
if (preg_match('/[\^\$]$/', $tmpcrit))
|
if (preg_match('/[\^\$]$/', $tmpcrit))
|
||||||
{
|
{
|
||||||
$tmpafter='';
|
$tmpafter='';
|
||||||
$tmpcrit2 = preg_replace('/[\^\$]$/', '', $tmpcrit2);
|
$tmpcrit2 = preg_replace('/[\^\$]$/', '', $tmpcrit2);
|
||||||
}
|
}
|
||||||
$newres .= $tmpbefore;
|
$newres .= $tmpbefore;
|
||||||
$newres .= $db->escape($tmpcrit2);
|
$newres .= $db->escape($tmpcrit2);
|
||||||
@@ -5848,7 +5849,7 @@ function getImageFileNameForSize($file, $extName, $extImgTarget='')
|
|||||||
function getAdvancedPreviewUrl($modulepart, $relativepath, $param='')
|
function getAdvancedPreviewUrl($modulepart, $relativepath, $param='')
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
if (empty($conf->use_javascript_ajax)) return '';
|
if (empty($conf->use_javascript_ajax)) return '';
|
||||||
|
|
||||||
$mime_preview = array('bmp', 'jpeg', 'png', 'gif', 'tiff', 'pdf', 'plain', 'css');
|
$mime_preview = array('bmp', 'jpeg', 'png', 'gif', 'tiff', 'pdf', 'plain', 'css');
|
||||||
|
|||||||
@@ -179,32 +179,32 @@ class DateLibTest extends PHPUnit_Framework_TestCase
|
|||||||
$user=$this->savuser;
|
$user=$this->savuser;
|
||||||
$langs=$this->savlangs;
|
$langs=$this->savlangs;
|
||||||
$db=$this->savdb;
|
$db=$this->savdb;
|
||||||
|
|
||||||
// With same hours - Tuesday/Wednesday jan 2013
|
// With same hours - Tuesday/Wednesday jan 2013
|
||||||
$date1=dol_mktime(0, 0, 0, 1, 1, 2013);
|
$date1=dol_mktime(0, 0, 0, 1, 1, 2013);
|
||||||
$date2=dol_mktime(0, 0, 0, 1, 2, 2013);
|
$date2=dol_mktime(0, 0, 0, 1, 2, 2013);
|
||||||
|
|
||||||
$result=num_public_holiday($date1,$date2,'FR',1);
|
$result=num_public_holiday($date1,$date2,'FR',1);
|
||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals(1,$result,'NumPublicHoliday for Tuesday/Wednesday jan 2013 for FR'); // 1 closed days
|
$this->assertEquals(1,$result,'NumPublicHoliday for Tuesday/Wednesday jan 2013 for FR'); // 1 closed days
|
||||||
|
|
||||||
$result=num_public_holiday($date1,$date2,'XX',1);
|
$result=num_public_holiday($date1,$date2,'XX',1);
|
||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals(0,$result,'NumPublicHoliday for Tuesday/Wednesday jan 2013 for XX'); // no closed days (country unknown)
|
$this->assertEquals(0,$result,'NumPublicHoliday for Tuesday/Wednesday jan 2013 for XX'); // no closed days (country unknown)
|
||||||
|
|
||||||
// With same hours - Friday/Sunday jan 2013
|
// With same hours - Friday/Sunday jan 2013
|
||||||
$date1=dol_mktime(0, 0, 0, 1, 4, 2013);
|
$date1=dol_mktime(0, 0, 0, 1, 4, 2013);
|
||||||
$date2=dol_mktime(0, 0, 0, 1, 6, 2013);
|
$date2=dol_mktime(0, 0, 0, 1, 6, 2013);
|
||||||
|
|
||||||
$result=num_public_holiday($date1,$date2,'FR',1);
|
$result=num_public_holiday($date1,$date2,'FR',1);
|
||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals(2,$result,'NumPublicHoliday for FR'); // 1 opened day, 2 closed days
|
$this->assertEquals(2,$result,'NumPublicHoliday for FR'); // 1 opened day, 2 closed days
|
||||||
|
|
||||||
$result=num_public_holiday($date1,$date2,'XX',1);
|
$result=num_public_holiday($date1,$date2,'XX',1);
|
||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals(2,$result,'NumPublicHoliday for XX'); // 1 opened day, 2 closed days (even if country unknown)
|
$this->assertEquals(2,$result,'NumPublicHoliday for XX'); // 1 opened day, 2 closed days (even if country unknown)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* testNumOpenDay
|
* testNumOpenDay
|
||||||
*
|
*
|
||||||
@@ -217,32 +217,32 @@ class DateLibTest extends PHPUnit_Framework_TestCase
|
|||||||
$user=$this->savuser;
|
$user=$this->savuser;
|
||||||
$langs=$this->savlangs;
|
$langs=$this->savlangs;
|
||||||
$db=$this->savdb;
|
$db=$this->savdb;
|
||||||
|
|
||||||
// With same hours - Tuesday/Wednesday jan 2013
|
// With same hours - Tuesday/Wednesday jan 2013
|
||||||
$date1=dol_mktime(0, 0, 0, 1, 1, 2013);
|
$date1=dol_mktime(0, 0, 0, 1, 1, 2013);
|
||||||
$date2=dol_mktime(0, 0, 0, 1, 2, 2013);
|
$date2=dol_mktime(0, 0, 0, 1, 2, 2013);
|
||||||
|
|
||||||
$result=num_open_day($date1,$date2,0,1,0,'FR');
|
$result=num_open_day($date1,$date2,0,1,0,'FR');
|
||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals(1,$result,'NumOpenDay Tuesday/Wednesday jan 2013 for FR'); // 1 opened days
|
$this->assertEquals(1,$result,'NumOpenDay Tuesday/Wednesday jan 2013 for FR'); // 1 opened days
|
||||||
|
|
||||||
$result=num_open_day($date1,$date2,0,1,0,'XX');
|
$result=num_open_day($date1,$date2,0,1,0,'XX');
|
||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals(2,$result,'NumOpenDay Tuesday/Wednesday jan 2013 for XX'); // 2 opened days (country unknown)
|
$this->assertEquals(2,$result,'NumOpenDay Tuesday/Wednesday jan 2013 for XX'); // 2 opened days (country unknown)
|
||||||
|
|
||||||
// With same hours - Friday/Sunday jan 2013
|
// With same hours - Friday/Sunday jan 2013
|
||||||
$date1=dol_mktime(0, 0, 0, 1, 4, 2013);
|
$date1=dol_mktime(0, 0, 0, 1, 4, 2013);
|
||||||
$date2=dol_mktime(0, 0, 0, 1, 6, 2013);
|
$date2=dol_mktime(0, 0, 0, 1, 6, 2013);
|
||||||
|
|
||||||
$result=num_open_day($date1,$date2,0,1,0,'FR');
|
$result=num_open_day($date1,$date2,0,1,0,'FR');
|
||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals(1,$result,'NumOpenDay for FR'); // 1 opened day, 2 closed
|
$this->assertEquals(1,$result,'NumOpenDay for FR'); // 1 opened day, 2 closed
|
||||||
|
|
||||||
$result=num_open_day($date1,$date2,'XX',1);
|
$result=num_open_day($date1,$date2,'XX',1);
|
||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals(1,$result,'NumOpenDay for XX'); // 1 opened day, 2 closes (even if country unknown)
|
$this->assertEquals(1,$result,'NumOpenDay for XX'); // 1 opened day, 2 closes (even if country unknown)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* testConvertTime2Seconds
|
* testConvertTime2Seconds
|
||||||
*
|
*
|
||||||
@@ -335,6 +335,11 @@ class DateLibTest extends PHPUnit_Framework_TestCase
|
|||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals('02/01/1970 00:00',$result);
|
$this->assertEquals('02/01/1970 00:00',$result);
|
||||||
|
|
||||||
|
// Check %a and %b format for fr_FR
|
||||||
|
$result=dol_print_date(0,'%a %b %B',true,$outputlangs);
|
||||||
|
print __METHOD__." result=".$result."\n";
|
||||||
|
$this->assertEquals('Jeu Jan. Janvier',$result);
|
||||||
|
|
||||||
// Check day format for en_US
|
// Check day format for en_US
|
||||||
$outputlangs=new Translate('',$conf);
|
$outputlangs=new Translate('',$conf);
|
||||||
$outputlangs->setDefaultLang('en_US');
|
$outputlangs->setDefaultLang('en_US');
|
||||||
@@ -345,9 +350,9 @@ class DateLibTest extends PHPUnit_Framework_TestCase
|
|||||||
$this->assertEquals('01/02/1970',$result);
|
$this->assertEquals('01/02/1970',$result);
|
||||||
|
|
||||||
// Check %a and %b format for en_US
|
// Check %a and %b format for en_US
|
||||||
$result=dol_print_date(0,'%a %b',true,$outputlangs);
|
$result=dol_print_date(0,'%a %b %B',true,$outputlangs);
|
||||||
print __METHOD__." result=".$result."\n";
|
print __METHOD__." result=".$result."\n";
|
||||||
$this->assertEquals('Thu Jan',$result);
|
$this->assertEquals('Thu Jan January',$result);
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user