Commit f253df40 authored by Frank Bergmann's avatar Frank Bergmann
parents d29444d2 abd52e0b
...@@ -126,8 +126,16 @@ ad_proc -public im_timesheet2_sync_timesheet_costs { ...@@ -126,8 +126,16 @@ ad_proc -public im_timesheet2_sync_timesheet_costs {
create costs for new im_hours entries coming create costs for new im_hours entries coming
from an external application from an external application
} { } {
ns_log Notice "im_timesheet2_sync_timesheet_costs -user_id $user_id -project_id $project_id -julian_date $julian_date"
set sync_timesheet_costs [parameter::get_from_package_key -package_key intranet-timesheet2 -parameter SyncHoursP -default 1] set sync_timesheet_costs [parameter::get_from_package_key -package_key intranet-timesheet2 -parameter SyncHoursP -default 1]
if {!$sync_timesheet_costs} { return } if {"0" eq $sync_timesheet_costs} { return }
if {"1" ne $sync_timesheet_costs} {
# Use custom procedure to sync hours
ns_log Notice "im_timesheet2_sync_timesheet_costs: custom sync procedure '$sync_timesheet_costs'"
set result [$sync_timesheet_costs -user_id $user_id -project_id $project_id -julian_date $julian_date]
ns_log Notice "im_timesheet2_sync_timesheet_costs: custom sync: $result"
return $result
}
set default_currency [im_parameter -package_id [im_package_cost_id] "DefaultCurrency" "" "EUR"] set default_currency [im_parameter -package_id [im_package_cost_id] "DefaultCurrency" "" "EUR"]
set default_hourly_cost [parameter::get_from_package_key -package_key intranet-cost -parameter DefaultTimesheetHourlyCost -default 100] set default_hourly_cost [parameter::get_from_package_key -package_key intranet-cost -parameter DefaultTimesheetHourlyCost -default 100]
...@@ -175,7 +183,7 @@ ad_proc -public im_timesheet2_sync_timesheet_costs { ...@@ -175,7 +183,7 @@ ad_proc -public im_timesheet2_sync_timesheet_costs {
db_foreach hours $sql { db_foreach hours $sql {
ns_log Notice "sync: uid=$hour_user_id, pid=$project_id, day=$day" ns_log Notice "sync: uid=$hour_user_id, pid=$project_id, day=$day"
set cost_name "Timesheet $hour_date $project_nr $user_name" set cost_name "$hours hours on $hour_date on $project_nr by $user_name"
set cost_id [im_cost::new -cost_name $cost_name -user_id $hour_user_id -creation_ip "0.0.0.0" -cost_type_id [im_cost_type_timesheet]] set cost_id [im_cost::new -cost_name $cost_name -user_id $hour_user_id -creation_ip "0.0.0.0" -cost_type_id [im_cost_type_timesheet]]
lappend cost_ids $cost_id lappend cost_ids $cost_id
db_dml update_hours " db_dml update_hours "
...@@ -262,7 +270,6 @@ ad_proc -public im_timesheet_home_component {user_id} { ...@@ -262,7 +270,6 @@ ad_proc -public im_timesheet_home_component {user_id} {
the current project and a link to log the users hours. the current project and a link to log the users hours.
} { } {
if {[im_security_alert_check_integer -location im_timesheet_home_component -message "SQL Injection Attempt" -value $user_id]} { set user_id 0 } if {[im_security_alert_check_integer -location im_timesheet_home_component -message "SQL Injection Attempt" -value $user_id]} { set user_id 0 }
# skip the entire component if the user doesn't have # skip the entire component if the user doesn't have
# the permission to log hours # the permission to log hours
set add_hours [im_permission $user_id "add_hours"] set add_hours [im_permission $user_id "add_hours"]
...@@ -271,6 +278,7 @@ ad_proc -public im_timesheet_home_component {user_id} { ...@@ -271,6 +278,7 @@ ad_proc -public im_timesheet_home_component {user_id} {
set add_absences [im_permission $user_id "add_absences"] set add_absences [im_permission $user_id "add_absences"]
set view_hours_all [im_permission $user_id view_hours_all] set view_hours_all [im_permission $user_id view_hours_all]
if {!$add_hours && !$add_absences && !$view_hours_all} { return "" } if {!$add_hours && !$add_absences && !$view_hours_all} { return "" }
set admin_p [im_is_user_site_wide_or_intranet_admin $user_id]
# Get the number of hours in the number of days, and whether # Get the number of hours in the number of days, and whether
# we should redirect if the user didn't log them... # we should redirect if the user didn't log them...
...@@ -305,8 +313,9 @@ ad_proc -public im_timesheet_home_component {user_id} { ...@@ -305,8 +313,9 @@ ad_proc -public im_timesheet_home_component {user_id} {
in the last $num_days days out of $expected_hours expected hours. in the last $num_days days out of $expected_hours expected hours.
" "
set message "<b>[lang::message::lookup "" intranet-timesheet2.You_need_to_log_hours $default_message]</b>" set message "<b>[lang::message::lookup "" intranet-timesheet2.You_need_to_log_hours $default_message]</b>"
if {$redirect_p} { # Only redirect if it's not the admin...
if {$redirect_p && !$admin_p} {
set header [lang::message::lookup "" intranet-timesheet2.Please_Log_Your_Hours "Please Log Your Hours"] set header [lang::message::lookup "" intranet-timesheet2.Please_Log_Your_Hours "Please Log Your Hours"]
ad_returnredirect [export_vars -base "/intranet-timesheet2/hours/index" {header message}] ad_returnredirect [export_vars -base "/intranet-timesheet2/hours/index" {header message}]
} }
......
...@@ -22,6 +22,8 @@ if {![info exists panel_p]} { ...@@ -22,6 +22,8 @@ if {![info exists panel_p]} {
{ user_id_from_search "" } { user_id_from_search "" }
{ duration_days "" } { duration_days "" }
} }
} else {
set user_id_from_search ""
} }
if {![info exists enable_master_p]} { set enable_master_p 1} if {![info exists enable_master_p]} { set enable_master_p 1}
...@@ -90,7 +92,7 @@ if {![info exists absence_id]} { ...@@ -90,7 +92,7 @@ if {![info exists absence_id]} {
set page_title [lang::message::lookup "" intranet-timesheet2.Absence_absence_type "%absence_type%"] set page_title [lang::message::lookup "" intranet-timesheet2.Absence_absence_type "%absence_type%"]
} }
if {([info exists user_id_from_search] && $user_id_from_search ne "")} { if {$user_id_from_search ne ""} {
set user_from_search_name [db_string name "select im_name_from_user_id(:user_id_from_search)" -default ""] set user_from_search_name [db_string name "select im_name_from_user_id(:user_id_from_search)" -default ""]
append page_title " " append page_title " "
append page_title [lang::message::lookup "" intranet-timesheet2.for_username " for %user_from_search_name%"] append page_title [lang::message::lookup "" intranet-timesheet2.for_username " for %user_from_search_name%"]
...@@ -208,9 +210,6 @@ if {[info exists absence_id]} { ...@@ -208,9 +210,6 @@ if {[info exists absence_id]} {
set edit_p [eval [list $edit_perm_func -absence_id $absence_id]] set edit_p [eval [list $edit_perm_func -absence_id $absence_id]]
set delete_p [eval [list $delete_perm_func -absence_id $absence_id]] set delete_p [eval [list $delete_perm_func -absence_id $absence_id]]
# ad_return_complaint 1 "edit_p=$edit_p, delete_p=$delete_p, admin=$admin, user_admin_p=$user_admin_p, edit_func=$edit_perm_func, delete_perm_func=$delete_perm_func"
if {$user_admin_p || $edit_p} { if {$user_admin_p || $edit_p} {
lappend actions [list [lang::message::lookup {} intranet-timesheet2.Edit Edit] edit] lappend actions [list [lang::message::lookup {} intranet-timesheet2.Edit Edit] edit]
} }
...@@ -380,10 +379,18 @@ ad_form -extend -name absence -on_request { ...@@ -380,10 +379,18 @@ ad_form -extend -name absence -on_request {
} -validate { } -validate {
{duration_days {
duration_days
{[im_absence_formatted_duration_to_days $duration_days] > 0} {[im_absence_formatted_duration_to_days $duration_days] > 0}
"Positive number expected" "Positive number expected"
} }
{
start_date
{ [lindex $start_date 0] >= [db_string this_year "select extract(year from now())"] || $user_admin_p }
"You can not create new absences for the last year or earlier.<br>
Please contact your administrator for exceptions."
}
} -new_data { } -new_data {
......
...@@ -30,20 +30,21 @@ ...@@ -30,20 +30,21 @@
</tr> </tr>
<tr class=rowodd> <tr class=rowodd>
<td><%= [lang::message::lookup "" intranet-timesheet2.Vacation_Taken_This_Year "Vacation taken this Year"] %></td> <td><%= [lang::message::lookup "" intranet-timesheet2.Vacation_Taken_This_Year "Vacation taken this Year"] %></td>
<td>@vacation_days_taken@</td> <td><%= [format "%.2f" $vacation_days_taken] %></td>
</tr> </tr>
<tr class=rowodd> <tr class=rowodd>
<td><%= [lang::message::lookup "" intranet-timesheet2.Vacation_Left_for_Period "Vacation Days left for Period"] %></td> <td><%= [lang::message::lookup "" intranet-timesheet2.Vacation_Left_for_Period "Vacation Days left for Period"] %></td>
<td>@vacation_days_left@</td> <td>@vacation_days_left@</td>
</tr> </tr>
</table> </table>
</if>
<if @view_absences_details_p@>
<br> <br>
<h2><%=[lang::message::lookup "" intranet-timesheet2.Absences_This_Year "Current Year"]%></h2> <h2><%=[lang::message::lookup "" intranet-timesheet2.Absences_This_Year "Current Year"]%></h2>
<listtemplate name="vacation_balance"></listtemplate> <listtemplate name="vacation_balance"></listtemplate>
<br> <br>
<h2><%=[lang::message::lookup "" intranet-timesheet2.Absences_Next_Year "Next Year"]%></h2> <h2><%=[lang::message::lookup "" intranet-timesheet2.Absences_Next_Year "Next Year"]%></h2>
<listtemplate name="vacation_days_next_year"></listtemplate> <listtemplate name="vacation_days_next_year"></listtemplate>
</if> </if>
...@@ -35,19 +35,21 @@ set view_absences_p [im_permission $current_user_id "view_absences"] ...@@ -35,19 +35,21 @@ set view_absences_p [im_permission $current_user_id "view_absences"]
set view_absences_all_p [im_permission $current_user_id "view_absences_all"] set view_absences_all_p [im_permission $current_user_id "view_absences_all"]
set add_absences_p [im_permission $current_user_id "add_absences"] set add_absences_p [im_permission $current_user_id "add_absences"]
set today [db_string today "select now()::date"] set today [db_string today "select now()::date"]
set page_title [lang::message::lookup "" intranet-timesheet2.Vacation_Balance "Vacation Balance"] set page_title [lang::message::lookup "" intranet-timesheet2.Vacation_Balance "Vacation Balance"]
set absence_base_url "/intranet-timesheet2/absences" set absence_base_url "/intranet-timesheet2/absences"
set return_url [im_url_with_query] set return_url [im_url_with_query]
set user_view_url "/intranet/users/view" set user_view_url "/intranet/users/view"
set current_year [db_string current_year "select to_char(now(), 'YYYY')"] set current_year [db_string current_year "select to_char(now(), 'YYYY')"]
set start_of_year "$current_year-01-01" set start_of_year "$current_year-01-01"
set end_of_year "$current_year-12-31" set end_of_year "$current_year-12-31"
# Absence details should be only visible for those managing HR or the specific user (ToDo)
set view_absences_details_p 0
if {[im_permission $current_user_id "view_absences_for_group"]} { set view_absences_details_p 1 }
if {[im_permission $current_user_id "view_hr"]} { set view_absences_details_p 1 }
if {$current_user_id == $user_id_from_search} { set view_absences_details_p 1 }; # the user him/herself
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# User Info # User Info
# ------------------------------------------------------------------ # ------------------------------------------------------------------
......
...@@ -41,6 +41,12 @@ ad_page_contract { ...@@ -41,6 +41,12 @@ ad_page_contract {
hours5:array,optional hours5:array,optional
hours6:array,optional hours6:array,optional
notes0:array,optional notes0:array,optional
notes1:array,optional
notes2:array,optional
notes3:array,optional
notes4:array,optional
notes5:array,optional
notes6:array,optional
internal_notes0:array,optional internal_notes0:array,optional
materials0:array,optional materials0:array,optional
etc:array,optional etc:array,optional
...@@ -334,6 +340,7 @@ foreach j $weekly_logging_days { ...@@ -334,6 +340,7 @@ foreach j $weekly_logging_days {
if {"skip" == $action && !$show_week_p && $db_notes != $screen_notes} { set action update } if {"skip" == $action && !$show_week_p && $db_notes != $screen_notes} { set action update }
if {"skip" == $action && !$show_week_p && $db_internal_notes != $screen_internal_notes} { set action update } if {"skip" == $action && !$show_week_p && $db_internal_notes != $screen_internal_notes} { set action update }
if {"skip" == $action && !$show_week_p && $db_materials != $screen_materials} { set action update } if {"skip" == $action && !$show_week_p && $db_materials != $screen_materials} { set action update }
if {"skip" != $action} { set action_hash($pid) $action } if {"skip" != $action} { set action_hash($pid) $action }
} }
......
...@@ -374,7 +374,7 @@ set missing_member_sql " ...@@ -374,7 +374,7 @@ set missing_member_sql "
select * select *
from acs_rels r2 from acs_rels r2
where r2.object_id_one = p.parent_id and where r2.object_id_one = p.parent_id and
r2.object_id_two = :user_id_from_search r2.object_id_two = :user_id_from_search
) )
" "
set debug_ul "" set debug_ul ""
...@@ -662,7 +662,7 @@ set child_project_sql " ...@@ -662,7 +662,7 @@ set child_project_sql "
# #
set sort_integer_p 0 set sort_integer_p 0
set sort_legacy_p 0 set sort_legacy_p 0
switch $list_sort_order { switch $list_sort_order {
nr { nr {
set sort_order "lower(children.project_nr)" set sort_order "lower(children.project_nr)"
...@@ -1238,7 +1238,7 @@ template::multirow foreach hours_multirow { ...@@ -1238,7 +1238,7 @@ template::multirow foreach hours_multirow {
set i 0 set i 0
foreach j $weekly_logging_days { foreach j $weekly_logging_days {
set julian_day_offset [expr {$julian_date + $i}] set julian_day_offset [expr $julian_date + $i]
set hours "" set hours ""
set note "" set note ""
set internal_note "" set internal_note ""
...@@ -1283,7 +1283,7 @@ template::multirow foreach hours_multirow { ...@@ -1283,7 +1283,7 @@ template::multirow foreach hours_multirow {
if { "t" == $edit_hours_p && $log_on_parent_p && !$invoice_id && !$solitary_main_project_p && !$closed_p && !$filter_surpress_output_p && !$blocked_by_wf_p && !$max_julian_date_exceed_p } { if { "t" == $edit_hours_p && $log_on_parent_p && !$invoice_id && !$solitary_main_project_p && !$closed_p && !$filter_surpress_output_p && !$blocked_by_wf_p && !$max_julian_date_exceed_p } {
# Write editable entries. # Write editable entries.
append table_rows "<td><input name=hours${i}.$project_id size=5 MAXLENGTH=5 value=\"$hours\"></td>\n" append table_rows "<td>\n<input name=hours${i}.$project_id size=5 MAXLENGTH=5 value=\"$hours\">\n"
if {!$show_week_p} { if {!$show_week_p} {
# Normal display - no Estimate to Complete # Normal display - no Estimate to Complete
...@@ -1298,7 +1298,11 @@ template::multirow foreach hours_multirow { ...@@ -1298,7 +1298,11 @@ template::multirow foreach hours_multirow {
if {$etc_planned_hours_no_default} { set etc_planned_hours_user "" };# Don't show default value if you really want an estimate... if {$etc_planned_hours_no_default} { set etc_planned_hours_user "" };# Don't show default value if you really want an estimate...
append table_rows "<td width=20><nobr><input name=etc.$project_id size=1 value=$etc_planned_hours_user> [_ intranet-timesheet2.Hours]</nobr></td>\n" append table_rows "<td width=20><nobr><input name=etc.$project_id size=1 value=$etc_planned_hours_user> [_ intranet-timesheet2.Hours]</nobr></td>\n"
} }
} else {
# show_week_p
append table_rows "<input name=notes${i}.$project_id type=hidden value=\"[ns_quotehtml [value_if_exists note]]\">\n"
} }
append table_rows "\n</td>\n"
} else { } else {
if { $filter_surpress_output_p } { if { $filter_surpress_output_p } {
# Filter in use - write only hidden fields # Filter in use - write only hidden fields
......
...@@ -118,10 +118,11 @@ ad_proc im_do_row { ...@@ -118,10 +118,11 @@ ad_proc im_do_row {
{ today_date } { today_date }
{ descrl } { descrl }
{ workflow_key } { workflow_key }
{ number_locale }
{ output_format }
} { } {
Returns a row with the hours loged of one user Returns a row with the hours loged of one user
'days' is a list of dates in format 'YYYYMMDD' with seven elements, first day 'days' is a list of dates in format 'YYYYMMDD' with seven elements, first day
} { } {
set user_view_page "/intranet/users/view" set user_view_page "/intranet/users/view"
set absence_view_page "/intranet-timesheet2/absences/new?form_mode=display" set absence_view_page "/intranet-timesheet2/absences/new?form_mode=display"
...@@ -191,7 +192,10 @@ ad_proc im_do_row { ...@@ -191,7 +192,10 @@ ad_proc im_do_row {
# Check for hours logged and write hours logged for this day (if applicable) # Check for hours logged and write hours logged for this day (if applicable)
if { [info exists user_days([lindex $days $i])] } { if { [info exists user_days([lindex $days $i])] } {
lappend cell_text "$user_days([lindex $days $i]) $label_hours_weekly_report"
set user_days_formatted [im_report_format_number $user_days([lindex $days $i]) $output_format $number_locale]
lappend cell_text "$user_days_formatted $label_hours_weekly_report"
set absent_p "t" set absent_p "t"
if { "" != $workflow_key } { if { "" != $workflow_key } {
switch $wf_status_array([lindex $days $i]) { switch $wf_status_array([lindex $days $i]) {
...@@ -212,7 +216,8 @@ ad_proc im_do_row { ...@@ -212,7 +216,8 @@ ad_proc im_do_row {
# If no hours are logged and no absences are registered, set bg color of cell to yellow # If no hours are logged and no absences are registered, set bg color of cell to yellow
if { $absent_p == "f" } { if { $absent_p == "f" } {
# lappend cell_text "[_ intranet-timesheet2.No_hours_logged]" # lappend cell_text "[_ intranet-timesheet2.No_hours_logged]"
lappend cell_text "0.00 $label_hours_weekly_report" set zero_formatted [im_report_format_number 0.00 $output_format $number_locale]
lappend cell_text "$zero_formatted $label_hours_weekly_report"
lappend cell_param "style=\"background-color: #ffcc66;\"" lappend cell_param "style=\"background-color: #ffcc66;\""
} }
...@@ -221,6 +226,7 @@ ad_proc im_do_row { ...@@ -221,6 +226,7 @@ ad_proc im_do_row {
if { [lsearch -exact $holydays [lindex $days $i]] >= 0 && !$color_code_we_p } { if { [lsearch -exact $holydays [lindex $days $i]] >= 0 && !$color_code_we_p } {
set cell_param "style=\"background-color: \#DDDDDD;\"" set cell_param "style=\"background-color: \#DDDDDD;\""
} }
lappend cell_param "align=right"
append html "<td [join $cell_param " "]>[join $cell_text "<br>"]</td>\n" append html "<td [join $cell_param " "]>[join $cell_text "<br>"]</td>\n"
} }
append html "</tr>\n" append html "</tr>\n"
...@@ -254,9 +260,11 @@ ad_page_contract { ...@@ -254,9 +260,11 @@ ad_page_contract {
{ project_id:integer 0 } { project_id:integer 0 }
{ duration:integer "7" } { duration:integer "7" }
{ start_at:integer "" } { start_at:integer "" }
{ display "project" } { display:word "project" }
{ cost_center_id:integer 0 } { cost_center_id:integer 0 }
{ workflow_key:word ""} { workflow_key:word ""}
{ output_format "html" }
{ number_locale "" }
} }
# --------------------------------------------------------------- # ---------------------------------------------------------------
...@@ -268,6 +276,9 @@ set subsite_id [ad_conn subsite_id] ...@@ -268,6 +276,9 @@ set subsite_id [ad_conn subsite_id]
set site_url "/intranet-timesheet2" set site_url "/intranet-timesheet2"
set return_url "$site_url/weekly_report" set return_url "$site_url/weekly_report"
set date_format "YYYYMMDD" set date_format "YYYYMMDD"
set locale [lang::user::locale]
if {"" == $number_locale} { set number_locale $locale }
if { "" ne $owner_id && $owner_id != $user_id && ![im_permission $user_id "view_hours_all"] } { if { "" ne $owner_id && $owner_id != $user_id && ![im_permission $user_id "view_hours_all"] } {
ad_return_complaint 1 "<li>[_ intranet-timesheet2.lt_You_have_no_rights_to]" ad_return_complaint 1 "<li>[_ intranet-timesheet2.lt_You_have_no_rights_to]"
...@@ -283,8 +294,6 @@ if { $start_at eq "" && $project_id != 0 } { ...@@ -283,8 +294,6 @@ if { $start_at eq "" && $project_id != 0 } {
ad_returnredirect [export_vars -base $return_url {start_at duration project_id owner_id workflow_key}] ad_returnredirect [export_vars -base $return_url {start_at duration project_id owner_id workflow_key}]
} }
if {$start_at eq ""} { if {$start_at eq ""} {
set start_at [db_string get_today "select to_char(next_day(to_date(to_char(sysdate,:date_format),:date_format)+1, 'sun'), :date_format) from dual"] set start_at [db_string get_today "select to_char(next_day(to_date(to_char(sysdate,:date_format),:date_format)+1, 'sun'), :date_format) from dual"]
} else { } else {
...@@ -317,8 +326,7 @@ if { $project_id != 0 } { ...@@ -317,8 +326,7 @@ if { $project_id != 0 } {
[export_vars -form {start_at duration project_id owner_id workflow_key}] [export_vars -form {start_at duration project_id owner_id workflow_key}]
<table border=0 cellpadding=0 cellspacing=0> <table border=0 cellpadding=0 cellspacing=0>
<tr> <tr>
<td colspan='2' class=rowtitle align=center> <td colspan='2' class=rowtitle align=center>[_ intranet-timesheet2.Filter]
[_ intranet-timesheet2.Filter]
</td> </td>
</tr> </tr>
<tr> <tr>
...@@ -346,8 +354,22 @@ if { $project_id != 0 } { ...@@ -346,8 +354,22 @@ if { $project_id != 0 } {
<div class='filter-title'>[_ intranet-timesheet2.Filter]</div> <div class='filter-title'>[_ intranet-timesheet2.Filter]</div>
<table border=0 cellpadding=5 cellspacing=5> <table border=0 cellpadding=5 cellspacing=5>
<tr> <tr>
<td valign=top><strong>[_ intranet-core.Cost_Center]:</strong><br>$im_cc_select </td> <td valign=top><strong>[_ intranet-core.Cost_Center]:</strong><br>$im_cc_select</td>
</tr> </tr>
<tr>
<td valign=top><strong>Format:</strong><br>
[im_report_output_format_select output_format "" $output_format]
</td>
</tr>
<tr>
<td valign=top><strong>Number Format</strong><br>
[im_report_number_locale_select number_locale $number_locale]
</td>
</tr>
<tr> <tr>
<td valign=top>&nbsp;</td> <td valign=top>&nbsp;</td>
</tr> </tr>
...@@ -588,6 +610,8 @@ db_foreach get_hours $sql { ...@@ -588,6 +610,8 @@ db_foreach get_hours $sql {
$today_date \ $today_date \
[array get user_ab_descr] \ [array get user_ab_descr] \
$workflow_key \ $workflow_key \
$number_locale \
$output_format \
] ]
set old_owner [list $curr_owner_id $owner_name] set old_owner [list $curr_owner_id $owner_name]
array unset user_days array unset user_days
...@@ -614,7 +638,7 @@ set colspan [expr {[llength $days]+1}] ...@@ -614,7 +638,7 @@ set colspan [expr {[llength $days]+1}]
if { $ctr > 0 } { if { $ctr > 0 } {
# Writing last record # Writing last record
ns_log notice "weekly_report: left loop, now writing last record" ns_log notice "weekly_report: left loop, now writing last record"
append table_body_html [im_do_row [array get bgcolor] $ctr $curr_owner_id $owner_name $days [array get user_days] [array get user_absences] $holydays $today_date [array get user_ab_descr] $workflow_key ] append table_body_html [im_do_row [array get bgcolor] $ctr $curr_owner_id $owner_name $days [array get user_days] [array get user_absences] $holydays $today_date [array get user_ab_descr] $workflow_key $number_locale $output_format]
} elseif { $table_body_html eq "" } { } elseif { $table_body_html eq "" } {
# Show a reasonable message when there are no result rows: # Show a reasonable message when there are no result rows:
set table_body_html " set table_body_html "
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment