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)
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
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
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)
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()
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()
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()
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()
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
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()
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()
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)
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)
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()
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)
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()
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()
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()
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()
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()
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']
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()
def get_employees_in_shift(self): employees = call_function('GET', 'client', 'getemployeesfromshift', {'shift_id': self.shift_id}) return employees.json()
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()
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()
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()
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() ]
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)
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])
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()