def testGetOrders(self):
        """
        """
        om = IOrderManagement(self.shop)
                
        o = self.shop.orders
        o.invokeFactory("Order", "o1")
        
        o.invokeFactory("Order", "o5")        
        o.invokeFactory("Order", "o3")
        o.invokeFactory("Order", "o4")
        o.invokeFactory("Order", "o2")        
        o.reindexObject()
        
        wftool = getToolByName(self.shop, "portal_workflow")                
        wftool.doActionFor(o.o1, "send_not_payed")                
        
        ids = [o.getId() for o in om.getOrders(sorting="id", sort_order="descending")]
        self.assertEqual(ids, ["o5", "o4", "o3", "o2", "o1"])

        ids = [o.getId() for o in om.getOrders(sorting="id", sort_order="ascending")]
        self.assertEqual(ids, ["o1", "o2", "o3", "o4", "o5"])

        ids = [o.getId() for o in om.getOrders("pending")]
        self.assertEqual(ids, ["o5", "o3", "o4", "o2"])

        ids = [o.getId() for o in om.getOrders("sent (not payed)")]
        self.assertEqual(ids, ["o1"])
示例#2
0
def createTestOrder(self):
    """
    """
    view = getMultiAdapter((self.shop.products.product_1, self.shop.products.product_1.REQUEST), name="addToCart")
    view.addToCart()

    view = getMultiAdapter((self.shop.products.product_2, self.shop.products.product_2.REQUEST), name="addToCart")
    view.addToCart()

    om = IOrderManagement(self.shop)
    self.order = om.addOrder(notify_=False)

    
示例#3
0
    def getOrders(self):
        """
        """
        om = IOrderManagement(IShopManagement(self.context).getShop())
        
        result = []
        for order in om.getOrders():
            
            # omit closed orders
            wftool = getToolByName(self.context, "portal_workflow")
            if wftool.getInfoFor(order, "review_state") == "closed":
                continue
                
            customer = order.getCustomer()

            # am = IAddressManagement(customer)
            # shipping_address = am.getShippingAddress()
            
            im = IItemManagement(order)
            for item in im.getItems():

                product = item.getProduct()
                
                row = (
                    order.getId(),
                    customer.getId(),
                    # shipping_address.getFirstname() + " " + shipping_address.getLastname(),
                    product.getArticle_id(),
                    product.Title(),
                    "%s"   % item.getProductQuantity(),
                    "%.2f" % item.getProductPriceGross(),
                    "%.2f" % item.getProductPriceNet(),
                    "%.2f" % item.getProductTax(),
                    "%.2f" % item.getTax(),
                    "%.2f" % item.getTaxRate(),
                    "%.2f" % item.getPriceGross(),
                    "%.2f" % item.getPriceNet(),
                )
                
                # row = ['"%s"' % field for field in row]
                row = ";".join(row)
                
                result.append(row)

        self.request.response.setHeader('Content-type', 'text/plain')
        self.request.response.setHeader(
            'Content-disposition',
            'attachment; filename=%s' % "orders.csv"
        )

        return "\n".join(result)
 def testCopyCustomerToOrder(self):
     """
     """
     self.shop.orders.invokeFactory("Order", "order")
     order = self.shop.orders.get("order")
     
     self.shop.customers.invokeFactory("Customer", "customer")
     customer = self.shop.customers.customer 
     
     om = IOrderManagement(self.shop)
     om.copyCustomerToOrder(customer, order)                
     order_customer = order.objectValues("Customer")[0]        
     
     self.assertEqual(customer.getId(), order_customer.getId())
示例#5
0
    def testCopyCustomerToOrder(self):
        """
        """
        self.shop.orders.invokeFactory("Order", "order")
        order = self.shop.orders.get("order")

        self.shop.customers.invokeFactory("Customer", "customer")
        customer = self.shop.customers.customer

        om = IOrderManagement(self.shop)
        om.copyCustomerToOrder(customer, order)
        order_customer = order.objectValues("Customer")[0]

        self.assertEqual(customer.getId(), order_customer.getId())
示例#6
0
文件: export.py 项目: viona/Easyshop
    def getOrders(self):
        """
        """
        om = IOrderManagement(IShopManagement(self.context).getShop())

        result = []
        for order in om.getOrders():

            # omit closed orders
            wftool = getToolByName(self.context, "portal_workflow")
            if wftool.getInfoFor(order, "review_state") == "closed":
                continue

            customer = order.getCustomer()

            # am = IAddressManagement(customer)
            # shipping_address = am.getShippingAddress()

            im = IItemManagement(order)
            for item in im.getItems():

                product = item.getProduct()

                row = (
                    order.getId(),
                    customer.getId(),
                    # shipping_address.getFirstname() + " " + shipping_address.getLastname(),
                    product.getArticle_id(),
                    product.Title(),
                    "%s" % item.getProductQuantity(),
                    "%.2f" % item.getProductPriceGross(),
                    "%.2f" % item.getProductPriceNet(),
                    "%.2f" % item.getProductTax(),
                    "%.2f" % item.getTax(),
                    "%.2f" % item.getTaxRate(),
                    "%.2f" % item.getPriceGross(),
                    "%.2f" % item.getPriceNet(),
                )

                # row = ['"%s"' % field for field in row]
                row = ";".join(row)

                result.append(row)

        self.request.response.setHeader('Content-type', 'text/plain')
        self.request.response.setHeader(
            'Content-disposition', 'attachment; filename=%s' % "orders.csv")

        return "\n".join(result)
    def testGetOrdersForAuthenticatedCustomer(self):
        """
        """
        self.login("newmember")
        view = getMultiAdapter((self.shop.products.product_1, self.shop.products.product_1.REQUEST), name="addToCart")
        view.addToCart()

        view = getMultiAdapter((self.shop.products.product_2, self.shop.products.product_2.REQUEST), name="addToCart")
        view.addToCart()
            
        om = IOrderManagement(self.shop)            
        new_order = om.addOrder(notify_=False)

        order = om.getOrdersForAuthenticatedCustomer()[0]        
        self.assertEqual(order, new_order)
