Exemplo n.º 1
0
def get_order_for_event(event,
                        form,
                        registration=None,
                        partner_registration=None):
    assert isinstance(event, Event)
    user_order = Order()

    for product_model in event.products:
        product = get_product_by_model(product_model)
        product_form = form.get_product_by_key(product_model.product_key)
        if product.is_selected(product_form):
            order_product = product.get_order_product_model(
                product_model, product_form, form)
            if type(order_product) is list:
                order_product[0].registration = registration
                order_product[1].registration = partner_registration
                user_order.order_products.append(order_product[0])
                user_order.order_products.append(order_product[1])
            else:
                # registration_model = get_registration_from_form(form)
                order_product.registration = registration

                if product_form.needs_partner():
                    # partner_registration_model = get_partner_registration_from_form(form)
                    order_product.registration = partner_registration

                user_order.order_products.append(order_product)

    products_price = user_order.products_price
    user_order.transaction_fee = transaction_fee(products_price)
    user_order.total_price = user_order.products_price

    add_payment_to_user_order(user_order)

    return user_order
Exemplo n.º 2
0
def test_OrderSummaryController_show_order_summary():
    order = Order(total_price=100, transaction_fee=1.5)
    order_controller = OrderSummaryController(order=order)
    assert order_controller.show_order_summary == False

    product = Product('Test', 'Test')
    order.order_products.append(OrderProduct(product, 10))
    order_controller = OrderSummaryController(order=order)
    assert order_controller.show_order_summary == True
Exemplo n.º 3
0
def get_order_for_crowdfunding_event(event,
                                     form,
                                     registration=None,
                                     partner_registration=None):
    assert isinstance(event, Event)
    user_order = Order()

    for product_model in event.products:
        product = get_product_by_model(product_model)
        product_form = form.get_product_by_key(product_model.product_key)
        price = product.get_total_price(product_model, product_form, form)
        if price > 0:
            # registration_model = get_registration_from_form(form)
            if hasattr(product_form, 'add'):
                print(product_form.add.object_data,
                      type(product_form.add.object_data))
                print(product_form.add.object_data == None)
                if product_form.add.data not in ['0', 'None']:
                    for n in range(int(product_form.add.data)):
                        order_product = product.get_order_product_model(
                            product_model, product_form, form)
                        order_product.registration = registration
                        user_order.order_products.append(order_product)
            else:
                order_product = product.get_order_product_model(
                    product_model, product_form, form)
                order_product.registration = registration
                user_order.order_products.append(order_product)

    products_price = user_order.products_price
    user_order.transaction_fee = transaction_fee(products_price)
    user_order.total_price = user_order.products_price

    add_payment_to_user_order(user_order)

    return user_order
Exemplo n.º 4
0
event = Event.query.filter_by(
    event_key='simona_de_leo_s_crowdfunding_campaign').one()

donate_product = Product.query.filter_by(id=1).one()
patrick_private = Product.query.filter_by(id=5).one()

registration1 = Registration(
    name='Aleksandr Vinokurov',
    email='*****@*****.**',
    comment='Good luck with getting the MA! All the best!',
    registered_datetime='2017-05-28 18:18:57')
registration1.crowdfunding_registration_properties = \
                CrowdfundingRegistrationProperties(anonymous=1)
order1 = Order(total_price=20,
               transaction_fee=0.5,
               status='paid',
               order_datetime='2017-05-28 18:18:57',
               stripe_charge_id='ch_1AOVyfHQoe2Uj5fJugrd2ZhT')
order1.registration = registration1
order1_product = OrderProduct(price=order1.total_price, product=donate_product)
order1.order_products.append(order1_product)
event.orders.append(order1)

registration2 = Registration(
    name='Noelle',
    email='*****@*****.**',
    comment='Happy Birthday gorgeous and enjoy your MA!! ',
    registered_datetime='2017-05-29 13:41:31')
registration2.crowdfunding_registration_properties = \
                CrowdfundingRegistrationProperties(anonymous=0)
