def test_01(self):
     """Start"""
     date = Datetime.to_string(Datetime.from_string('2014-01-01 00:00:00'))
     self.mock_datetime.now.return_value = date
     self.assertAlmostEqual(self.line.theoritical_amount, 0)
 def test_02(self):
     """After 24 hours"""
     date = Datetime.to_string(Datetime.from_string('2014-01-02 00:00:00'))
     self.mock_datetime.now.return_value = date
     self.assertAlmostEqual(self.line.theoritical_amount, -1)
 def test_09(self):
     """One day before"""
     date = Datetime.to_string(Datetime.from_string('2014-12-30 00:00:00'))
     self.mock_datetime.now.return_value = date
     self.assertAlmostEqual(self.line.theoritical_amount, -363)
 def test_10(self):
     """At last"""
     date = Datetime.to_string(Datetime.from_string('2014-12-31 00:00:00'))
     self.mock_datetime.now.return_value = date
     self.assertAlmostEqual(self.line.theoritical_amount, -364)
示例#5
0
    def setUp(self):
        super(TestResourceCommon, self).setUp()
        self.env.user.tz = 'UTC'

        # Some demo data
        self.date1 = Datetime.from_string(
            '2013-02-12 09:08:07'
        )  # weekday() returns 1, isoweekday() returns 2
        self.date2 = Datetime.from_string(
            '2013-02-15 10:11:12'
        )  # weekday() returns 4, isoweekday() returns 5

        # Resource data
        # Calendar working days: 1 (8-16 -> 8hours), 4 (8-13, 16-23 -> 12hours)
        self.calendar = self.env['resource.calendar'].create({
            'name':
            'TestCalendar',
            'attendance_ids': [(5, 0, 0)]
        })
        self.att_1 = self.env['resource.calendar.attendance'].create({
            'name':
            'Att1',
            'calendar_id':
            self.calendar.id,
            'dayofweek':
            '1',
            'hour_from':
            8,
            'hour_to':
            16
        })
        self.att_2 = self.env['resource.calendar.attendance'].create({
            'name':
            'Att2',
            'calendar_id':
            self.calendar.id,
            'dayofweek':
            '4',
            'hour_from':
            8,
            'hour_to':
            13
        })
        self.att_3 = self.env['resource.calendar.attendance'].create({
            'name':
            'Att3',
            'calendar_id':
            self.calendar.id,
            'dayofweek':
            '4',
            'hour_from':
            16,
            'hour_to':
            23
        })

        self.resource1_id = self.env['resource.resource'].create({
            'name':
            'TestResource1',
            'resource_type':
            'user',
            'time_efficiency':
            150.0,
            'calendar_id':
            self.calendar.id,
        }).id

        # Leave1: 19/02/2013, from 9 to 12, is a day 1
        self.leave1 = self.env['resource.calendar.leaves'].create({
            'name':
            'GenericLeave',
            'calendar_id':
            self.calendar.id,
            'date_from':
            Datetime.from_string('2013-02-19 09:00:00'),
            'date_to':
            Datetime.from_string('2013-02-19 12:00:00')
        })
        # Leave2: 22/02/2013, from 9 to 15, is a day 4
        self.leave2 = self.env['resource.calendar.leaves'].create({
            'name':
            'ResourceLeave',
            'calendar_id':
            self.calendar.id,
            'resource_id':
            self.resource1_id,
            'date_from':
            Datetime.from_string('2013-02-22 09:00:00'),
            'date_to':
            Datetime.from_string('2013-02-22 15:00:00')
        })
        # Leave3: 25/02/2013 (day0) -> 01/03/2013 (day4)
        self.leave3 = self.env['resource.calendar.leaves'].create({
            'name':
            'ResourceLeave2',
            'calendar_id':
            self.calendar.id,
            'resource_id':
            self.resource1_id,
            'date_from':
            Datetime.from_string('2013-02-25 13:00:00'),
            'date_to':
            Datetime.from_string('2013-03-01 11:30:00')
        })
 def test_08(self):
     """After 308 days at noon"""
     date = Datetime.to_string(
         Datetime.from_string('2014-11-05 12:00:00'))  # remember, remember
     self.mock_datetime.now.return_value = date
     self.assertAlmostEqual(self.line.theoritical_amount, -308.5)
