Esempio n. 1
0
    def setUp(self):
        """
        Set up the Testing clas:
        """
        super(AttendanceTest, self).setUp()

        #self.client.client.login(username='******', password='******')

        self.shift = Shift(start_time=time(8, 0), end_time=time(17, 0))
        self.shift.save()

        self.employee = Employee(shift=self.shift, **employee2_data)
        self.employee.save()

        # Regular attendance
        self.attendance = Attendance(
            date=date(2014, 7, 1),
            start_time=timezone('Asia/Bangkok').localize(
                datetime(2014, 7, 1, 7, 30, 0)),
            end_time=timezone('Asia/Bangkok').localize(
                datetime(2014, 7, 1, 23, 33, 0)),
            employee=self.employee,
            shift=self.shift)

        self.attendance.save()

        # Sunday attendance
        self.sunday_attendance = Attendance(
            date=date(2016, 2, 7),
            start_time=timezone('Asia/Bangkok').localize(
                datetime(2016, 2, 7, 8, 02, 0)),
            end_time=timezone('Asia/Bangkok').localize(
                datetime(2016, 2, 7, 23, 15, 0)),
            employee=self.employee,
            shift=self.shift)
        self.sunday_attendance.save()

        self.tz = timezone('Asia/Bangkok')
Esempio n. 2
0
    def setUp(self):
        """Setup for testing
        
        Employees:
        - 1. Daily employee
        -   1.1 Attendances 
        - 2. Salaried employee
        -   2.1 Attendances
        - 3. Daily Manager
        -   3.1 Attendances
        """
        self.shift = Shift(start_time=time(8, 0), end_time=time(17, 0))
        self.shift.save()

        self.employee1 = Employee.objects.create(**employee2_data)
        self.employee2 = Employee.objects.create(**employee1_data)
        self.employee3 = Employee.objects.create(**employee4_data)
        self.manager = Employee.objects.create(**manager_data)

        # Create attendances for first half of the month
        for i in xrange(0, 6):
            a_date = date(2016, 2, 1 + i)

            # Create attendances for daily employee
            a = Attendance.objects.create(
                date=a_date,
                start_time=datetime(2016,
                                    2,
                                    1 + i,
                                    7,
                                    30,
                                    0,
                                    tzinfo=timezone('Asia/Bangkok')),
                end_time=datetime(2016,
                                  2,
                                  1 + i,
                                  17,
                                  15,
                                  0,
                                  tzinfo=timezone('Asia/Bangkok')),
                employee=self.employee1,
                shift=self.shift)
            a.calculate_times()
            a.calculate_net_wage()
            a.save()

            # Create attendances for monthly employee
            a = Attendance.objects.create(
                date=a_date,
                start_time=datetime(2016,
                                    2,
                                    1 + i,
                                    7,
                                    30,
                                    0,
                                    tzinfo=timezone('Asia/Bangkok')),
                end_time=datetime(2016,
                                  2,
                                  1 + i,
                                  17,
                                  15,
                                  0,
                                  tzinfo=timezone('Asia/Bangkok')),
                employee=self.employee2,
                shift=self.shift)
            a.calculate_times()
            a.calculate_net_wage()
            a.save()

            # Create attendances for daily employee in cambodia
            a = Attendance.objects.create(
                date=a_date,
                start_time=datetime(2016,
                                    2,
                                    1 + i,
                                    7,
                                    30,
                                    0,
                                    tzinfo=timezone('Asia/Bangkok')),
                end_time=datetime(2016,
                                  2,
                                  1 + i,
                                  17,
                                  15,
                                  0,
                                  tzinfo=timezone('Asia/Bangkok')),
                employee=self.employee3,
                shift=self.shift)
            a.calculate_times()
            a.calculate_net_wage()
            a.save()

            # Create attendances for daily manager
            a = Attendance.objects.create(
                date=a_date,
                start_time=datetime(2016,
                                    2,
                                    1 + i,
                                    7,
                                    30,
                                    0,
                                    tzinfo=timezone('Asia/Bangkok')),
                end_time=datetime(2016,
                                  2,
                                  1 + i,
                                  17,
                                  15,
                                  0,
                                  tzinfo=timezone('Asia/Bangkok')),
                employee=self.manager,
                shift=self.shift)
            a.calculate_times()
            a.calculate_net_wage()
            a.save()

        # Create the attendances for the latter half of the month
        for i in xrange(0, 6):
            a_date = date(2016, 2, 15 + i)

            # Create attendances for daily employee
            a = Attendance.objects.create(
                date=a_date,
                start_time=datetime(2016,
                                    2,
                                    15 + i,
                                    7,
                                    30,
                                    0,
                                    tzinfo=timezone('Asia/Bangkok')),
                end_time=datetime(2016,
                                  2,
                                  15 + i,
                                  17,
                                  15,
                                  0,
                                  tzinfo=timezone('Asia/Bangkok')),
                employee=self.employee1,
                shift=self.shift)
            a.calculate_times()
            a.calculate_net_wage()
            a.save()

            # Create attendances for monthly employee
            a = Attendance.objects.create(
                date=a_date,
                start_time=datetime(2016,
                                    2,
                                    15 + i,
                                    7,
                                    30,
                                    0,
                                    tzinfo=timezone('Asia/Bangkok')),
                end_time=datetime(2016,
                                  2,
                                  15 + i,
                                  17,
                                  15,
                                  0,
                                  tzinfo=timezone('Asia/Bangkok')),
                employee=self.employee2,
                shift=self.shift)
            a.calculate_times()
            a.calculate_net_wage()
            a.save()

            # Create attendances for daily employee in cambodia
            a = Attendance.objects.create(
                date=a_date,
                start_time=datetime(2016,
                                    2,
                                    15 + i,
                                    7,
                                    30,
                                    0,
                                    tzinfo=timezone('Asia/Bangkok')),
                end_time=datetime(2016,
                                  2,
                                  15 + i,
                                  17,
                                  15,
                                  0,
                                  tzinfo=timezone('Asia/Bangkok')),
                employee=self.employee3,
                shift=self.shift)
            a.calculate_times()
            a.calculate_net_wage()
            a.save()

            # Create attendances for daily manager
            a = Attendance.objects.create(
                date=a_date,
                start_time=datetime(2016,
                                    2,
                                    15 + i,
                                    7,
                                    30,
                                    0,
                                    tzinfo=timezone('Asia/Bangkok')),
                end_time=datetime(2016,
                                  2,
                                  15 + i,
                                  17,
                                  15,
                                  0,
                                  tzinfo=timezone('Asia/Bangkok')),
                employee=self.manager,
                shift=self.shift)
            a.calculate_times()
            a.calculate_net_wage()
            a.save()