Beispiel #1
0
    def test_find_pending(self):
        wo1 = self.create_workorder()
        wo1.status = WorkOrder.STATUS_OPENED
        wo2 = self.create_workorder()
        wo2.status = WorkOrder.STATUS_WORK_WAITING
        wo3 = self.create_workorder()
        wo3.status = WorkOrder.STATUS_WORK_IN_PROGRESS
        wo4 = self.create_workorder()
        wo4.status = WorkOrder.STATUS_WORK_FINISHED
        # Those 2 should not appear on the results
        wo5 = self.create_workorder()
        wo5.status = WorkOrder.STATUS_DELIVERED
        wo6 = self.create_workorder()
        wo6.status = WorkOrder.STATUS_CANCELLED

        work_orders = set(wov.work_order for wov in WorkOrderView.find_pending(self.store))
        self.assertEqual(work_orders, set([wo1, wo2, wo3, wo4]))

        wo1.estimated_finish = localdate(2013, 1, 1)
        wo2.estimated_finish = localdate(2013, 2, 1)
        wo3.estimated_finish = localdate(2013, 3, 1)
        wo4.estimated_finish = localdate(2013, 4, 1)
        wo5.estimated_finish = localdate(2013, 1, 1)
        wo6.estimated_finish = localdate(2013, 2, 1)

        # Filtering by start date only
        work_orders = set(
            wov.work_order for wov in WorkOrderView.find_pending(self.store, start_date=localdate(2013, 1, 1))
        )
        self.assertEqual(work_orders, set([wo1, wo2, wo3, wo4]))
        work_orders = set(
            wov.work_order for wov in WorkOrderView.find_pending(self.store, start_date=localdate(2013, 1, 2))
        )
        self.assertEqual(work_orders, set([wo2, wo3, wo4]))

        # Filtering by end date only
        work_orders = set(
            wov.work_order for wov in WorkOrderView.find_pending(self.store, end_date=localdate(2013, 1, 2))
        )
        self.assertEqual(work_orders, set([wo1]))
        work_orders = set(
            wov.work_order for wov in WorkOrderView.find_pending(self.store, end_date=localdate(2013, 4, 2))
        )
        self.assertEqual(work_orders, set([wo1, wo2, wo3, wo4]))

        # Filtering by both start and end dates
        work_orders = set(
            wov.work_order
            for wov in WorkOrderView.find_pending(
                self.store, start_date=localdate(2013, 1, 1), end_date=localdate(2013, 4, 2)
            )
        )
        self.assertEqual(work_orders, set([wo1, wo2, wo3, wo4]))
        work_orders = set(
            wov.work_order
            for wov in WorkOrderView.find_pending(
                self.store, start_date=localdate(2013, 3, 1), end_date=localdate(2013, 4, 2)
            )
        )
        self.assertEqual(work_orders, set([wo3, wo4]))
Beispiel #2
0
    def testPostSearchCallback(self):
        sellable = self.create_sellable()
        for i in range(10):
            wo = self.create_workorder()
            wo.add_sellable(sellable, quantity=i, price=10)

        sresults = self.store.find(WorkOrderView)
        postresults = WorkOrderView.post_search_callback(sresults)
        self.assertEqual(postresults[0], ('count', 'sum'))
        self.assertEqual(
            self.store.execute(postresults[1]).get_one(), (10, 450))
Beispiel #3
0
    def test_find_pending(self):
        wo1 = self.create_workorder()
        wo1.status = WorkOrder.STATUS_OPENED
        wo2 = self.create_workorder()
        wo2.status = WorkOrder.STATUS_WORK_WAITING
        wo3 = self.create_workorder()
        wo3.status = WorkOrder.STATUS_WORK_IN_PROGRESS
        wo4 = self.create_workorder()
        wo4.status = WorkOrder.STATUS_WORK_FINISHED
        # Those 2 should not appear on the results
        wo5 = self.create_workorder()
        wo5.status = WorkOrder.STATUS_DELIVERED
        wo6 = self.create_workorder()
        wo6.status = WorkOrder.STATUS_CANCELLED

        work_orders = set(wov.work_order
                          for wov in WorkOrderView.find_pending(self.store))
        self.assertEqual(work_orders, set([wo1, wo2, wo3, wo4]))

        wo1.estimated_finish = localdate(2013, 1, 1)
        wo2.estimated_finish = localdate(2013, 2, 1)
        wo3.estimated_finish = localdate(2013, 3, 1)
        wo4.estimated_finish = localdate(2013, 4, 1)
        wo5.estimated_finish = localdate(2013, 1, 1)
        wo6.estimated_finish = localdate(2013, 2, 1)

        # Filtering by start date only
        work_orders = set(wov.work_order for wov in WorkOrderView.find_pending(
            self.store, start_date=localdate(2013, 1, 1)))
        self.assertEqual(work_orders, set([wo1, wo2, wo3, wo4]))
        work_orders = set(wov.work_order for wov in WorkOrderView.find_pending(
            self.store, start_date=localdate(2013, 1, 2)))
        self.assertEqual(work_orders, set([wo2, wo3, wo4]))

        # Filtering by end date only
        work_orders = set(wov.work_order for wov in WorkOrderView.find_pending(
            self.store, end_date=localdate(2013, 1, 2)))
        self.assertEqual(work_orders, set([wo1]))
        work_orders = set(wov.work_order for wov in WorkOrderView.find_pending(
            self.store, end_date=localdate(2013, 4, 2)))
        self.assertEqual(work_orders, set([wo1, wo2, wo3, wo4]))

        # Filtering by both start and end dates
        work_orders = set(wov.work_order for wov in WorkOrderView.find_pending(
            self.store,
            start_date=localdate(2013, 1, 1),
            end_date=localdate(2013, 4, 2)))
        self.assertEqual(work_orders, set([wo1, wo2, wo3, wo4]))
        work_orders = set(wov.work_order for wov in WorkOrderView.find_pending(
            self.store,
            start_date=localdate(2013, 3, 1),
            end_date=localdate(2013, 4, 2)))
        self.assertEqual(work_orders, set([wo3, wo4]))
Beispiel #4
0
 def _get_orders(self):
     branch = api.get_current_branch(self.store)
     query = Eq(WorkOrderView.branch_id, branch.id)
     result = WorkOrderView.find_pending(self.store).find(query)
     return result.order_by(WorkOrder.estimated_finish, WorkOrder.status)
Beispiel #5
0
 def _collect_work_orders(self, start, end, day_events, store):
     for v in WorkOrderView.find_pending(store, start, end):
         date, ev = self._create_work_order(v)
         self._append_event(day_events, date, 'work_orders', ev)
Beispiel #6
0
 def _collect_work_orders(self, start, end, day_events, store):
     for v in WorkOrderView.find_pending(store, start, end):
         date, ev = self._create_work_order(v)
         self._append_event(day_events, date, 'work_orders', ev)
Beispiel #7
0
 def _get_orders(self):
     branch = api.get_current_branch(self.store)
     query = Eq(WorkOrderView.branch_id, branch.id)
     result = WorkOrderView.find_pending(self.store).find(query)
     return result.order_by(WorkOrder.estimated_finish, WorkOrder.status)