diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php
index f58adcba84b..0d7c1946abe 100644
--- a/htdocs/comm/action/index.php
+++ b/htdocs/comm/action/index.php
@@ -20,11 +20,11 @@
*/
/**
- \file htdocs/comm/action/index.php
- \ingroup agenda
- \brief Page accueil des rapports des actions
- \version $Id$
-*/
+ \file htdocs/comm/action/index.php
+ \ingroup agenda
+ \brief Page accueil des rapports des actions
+ \version $Id$
+ */
require_once("./pre.inc.php");
require_once(DOL_DOCUMENT_ROOT."/contact.class.php");
@@ -141,7 +141,7 @@ if ($_GET["type"]) $param.="&type=".$_REQUEST["type"];
// Show navigation bar
$nav ="".img_previous($langs->trans("Previous"))."\n";
$nav.=" ".dolibarr_print_date(dolibarr_mktime(0,0,0,$month,1,$year),"%b");
-$nav.=" $year";
+$nav.=" ".$year;
$nav.=" \n";
$nav.="".img_next($langs->trans("Next"))."\n";
@@ -178,7 +178,7 @@ if ($canedit)
print '
';
print '';
//print ' ';
@@ -200,9 +200,14 @@ $sql.= ' '.$db->pdate('a.datea').' as datea,';
$sql.= ' '.$db->pdate('a.datea2').' as datea2,';
$sql.= ' a.percent,';
$sql.= ' a.fk_user_author,a.fk_user_action,a.fk_user_done';
-$sql.= ' FROM '.MAIN_DB_PREFIX.'actioncomm as a';
+$sql.= ' FROM '.MAIN_DB_PREFIX.'actioncomm as a';
$sql.= ' WHERE 1=1';
-if ($filtera > 0 || $filtert > 0 || $filterd > 0)
+if ($_GET["action"] == 'show_day')
+{
+ $sql.= ' AND datep BETWEEN '.$db->idate(dolibarr_mktime(0,0,0,$month,$_GET["day"],$year));
+ $sql.= ' AND '.$db->idate(dolibarr_mktime(23,59,59,$month,$_GET["day"],$year));
+}
+if ($filtera > 0 || $filtert > 0 || $filterd > 0)
{
$sql.= " AND (";
if ($filtera > 0) $sql.= " a.fk_user_author = ".$filtera;
@@ -212,11 +217,12 @@ if ($filtera > 0 || $filtert > 0 || $filterd > 0)
}
if ($status == 'done') { $sql.= " AND a.percent = 100"; }
if ($status == 'todo') { $sql.= " AND a.percent < 100"; }
+$sql .= ' ORDER BY datep';
// \TODO Add filters on dates
//print $sql;
$actionarray=array();
-$resql=$db->query($sql);
+$resql=$db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
@@ -234,8 +240,10 @@ if ($resql)
$action->author->id=$obj->fk_user_author;
$action->usertodo->id=$obj->fk_user_action;
$action->userdone->id=$obj->fk_user_done;
-
+
// Defined date_start_in_calendar and date_end_in_calendar property
+ // They are date start and end of action but modified to not be outside
+ // calendar view.
if ($action->percentage <= 0)
{
$action->date_start_in_calendar=$action->datep;
@@ -248,20 +256,20 @@ if ($resql)
if ($action->datef != '' && $action->datef >= $action->datep) $action->date_end_in_calendar=$action->datef;
else $action->date_end_in_calendar=$action->datep;
}
- // Define ponctuel property
+ // Define ponctual property
if ($action->date_start_in_calendar == $action->date_end_in_calendar)
{
$action->ponctuel=1;
}
// Add an entry in actionarray for each day
- // \TODO
$daycursor=$action->date_start_in_calendar;
$annee = date('Y',$daycursor);
$mois = date('m',$daycursor);
$jour = date('d',$daycursor);
- $daykey=dolibarr_mktime(0,0,0,$mois,$jour,$annee);
+
$loop=true;
+ $daykey=dolibarr_mktime(0,0,0,$mois,$jour,$annee);
do
{
$actionarray[$daykey][]=$action;
@@ -285,60 +293,80 @@ if (is_readable($color_file))
}
if (! is_array($theme_datacolor)) $theme_datacolor=array(array(120,130,150), array(200,160,180), array(190,190,220));
-echo '';
-echo ' ';
-echo ' | '.$langs->trans("Monday")." | \n";
-echo ' '.$langs->trans("Tuesday")." | \n";
-echo ' '.$langs->trans("Wednesday")." | \n";
-echo ' '.$langs->trans("Thursday")." | \n";
-echo ' '.$langs->trans("Friday")." | \n";
-echo ' '.$langs->trans("Saturday")." | \n";
-echo ' '.$langs->trans("Sunday")." | \n";
-echo " \n";
-
-for($iter_week = 0; $iter_week < 6 ; $iter_week++)
+if ($_GET["action"] != 'show_day')
{
- echo " \n";
- for($iter_day = 0; $iter_day < 7; $iter_day++)
- {
- /* Show days before the beginning of the current month
- (previous month) */
- if($day <= 0)
- {
- $style='cal_other_month';
- echo ' | ';
- show_day_events ($db, $max_day_in_prev_month + $day, $prev_month, $prev_year, $style, $actionarray);
- echo " | \n";
- }
- /* Show days of the current month */
- elseif(($day <= $max_day_in_month))
- {
- $curtime = dolibarr_mktime (0, 0, 0, $month, $day, $year);
-
- if ($curtime < $now)
- $style='cal_current_month';
- else if($curtime == $now)
- $style='cal_today';
- else
- $style='cal_current_month';
-
- echo ' ';
- show_day_events ($db, $day, $month, $year, $style, $actionarray);
- echo " | \n";
- }
- /* Show days after the current month (next month) */
- else
- {
- $style='cal_other_month';
- echo ' ';
- show_day_events ($db, $day - $max_day_in_month, $next_month, $next_year, $style, $actionarray);
- echo " | \n";
- }
- $day++;
- }
+ echo '';
+ echo ' ';
+ echo ' | '.$langs->trans("Monday")." | \n";
+ echo ' '.$langs->trans("Tuesday")." | \n";
+ echo ' '.$langs->trans("Wednesday")." | \n";
+ echo ' '.$langs->trans("Thursday")." | \n";
+ echo ' '.$langs->trans("Friday")." | \n";
+ echo ' '.$langs->trans("Saturday")." | \n";
+ echo ' '.$langs->trans("Sunday")." | \n";
echo " \n";
+ for($iter_week = 0; $iter_week < 6 ; $iter_week++)
+ {
+ echo " \n";
+ for($iter_day = 0; $iter_day < 7; $iter_day++)
+ {
+ /* Show days before the beginning of the current month
+ (previous month) */
+ if($day <= 0)
+ {
+ $style='cal_other_month';
+ echo ' | ';
+ show_day_events ($db, $max_day_in_prev_month + $day, $prev_month, $prev_year, $style, $actionarray,3);
+ echo " | \n";
+ }
+ /* Show days of the current month */
+ elseif(($day <= $max_day_in_month))
+ {
+ $curtime = dolibarr_mktime (0, 0, 0, $month, $day, $year);
+
+ if ($curtime < $now)
+ $style='cal_current_month';
+ else if($curtime == $now)
+ $style='cal_today';
+ else
+ $style='cal_current_month';
+
+ echo ' ';
+ show_day_events($db, $day, $month, $year, $style, $actionarray, 3);
+ echo " | \n";
+ }
+ /* Show days after the current month (next month) */
+ else
+ {
+ $style='cal_other_month';
+ echo ' ';
+ show_day_events($db, $day - $max_day_in_month, $next_month, $next_year, $style, $actionarray, 3);
+ echo " | \n";
+ }
+ $day++;
+ }
+ echo " \n";
+ }
+ echo " \n";
+}
+else
+{
+
+ $style='cal_current_month';
+ $timestamp=dolibarr_mktime(12,0,0,$month,$_GET["day"],$year);
+ $arraytimestamp=adodb_getdate(dolibarr_mktime(12,0,0,$month,$_GET["day"],$year));
+ $dayname=array('0'=>'Sunday','1'=>'Monday','2'=>'Tuesday','3'=>'Wednesday','4'=>'Thursday','5'=>'Friday','6'=>'Saturday');
+ echo '';
+ echo ' ';
+ echo ' | '.$langs->trans($dayname[$arraytimestamp['wday']])." | \n";
+ echo " \n";
+ echo " \n";
+ echo ' | ';
+ show_day_events ($db, $_GET["day"], $month, $year, $style, $actionarray);
+ echo " | \n";
+ echo " \n";
+ echo ' ';
}
-echo " \n";
$db->close();
@@ -346,20 +374,31 @@ $db->close();
llxFooter('$Date$ - $Revision$');
-
-/** \brief Show event of a particular day
-*/
-function show_day_events($db, $day, $month, $year, $style, $actionarray)
+/**
+ * \brief Show event of a particular day
+ *
+ * @param unknown_type $db Database handler
+ * @param unknown_type $day Day
+ * @param unknown_type $month Month
+ * @param unknown_type $year Year
+ * @param unknown_type $style Style to use for this day
+ * @param unknown_type $actionarray Array of actions
+ * @param unknown_type $maxPrint Nb of actions to show each day on month view
+ */
+function show_day_events($db, $day, $month, $year, $style, $actionarray, $maxPrint=-1)
{
global $user, $conf, $langs;
global $filtera, $filtert, $filted;
global $theme_datacolor;
-
+ if ($_GET["action"] == 'maxPrint')
+ {
+ $maxPrint=-1;
+ }
$curtime = dolibarr_mktime (0, 0, 0, $month, $day, $year);
print '';
print '| ';
- print dolibarr_print_date($curtime,'%a %d');
+ print ''.dolibarr_print_date($curtime,'%a %d').'';
print ' | ';
print '';
print img_picto($langs->trans("NewAction"),'edit_add.png');
@@ -369,6 +408,8 @@ function show_day_events($db, $day, $month, $year, $style, $actionarray)
//$curtime = dolibarr_mktime (0, 0, 0, $month, $day, $year);
$i=0;
+ $ok=true;
+
foreach ($actionarray as $daykey => $notused)
{
$annee = date('Y',$daykey);
@@ -378,51 +419,60 @@ function show_day_events($db, $day, $month, $year, $style, $actionarray)
{
foreach ($actionarray[$daykey] as $index => $action)
{
- $ponct=($action->date_start_in_calendar == $action->date_end_in_calendar);
- // Show rect of event
- $colorindex=0;
- if ($action->author->id == $user->id || $action->usertodo->id == $user->id || $action->userdone->id == $user->id) $colorindex=1;
- $color=sprintf("%02x%02x%02x",$theme_datacolor[$colorindex][0],$theme_datacolor[$colorindex][1],$theme_datacolor[$colorindex][2]);
- //print "x".$color;
- print '';
- print '';
- $tmpyearstart = date('Y',$action->date_start_in_calendar);
- $tmpmonthstart = date('m',$action->date_start_in_calendar);
- $tmpdaystart = date('d',$action->date_start_in_calendar);
- $tmpyearend = date('Y',$action->date_end_in_calendar);
- $tmpmonthend = date('m',$action->date_end_in_calendar);
- $tmpdayend = date('d',$action->date_end_in_calendar);
- // Hour start
- if ($tmpyearstart == $annee && $tmpmonthstart == $mois && $tmpdaystart == $jour)
+
+ if ($i < $maxPrint || $maxPrint == -1)
{
- print dolibarr_print_date($action->date_start_in_calendar,'%H:%M');
+ $ponct=($action->date_start_in_calendar == $action->date_end_in_calendar);
+ // Show rect of event
+ $colorindex=0;
+ if ($action->author->id == $user->id || $action->usertodo->id == $user->id || $action->userdone->id == $user->id) $colorindex=1;
+ $color=sprintf("%02x%02x%02x",$theme_datacolor[$colorindex][0],$theme_datacolor[$colorindex][1],$theme_datacolor[$colorindex][2]);
+ //print "x".$color;
+ print '';
+ print '';
+ $tmpyearstart = date('Y',$action->date_start_in_calendar);
+ $tmpmonthstart = date('m',$action->date_start_in_calendar);
+ $tmpdaystart = date('d',$action->date_start_in_calendar);
+ $tmpyearend = date('Y',$action->date_end_in_calendar);
+ $tmpmonthend = date('m',$action->date_end_in_calendar);
+ $tmpdayend = date('d',$action->date_end_in_calendar);
+ // Hour start
+ if ($tmpyearstart == $annee && $tmpmonthstart == $mois && $tmpdaystart == $jour)
+ {
+ print dolibarr_print_date($action->date_start_in_calendar,'%H:%M');
+ if ($action->date_end_in_calendar && $action->date_start_in_calendar != $action->date_end_in_calendar)
+ {
+ if ($tmpyearstart == $tmpyearend && $tmpmonthstart == $tmpmonthend && $tmpdaystart == $tmpdayend)
+ print '-';
+ //else
+ //print '...';
+ }
+ }
if ($action->date_end_in_calendar && $action->date_start_in_calendar != $action->date_end_in_calendar)
{
- if ($tmpyearstart == $tmpyearend && $tmpmonthstart == $tmpmonthend && $tmpdaystart == $tmpdayend)
- print '-';
- //else
- //print '...';
+ if ($tmpyearstart != $tmpyearend || $tmpmonthstart != $tmpmonthend || $tmpdaystart != $tmpdayend)
+ {
+ print '...';
+ }
}
- }
- if ($action->date_end_in_calendar && $action->date_start_in_calendar != $action->date_end_in_calendar)
- {
- if ($tmpyearstart != $tmpyearend || $tmpmonthstart != $tmpmonthend || $tmpdaystart != $tmpdayend)
+ // Hour end
+ if ($action->date_end_in_calendar && $action->date_start_in_calendar != $action->date_end_in_calendar)
{
- print '...';
- }
- }
- // Hour end
- if ($action->date_end_in_calendar && $action->date_start_in_calendar != $action->date_end_in_calendar)
- {
- if ($tmpyearend == $annee && $tmpmonthend == $mois && $tmpdayend == $jour)
+ if ($tmpyearend == $annee && $tmpmonthend == $mois && $tmpdayend == $jour)
print dolibarr_print_date($action->date_end_in_calendar,'%H:%M');
+ }
+ print ' ';
+ print $action->getNomUrl(0,14,'cal_event');
+ print ' | ';
+ print ''.$action->getLibStatut(3);
+ print ' | ';
+ $i++;
+ }
+ else if($ok)
+ {
+ print ''.img_picto("all","1downarrow_selected.png").'';
+ $ok=false;
}
- print ' ';
- print $action->getNomUrl(0,14,'cal_event');
- print ' | ';
- print ''.$action->getLibStatut(3);
- print ' | ';
- $i++;
}
}
}
| |