Example #1
0
    def save(self):
        discount = Discount.load(self.request.POST.get('discount_id'))
        if not discount:
            discount = Discount()
            discount.enterprise_id = self.enterprise_id
        else:
            self.forbid_if(discount.enterprise_id != self.enterprise_id)
        discount.bind(self.request.POST, True)
        discount.save()
        discount.flush()

        included_products = {}
        for k in self.request.POST.keys():
            if k.startswith('product_incl'):
                product_id = self.request.POST.get(k)
                included_products[product_id] = 1

        for current_prod in discount.get_products():
            if current_prod.product_id not in included_products.keys():
                discount.clear_product(current_prod.product_id)
                
        for new_included_product_id in included_products.keys():
            discount.add_product(new_included_product_id)

        discount.invalidate_caches()
        self.request.session.flash('Successfully saved %s.' % discount.name)
        return HTTPFound('/crm/discount/edit/%s' % discount.discount_id)
Example #2
0
    def _edit_impl(self):
        discount_id = self.request.matchdict.get('discount_id')
        discount = None
        if discount_id:
            discount = Discount.load(discount_id)
            self.forbid_if(not discount or discount.enterprise_id != self.enterprise_id)
        else:
            discount = Discount()

        included_products = discount.get_products()
        not_included_products = []
        for prod in Product.find_all(self.enterprise_id):
            found = False
            for incl in included_products:
                if incl.product_id == prod.product_id:
                    found = True
                    break
            if found == False:
                not_included_products.append(prod)

        return {
            'discount': discount,
            'included_products' : included_products,
            'not_included_products' : not_included_products,
            'excluded' : Product.find_all(self.enterprise_id),
            'tomorrow' : util.today_date() + datetime.timedelta(days=1),
            'plus14' : util.today_date() + datetime.timedelta(days=14)
            }