示例#7
0
 def _get_acquisition_date(self):
     self.ensure_one()
     return babel.dates.format_date(
         date=Datetime.from_string(self.acquisition_date),
         format='MMMM y',
         locale=self._context.get('lang') or 'en_US')
示例#8
0
 def test_07(self):
     """After 182 days, exactly half of the budget line"""
     date = Datetime.to_string(Datetime.from_string('2014-07-02 00:00:00'))
     self.mock_datetime.now.return_value = date
     self.assertAlmostEqual(self.line.theoritical_amount, -182)
示例#9
0
 def setUpClass(cls):
     super(TestLeadConvert, cls).setUpClass()
     date = Datetime.from_string('2020-01-20 16:00:00')
     cls.crm_lead_dt_mock.now.return_value = date
示例#10
0
    def test_calendar_hours_scheduling_forward_leaves_resource(self):
        res = self.calendar._schedule_hours(
            40,
            day_dt=Datetime.from_string('2013-02-12 09:00:00'),
            compute_leaves=True,
            resource_id=self.resource1_id)
        self.assertEqual(res[0][:2],
                         (Datetime.from_string('2013-02-12 09:00:00'),
                          Datetime.from_string('2013-02-12 16:00:00')))
        self.assertEqual(res[1][:2],
                         (Datetime.from_string('2013-02-15 08:00:00'),
                          Datetime.from_string('2013-02-15 13:00:00')))
        self.assertEqual(res[2][:2],
                         (Datetime.from_string('2013-02-15 16:00:00'),
                          Datetime.from_string('2013-02-15 23:00:00')))
        self.assertEqual(res[3][:2],
                         (Datetime.from_string('2013-02-19 08:00:00'),
                          Datetime.from_string('2013-02-19 09:00:00')))
        self.assertEqual(res[4][:2],
                         (Datetime.from_string('2013-02-19 12:00:00'),
                          Datetime.from_string('2013-02-19 16:00:00')))
        self.assertEqual(res[5][:2],
                         (Datetime.from_string('2013-02-22 08:00:00'),
                          Datetime.from_string('2013-02-22 09:00:00')))
        self.assertEqual(res[6][:2],
                         (Datetime.from_string('2013-02-22 16:00:00'),
                          Datetime.from_string('2013-02-22 23:00:00')))
        self.assertEqual(res[7][:2],
                         (Datetime.from_string('2013-03-01 11:30:00'),
                          Datetime.from_string('2013-03-01 13:00:00')))
        self.assertEqual(res[8][:2],
                         (Datetime.from_string('2013-03-01 16:00:00'),
                          Datetime.from_string('2013-03-01 22:30:00')))

        td = timedelta()
        for item in res:
            td += item[1] - item[0]
        self.assertEqual(td.total_seconds() / 3600.0, 40.0)
示例#11
0
    def test_calendar_hours_scheduling_forward(self):
        res = self.calendar._schedule_hours(
            40, day_dt=Datetime.from_string('2013-02-12 09:00:00'))
        self.assertEqual(res[0][:2],
                         (Datetime.from_string('2013-02-12 09:00:00'),
                          Datetime.from_string('2013-02-12 16:00:00')))
        self.assertEqual(res[1][:2],
                         (Datetime.from_string('2013-02-15 08:00:00'),
                          Datetime.from_string('2013-02-15 13:00:00')))
        self.assertEqual(res[2][:2],
                         (Datetime.from_string('2013-02-15 16:00:00'),
                          Datetime.from_string('2013-02-15 23:00:00')))
        self.assertEqual(res[3][:2],
                         (Datetime.from_string('2013-02-19 08:00:00'),
                          Datetime.from_string('2013-02-19 16:00:00')))
        self.assertEqual(res[4][:2],
                         (Datetime.from_string('2013-02-22 08:00:00'),
                          Datetime.from_string('2013-02-22 13:00:00')))
        self.assertEqual(res[5][:2],
                         (Datetime.from_string('2013-02-22 16:00:00'),
                          Datetime.from_string('2013-02-22 23:00:00')))
        self.assertEqual(res[6][:2],
                         (Datetime.from_string('2013-02-26 08:00:00'),
                          Datetime.from_string('2013-02-26 09:00:00')))

        td = timedelta()
        for item in res:
            td += item[1] - item[0]
        self.assertEqual(td.total_seconds() / 3600.0, 40.0)

        res = self.calendar.plan_hours(
            40, day_dt=Datetime.from_string('2013-02-12 09:00:00'))
        self.assertEqual(res, Datetime.from_string('2013-02-26 09:00:00'))