order2 = Order(total_price=25,
Exemplo n.º 5
0
def test_OrderSummaryController_total_price():
    order = Order(total_price=100, transaction_fee=1.5)
    order_controller = OrderSummaryController(order=order)
    assert order_controller.total_price == '£101.50'
Exemplo n.º 6
0
    order_product = OrderProduct(Product.query.filter_by(
        event_id=6, name=product_name).one(),
                                 price=price,
                                 status='accepted')
    order_product.registration = registration
    return order_product


def get_station_order_product(product_name, price, dance_role):
    order_product = get_order_product(product_name, price)
    order_product.details.append(
        OrderProductDetail(field_name='dance_role', field_value=dance_role))
    return order_product


user_order = Order()

# user_order.order_products.append(get_station_order_product('Rhythm Shag', 0, 'follower'))
# user_order.order_products.append(get_station_order_product('Swing Out Like You\'re From St. Louis', 0, 'follower'))
# user_order.order_products.append(get_station_order_product('Rockabilly Bopper Shag', 0, 'follower'))
user_order.order_products.append(get_order_product('Friday Party', 0))
user_order.order_products.append(get_order_product('Saturday Party', 0))
user_order.order_products.append(get_order_product('Sunday Party', 0))
# user_order.order_products.append(get_order_product('Full Weekend Ticket', 135))

# enable for free registrations:
# user_order.payments[0].amount = 0

# user_order.total_price = sum([op.price for op in user_order.order_products])
user_order.total_price = user_order.products_price
user_order.payment_due = user_order.total_price
Exemplo n.º 7
0
def mts_get_order_for_event(event,
                            form,
                            registration=None,
                            partner_registration=None):
    assert isinstance(event, Event)
    user_order = Order()

    free_classes_remaining = 0

    mts_form_controller = MtsSignupFormController(form)
    weekend_ticket_key = mts_form_controller.weekend_ticket_key
    if weekend_ticket_key:
        weekend_ticket_form = form.get_product_by_key(weekend_ticket_key)
        if mts_form_controller.full_pass_selected:
            free_classes_remaining = 3

    for product_model in event.products:
        product = get_product_by_model(product_model)
        product_form = form.get_product_by_key(product_model.product_key)
        if product.is_selected(product_form):
            order_product = product.get_order_product_model(
                product_model, product_form, form)
            if type(order_product) is list:

                if weekend_ticket_key:
                    product_keywords = product.keywords.split(',')
                    if weekend_ticket_form.includes and set(
                            weekend_ticket_form.includes.split(
                                ',')).intersection(product_keywords):
                        order_product[0].price = 0
                        order_product[1].price = 0
                    elif isinstance(product, RegularPartnerWorkshop):
                        if free_classes_remaining:
                            order_product[0].price = 0
                            order_product[1].price = 0
                            free_classes_remaining -= 1
                        elif mts_form_controller.is_special_extra_block_price:
                            order_product[
                                0].price = product.get_discount_price_by_key(
                                    'extra_block')
                            order_product[
                                1].price = product.get_discount_price_by_key(
                                    'extra_block')

                order_product[0].registration = registration
                order_product[1].registration = partner_registration
                user_order.order_products.append(order_product[0])
                user_order.order_products.append(order_product[1])
            else:
                if weekend_ticket_key:
                    product_keywords = product.keywords.split(',')
                    if weekend_ticket_form.includes and set(
                            weekend_ticket_form.includes.split(
                                ',')).intersection(product_keywords):
                        order_product.price = 0
                    elif isinstance(product, RegularPartnerWorkshop):
                        if free_classes_remaining:
                            order_product.price = 0
                            free_classes_remaining -= 1
                        elif mts_form_controller.is_special_extra_block_price:
                            order_product.price = product.get_discount_price_by_key(
                                'extra_block')

                # registration_model = get_registration_from_form(form)
                order_product.registration = registration

                if product_form.needs_partner():
                    # partner_registration_model = get_partner_registration_from_form(form)
                    order_product.registration = partner_registration

                user_order.order_products.append(order_product)

    products_price = user_order.products_price
    user_order.transaction_fee = transaction_fee(products_price)
    user_order.total_price = user_order.products_price

    add_payment_to_user_order(user_order)

    return user_order
Exemplo n.º 8
0
    ORDER_STATUS_PAID, PAYMENT_STATUS_PAID
from salty_tickets.pricing_rules import add_payment_to_user_order, balance_event_waiting_lists

event = models.Event.query.filter_by(
    event_key='salty_recipes_with_simona_rokas').one()
print(event.name)

NAME = 'Louis Carruthers'
EMAIL = '*****@*****.**'
PRICE = 0
ROLE = DANCE_ROLE_LEADER
#ROLE = DANCE_ROLE_FOLLOWER

registration = Registration(name=NAME, email=EMAIL, comment='Manually added')

user_order = Order()
for product_model in event.products:
    order_product = OrderProduct(product_model,
                                 PRICE,
                                 dict(dance_role=ROLE),
                                 status=ORDER_PRODUCT_STATUS_ACCEPTED)
    order_product.registrations.append(registration)
    user_order.order_products.append(order_product)

user_order.transaction_fee = 0
user_order.total_price = user_order.products_price

user_order.registration = registration
add_payment_to_user_order(user_order)

total_paid = sum([p.amount for p in user_order.payments]) or 0