def listing(self): # XXX: discount can_cancel_booking = self.can_cancel_booking ret = list() for booking in self.order_data.bookings: obj = get_object_by_uid(self.context, booking.attrs['buyable_uid']) state = vocabs.state_vocab()[booking.attrs.get('state')] salaried = vocabs.salaried_vocab()[booking.attrs.get('salaried')] cancel_target = None if can_cancel_booking and state != ifaces.STATE_CANCELLED: cancel_target = addTokenToUrl('{}?uid={}'.format( self.context.absolute_url(), booking.attrs['uid']) ) ret.append({ 'uid': booking.attrs['uid'], 'title': booking.attrs['title'], 'url': obj.absolute_url() if obj else None, 'cancel_target': cancel_target, 'count': booking.attrs['buyable_count'], 'net': ascur(booking.attrs.get('net', 0.0)), 'discount_net': ascur(float(booking.attrs['discount_net'])), 'vat': booking.attrs.get('vat', 0.0), 'comment': booking.attrs['buyable_comment'], 'quantity_unit': booking.attrs.get('quantity_unit'), 'currency': booking.attrs.get('currency'), 'state': state, 'salaried': salaried, }) return ret
def listing(self): # XXX: discount ret = list() for booking in self.order_data.bookings: obj = get_object_by_uid(self.context, booking.attrs['buyable_uid']) state = vocabs.state_vocab()[booking.attrs.get('state')] salaried = vocabs.salaried_vocab()[booking.attrs.get('salaried')] ret.append({ 'uid': booking.attrs['uid'], 'title': booking.attrs['title'], 'url': obj.absolute_url(), 'count': booking.attrs['buyable_count'], 'net': ascur(booking.attrs.get('net', 0.0)), 'discount_net': ascur(float(booking.attrs['discount_net'])), 'vat': booking.attrs.get('vat', 0.0), 'comment': booking.attrs['buyable_comment'], 'quantity_unit': booking.attrs.get('quantity_unit'), 'currency': booking.attrs.get('currency'), 'state': state, 'salaried': salaried, }) return ret
def listing(self): # XXX: discount ret = list() for booking in self.order_data.bookings: obj = get_object_by_uid(self.context, booking.attrs['buyable_uid']) state = vocabs.state_vocab()[booking.attrs.get('state')] salaried = vocabs.salaried_vocab()[booking.attrs.get('salaried')] ret.append({ 'uid': booking.attrs['uid'], 'title': booking.attrs['title'], 'url': obj.absolute_url(), 'reserved': reserved( booking.attrs['remaining_stock_available'], booking.attrs['buyable_count']), 'count': booking.attrs['buyable_count'], 'net': ascur(booking.attrs.get('net', 0.0)), 'discount_net': ascur(float(booking.attrs['discount_net'])), 'vat': booking.attrs.get('vat', 0.0), 'comment': booking.attrs['buyable_comment'], 'quantity_unit': booking.attrs.get('quantity_unit'), 'currency': booking.attrs.get('currency'), 'state': state, 'salaried': salaried, }) return ret
def listing(self): # XXX: discount ret = list() for booking in self.order_data.bookings: ret.append({ 'title': booking.attrs['title'], 'url': uuidToURL(booking.attrs['buyable_uid']), 'count': booking.attrs['buyable_count'], 'net': ascur(booking.attrs.get('net', 0.0)), 'discount_net': ascur(float(booking.attrs['discount_net'])), 'vat': booking.attrs.get('vat', 0.0), 'exported': booking.attrs['exported'], 'comment': booking.attrs['buyable_comment'], 'quantity_unit': booking.attrs.get('quantity_unit'), 'currency': booking.attrs.get('currency'), }) return ret
def get_etickets(self, order_id): tickets = {"tickets": [], "customer": "", "total_tickets": 0} try: data = OrderData(self.context, uid=order_id) bookings = data.bookings total_items = 0 first_name = data.order.attrs['personal_data.firstname'] last_name = data.order.attrs['personal_data.lastname'] created_date = data.order.attrs['created'] customer_name = "%s %s" % (first_name, last_name) tickets['customer'] = customer_name for booking in bookings: print booking.attrs.keys() original_price = (Decimal(str(booking.attrs['net']))) * 1 price_total = original_price + original_price / Decimal( 100) * Decimal(str(booking.attrs['vat'])) total_items += booking.attrs['buyable_count'] tickets['tickets'].append({ "cart_item_title": booking.attrs['title'], "cart_item_price": ascur(price_total), "cart_item_count": len(booking.attrs['to_redeem']), "booking_uid": booking.attrs['uid'], "cart_item_original_price": "", "order_created_date": created_date, "to_redeem": booking.attrs['to_redeem'] }) tickets["total_tickets"] = total_items except: raise return tickets return tickets
def get_etickets(self, order_id): tickets = { "tickets": [], "customer": "", "total_tickets": 0 } try: data = OrderData(self.context, uid=order_id) bookings = data.bookings total_items = 0 first_name = data.order.attrs['personal_data.firstname'] last_name = data.order.attrs['personal_data.lastname'] customer_name = "%s %s" %(first_name, last_name) tickets['customer'] = customer_name for booking in bookings: original_price = (Decimal(str(booking.attrs['net']))) * 1 price_total = original_price + original_price / Decimal(100) * Decimal(str(booking.attrs['vat'])) total_items += booking.attrs['buyable_count'] tickets['tickets'].append({ "cart_item_title": booking.attrs['title'], "cart_item_price": ascur(price_total), "cart_item_count": booking.attrs['buyable_count'], "booking_uid": booking.attrs['uid'], "cart_item_original_price": "" }) tickets["total_tickets"] = total_items except: return tickets return tickets
def total(self): return ascur(self.order_data.total)
def shipping_vat(self): return ascur(self.order_data.shipping_vat)
def vat(self): return ascur(self.order_data.vat)
def test_ascur(self): from bda.plone.cart import ascur self.assertEquals(ascur(5.0), "5.00") self.assertEquals(ascur(5.0, comma=True), "5,00")
def create_order_summary(context, order_data): """Create summary for notification mail. """ attrs = order_data.order.attrs cart_total = order_data.total # no costs at all if not cart_total: return u'' lines = [] request = getRequest() # currency currency = order_data.currency # cart net and vat cart_net = order_data.net if cart_net: # cart net order_summary_cart_net = _( 'order_summary_cart_net', default=u'Net: ${value} ${currency}', mapping={ 'value': ascur(cart_net), 'currency': currency, }) lines.append(translate(order_summary_cart_net, context=request)) # cart vat cart_vat = order_data.vat order_summary_cart_vat = _( 'order_summary_cart_vat', default=u'VAT: ${value} ${currency}', mapping={ 'value': ascur(cart_vat), 'currency': currency, }) lines.append(translate(order_summary_cart_vat, context=request)) # cart discount discount_net = order_data.discount_net if discount_net: # discount net order_summary_discount_net = _( 'order_summary_discount_net', default=u'Discount Net: ${value} ${currency}', mapping={ 'value': ascur(discount_net), 'currency': currency, }) lines.append(translate(order_summary_discount_net, context=request)) # discount vat discount_vat = order_data.discount_vat order_summary_discount_vat = _( 'order_summary_discount_vat', default=u'Discount VAT: ${value} ${currency}', mapping={ 'value': ascur(discount_vat), 'currency': currency, }) lines.append(translate(order_summary_discount_vat, context=request)) # discount total discount_total = discount_net + discount_vat order_summary_discount_total = _( 'order_summary_discount_total', default=u'Discount Total: ${value} ${currency}', mapping={ 'value': ascur(discount_total), 'currency': currency, }) lines.append(translate(order_summary_discount_total, context=request)) # shipping costs shipping_net = order_data.shipping_net if shipping_net: # shiping label shipping_label = attrs['shipping_label'] order_summary_shipping_label = _( 'order_summary_shipping_label', default=u'Shipping: ${label}', mapping={ 'label': translate(shipping_label, context=request), }) lines.append(translate(order_summary_shipping_label, context=request)) # shiping description shipping_description = attrs['shipping_description'] lines.append(translate(shipping_description, context=request)) # shiping net order_summary_shipping_net = _( 'order_summary_shipping_net', default=u'Shipping Net: ${value} ${currency}', mapping={ 'value': ascur(shipping_net), 'currency': currency, }) lines.append(translate(order_summary_shipping_net, context=request)) # shiping vat shipping_vat = order_data.shipping_vat order_summary_shipping_vat = _( 'order_summary_shipping_vat', default=u'Shipping VAT: ${value} ${currency}', mapping={ 'value': ascur(shipping_vat), 'currency': currency, }) lines.append(translate(order_summary_shipping_vat, context=request)) # shiping total shipping_total = shipping_net + shipping_vat order_summary_shipping_total = _( 'order_summary_shipping_total', default=u'Shipping Total: ${value} ${currency}', mapping={ 'value': ascur(shipping_total), 'currency': currency, }) lines.append(translate(order_summary_shipping_total, context=request)) # cart total order_summary_cart_total = _( 'order_summary_cart_total', default=u'Total: ${value} ${currency}', mapping={ 'value': ascur(cart_total), 'currency': currency, }) lines.append(translate(order_summary_cart_total, context=request)) summary_title = translate( _('order_summary_label', default=u'Summary:'), context=request) summary_text = u'\n'.join(lines) return u'\n{summary_title}\n{summary_text}\n'.format( summary_title=summary_title, summary_text=summary_text )
def format_amount(val): # User ascur method from bda.plone.cart to ensure shipping is displayed in # an international friendly manner return ascur(val)
def ascur(self, val): return ascur(val)
def create_order_summary(context, order_data): """Create summary for notification mail. """ attrs = order_data.order.attrs cart_total = order_data.total # no costs at all if not cart_total: return '' lines = [] request = getRequest() # currency currency = order_data.currency # cart net and vat cart_net = order_data.net if cart_net: # cart net order_summary_cart_net = _('order_summary_cart_net', default=u'Net: ${value} ${currency}', mapping={ 'value': ascur(cart_net), 'currency': currency, }) lines.append(translate(order_summary_cart_net, context=request)) # cart vat cart_vat = order_data.vat order_summary_cart_vat = _('order_summary_cart_vat', default=u'VAT: ${value} ${currency}', mapping={ 'value': ascur(cart_vat), 'currency': currency, }) lines.append(translate(order_summary_cart_vat, context=request)) # cart discount discount_net = order_data.discount_net if discount_net: # discount net order_summary_discount_net = _( 'order_summary_discount_net', default=u'Discount Net: ${value} ${currency}', mapping={ 'value': ascur(discount_net), 'currency': currency, }) lines.append(translate(order_summary_discount_net, context=request)) # discount vat discount_vat = order_data.discount_vat order_summary_discount_vat = _( 'order_summary_discount_vat', default=u'Discount VAT: ${value} ${currency}', mapping={ 'value': ascur(discount_vat), 'currency': currency, }) lines.append(translate(order_summary_discount_vat, context=request)) # discount total discount_total = discount_net + discount_vat order_summary_discount_total = _( 'order_summary_discount_total', default=u'Discount Total: ${value} ${currency}', mapping={ 'value': ascur(discount_total), 'currency': currency, }) lines.append(translate(order_summary_discount_total, context=request)) # shipping costs shipping_net = order_data.shipping_net if shipping_net: # shiping label shipping_label = attrs['shipping_label'] order_summary_shipping_label = _('order_summary_shipping_label', default=u'Shipping: ${label}', mapping={ 'label': translate(shipping_label, context=request), }) lines.append(translate(order_summary_shipping_label, context=request)) # shiping description shipping_description = attrs['shipping_description'] lines.append(translate(shipping_description, context=request)) # shiping net order_summary_shipping_net = _( 'order_summary_shipping_net', default=u'Shipping Net: ${value} ${currency}', mapping={ 'value': ascur(shipping_net), 'currency': currency, }) lines.append(translate(order_summary_shipping_net, context=request)) # shiping vat shipping_vat = order_data.shipping_vat order_summary_shipping_vat = _( 'order_summary_shipping_vat', default=u'Shipping VAT: ${value} ${currency}', mapping={ 'value': ascur(shipping_vat), 'currency': currency, }) lines.append(translate(order_summary_shipping_vat, context=request)) # shiping total shipping_total = shipping_net + shipping_vat order_summary_shipping_total = _( 'order_summary_shipping_total', default=u'Shipping Total: ${value} ${currency}', mapping={ 'value': ascur(shipping_total), 'currency': currency, }) lines.append(translate(order_summary_shipping_total, context=request)) # cart total order_summary_cart_total = _('order_summary_cart_total', default=u'Total: ${value} ${currency}', mapping={ 'value': ascur(cart_total), 'currency': currency, }) lines.append(translate(order_summary_cart_total, context=request)) summary_title = translate(_('order_summary_label', default=u'Summary:'), context=request) summary_text = '\n' + '\n'.join([safe_encode(line) for line in lines]) return '\n' + safe_encode(summary_title) + summary_text + '\n'
def test_ascur(self): from bda.plone.cart import ascur self.assertEquals(ascur(5.0), '5.00') self.assertEquals(ascur(5.0, comma=True), '5,00')
def net(self): return ascur(self.order_data.net)
def discount_vat(self): return ascur(self.order_data.discount_vat)
def shipping(self): # B/C return ascur(self.order_data.shipping)
def surcharge_vat(self): return ascur(self.order_data.surcharge_vat)