示例#8
0
    def testGetOrderByUID(self):
        """
        """
        self.login("newmember")
        view = getMultiAdapter((self.shop.products.product_1,
                                self.shop.products.product_1.REQUEST),
                               name="addToCart")
        view.addToCart()

        view = getMultiAdapter((self.shop.products.product_2,
                                self.shop.products.product_2.REQUEST),
                               name="addToCart")
        view.addToCart()

        om = IOrderManagement(self.shop)
        new_order = om.addOrder(notify_=False)

        order = om.getOrderByUID(new_order.UID())
        self.assertEqual(order, new_order)
示例#9
0
    def testGetOrders(self):
        """
        """
        om = IOrderManagement(self.shop)

        o = self.shop.orders
        o.invokeFactory("Order", "o1")

        o.invokeFactory("Order", "o5")
        o.invokeFactory("Order", "o3")
        o.invokeFactory("Order", "o4")
        o.invokeFactory("Order", "o2")
        o.reindexObject()

        wftool = getToolByName(self.shop, "portal_workflow")
        wftool.doActionFor(o.o1, "send_not_payed")

        ids = [
            o.getId()
            for o in om.getOrders(sorting="id", sort_order="descending")
        ]
        self.assertEqual(ids, ["o5", "o4", "o3", "o2", "o1"])

        ids = [
            o.getId()
            for o in om.getOrders(sorting="id", sort_order="ascending")
        ]
        self.assertEqual(ids, ["o1", "o2", "o3", "o4", "o5"])

        ids = [o.getId() for o in om.getOrders("pending")]
        self.assertEqual(ids, ["o5", "o3", "o4", "o2"])

        ids = [o.getId() for o in om.getOrders("sent (not payed)")]
        self.assertEqual(ids, ["o1"])
    def testAddOrder(self):
        """
        """
        self.login("newmember")
        view = getMultiAdapter((self.shop.products.product_1, self.shop.products.product_1.REQUEST), name="addToCart")
        view.addToCart()

        view = getMultiAdapter((self.shop.products.product_2, self.shop.products.product_2.REQUEST), name="addToCart")
        view.addToCart()
        
        new_order = IOrderManagement(self.shop).addOrder(notify_=False)
        
        self.assertEqual(new_order.getShippingPriceGross(), 10.0)
        self.assertEqual("%.2f" % new_order.getShippingPriceNet(), "8.40")
        self.assertEqual("%.2f" % new_order.getShippingTax(), "1.60")
        self.assertEqual(new_order.getShippingTaxRate(), 19.0)

        self.assertEqual(new_order.getPaymentPriceGross(), 100.0)
        self.assertEqual("%.2f" % new_order.getPaymentPriceNet(), "84.03")
        self.assertEqual("%.2f" % new_order.getPaymentTax(), "15.97")
        self.assertEqual(new_order.getPaymentTaxRate(), 19.0)

        # items should be overtaken (more concise tests for item managment are
        # in a seperated file)
        self.failUnless(len(new_order.objectIds("OrderItem")) == 2)
        
        # customer should be copied
        self.assertEqual(new_order.getCustomer().getId(), "newmember")
        
        # cart should be deleted
        self.failIf(self.shop.carts.get("newmember"))
示例#11
0
    def testAddOrder(self):
        """
        """
        self.login("newmember")
        view = getMultiAdapter((self.shop.products.product_1,
                                self.shop.products.product_1.REQUEST),
                               name="addToCart")
        view.addToCart()

        view = getMultiAdapter((self.shop.products.product_2,
                                self.shop.products.product_2.REQUEST),
                               name="addToCart")
        view.addToCart()

        new_order = IOrderManagement(self.shop).addOrder(notify_=False)

        self.assertEqual(new_order.getShippingPriceGross(), 10.0)
        self.assertEqual("%.2f" % new_order.getShippingPriceNet(), "8.40")
        self.assertEqual("%.2f" % new_order.getShippingTax(), "1.60")
        self.assertEqual(new_order.getShippingTaxRate(), 19.0)

        self.assertEqual(new_order.getPaymentPriceGross(), 100.0)
        self.assertEqual("%.2f" % new_order.getPaymentPriceNet(), "84.03")
        self.assertEqual("%.2f" % new_order.getPaymentTax(), "15.97")
        self.assertEqual(new_order.getPaymentTaxRate(), 19.0)

        # items should be overtaken (more concise tests for item managment are
        # in a seperated file)
        self.failUnless(len(new_order.objectIds("OrderItem")) == 2)

        # customer should be copied
        self.assertEqual(new_order.getCustomer().getId(), "newmember")

        # cart should be deleted
        self.failIf(self.shop.carts.get("newmember"))