def end_trip(self): if self.__trip_status != trip_status.TRIP_STARTED: return standard_response.get_standard_api_response(False, "Trip not started", ApplicationErrorCodes.REQUEST_NOT_FULFILLED) self.__trip_status = trip_status.TRIP_COMPLETED self.__cab_action.deallocate_cab() self.__cab_action.update_cab_location(self.__request.get_trip_end_location()) self.__trip_distance = utils.get_trip_distance(self.__request.get_trip_start_location(), self.__request.get_trip_end_location()) self.__trip_duration = utils.get_trip_timing(self.__trip_distance) # self.__trip_end_time - self.__trip_start_time self.__trip_end_time = self.__trip_start_time + datetime.timedelta(minutes = int(self.__trip_duration)) # datetime.now() self.__order = Order(self.__trip_id, self.__request.get_trip_customer(), self.__trip_distance, self.__trip_duration, self.__request.get_trip_preference().get_cab_color()) return standard_response.get_standard_api_response(True, "", ApplicationErrorCodes.SUCCESS, self.to_dict())
def get_order(id_): existing_order = Order.objects(user_id=request.current_user['id'], id=id_).first() if not existing_order: raise NotFoundError('Order not found') return existing_order.response()
def get_service_type_label(): """ **薪资支付计划** """ order_id = request.args.get('order_id', None) if not order_id: abort(400, "请求参数不完整") order = Order.get(order_id) return jsonify(status='success', code=1, data=order_schema_data.dump(order).data)
def create_order(): req_val_bd = request.valid_body.dict() existing_ticket = Ticket.objects(id=req_val_bd['ticket_id']).first() if not existing_ticket: raise NotFoundError("Ticket not found") if existing_ticket.is_reserved(): raise BadRequestError("Ticket is reserved") new_order = Order( user_id=request.current_user['id'], ticket=existing_ticket) new_order.save() publish_event(publish_channel, OrderCreatedEvent( data={ "id": str(new_order.id), "user_id": request.current_user['id'], "expires_at": str(new_order.expires_at), "ticket": { "id": str(existing_ticket.id), "price": existing_ticket.price }, "version": new_order.version })) publish_event(publish_channel, ExpirationStartCounterEvent(data={ "id": str(new_order.id), "user_id": request.current_user['id'], "expires_at": str(new_order.expires_at), "ticket": { "id": str(existing_ticket.id), "price": existing_ticket.price }, "version": new_order.version })) resp = new_order.response() return resp
def real_make_order(self): self.sock.send('add_orders'.encode()) try: datetime.datetime.strptime(self.t_deadline_input.get(), '%d.%m.%Y') except ValueError: messagebox.showerror(message='Введена неправильная дата. Формат даты: ##.##.####') return order = Order(self.account, self.t_platform_input.get(), self.t_deadline_input.get(), self.t_topic_input.get(), self.t_description_input.get(1.0, END), self.is_promotion_enabled.get() == 0) self.sock.send(dumps(order)) self.call_user_menu()
def expiration_complete_callback(ch, method, props, body): body = json.loads(body) print("inside order expiration complete callback", flush=True) print(body, flush=True) existing_order = Order.objects(id=body['data']['order_id']).first() if not existing_order: raise Exception('Order not found') existing_order.modify(status=EventType.Order.CANCELLED) existing_order.save() publish_event(publish_channel, OrderCancelledEvent(data=existing_order.response())) ch.basic_ack(delivery_tag=method.delivery_tag)
def purchase(): if request.method == 'POST': order = Order(event_id = request.form['event_id'], user_id=current_user.id) db.session.add(order) db.session.commit() event = Event.query.get(request.form['event_id']) for ticket in event.tickets(): selected_ticket = request.form['ticket_id_{0}'.format(ticket.id)] selected_ticket_quantity = request.form['ticket_count_{0}'.format(ticket.id)] if selected_ticket and int(selected_ticket_quantity) > 0: numberrrr = int(request.form['ticket_count_{0}'.format(ticket.id)]) for number in range(0, numberrrr): order_item = OrderItem(order_id=order.id, ticket_id=ticket.id) ticket.quantity -= 1 db.session.add(order_item) db.session.commit() ticket.quantity -= numberrrr return redirect(url_for('user.orders'))
def schedule(): if request.method == 'POST': data = request.get_json()['order'] check_serv = Service.query.filter_by( service_name=data['servicetype']).first() print(check_serv, 'service here') # addr = Location.query.filter_by(location_pickup = data['address']).first() # if not addr: address = Location(user_id=current_user.id, location_pickup=data['address']) db.session.add(address) db.session.commit() order_items = Order(user_id=current_user.id, service_id=check_serv.id, dateandtime=data['dateandtime'], location_id=address.id) db.session.add(order_items) db.session.commit() return jsonify({'success': 'success'})
def delete_order(id_): existing_order = Order.objects(id=id_).first() if not existing_order: raise NotFoundError('Order not found') existing_order.status = EventType.Order.CANCELLED existing_order.save() publish_event( publish_channel, OrderCancelledEvent( data={ "id": str(existing_order.id), "ticket": { "id": str(existing_order.ticket.id), }, "version": existing_order.version })) return {}, 204
def purchase(): if request.method == 'POST': event = Event.query.get(request.form['event_id']) order = Order( event_id = event.id, user_id=current_user.id ) db.session.add(order) db.session.commit() order_items = [] for ticket in event.tickets(): quantity = int(request.form[ticket.title]) if quantity > 0: for _ in range(quantity): order_item = OrderItem( order_id=order.id, ticket_id=ticket.id ) ticket.quantity -= 1 order_items.append(order_item) db.session.add_all(order_items) db.session.commit() return redirect(url_for('user.orders'))
def get_orders(): all_orders = Order.objects(user_id=request.current_user['id']) return jsonify([orders.response() for orders in all_orders])
class Trip(object): def __init__(self, trip_request, cab_action, trip_registry, *args, **kwargs): self.__request = trip_request self.__cab_action = cab_action self.__order = None self.__trip_id = utils.get_id() self.__trip_start_time = None self.__trip_end_time = None self.__trip_duration = None self.__trip_status = trip_status.TRIP_DISPATCHED # Initial stage of the trip self.__trip_allocation_time = datetime.datetime.now() self.__trip_distance = 0.0 # Assumed to be in Kilometers self.__args = args self.__kwargs = kwargs trip_registry.register_trip(self) def get_trip_id(self): return self.__trip_id def start_trip(self): if self.__trip_status != trip_status.TRIP_DISPATCHED: return standard_response.get_standard_api_response(False, "Trip not requested / dispatched", ApplicationErrorCodes.REQUEST_NOT_FULFILLED) self.__trip_start_time = datetime.datetime.now() self.__trip_status = trip_status.TRIP_STARTED return standard_response.get_standard_api_response(True, "", ApplicationErrorCodes.SUCCESS, self.to_dict()) def cancel_trip(self): if not self.__is_trip_cancellable(): return standard_response.get_standard_api_response(False, "Trip not requested, not dispatched or already started", ApplicationErrorCodes.REQUEST_NOT_FULFILLED) self.__trip_status = trip_status.TRIP_CANCELLED self.__cab_action.deallocate_cab() return standard_response.get_standard_api_response(True, "", ApplicationErrorCodes.SUCCESS, self.to_dict()) def __is_trip_cancellable(self): if self.__trip_status == trip_status.TRIP_DISPATCHED: return True return False def end_trip(self): if self.__trip_status != trip_status.TRIP_STARTED: return standard_response.get_standard_api_response(False, "Trip not started", ApplicationErrorCodes.REQUEST_NOT_FULFILLED) self.__trip_status = trip_status.TRIP_COMPLETED self.__cab_action.deallocate_cab() self.__cab_action.update_cab_location(self.__request.get_trip_end_location()) self.__trip_distance = utils.get_trip_distance(self.__request.get_trip_start_location(), self.__request.get_trip_end_location()) self.__trip_duration = utils.get_trip_timing(self.__trip_distance) # self.__trip_end_time - self.__trip_start_time self.__trip_end_time = self.__trip_start_time + datetime.timedelta(minutes = int(self.__trip_duration)) # datetime.now() self.__order = Order(self.__trip_id, self.__request.get_trip_customer(), self.__trip_distance, self.__trip_duration, self.__request.get_trip_preference().get_cab_color()) return standard_response.get_standard_api_response(True, "", ApplicationErrorCodes.SUCCESS, self.to_dict()) def generate_order_details(self): pass def to_dict(self): order_summary = {} if self.__order is not None: order_summary = self.__order.to_dict() return {"trip_request" : self.__request.to_dict(), "trip_id" : str(self.__trip_id), "trip_start_time" : str(self.__trip_start_time), "trip_end_time" : str(self.__trip_end_time), "trip_duration" : str(self.__trip_duration), "trip_status" : trip_status.get_trip_status(self.__trip_status), "trip_allocation_time: " : repr(self.__trip_allocation_time), "trip_distance" : str(self.__trip_distance), "cab_info" : self.__cab_action.get_cab_info(), "order_summary" : order_summary} def get_standard_trip_response(self): return standard_response.get_standard_api_response(True, "", ApplicationErrorCodes.SUCCESS, self.to_dict())