Beispiel #1
0
 def add_employee_to_shift(self, employee_id):
     call_function('POST', 'client', 'addemployeetoshift', {
         "employee_id": employee_id,
         "shift_id": self.shift_id,
         "status": ""
     })
     self.active_employees.append(employee_id)
Beispiel #2
0
 def add_employee_to_shift(self, employee_id):
     if not self.shift_id:
         return False
     params = {
         "employee_id": employee_id,
         "shift_id": self.shift_id,
         "status": ""
     }
     call_function('POST', 'client', 'addemployeetoshift', params)
     return True
Beispiel #3
0
    def create_order(self, items):
        service_name = 'order'

        function_name = 'createorder'
        # client_id = items[0]['client_id']
        item1 = items[next(iter(items))]
        client_id = item1['client_id']
        menu_id = item1['menu_id']
        shift_id = item1['shift_id']
        params = {
            'user_id': 1,
            'client_id': client_id,
            'shift_id': shift_id,
            'menu_id': menu_id
        }

        req0 = call_function('POST', service_name, function_name, params)
        dsds = req0.text
        de = json.loads(dsds)
        order_id = de['id']

        # Actualy this is done in the service order
        # params_queue = {'master_id': shift_id, 'type': 'pending', 'id': order_id, 'time': 2.5, 'rating': 2.5}
        # req_queue = call_function('POST', 'dqueue', 'createnode', )

        # order_id = c['id']

        ct = 0
        for item_id, item in items.items():
            # item_id = item['item_id']
            price = item['price']
            qty = item['qty']

            if int(qty) > 0:
                function_name = 'orderadditem'
                params = {
                    'item_id': item_id,
                    'order_id': order_id,
                    'price': price,
                    'quantity': qty
                }

                req1 = call_function('POST', service_name, function_name,
                                     params)
                ct = ct + 1
            # call_function('POST', 'order', 'orderadditem', {'item_id': 1, 'order_id': order_id, 'price': 2.5, 'quantity': 4})

        function_name = 'placeorder'
        params = {'order_id': order_id}

        if ct > 0:
            #TODO
            pass
Beispiel #4
0
def order_to_queue(order, dqueue_type):
    time = ctr.OrderControl.estimated_time(order)
    # TODO implement that and then remove fixe rating
    # rating_req = call_function('GET', 'user', 'userrating')
    # rating = rating_req['rating']
    rating = 4.5
    queue_id = ctr.OrderControl.queue_id(order)
    params = {
        'id': order.id,
        'master_id': order.shift_id,
        'type': dqueue_type,
        'time': time,
        'rating': rating
    }
    call_function('POST', 'dqueue', 'createnode', params)
Beispiel #5
0
    def get_menu(self, client_id):
        service_name = 'client'

        function_name = 'getmenu'
        params = {'client_id': client_id}

        req0 = call_function('GET', service_name, function_name, params)
        # c=req0.json()
        menu_id = req0.json()[0]['menu_id']

        function_name = 'getitems'
        params = {'menu_id': menu_id}

        req1 = call_function('GET', service_name, function_name, params)
        # c = req1.json()
        return req1.json()
Beispiel #6
0
    def get_orders_by_status(self, status):
        service_name = 'order'
        function_name = 'orderbyclientstatus'
        params = {'client_id': self.client_id, 'status': status}

        orders = call_function('GET', service_name, function_name, params)
        return orders.json()
Beispiel #7
0
    def get_available_menus(self):
        service_name = 'client'
        function_name = 'getmenusforclient'

        params = {'client_id': self.client_id}

        items = call_function('GET', service_name, function_name, params)
        return items.json()
Beispiel #8
0
    def get_employees_by_status(self, status):
        service_name = 'client'
        function_name = 'employeebyclientstatus'
        params = {'client_id': self.client_id, 'status': status}
        # params = {'client_id': self.client_id}

        employees = call_function('GET', service_name, function_name, params)
        return employees.json()
Beispiel #9
0
 def attribute_next_order(self, employee_id):
     order = call_function('PUT', 'order', 'nexttoserve', {
         'client_id': self.client_id,
         'employee_id': employee_id
     })
     self.beingserve_order.append(order.json())
     self.update_inqueue_order()
     return order
Beispiel #10
0
    def get_available_items(self):
        service_name = 'order'
        function_name = 'items'

        # params = {'client_id': self.client_id, 'status': status}

        items = call_function('GET', service_name, function_name)
        return items.json()
Beispiel #11
0
    def get_shifts_by_status(self, status):
        service_name = 'client'
        function_name = 'shiftbyclientstatus'
        params = {'client_id': self.client_id, 'status': status}
        # params = {'client_id': self.client_id}

        shifts = call_function('GET', service_name, function_name, params)
        return shifts.json()
Beispiel #12
0
def order_pickup(request):
    try:
        pk = request.data.get('id')
        order = Order.objects.get(pk=pk)
    except Order.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'PUT':
        serializer = OrderSerializer(order,
                                     data=request.data,
                                     context={'request': request},
                                     partial=True)
        if serializer.is_valid() and request.data['status'] == 'pickup':
            call_function('DELETE', 'dqueue', 'deletenode', {'id': order.id})
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(status=status.HTTP_400_BAD_REQUEST)
Beispiel #13
0
def order_positioned_validated(body):
    raw_order = json.loads(body)
    # TODO look how to get time and rating
    body = {
        'masted_id': raw_order.shift_id,
        'type': 'validated',
        'id': raw_order.id,
        'time': 15,
        'rating': 4.5
    }
    body_json = json.dumps(body)

    call_function('DELETE', 'dqueue', 'deletenode', body_json)
    order_in_request = call_function('POST', 'dqueue', 'createnode', body_json)
    kevent = KEvent(DqueueConfig().name, 'order', 'w', __name__,
                    order_in_request.text)
    ki.kEventManager.kgenerator.publish(kevent)
