Exemplo n.º 1
0
    def test_commit4(self):
        """
        Teste, ob der Status von nicht ganz erfüllten Aufträgen weiterhin bundled ist.

        Einer der Aufträge wird nicht erfüllt, da zu wenige Artikel zurückgemeldet werden.
        """

        order_a = Order.objects.get(pk=14)
        order_a.orderline_set.create(artnr="12346", menge=1, preis='5.99')
        order_b = Order.objects.get(pk=15)

        bundle = simplest_bundle('TESTCASE3')
        data = json.dumps({
                'guid': bundle.designator,
                'positions': [{'menge': 1, 'artnr': '12345'}],
               })

        response = self.client.post('/robotrock/api/bundles/%s/' % bundle.designator,
                                    data,
                                    content_type="application/json",
                                    HTTP_AUTHORIZATION=build_authheader('api'))

        self.assertEqual(response.status_code, 201)
        self.assertTrue(compare_list(order_a.orderline_set.values_list('status', flat=True), "NC"))
        self.assertTrue(compare_list(order_b.orderline_set.values_list('status', flat=True), "N"))

        order_a.check_status()
        order_b.check_status()

        # Reload objects
        order_a = reload_instance(order_a)
        order_b = reload_instance(order_b)

        self.assertEqual(order_b.status, order_a.status)
Exemplo n.º 2
0
 def handle_label(self, source, **options):
     """Create a bundled order"""
     try:
         bundle = simplest_bundle(source)
         if bundle:
             log_action(bundle, 'ADDITION', message=u'Bündel für %s erzeugt: %s, %d orders' % (source, bundle.pk, bundle.orders.count()))
     except Exception, ex:
         print "Fehler beim Buendeln von Auftraegen, Exception %s" % ex
Exemplo n.º 3
0
 def test_bundled_order(self):
     """
     Teste das Stornieren eines Auftrags, der zu einem Bündelauftrag gehört
     """
     
     bundle = simplest_bundle('FF')
     order = Order.objects.filter(status='bundled').latest('id')
     response = self.client.delete('/robotrock/api/orders/%s/' % order.designator,
                      HTTP_AUTHORIZATION=build_authheader('api'))                         
     self.assertEqual(response.status_code, 204)
     order = reload_instance(order)
     self.assertEqual(order.status, 'canceled')
     self.assertEqual(order.bundles.count(), 0)
     self.assertTrue(not order in bundle.orders.all())
Exemplo n.º 4
0
    def test_commit2(self):
        """
        Teste, ob der Status von nicht ganz erfüllten Aufträgen weiterhin bundled ist.
        
        order_b wird nicht erfüllt, da kein Artikel 12346 zurückgeldet wird.
        """
        
        order_a = Order.objects.get(pk=12)
        order_b = Order.objects.get(pk=13)

        bundle = simplest_bundle('TESTCASE2')
        self.assertEqual(bundle.orders.count(), 2)
        self.assertTrue(compare_list(bundle.orders.values_list('id', flat=True), [12, 13]))

        # Reload objects
        order_a = reload_instance(order_a)
        order_b = reload_instance(order_b)
        
        self.assertEqual(order_a.status, 'bundled')
        self.assertEqual(order_b.status, 'bundled')
        
        data = json.dumps({
                'guid': bundle.designator,
                'positions': [{'menge': 1, 'artnr': '12345'}],
               })
        
        response = self.client.post('/robotrock/api/bundles/%s/' % bundle.designator,
                                    data,
                                    content_type="application/json",
                                    HTTP_AUTHORIZATION=build_authheader('api'))
        
        self.assertEqual(response.status_code, 201)
        self.assertTrue(compare_list(order_a.orderline_set.values_list('status', flat=True), "N"))
        self.assertTrue(compare_list(order_b.orderline_set.values_list('status', flat=True), "C"))
        
        order_a.check_status()
        order_b.check_status()
        
        # Reload objects
        order_a = reload_instance(order_a)
        order_b = reload_instance(order_b)
        
        self.assertEqual(order_a.status, 'bundled')
        self.assertEqual(order_b.status, 'packed')
Exemplo n.º 5
0
    def test_commit(self):
        """
        Teste das zurückmelden von Positionen eines gebündelten Auftrags.
        
        Alle Orderlines werden erfüllt.
        """
        
        order_a = Order.objects.get(pk=10)
        order_b = Order.objects.get(pk=11)

        bundle = simplest_bundle('TESTCASE')
        self.assertEqual(bundle.orders.count(), 2)
        self.assertTrue(compare_list(bundle.orders.values_list('id', flat=True), [10, 11]))

        # Reload objects
        order_a = reload_instance(order_a)
        order_b = reload_instance(order_b)
        
        self.assertEqual(order_a.status, 'bundled')
        self.assertEqual(order_b.status, 'bundled')
        
        data = json.dumps({
                'guid': bundle.designator,
                'positions': [{'menge': 2, 'artnr': '12345'}],
               })
        
        response = self.client.post('/robotrock/api/bundles/%s/' % bundle.designator,
                                    data,
                                    content_type="application/json",
                                    HTTP_AUTHORIZATION=build_authheader('api'))
        self.assertEqual(response.status_code, 201)
        self.assertTrue(compare_list(order_a.orderline_set.values_list('status', flat=True), "C"))
        self.assertTrue(compare_list(order_b.orderline_set.values_list('status', flat=True), "C"))
        
        order_a.check_status()
        order_b.check_status()
        
        # Reload objects
        order_a = reload_instance(order_a)
        order_b = reload_instance(order_b)
                
        self.assertEqual(order_a.status, 'packed')
        self.assertEqual(order_b.status, 'packed')
Exemplo n.º 6
0
    def test_commit5(self):
        """
        Teste Rückmeldung gleicher Artikelnummern in verschiedenen Positionen.
        """
        
        orders = Order.objects.filter(pk__in=[10, 11, 13, 14])
        orders.update(source='TESTCASE4')
        bundle = simplest_bundle('TESTCASE4')
        data = json.dumps({
                'guid': bundle.designator,
                'positions': [{'menge': 2, 'artnr': '12345'},
                              {'menge': 1, 'artnr': '12345'}],
               })

        response = self.client.post('/robotrock/api/bundles/%s/' % bundle.designator,
                                    data,
                                    content_type="application/json",
                                    HTTP_AUTHORIZATION=build_authheader('api'))
        
        self.assertEqual(response.status_code, 201)
        self.assertEqual(list(orders.values_list('status', flat=True).order_by('status')),
                         [u'bundled', u'packed', u'packed', u'packed'])