示例#12
0
    def test_calendar_hours_scheduling_backward(self):
        res = self.calendar._schedule_hours(
            -40, day_dt=Datetime.from_string('2013-02-12 09:00:00'))
        # current day, limited at 09:00 because of day_dt specified -> 1 hour
        self.assertEqual(res[-1][:2],
                         (Datetime.from_string('2013-02-12 08:00:00'),
                          Datetime.from_string('2013-02-12 09:00:00')))
        # previous days: 5+7 hours / 8 hours / 5+7 hours -> 32 hours
        self.assertEqual(res[-2][:2],
                         (Datetime.from_string('2013-02-08 16:00:00'),
                          Datetime.from_string('2013-02-08 23:00:00')))
        self.assertEqual(res[-3][:2],
                         (Datetime.from_string('2013-02-08 08:00:00'),
                          Datetime.from_string('2013-02-08 13:00:00')))
        self.assertEqual(res[-4][:2],
                         (Datetime.from_string('2013-02-05 08:00:00'),
                          Datetime.from_string('2013-02-05 16:00:00')))
        self.assertEqual(res[-5][:2],
                         (Datetime.from_string('2013-02-01 16:00:00'),
                          Datetime.from_string('2013-02-01 23:00:00')))
        self.assertEqual(res[-6][:2],
                         (Datetime.from_string('2013-02-01 08:00:00'),
                          Datetime.from_string('2013-02-01 13:00:00')))
        # 7 hours remaining
        self.assertEqual(res[-7][:2],
                         (Datetime.from_string('2013-01-29 09:00:00'),
                          Datetime.from_string('2013-01-29 16:00:00')))

        # Compute scheduled hours
        td = timedelta()
        for item in res:
            td += item[1] - item[0]
        self.assertEqual(td.total_seconds() / 3600.0, 40.0)

        res = self.calendar.plan_hours(
            -40, day_dt=Datetime.from_string('2013-02-12 09:00:00'))
        self.assertEqual(res, Datetime.from_string('2013-01-29 09:00:00'))
示例#13
0
 def setUp(self):
     super(TestIntervals, self).setUp()
     # Some data intervals
     #  - first one is included in second one
     #  - second one is extended by third one
     #  - sixth one is included in fourth one
     #  - fifth one is prior to other one
     # Once cleaned: 1 interval 03/02 8-10), 2 intervals 04/02 (8-14 + 17-21)
     self.intervals = [
         self.calendar._interval_new(
             Datetime.from_string('2013-02-04 09:00:00'),
             Datetime.from_string('2013-02-04 11:00:00')),
         self.calendar._interval_new(
             Datetime.from_string('2013-02-04 08:00:00'),
             Datetime.from_string('2013-02-04 12:00:00')),
         self.calendar._interval_new(
             Datetime.from_string('2013-02-04 11:00:00'),
             Datetime.from_string('2013-02-04 14:00:00')),
         self.calendar._interval_new(
             Datetime.from_string('2013-02-04 17:00:00'),
             Datetime.from_string('2013-02-04 21:00:00')),
         self.calendar._interval_new(
             Datetime.from_string('2013-02-03 08:00:00'),
             Datetime.from_string('2013-02-03 10:00:00')),
         self.calendar._interval_new(
             Datetime.from_string('2013-02-04 18:00:00'),
             Datetime.from_string('2013-02-04 19:00:00'))
     ]