Beispiel #14
0
    def get_items_activemenu(self):
        service_name = 'client'
        function_name = 'itemmenus'

        params = {'menu_id': self.menu_id}

        items = call_function('GET', service_name, function_name, params)
        return items.json()
Beispiel #15
0
def shift_desactivate(request):
    try:
        pk = request.data.get('id')
        shift = Shift.objects.get(pk=pk)
    except Shift.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'PUT':
        serializer = ShiftSerializer(shift,
                                     data=request.data,
                                     context={'request': request},
                                     partial=True)
        if serializer.is_valid() and request.data['status'] == 'inactive':
            param = {'master_id', shift.id}
            # create a queue when activate the shift
            call_function('GET', 'dqueue', 'deletequeue', param)
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(status=status.HTTP_400_BAD_REQUEST)
Beispiel #16
0
    def get_nodes_by_type(self, type_nodes):
        service_name = 'dqueue'
        function_name = 'nodesbytypes'
        params = {
            'master_id': self.shift_id,
            'type': type_nodes,
            'number': self.nb_display_order
        }

        orders = call_function('GET', service_name, function_name, params)
        return orders.json()
Beispiel #17
0
    def update_order_status(self, order_id, status):
        service_name = 'order'
        function_name = None

        if status == 'validated':
            function_name = 'ordervalidate'
        elif status == 'pickup':
            function_name = 'orderpickup'

        params = {'id': order_id, 'status': status}
        order = call_function('PUT', service_name, function_name, params)

        return order.json()
Beispiel #18
0
    def client_around(self):
        service_name = 'geo'
        function_name = 'clientsaround'

        params = {
            'latitude': self.latitude,
            'longitude': self.longitude,
            'radius': self.radius
        }
        # print(params)

        req0 = call_function('GET', service_name, function_name, params)
        return req0.json()
Beispiel #19
0
    def update_shift_status(self, shift_id, status):
        service_name = 'client'

        if status == 'active':
            function_name = 'shiftactivate'
        elif status == 'inactive':
            function_name = 'shiftdesactivate'

        params = {'id': shift_id, 'status': status}
        shift = call_function('PUT', service_name, function_name, params)

        print(shift)
        return shift.json()
Beispiel #20
0
    def update_menu_status(self, menu_id, status):
        service_name = 'client'

        if status == 'active':
            function_name = 'menuactivate'
        elif status == 'inactive':
            function_name = 'menudesactivate'

        params = {'id': menu_id, 'status': status}
        menu = call_function('PUT', service_name, function_name, params)

        # print(shift)
        return menu.json()
Beispiel #21
0
    def get_active_shift_id(self, client_id):
        service_name = 'client'
        function_name = 'shiftbyclientstatus'

        params = {'client_id': client_id, 'status': 'active'}

        items = call_function('GET', service_name, function_name, params)
        res = items.json()
        if len(res) != 1:
            raise Exception(
                'For now client should have only 1 active shift.' +
                'This is not the case for the clientID', client_id)
        return res[0]['id']
Beispiel #22
0
    def update_menu_item(self, item_id, status):
        service_name = 'client'

        if status == 'remove':
            function_name = 'removeitemmenu'
            method_name = 'DELETE'
        elif status == 'add':
            function_name = 'additemmenu'
            method_name = 'POST'

        params = {'item_id': item_id, 'menu_id': self.menu_id}
        menu = call_function(method_name, service_name, function_name, params)

        # print(shift)
        if status == 'add':
            return menu.json()
Beispiel #23
0
 def get_employees_in_shift(self):
     employees = call_function('GET', 'client', 'getemployeesfromshift',
                               {'shift_id': self.shift_id})
     return employees.json()
Beispiel #24
0
 def reject_next_pending_order(self):
     order = self.next_pending_order()
     call_function('PUT', 'order', 'orderrejectedbyclient',
                   {'order_id': order['order_id']})
     self.update_pending_order()
Beispiel #25
0
 def validate_next_pending_order(self):
     order = self.next_pending_order()
     call_function('PUT', 'order', 'orderacceptedbyclient',
                   {'order_id': order['order_id']})
     self.update_pending_order()
Beispiel #26
0
 def update_beingserve_order(self):
     req_new_orders = call_function('GET', 'order', 'beingserveorders',
                                    {'client_id': self.client_id})
     self.beingserve_order = req_new_orders.json()
Beispiel #27
0
 def update_active_employees(self):
     employees = call_function('GET', 'client', 'getemployeesfromshift',
                               {'shift_id': self.shift_id})
     self.active_employees = [
         employee['id'] for employee in employees.json()
     ]
Beispiel #28
0
 def remove_employee_from_shift(self, employee_id):
     call_function('DELETE', 'client', 'removeemployeefromshift', {
         "shift_id": self.shift_id,
         'employee_id': employee_id
     })
     self.active_employees.remove(employee_id)
Beispiel #29
0
 def complete_order(self, order_id):
     call_function('PUT', 'order', 'ordercompleted', {'order_id': order_id})
     list_completed = list(
         filter(lambda x: x['order_id'] == order_id, self.beingserve_order))
     self.beingserve_order.remove(list_completed[0])
Beispiel #30
0
 def update_inqueue_order(self):
     req_inqueue_orders = call_function('GET', 'order', 'inqueueorders',
                                        {'client_id': self.client_id})
     self.inqueue_order = req_inqueue_orders.json()