def testGetDiscounts2(self): """ """ self.shop.discounts.invokeFactory("Discount", id="d1", title="D1", value="1.0") self.shop.discounts.invokeFactory("Discount", id="d2", title="D2", value="2.0", base="cart_item", type="percentage") dm = IDiscountsManagement(self.shop) # Discount 1 discount = dm.getDiscounts()[0] self.assertEqual(discount.getId(), "d1") self.assertEqual(discount.Title(), "D1") self.assertEqual(discount.getValue(), 1.0) # defaults self.assertEqual(discount.getBase(), "product") self.assertEqual(discount.getType(), "absolute") # Discount 2 discount = dm.getDiscounts()[1] self.assertEqual(discount.getId(), "d2") self.assertEqual(discount.Title(), "D2") self.assertEqual(discount.getValue(), 2.0) self.assertEqual(discount.getBase(), "cart_item") self.assertEqual(discount.getType(), "percentage")
def getDiscounts(self): """ """ shop = IShopManagement(self.context).getShop() dm = IDiscountsManagement(shop) cm = ICurrencyManagement(shop) result = [] for discount in dm.getDiscounts(): value = cm.priceToString(discount.getValue()) result.append({ "id": discount.getId(), "title": discount.Title(), "description": discount.Description(), "value": value, "url": discount.absolute_url(), "up_url": "%s/es_folder_position?position=up&id=%s" % (self.context.absolute_url(), discount.getId()), "down_url": "%s/es_folder_position?position=down&id=%s" % (self.context.absolute_url(), discount.getId()), "amount_of_criteria": self._getAmountOfCriteria(discount.getId()) }) return result
def getDiscount(self): """Returns the first valid discount or None. """ # NOTE: Using the product to get the shop is due to EasyMall. The # product lives in the several shops and can used to get the mall and/or # the Shop, whereas the item lives in the all and there would be no # way back to the origin shop. shop = IShopManagement(self.context.getProduct()).getShop() for discount in IDiscountsManagement(shop).getDiscounts(): if IValidity(discount).isValid(self.context) == True: return discount return None
def getDiscounts(self): """ """ shop = IShopManagement(self.context).getShop() dm = IDiscountsManagement(shop) cm = ICurrencyManagement(shop) result = [] for discount in dm.getDiscounts(): value = cm.priceToString(discount.getValue()) result.append({ "id" : discount.getId(), "title" : discount.Title(), "description" : discount.Description(), "value" : value, "url" : discount.absolute_url(), "up_url" : "%s/es_folder_position?position=up&id=%s" % (self.context.absolute_url(), discount.getId()), "down_url" : "%s/es_folder_position?position=down&id=%s" % (self.context.absolute_url(), discount.getId()), "amount_of_criteria" : self._getAmountOfCriteria(discount.getId()) }) return result
def testGetDiscounts1(self): """There are no discounts. """ dm = IDiscountsManagement(self.shop) self.assertEqual(dm.getDiscounts(), [])