def delete_stock_and_cancel_bookings(stock: Stock) -> List[Booking]: if _is_thing(stock): stock.isSoftDeleted = True _cancel_unused_bookings(stock) return stock.bookings limit_date_for_stock_deletion = stock.endDatetime + STOCK_DELETION_DELAY now = datetime.utcnow() if now <= limit_date_for_stock_deletion: stock.isSoftDeleted = True _cancel_all_bookings(stock) else: raise TooLateToDeleteError() return stock.bookings
def create_stock_from_offer(offer, price=10, available=10, soft_deleted=False, booking_limit_datetime=None, beginning_datetime=None, end_datetime=None): stock = Stock() stock.offer = offer stock.price = price stock.available = available stock.isSoftDeleted = soft_deleted stock.bookingLimitDatetime = booking_limit_datetime stock.beginningDatetime = beginning_datetime stock.endDatetime = end_datetime return stock
def create_stock(price=10, available=10, booking_limit_datetime=None, offer=None, beginning_datetime=None, end_datetime=None, is_soft_deleted=False, id_at_providers=None, last_provider_id=None): stock = Stock() stock.price = price stock.available = available stock.bookingLimitDatetime = booking_limit_datetime stock.offer = offer stock.beginningDatetime = beginning_datetime stock.endDatetime = end_datetime stock.isSoftDeleted = is_soft_deleted stock.idAtProviders = id_at_providers stock.lastProviderId = last_provider_id return stock
def create_stock_from_event_occurrence(event_occurrence, price=10, available=10, soft_deleted=False, recap_sent=False, booking_limit_date=None): stock = Stock() stock.beginningDatetime = event_occurrence['beginningDatetime'] stock.endDatetime = event_occurrence['endDatetime'] stock.offerId = event_occurrence['offerId'] stock.offer = event_occurrence['offer'] stock.price = price stock.available = available stock.isSoftDeleted = soft_deleted if recap_sent: stock.bookingRecapSent = datetime.utcnow() if booking_limit_date is None: stock.bookingLimitDatetime = event_occurrence['beginningDatetime'] else: stock.bookingLimitDatetime = booking_limit_date return stock
def create_stock_with_thing_offer(offerer, venue, offer=None, price=10, available=50, name='Test Book', booking_email='*****@*****.**', soft_deleted=False, url=None, booking_limit_datetime=None, thing_type=ThingType.AUDIOVISUEL) -> Stock: stock = Stock() stock.offerer = offerer stock.price = price if offer: stock.offer = offer else: stock.offer = create_offer_with_thing_product(venue, thing_name=name, thing_type=thing_type) stock.offer.bookingEmail = booking_email stock.bookingLimitDatetime = booking_limit_datetime stock.offer.url = url stock.offer.venue = venue stock.available = available stock.isSoftDeleted = soft_deleted return stock
def create_stock_with_event_offer(offerer, venue, price=10, booking_email='*****@*****.**', available=10, is_soft_deleted=False, event_type=EventType.JEUX, name='Mains, sorts et papiers', offer_id=None, beginning_datetime=datetime.utcnow() + timedelta(hours=72), end_datetime=datetime.utcnow() + timedelta(hours=74), thumb_count=0, booking_limit_datetime=datetime.utcnow() + timedelta(hours=71)): stock = Stock() stock.offerer = offerer stock.price = price stock.available = available stock.beginningDatetime = beginning_datetime stock.endDatetime = end_datetime stock.bookingLimitDatetime = booking_limit_datetime stock.offer = create_offer_with_event_product(venue, event_name=name, event_type=event_type, booking_email=booking_email, is_national=False, thumb_count=thumb_count) stock.offer.id = offer_id stock.isSoftDeleted = is_soft_deleted return stock