Beispiel #1
0
 def test_costs_per_device_deprecated(self):
     venture = utils.get_or_create_venture()
     device = utils.get_or_create_device()
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 10),
         device,
         venture,
         price=1460,
         deprecation_rate=25,
         is_deprecated=True,
     )
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 11),
         device,
         venture,
         price=1460,
         deprecation_rate=25,
         is_deprecated=True,
     )
     result = Deprecation(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 13),
         ventures=[venture],
         type='costs_per_device',
     )
     self.assertEquals(result, {
         device.id: {
             'assets_cost': D('0'),
             'assets_count': 0.5,
             'deprecation_rate': D('25'),
             'is_deprecated': _('Yes')
         }
     })
Beispiel #2
0
 def test_dailyusages(self):
     device = utils.get_or_create_device()
     utils.get_or_create_dailydevice(
         date=datetime.date(2013, 10, 12),
         venture=self.venture1,
         device=device,
         name=device.name,
         price=100,
         deprecation_rate=0.25,
         is_deprecated=False,
     )
     result = Deprecation(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 13),
         ventures=self.ventures_subset,
         type='dailyusages',
     )
     self.assertEquals(result, {
         datetime.date(2013, 10, 10): {
             self.venture1.id: 5,
             self.venture2.id: 10,
         },
         datetime.date(2013, 10, 11): {
             self.venture1.id: 5,
             self.venture2.id: 10,
         },
         datetime.date(2013, 10, 12): {
             self.venture1.id: 6,  # additional device!
             self.venture2.id: 10,
         },
         datetime.date(2013, 10, 13): {
             self.venture1.id: 5,
             self.venture2.id: 10,
         },
     })
Beispiel #3
0
    def setUp(self):
        # ventures
        self.venture1 = utils.get_or_create_venture()
        self.venture2 = utils.get_or_create_venture()
        self.venture3 = utils.get_or_create_venture()
        self.ventures_subset = [self.venture1, self.venture2]
        self.ventures = models.Venture.objects.all()
        self.ventures_devices = {}

        # devices
        # add j*5 devices for each venture
        start = datetime.date(2013, 10, 8)
        end = datetime.date(2013, 10, 22)
        for j, venture in enumerate(self.ventures, start=1):
            self.ventures_devices[venture.id] = []
            for k in range(j * 5):
                # add device
                device = utils.get_or_create_device()
                self.ventures_devices[venture.id].append(device.id)
                for day in rrule.rrule(rrule.DAILY, dtstart=start, until=end):
                    utils.get_or_create_dailydevice(
                        date=day,
                        venture=venture,
                        device=device,
                        name=device.name,
                        price=1460*j,
                        deprecation_rate=25,
                        is_deprecated=False,
                    )
Beispiel #4
0
    def test_costs_per_device(self):
        device1 = utils.get_or_create_device(
            asset_id=1234,
            barcode='12345',
            sn='1111-1111-1111',
        )
        device2 = utils.get_or_create_device(
            asset_id=1235,
            barcode='12346',
            sn='1111-1111-1112',
        )
        start = datetime.date(2013, 10, 8)
        end = datetime.date(2013, 10, 22)
        for i, device in enumerate([device1, device2]):
            for day in rrule.rrule(rrule.DAILY, dtstart=start, until=end):
                utils.get_or_create_dailydevice(
                    date=day,
                    name='Device{0}'.format(i),
                    price=100 * i,
                    deprecation_rate=0.25,
                    is_deprecated=False,
                    venture=self.venture1,
                    device=device,
                )

        result = Information(
            start=datetime.date(2013, 10, 10),
            end=datetime.date(2013, 10, 25),
            ventures=[self.venture1],
            type='costs_per_device',
        )
        self.assertEquals(result, {
            device1.id: {
                'asset_id': 1234,
                'barcode': '12345',
                'id': device1.id,
                'name': 'Default1234',
                'sn': '1111-1111-1111'
            },
            device2.id: {
                'asset_id': 1235,
                'barcode': '12346',
                'id': device2.id,
                'name': 'Default1235',
                'sn': '1111-1111-1112'
            }
        })
    def setUp(self):
        self.venture1 = utils.get_or_create_venture()
        self.venture2 = utils.get_or_create_venture()
        self.venture3 = utils.get_or_create_venture(parent=self.venture1)

        self.device1 = utils.get_or_create_device(
            device_id=11,
            sn='1111-1111-1111',
            barcode='12345',
        )
        self.device2 = utils.get_or_create_device(
            device_id=12,
            sn='1111-1111-1112',
            barcode='12346',
        )

        self.dailydevice1_1 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 10),
            self.device1,
            self.venture1,
            name=self.device1.name,
        )
        self.dailydevice1_2 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 11),
            self.device1,
            self.venture2,
            name=self.device1.name,
        )
        self.dailydevice2_1 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 10),
            self.device2,
            self.venture2,
            name=self.device2.name,
        )
        self.dailydevice2_1 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 11),
            self.device2,
            self.venture1,
            name=self.device2.name,
        )
        self.dailydevice3_1 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 12),
            self.device1,
            self.venture3,
            name=self.device1.name,
        )
