← Back to team overview

openerp-community-reviewer team mailing list archive

[Merge] lp:~agilebg/hr-timesheet/hr_attendance_analysis-imp-time_difference-message into lp:hr-timesheet

 

Lorenzo Battistini - Agile BG has proposed merging lp:~agilebg/hr-timesheet/hr_attendance_analysis-imp-time_difference-message into lp:hr-timesheet.

Requested reviews:
  HR Core Editors (hr-core-editors)

For more details, see:
https://code.launchpad.net/~agilebg/hr-timesheet/hr_attendance_analysis-imp-time_difference-message/+merge/225275
-- 
https://code.launchpad.net/~agilebg/hr-timesheet/hr_attendance_analysis-imp-time_difference-message/+merge/225275
Your team HR Core Editors is requested to review the proposed merge of lp:~agilebg/hr-timesheet/hr_attendance_analysis-imp-time_difference-message into lp:hr-timesheet.
=== modified file 'hr_attendance_analysis/hr_attendance.py'
--- hr_attendance_analysis/hr_attendance.py	2014-05-21 22:04:08 +0000
+++ hr_attendance_analysis/hr_attendance.py	2014-07-02 08:57:12 +0000
@@ -75,16 +75,26 @@
     def total_seconds(self, td):
         return (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6
 
-    def time_difference(self, float_start_time, float_end_time):
+    def time_difference(
+        self, float_start_time, float_end_time, attendance_id=False
+    ):
         if float_compare(
             float_end_time, float_start_time, precision_rounding=0.0000001
         ) == -1:
             # that means a difference smaller than 0.36 milliseconds
+            message = _('End time %s < start time %s') % (
+                str(float_end_time), str(float_start_time)
+            if attendance_id:
+                message = _(
+                    'End time %s < start time %s (attendance ID: %s)'
+                    ) % (
+                    str(float_end_time),
+                    str(float_start_time),
+                    str(attendance_id)
+                    )
             raise orm.except_orm(
                 _('Error'),
-                _('End time %s < start time %s') % (
-                    str(float_end_time), str(float_start_time)
-                )
+                message
             )
         delta = self.float_to_datetime(
             float_end_time) - self.float_to_datetime(
@@ -329,9 +339,12 @@
                     res[attendance.id]['inside_calendar_duration'] = intervals_within * precision
                     # make difference using time in order to avoid rounding errors
                     # inside_calendar_duration can't be > duration
-                    res[attendance.id]['outside_calendar_duration'] = self.time_difference(
+                    res[attendance.id][
+                        'outside_calendar_duration'
+                        ] = self.time_difference(
                         res[attendance.id]['inside_calendar_duration'],
-                        res[attendance.id]['duration'])
+                        res[attendance.id]['duration'],
+                        attendance_id = attendance.id)
 
                     if reference_calendar.overtime_rounding:
                         if res[attendance.id]['outside_calendar_duration']: