mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-06 09:38:23 +01:00
Merge remote-tracking branch 'origin/3.7' into develop
Conflicts: htdocs/comm/action/card.php htdocs/core/datepicker.php
This commit is contained in:
@@ -36,7 +36,6 @@ require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
||||||
|
|
||||||
if (! empty($conf->projet->enabled))
|
if (! empty($conf->projet->enabled))
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
|
||||||
@@ -541,6 +540,7 @@ $help_url='EN:Module_Agenda_En|FR:Module_Agenda|ES:M&omodulodulo_Agenda';
|
|||||||
llxHeader('',$langs->trans("Agenda"),$help_url);
|
llxHeader('',$langs->trans("Agenda"),$help_url);
|
||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
$formfile = new FormFile($db);
|
||||||
$formactions = new FormActions($db);
|
$formactions = new FormActions($db);
|
||||||
|
|
||||||
if ($action == 'create')
|
if ($action == 'create')
|
||||||
@@ -1290,7 +1290,7 @@ if ($id > 0)
|
|||||||
|
|
||||||
if (empty($conf->global->AGENDA_DISABLE_BUILDDOC))
|
if (empty($conf->global->AGENDA_DISABLE_BUILDDOC))
|
||||||
{
|
{
|
||||||
print '<div style="clear:both;"> </div><div class="fichecenter"><div class="fichehalfleft">';
|
print '<div style="clear:both;"> <br><br></div><div class="fichecenter"><div class="fichehalfleft">';
|
||||||
print '<a name="builddoc"></a>'; // ancre
|
print '<a name="builddoc"></a>'; // ancre
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -205,6 +205,8 @@ if ($action == 'show_day' || $action == 'show_week' || $action == 'show_month' |
|
|||||||
$param.="&maxprint=".$maxprint;
|
$param.="&maxprint=".$maxprint;
|
||||||
|
|
||||||
$prev = dol_get_first_day_week($day, $month, $year);
|
$prev = dol_get_first_day_week($day, $month, $year);
|
||||||
|
//print "day=".$day." month=".$month." year=".$year;
|
||||||
|
//var_dump($prev); exit;
|
||||||
$prev_year = $prev['prev_year'];
|
$prev_year = $prev['prev_year'];
|
||||||
$prev_month = $prev['prev_month'];
|
$prev_month = $prev['prev_month'];
|
||||||
$prev_day = $prev['prev_day'];
|
$prev_day = $prev['prev_day'];
|
||||||
@@ -223,6 +225,7 @@ $next_day = $next['day'];
|
|||||||
// Define firstdaytoshow and lastdaytoshow (warning: lastdaytoshow is last second to show + 1)
|
// Define firstdaytoshow and lastdaytoshow (warning: lastdaytoshow is last second to show + 1)
|
||||||
$firstdaytoshow=dol_mktime(0,0,0,$first_month,$first_day,$first_year);
|
$firstdaytoshow=dol_mktime(0,0,0,$first_month,$first_day,$first_year);
|
||||||
$lastdaytoshow=dol_time_plus_duree($firstdaytoshow, 7, 'd');
|
$lastdaytoshow=dol_time_plus_duree($firstdaytoshow, 7, 'd');
|
||||||
|
//print $firstday.'-'.$first_month.'-'.$first_year;
|
||||||
//print dol_print_date($firstdaytoshow,'dayhour');
|
//print dol_print_date($firstdaytoshow,'dayhour');
|
||||||
//print dol_print_date($lastdaytoshow,'dayhour');
|
//print dol_print_date($lastdaytoshow,'dayhour');
|
||||||
|
|
||||||
@@ -534,12 +537,16 @@ echo '<input type="hidden" name="newdate" id="newdate">' ;
|
|||||||
echo '</form>';
|
echo '</form>';
|
||||||
|
|
||||||
|
|
||||||
// Table :
|
// Line header with list of days
|
||||||
|
|
||||||
|
//print "begin_d=".$begin_d." end_d=".$end_d;
|
||||||
|
|
||||||
|
|
||||||
echo '<table width="100%" class="nocellnopadd cal_month">';
|
echo '<table width="100%" class="nocellnopadd cal_month">';
|
||||||
|
|
||||||
echo '<tr class="liste_titre">';
|
echo '<tr class="liste_titre">';
|
||||||
echo '<td></td>';
|
echo '<td></td>';
|
||||||
$i=0;
|
$i=0; // 0 = sunday,
|
||||||
while ($i < 7)
|
while ($i < 7)
|
||||||
{
|
{
|
||||||
if (($i + 1) < $begin_d || ($i + 1) > $end_d)
|
if (($i + 1) < $begin_d || ($i + 1) > $end_d)
|
||||||
@@ -679,7 +686,7 @@ foreach ($usernames as $username)
|
|||||||
|
|
||||||
// Lopp on each day of week
|
// Lopp on each day of week
|
||||||
$i = 0;
|
$i = 0;
|
||||||
for ($iter_day = 0; $iter_day < 7; $iter_day++)
|
for ($iter_day = 0; $iter_day < 8; $iter_day++)
|
||||||
{
|
{
|
||||||
if (($i + 1) < $begin_d || ($i + 1) > $end_d)
|
if (($i + 1) < $begin_d || ($i + 1) > $end_d)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -26,17 +26,18 @@
|
|||||||
* \brief File to manage popup date selector
|
* \brief File to manage popup date selector
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language
|
if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // disabled
|
||||||
//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language
|
//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load global conf for START_WEEK
|
||||||
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||||
//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled cause need to do translations
|
//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled cause need to do translations
|
||||||
if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK',1);
|
if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK',1);
|
||||||
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1);
|
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1);
|
||||||
if (! defined('NOLOGIN')) define('NOLOGIN',1); // Not disabled cause need to load personalized language
|
if (! defined('NOLOGIN')) define('NOLOGIN',1); // disabled
|
||||||
if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU',1);
|
if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU',1);
|
||||||
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML',1);
|
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML',1);
|
||||||
|
|
||||||
require_once '../main.inc.php';
|
require_once '../main.inc.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
|
|
||||||
if (GETPOST('lang')) $langs->setDefaultLang(GETPOST('lang')); // If language was forced on URL by the main.inc.php
|
if (GETPOST('lang')) $langs->setDefaultLang(GETPOST('lang')); // If language was forced on URL by the main.inc.php
|
||||||
$langs->load("main");
|
$langs->load("main");
|
||||||
@@ -186,37 +187,46 @@ function displayBox($selectedDate,$month,$year)
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="dpDayNames">
|
<tr class="dpDayNames">
|
||||||
<?php
|
<?php
|
||||||
$first_day_of_week = isset($conf->global->MAIN_START_WEEK) ? (int) $conf->global->MAIN_START_WEEK : 0;
|
$startday=isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:1;
|
||||||
|
print 'xx'.$startday;
|
||||||
$day_names = array('ShortSunday', 'ShortMonday', 'ShortTuesday', 'ShortWednesday', 'ShortThursday', 'ShortFriday', 'ShortSaturday');
|
$day_names = array('ShortSunday', 'ShortMonday', 'ShortTuesday', 'ShortWednesday', 'ShortThursday', 'ShortFriday', 'ShortSaturday');
|
||||||
for( $i=0; $i < 7; $i++ )
|
for( $i=0; $i < 7; $i++ )
|
||||||
{
|
{
|
||||||
echo '<td width="', (int) (($i+1)*100/7) - (int) ($i*100/7), '%">', $langs->trans($day_names[($i + $first_day_of_week) % 7]), '</td>', "\n";
|
echo '<td width="', (int) (($i+1)*100/7) - (int) ($i*100/7), '%">', $langs->trans($day_names[($i + $startday) % 7]), '</td>', "\n";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
//print "x ".$thedate." y";
|
//print "x ".$thedate." y"; // $thedate = first day of month
|
||||||
$firstdate=dol_getdate($thedate);
|
$firstdate=dol_getdate($thedate);
|
||||||
$mydate=$firstdate;
|
//var_dump($firstdateofweek);
|
||||||
|
$mydate=dol_get_first_day_week(1, $month, $year, true); // mydate = cursor date
|
||||||
|
|
||||||
// Loop on each day of month
|
// Loop on each day of month
|
||||||
$stoploop=0; $day=1; $cols=0;
|
$stoploop=0; $day=1; $cols=0;
|
||||||
while (! $stoploop)
|
while (! $stoploop)
|
||||||
{
|
{
|
||||||
//print_r($mydate);
|
//print_r($mydate);
|
||||||
if($firstdate==$mydate) // At first run
|
if ($mydate < $firstdate) // At first run
|
||||||
{
|
{
|
||||||
echo "<TR class=\"dpWeek\">";
|
echo "<TR class=\"dpWeek\">";
|
||||||
|
//echo $conf->global->MAIN_START_WEEK.' '.$firstdate["wday"].' '.$startday;
|
||||||
$cols=0;
|
$cols=0;
|
||||||
for($i=0;$i< ($mydate["wday"]+7-$first_day_of_week)%7;$i++)
|
for ($i = 0; $i < 7; $i++)
|
||||||
{
|
{
|
||||||
|
$w = ($i + $startday) % 7;
|
||||||
|
if ($w == $firstdate["wday"])
|
||||||
|
{
|
||||||
|
$mydate = $firstdate;
|
||||||
|
break;
|
||||||
|
}
|
||||||
echo "<TD> </TD>";
|
echo "<TD> </TD>";
|
||||||
$cols++;
|
$cols++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($mydate["wday"]==$first_day_of_week)
|
if ($mydate["wday"] == $startday)
|
||||||
{
|
{
|
||||||
echo "<TR class=\"dpWeek\">";
|
echo "<TR class=\"dpWeek\">";
|
||||||
$cols=0;
|
$cols=0;
|
||||||
@@ -240,7 +250,7 @@ function displayBox($selectedDate,$month,$year)
|
|||||||
echo ">".sprintf("%02s",$mydate["mday"])."</TD>";
|
echo ">".sprintf("%02s",$mydate["mday"])."</TD>";
|
||||||
$cols++;
|
$cols++;
|
||||||
|
|
||||||
if ($mydate != $firstdate && $mydate["wday"]==(($first_day_of_week + 6)%7)) echo "</TR>\n";
|
if (($mydate["wday"] + 1) % 7 == $startday) echo "</TR>\n";
|
||||||
|
|
||||||
//$thedate=strtotime("tomorrow",$thedate);
|
//$thedate=strtotime("tomorrow",$thedate);
|
||||||
$day++;
|
$day++;
|
||||||
|
|||||||
@@ -479,34 +479,36 @@ function dol_get_last_day($year,$month=12,$gm=false)
|
|||||||
return $datelim;
|
return $datelim;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Return first day of week for a date
|
/** Return first day of week for a date. First day of week may be monday if option MAIN_START_WEEK is 1.
|
||||||
*
|
*
|
||||||
* @param int $day Day
|
* @param int $day Day
|
||||||
* @param int $month Month
|
* @param int $month Month
|
||||||
* @param int $year Year
|
* @param int $year Year
|
||||||
* @param int $gm False or 0 or 'server' = Return date to compare with server TZ, True or 1 to compare with GM date.
|
* @param int $gm False or 0 or 'server' = Return date to compare with server TZ, True or 1 to compare with GM date.
|
||||||
* @return array year,month,week,first_day,prev_year,prev_month,prev_day
|
* @return array year,month,week,first_day,first_month,first_year,prev_day,prev_month,prev_year
|
||||||
*/
|
*/
|
||||||
function dol_get_first_day_week($day,$month,$year,$gm=false)
|
function dol_get_first_day_week($day,$month,$year,$gm=false)
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
|
//$day=2; $month=2; $year=2015;
|
||||||
$date = dol_mktime(0,0,0,$month,$day,$year,$gm);
|
$date = dol_mktime(0,0,0,$month,$day,$year,$gm);
|
||||||
|
|
||||||
//Checking conf of start week
|
//Checking conf of start week
|
||||||
$start_week = (isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:1);
|
$start_week = (isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:1);
|
||||||
|
|
||||||
$tmparray = dol_getdate($date,true);
|
$tmparray = dol_getdate($date,true); // detail of current day
|
||||||
|
|
||||||
//Calculate days to count
|
//Calculate days = offset from current day
|
||||||
$days = $start_week - $tmparray['wday'];
|
$days = $start_week - $tmparray['wday'];
|
||||||
if ($days>=1) $days=7-$days;
|
if ($days>=1) $days=7-$days;
|
||||||
$days = abs($days);
|
$days = abs($days);
|
||||||
$seconds = $days*24*60*60;
|
$seconds = $days*24*60*60;
|
||||||
|
//print 'start_week='.$start_week.' tmparray[wday]='.$tmparray['wday'].' day offset='.$days.' seconds offset='.$seconds.'<br>';
|
||||||
|
|
||||||
//Get first day of week
|
//Get first day of week
|
||||||
$tmpday = date($tmparray[0])-$seconds;
|
$tmpdaytms = date($tmparray[0])-$seconds; // $tmparray[0] is day of parameters
|
||||||
$tmpday = date("d",$tmpday);
|
$tmpday = date("d",$tmpdaytms);
|
||||||
|
|
||||||
//Check first day of week is in same month than current day or not
|
//Check first day of week is in same month than current day or not
|
||||||
if ($tmpday>$day)
|
if ($tmpday>$day)
|
||||||
|
|||||||
@@ -1046,8 +1046,9 @@ function dol_print_date($time,$format='',$tzoutput='tzserver',$outputlangs='',$e
|
|||||||
/**
|
/**
|
||||||
* Return an array with locale date info.
|
* Return an array with locale date info.
|
||||||
* PHP getdate is restricted to the years 1901-2038 on Unix and 1970-2038 on Windows
|
* PHP getdate is restricted to the years 1901-2038 on Unix and 1970-2038 on Windows
|
||||||
* WARNING: This function always use PHP server timezone to return locale informations.
|
* WARNING: This function always use PHP server timezone to return locale informations !!!
|
||||||
* Usage must be avoid.
|
* Usage must be avoid.
|
||||||
|
* FIXME: Replace this with PHP date function and a parameter $gm
|
||||||
*
|
*
|
||||||
* @param int $timestamp Timestamp
|
* @param int $timestamp Timestamp
|
||||||
* @param boolean $fast Fast mode
|
* @param boolean $fast Fast mode
|
||||||
@@ -1057,7 +1058,7 @@ function dol_print_date($time,$format='',$tzoutput='tzserver',$outputlangs='',$e
|
|||||||
* 'minutes' => $min,
|
* 'minutes' => $min,
|
||||||
* 'hours' => $hour,
|
* 'hours' => $hour,
|
||||||
* 'mday' => $day,
|
* 'mday' => $day,
|
||||||
* 'wday' => $dow,
|
* 'wday' => $dow, 0=sunday, 6=saturday
|
||||||
* 'mon' => $month,
|
* 'mon' => $month,
|
||||||
* 'year' => $year,
|
* 'year' => $year,
|
||||||
* 'yday' => floor($secsInYear/$_day_power),
|
* 'yday' => floor($secsInYear/$_day_power),
|
||||||
@@ -1091,7 +1092,7 @@ function dol_getdate($timestamp,$fast=false)
|
|||||||
{
|
{
|
||||||
$arrayinfo=getdate($timestamp);
|
$arrayinfo=getdate($timestamp);
|
||||||
|
|
||||||
$startday=isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:1;
|
/*$startday=isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:1;
|
||||||
if($startday==1)
|
if($startday==1)
|
||||||
{
|
{
|
||||||
if ($arrayinfo["wday"]==0)
|
if ($arrayinfo["wday"]==0)
|
||||||
@@ -1102,7 +1103,7 @@ function dol_getdate($timestamp,$fast=false)
|
|||||||
{
|
{
|
||||||
$arrayinfo["wday"]=$arrayinfo["wday"]-1;
|
$arrayinfo["wday"]=$arrayinfo["wday"]-1;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
return $arrayinfo;
|
return $arrayinfo;
|
||||||
|
|||||||
@@ -22,14 +22,14 @@ ProductAccountancySellCode=Accountancy code (sell)
|
|||||||
ProductOrService=Product or Service
|
ProductOrService=Product or Service
|
||||||
ProductsAndServices=Products and Services
|
ProductsAndServices=Products and Services
|
||||||
ProductsOrServices=Products or Services
|
ProductsOrServices=Products or Services
|
||||||
ProductsAndServicesOnSell=Available Products and Services
|
ProductsAndServicesOnSell=Products and Services for sale or for purchase
|
||||||
ProductsAndServicesNotOnSell=Obsolete Products and Services
|
ProductsAndServicesNotOnSell=Products and Services out of sale
|
||||||
ProductsAndServicesStatistics=Products and Services statistics
|
ProductsAndServicesStatistics=Products and Services statistics
|
||||||
ProductsStatistics=Products statistics
|
ProductsStatistics=Products statistics
|
||||||
ProductsOnSell=Product for sale or for pruchase
|
ProductsOnSell=Product for sale or for pruchase
|
||||||
ProductsNotOnSell=Product out of sale and out of purchase
|
ProductsNotOnSell=Product out of sale and out of purchase
|
||||||
ProductsOnSellAndOnBuy=Products for sale and for purchase
|
ProductsOnSellAndOnBuy=Products for sale and for purchase
|
||||||
ServicesOnSell=Services for sale or for pruchase
|
ServicesOnSell=Services for sale or for purchase
|
||||||
ServicesNotOnSell=Services out of sale
|
ServicesNotOnSell=Services out of sale
|
||||||
ServicesOnSellAndOnBuy=Services for sale and for purchase
|
ServicesOnSellAndOnBuy=Services for sale and for purchase
|
||||||
InternalRef=Internal reference
|
InternalRef=Internal reference
|
||||||
|
|||||||
@@ -343,4 +343,24 @@ class DateLibTest extends PHPUnit_Framework_TestCase
|
|||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testDolGetFirstDayWeek
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function testDolGetFirstDayWeek()
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
$day=3; $month=2; $year=2015;
|
||||||
|
$conf->global->MAIN_START_WEEK = 1; // start on monday
|
||||||
|
$prev = dol_get_first_day_week($day, $month, $year);
|
||||||
|
$this->assertEquals(2, (int) $prev['first_day']); // monday for month 2, year 2014 is the 2
|
||||||
|
|
||||||
|
$day=3; $month=2; $year=2015;
|
||||||
|
$conf->global->MAIN_START_WEEK = 0; // start on sunday
|
||||||
|
$prev = dol_get_first_day_week($day, $month, $year);
|
||||||
|
$this->assertEquals(1, (int) $prev['first_day']); // sunday for month 2, year 2015 is the 1st
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -890,4 +890,32 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testDolGetDate
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function testDolGetDate()
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
$conf->global->MAIN_START_WEEK = 0;
|
||||||
|
|
||||||
|
$tmp=dol_getdate(1); // 1/1/1970 and 1 second = thirday
|
||||||
|
$this->assertEquals(4, $tmp['wday']);
|
||||||
|
|
||||||
|
$tmp=dol_getdate(24*60*60+1); // 2/1/1970 and 1 second = friday
|
||||||
|
$this->assertEquals(5, $tmp['wday']);
|
||||||
|
|
||||||
|
$conf->global->MAIN_START_WEEK = 1;
|
||||||
|
|
||||||
|
$tmp=dol_getdate(1); // 1/1/1970 and 1 second = thirday
|
||||||
|
$this->assertEquals(4, $tmp['wday']);
|
||||||
|
|
||||||
|
$tmp=dol_getdate(24*60*60+1); // 2/1/1970 and 1 second = friday
|
||||||
|
$this->assertEquals(5, $tmp['wday']);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user