Beispiel #6
0
    def setUp(self):
        self.venture1 = utils.get_or_create_venture()
        self.venture2 = utils.get_or_create_venture()
        self.venture3 = utils.get_or_create_venture(parent=self.venture1)

        self.device1 = utils.get_or_create_device(
            device_id=11,
            sn='1111-1111-1111',
            barcode='12345',
        )
        self.device2 = utils.get_or_create_device(
            device_id=12,
            sn='1111-1111-1112',
            barcode='12346',
        )

        self.dailydevice1_1 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 10),
            self.device1,
            self.venture1,
            name=self.device1.name,
        )
        self.dailydevice1_2 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 11),
            self.device1,
            self.venture2,
            name=self.device1.name,
        )
        self.dailydevice2_1 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 10),
            self.device2,
            self.venture2,
            name=self.device2.name,
        )
        self.dailydevice2_1 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 11),
            self.device2,
            self.venture1,
            name=self.device2.name,
        )
        self.dailydevice3_1 = utils.get_or_create_dailydevice(
            datetime.date(2013, 10, 12),
            self.device1,
            self.venture3,
            name=self.device1.name,
        )
    def setUp(self):
        self.report_start = datetime.date(2013, 4, 20)
        self.report_end = datetime.date(2013, 4, 30)
        # ventures
        self.venture = utils.get_or_create_venture()
        self.subventure = utils.get_or_create_venture(parent=self.venture)

        # usages
        self.usage_type = models.UsageType(
            name='UT1',
            symbol='ut1',
            type='BU',
            show_in_devices_report=True,
        )
        self.usage_type.save()
        usage_type2 = models.UsageType(
            name='UT2',
            symbol='ut2',
            type='BU',
            show_in_devices_report=False,
        )
        usage_type2.save()

        # usages by warehouse
        self.warehouse_usage_type = models.UsageType(
            name='UT3',
            symbol='ut3',
            by_warehouse=True,
            order=3,
            type='BU',
            use_universal_plugin=False,
            show_in_devices_report=True,
        )
        self.warehouse_usage_type.save()

        # devices
        self.device1 = utils.get_or_create_device()
        self.device2 = utils.get_or_create_device()
        self.device3 = utils.get_or_create_device()  # device without daily
        self.device_virtual = utils.get_or_create_device(is_virtual=True)

        # dailydevices
        days = rrule.rrule(
            rrule.DAILY,
            dtstart=self.report_start,
            until=self.report_end,
        )
        for device in (self.device1, self.device2, self.device_virtual):
            for j, day in enumerate(days, start=1):
                dailydevice = utils.get_or_create_dailydevice(
                    date=day,
                    device=device,
                    venture=self.venture
                )
                dailydevice.save()
Beispiel #8
0
    def test_update(self):
        data = {
            'mount_device_id': self.device.device_id,
            'size': 10
        }
        get_or_create_dailydevice(
            date=self.today,
            device=self.device,
            venture=self.venture,
        )
        result = update(data, self.today, self.usage_type, None)

        self.assertTrue(result)
        self.assertEqual(DailyUsage.objects.count(), 1)
        daily_usage = DailyUsage.objects.all()[0]
        self.assertEqual(daily_usage.pricing_venture, self.venture)
        self.assertEqual(daily_usage.pricing_device, self.device)
        self.assertEqual(daily_usage.value, 10)
        self.assertEqual(daily_usage.date.date(), self.today)
        self.assertEqual(daily_usage.type, self.usage_type)
Beispiel #9
0
    def setUp(self):
        self.report_start = datetime.date(2013, 4, 20)
        self.report_end = datetime.date(2013, 4, 30)
        # ventures
        self.venture = utils.get_or_create_venture()
        self.subventure = utils.get_or_create_venture(parent=self.venture)

        # usages
        self.usage_type = models.UsageType(
            name='UT1',
            symbol='ut1',
            type='BU',
            show_in_devices_report=True,
        )
        self.usage_type.save()
        usage_type2 = models.UsageType(
            name='UT2',
            symbol='ut2',
            type='BU',
            show_in_devices_report=False,
        )
        usage_type2.save()

        # usages by warehouse
        self.warehouse_usage_type = models.UsageType(
            name='UT3',
            symbol='ut3',
            by_warehouse=True,
            order=3,
            type='BU',
            use_universal_plugin=False,
            show_in_devices_report=True,
        )
        self.warehouse_usage_type.save()

        # devices
        self.device1 = utils.get_or_create_device()
        self.device2 = utils.get_or_create_device()
        self.device3 = utils.get_or_create_device()  # device without daily
        self.device_virtual = utils.get_or_create_device(is_virtual=True)

        # dailydevices
        days = rrule.rrule(
            rrule.DAILY,
            dtstart=self.report_start,
            until=self.report_end,
        )
        for device in (self.device1, self.device2, self.device_virtual):
            for j, day in enumerate(days, start=1):
                dailydevice = utils.get_or_create_dailydevice(
                    date=day, device=device, venture=self.venture)
                dailydevice.save()
Beispiel #10
0
 def test_get_asset_count_and_cost_group_by_device(self):
     venture = utils.get_or_create_venture()
     device1 = utils.get_or_create_device()
     device2 = utils.get_or_create_device()
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 10),
         device1,
         venture,
         price=1460,
         deprecation_rate=25,
         is_deprecated=False,
     )
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 11),
         device2,
         venture,
         price=1460,
         deprecation_rate=25,
         is_deprecated=False,
     )
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 12),
         device2,
         self.venture1,
         price=1460,
         deprecation_rate=25,
         is_deprecated=False,
     )
     result = Deprecation.get_assets_count_and_cost(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 20),
         ventures=[venture],
         group_by='pricing_device',
     )
     self.assertEquals(list(result), [
         {
             'assets_cost': D('1'),
             'assets_count': 1.0,
             'pricing_device': device1.id,
         },
         {
             'assets_cost': D('1'),
             'assets_count': 1.0,
             'pricing_device': device2.id,
         }
     ])