Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
 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
Пример #4
0
 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
Пример #5
0
    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
Пример #6
0
    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
Пример #7
0
 def total(self):
     return ascur(self.order_data.total)
Пример #8
0
 def total(self):
     return ascur(self.order_data.total)
Пример #9
0
 def shipping_vat(self):
     return ascur(self.order_data.shipping_vat)
Пример #10
0
 def vat(self):
     return ascur(self.order_data.vat)
Пример #11
0
    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")
Пример #12
0
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
    )
Пример #13
0
def format_amount(val):
    # User ascur method from bda.plone.cart to ensure shipping is displayed in
    # an international friendly manner
    return ascur(val)
Пример #14
0
 def ascur(self, val):
     return ascur(val)
Пример #15
0
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'
Пример #16
0
    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')
Пример #17
0
 def net(self):
     return ascur(self.order_data.net)
Пример #18
0
 def net(self):
     return ascur(self.order_data.net)
Пример #19
0
 def vat(self):
     return ascur(self.order_data.vat)
Пример #20
0
 def discount_vat(self):
     return ascur(self.order_data.discount_vat)
Пример #21
0
 def discount_vat(self):
     return ascur(self.order_data.discount_vat)
Пример #22
0
 def shipping(self):
     # B/C
     return ascur(self.order_data.shipping)
Пример #23
0
 def shipping_vat(self):
     return ascur(self.order_data.shipping_vat)
Пример #24
0
 def shipping(self):
     # B/C
     return ascur(self.order_data.shipping)
Пример #25
0
 def surcharge_vat(self):
     return ascur(self.order_data.surcharge_vat)