def initiate_order_payment(form): identifier = form['identifier'] email = form['email'] order = TicketingManager.get_and_set_expiry(identifier) if order: user = TicketingManager.get_or_create_user_by_email(email, form) order.user_id = user.id if order.amount > 0 \ and (not order.paid_via or (order.paid_via and (order.paid_via == 'stripe' or order.paid_via == 'paypal'))): country = form['country'] address = form['address'] city = form['city'] state = form['state'] zipcode = form['zipcode'] order.address = address order.city = city order.state = state order.country = country order.zipcode = zipcode order.status = 'initialized' else: order.status = 'completed' order.completed_at = datetime.utcnow() if not order.paid_via: order.paid_via = 'free' holders_firstnames = form.getlist('holders[firstname]') holders_lastnames = form.getlist('holders[lastname]') holders_ticket_ids = form.getlist('holders[ticket_id]') holders_emails = form.getlist('holders[email]') for i, firstname in enumerate(holders_firstnames): data = { 'firstname': firstname, 'lastname': holders_lastnames[i] } holder_user = TicketingManager.get_or_create_user_by_email(holders_emails[i], data) ticket_holder = TicketHolder(firstname=data['firstname'], lastname=data['lastname'], ticket_id=int(holders_ticket_ids[i]), email=holder_user.email, order_id=order.id) DataManager.add_attendee_role_to_event(holder_user, order.event_id) db.session.add(ticket_holder) # add attendee role to user DataManager.add_attendee_role_to_event(user, order.event_id) # save items save_to_db(order) return order else: return False
def initiate_order_payment(form, paid_via=None): identifier = form['identifier'] email = form['email'] order = TicketingManager.get_and_set_expiry(identifier) if order: user = DataGetter.get_or_create_user_by_email(email, form) order.user_id = user.id if order.amount > 0 \ and (not order.paid_via or (order.paid_via and (order.paid_via == 'stripe' or order.paid_via == 'paypal'))): if paid_via: order.paid_via = paid_via country = form['country'] address = form['address'] city = form['city'] state = form['state'] zipcode = form['zipcode'] order.address = address order.city = city order.state = state order.country = country order.zipcode = zipcode if paid_via == 'transfer' or paid_via == 'onsite' or paid_via == 'cheque': order.status = 'placed' else: order.status = 'initialized' else: order.status = 'completed' order.completed_at = datetime.utcnow() if not order.paid_via: order.paid_via = 'free' invoice_id = order.get_invoice_number() order_url = url_for('ticketing.view_order_after_payment', order_identifier=order.identifier, _external=True) # add holders to user holders_firstnames = form.getlist('holders[firstname]') holders_lastnames = form.getlist('holders[lastname]') holders_ticket_ids = form.getlist('holders[ticket_id]') holders_emails = form.getlist('holders[email]') for i, firstname in enumerate(holders_firstnames): data = { 'firstname': firstname, 'lastname': holders_lastnames[i] } holder_user = DataGetter.get_or_create_user_by_email(holders_emails[i], data) ticket_holder = TicketHolder(firstname=data['firstname'], lastname=data['lastname'], ticket_id=int(holders_ticket_ids[i]), email=holder_user.email, order_id=order.id) if order.status == "completed": send_email_for_after_purchase(holder_user.email, invoice_id, order_url, order.event.name, order.event.organizer_name) DataManager.add_attendee_role_to_event(holder_user, order.event_id) db.session.add(ticket_holder) # add attendee role to user if order.status == "completed": trigger_after_purchase_notifications(email, order.event_id, order.event, invoice_id, order_url) send_email_for_after_purchase(email, invoice_id, order_url, order.event.name, order.event.organizer_name) DataManager.add_attendee_role_to_event(user, order.event_id) # save items save_to_db(order) return order else: return False
def initiate_order_payment(form, paid_via=None): identifier = form['identifier'] email = form['email'] order = TicketingManager.get_and_set_expiry(identifier) if order: user = TicketingManager.get_or_create_user_by_email(email, form) order.user_id = user.id if order.amount > 0 \ and (not order.paid_via or (order.paid_via and (order.paid_via == 'stripe' or order.paid_via == 'paypal'))): if paid_via: order.paid_via = paid_via country = form['country'] address = form['address'] city = form['city'] state = form['state'] zipcode = form['zipcode'] order.address = address order.city = city order.state = state order.country = country order.zipcode = zipcode if paid_via == 'transfer' or paid_via == 'onsite' or paid_via == 'cheque': order.status = 'placed' else: order.status = 'initialized' else: order.status = 'completed' order.completed_at = datetime.utcnow() if not order.paid_via: order.paid_via = 'free' holders_firstnames = form.getlist('holders[firstname]') holders_lastnames = form.getlist('holders[lastname]') holders_ticket_ids = form.getlist('holders[ticket_id]') holders_emails = form.getlist('holders[email]') for i, firstname in enumerate(holders_firstnames): data = { 'firstname': firstname, 'lastname': holders_lastnames[i] } holder_user = TicketingManager.get_or_create_user_by_email(holders_emails[i], data) ticket_holder = TicketHolder(firstname=data['firstname'], lastname=data['lastname'], ticket_id=int(holders_ticket_ids[i]), email=holder_user.email, order_id=order.id) DataManager.add_attendee_role_to_event(holder_user, order.event_id) db.session.add(ticket_holder) # add attendee role to user DataManager.add_attendee_role_to_event(user, order.event_id) # save items save_to_db(order) return order else: return False
def initiate_order_payment(form, paid_via=None): identifier = form['identifier'] email = form['email'] order = TicketingManager.get_and_set_expiry(identifier) if order: user = DataGetter.get_or_create_user_by_email(email, form) order.user_id = user.id if not order.user.user_detail.firstname and not order.user.user_detail.lastname: order.user.user_detail.firstname = form['firstname'] order.user.user_detail.lastname = form['lastname'] if order.amount > 0 \ and (not order.paid_via or (order.paid_via and (order.paid_via == 'stripe' or order.paid_via == 'paypal'))): if paid_via: order.paid_via = paid_via country = form['country'] address = form['address'] city = form['city'] state = form['state'] zipcode = form['zipcode'] order.address = address order.city = city order.state = state order.country = country order.zipcode = zipcode if paid_via == 'transfer' or paid_via == 'onsite' or paid_via == 'cheque': order.status = 'placed' else: order.status = 'initialized' else: order.status = 'completed' order.completed_at = datetime.utcnow() if not order.paid_via: order.paid_via = 'free' invoice_id = order.get_invoice_number() order_url = url_for('ticketing.view_order_after_payment', order_identifier=order.identifier, _external=True) # add holders to user holders_firstnames = form.getlist('holders[firstname]') holders_lastnames = form.getlist('holders[lastname]') holders_ticket_ids = form.getlist('holders[ticket_id]') holders_emails = form.getlist('holders[email]') for i, firstname in enumerate(holders_firstnames): data = { 'firstname': firstname, 'lastname': holders_lastnames[i] } holder_user = DataGetter.get_or_create_user_by_email( holders_emails[i], data) ticket_holder = TicketHolder(firstname=data['firstname'], lastname=data['lastname'], ticket_id=int( holders_ticket_ids[i]), email=holder_user.email, order_id=order.id) if data['firstname'] == '' or data[ 'lastname'] == '' or holder_user.email == '': return abort(400) if order.status == "completed": send_email_for_after_purchase(holder_user.email, invoice_id, order_url, order.event.name, order.event.organizer_name) DataManager.add_attendee_role_to_event(holder_user, order.event_id) db.session.add(ticket_holder) # add attendee role to user if order.status == "completed": trigger_after_purchase_notifications(email, order.event_id, order.event, invoice_id, order_url) send_email_for_after_purchase(email, invoice_id, order_url, order.event.name, order.event.organizer_name) DataManager.add_attendee_role_to_event(user, order.event_id) # save items save_to_db(order) return order else: return False