Example #1
0
 def validate_python(self, value, state):
     p = Product.find_by_id(int(value))
     for product in Product.find_by_category(p.category.id):
         if product.id == int(value):
             check_product_availability(product, value, state)
             return # All good!
     raise Invalid("Product " + value + " is not allowed in category " + self.category.name, value, state)
Example #2
0
 def validate_python(self, value, state):
     p = Product.find_by_id(int(value))
     for product in Product.find_by_category(p.category.id):
         if product.id == int(value):
             check_product_availability(product, value, state)
             return  # All good!
     raise Invalid("Product " + value + " is not allowed in category " + self.category.name, value, state)
Example #3
0
    def _new(self):
        results = self.form_result['invoice']
        del (results['item_count'])

        items = results['items']
        results['items'] = []
        c.invoice = Invoice(**results)

        for i in items:
            item = InvoiceItem()
            if i['description'] != "":
                item.description = i['description']
            else:
                product = Product.find_by_id(i['product'].id)
                category = product.category
                item.product = i['product']
                item.description = product.category.name + ' - ' + product.description
            item.cost = i['cost']
            item.qty = i['qty']
            c.invoice.items.append(item)

        c.invoice.manual = True
        c.invoice.void = None
        meta.Session.add(c.invoice)
        meta.Session.commit()

        h.flash("Manual invoice created")
        return redirect_to(action='view', id=c.invoice.id)
Example #4
0
    def _new(self):
        results = self.form_result['invoice']
        del(results['item_count'])

        items = results['items']
        results['items'] = []
        c.invoice = Invoice(**results)

        for i in items:
            item = InvoiceItem()
            if i['description'] != "":
                item.description = i['description']
            else:
                product = Product.find_by_id(i['product'].id)
                category = product.category
                item.product = i['product']
                item.description = product.category.name + ' - ' + product.description
            item.cost = i['cost']
            item.qty = i['qty']
            c.invoice.items.append(item)

        c.invoice.manual = True
        c.invoice.void = None
        meta.Session.add(c.invoice)
        meta.Session.commit()

        h.flash("Manual invoice created")
        return redirect_to(action='view', id=c.invoice.id)
Example #5
0
    def _new(self):
        results = self.form_result['voucher']
        count = results['count'] # Number of voucher codes to generate
        del(results['count'])

        for i in xrange(count):
            if 'products' in results:
                del(results['products'])
            c.voucher = Voucher(**results)
            if c.voucher.code !='':
                c.voucher.code += '-' #add a dash between prefix and random
            c.voucher.code += generate_code()
            meta.Session.add(c.voucher) # save voucher to DB

            results['products'] = self.form_result['products']

            for category in c.product_categories:
                if category.name in allowed_categories:
                    # depending on "display" type of product, handle the input appropriately
                    if category.display == 'radio':
                        if 'category_' + str(category.id) in results['products']:
                            product = Product.find_by_id(results['products']['category_' + str(category.id)])
                            vproduct = VoucherProduct()
                            vproduct.voucher = c.voucher
                            vproduct.product = product
                            vproduct.qty = 1
                            vproduct.percentage = results['products']['category_' + str(category.id) + '_percentage']
                            meta.Session.add(vproduct) # Save product to DB
                            c.voucher.products.append(vproduct) # Assign individual product discount to voucher
                    elif category.display == 'checkbox':
                        for product in category.products:
                            if 'product_' + str(product.id) in results['products']:
                                vproduct = VoucherProduct()
                                vproduct.voucher = c.voucher
                                vproduct.product = product
                                vproduct.qty = 1
                                vproduct.percentage = results['products']['product_' + str(product.id) + '_percentage']
                                meta.Session.add(vproduct)
                                c.voucher.products.append(vproduct)
                    else:
                        for product in category.products:
                            if 'product_' + str(product.id) + '_qty' in results['products']:
                                if results['products']['product_' + str(product.id) + '_qty'] not in (0, None):
                                    vproduct = VoucherProduct()
                                    vproduct.voucher = c.voucher
                                    vproduct.product = product
                                    vproduct.qty = results['products']['product_' + str(product.id) + '_qty']
                                    vproduct.percentage = results['products']['product_' + str(product.id) + '_percentage']
                                    meta.Session.add(vproduct)
                                    c.voucher.products.append(vproduct)

        meta.Session.commit() #save all updates
        h.flash("Voucher created")
        return redirect_to(controller='voucher', action='index')
Example #6
0
    def _new(self):
        results = self.form_result['voucher']
        count = results['count'] # Number of voucher codes to generate
        del(results['count'])

        for i in xrange(count):
            if 'products' in results:
                del(results['products'])
            c.voucher = Voucher(**results)
            if c.voucher.code !='':
                c.voucher.code += '-' #add a dash between prefix and random
            c.voucher.code += generate_code()
            meta.Session.add(c.voucher) # save voucher to DB

            results['products'] = self.form_result['products']

            for category in c.product_categories:
                if category.name in allowed_categories:
                    # depending on "display" type of product, handle the input appropriately
                    if category.display == 'radio':
                        if 'category_' + str(category.id) in results['products']:
                            product = Product.find_by_id(results['products']['category_' + str(category.id)])
                            vproduct = VoucherProduct()
                            vproduct.voucher = c.voucher
                            vproduct.product = product
                            vproduct.qty = 1
                            vproduct.percentage = results['products']['category_' + str(category.id) + '_percentage']
                            meta.Session.add(vproduct) # Save product to DB
                            c.voucher.products.append(vproduct) # Assign individual product discount to voucher
                    elif category.display == 'checkbox':
                        for product in category.products:
                            if 'product_' + str(product.id) in results['products']:
                                vproduct = VoucherProduct()
                                vproduct.voucher = c.voucher
                                vproduct.product = product
                                vproduct.qty = 1
                                vproduct.percentage = results['products']['product_' + str(product.id) + '_percentage']
                                meta.Session.add(vproduct)
                                c.voucher.products.append(vproduct)
                    else:
                        for product in category.products:
                            if 'product_' + str(product.id) + '_qty' in results['products']:
                                if results['products']['product_' + str(product.id) + '_qty'] not in (0, None):
                                    vproduct = VoucherProduct()
                                    vproduct.voucher = c.voucher
                                    vproduct.product = product
                                    vproduct.qty = results['products']['product_' + str(product.id) + '_qty']
                                    vproduct.percentage = results['products']['product_' + str(product.id) + '_percentage']
                                    meta.Session.add(vproduct)
                                    c.voucher.products.append(vproduct)

        meta.Session.commit() #save all updates
        h.flash("Voucher created")
        return redirect_to(controller='voucher', action='index')
Example #7
0
 def _to_python(self, value, state):
     return Product.find_by_id(value)
Example #8
0
 def _to_python(self, value, state):
     return Product.find_by_id(value)