本文整理汇总了Python中shoop.core.models.OrderLine.save方法的典型用法代码示例。如果您正苦于以下问题:Python OrderLine.save方法的具体用法?Python OrderLine.save怎么用?Python OrderLine.save使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类shoop.core.models.OrderLine
的用法示例。
在下文中一共展示了OrderLine.save方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_order_with_product
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def create_order_with_product(
product, supplier, quantity, taxless_base_unit_price, tax_rate=0, n_lines=1,
shop=None):
order = create_empty_order(shop=shop)
order.full_clean()
order.save()
request = apply_request_middleware(RequestFactory().get("/"))
request.shop = order.shop
for x in range(n_lines):
product_order_line = OrderLine(order=order)
update_order_line_from_product(pricing_context=request,
order_line=product_order_line,
product=product, quantity=quantity,
supplier=supplier)
product_order_line.base_unit_price = order.shop.create_price(taxless_base_unit_price)
product_order_line.save()
product_order_line.taxes.add(OrderLineTax.from_tax(
get_test_tax(tax_rate),
product_order_line.taxless_price.amount,
order_line=product_order_line,
))
assert order.get_product_ids_and_quantities()[product.pk] == (quantity * n_lines), "Things got added"
return order
示例2: create_order_with_product
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def create_order_with_product(product, supplier, quantity, taxless_unit_price, tax_rate=0, n_lines=1):
order = create_empty_order()
order.full_clean()
order.save()
for x in range(n_lines):
product_order_line = OrderLine(order=order)
update_order_line_from_product(request=None, order_line=product_order_line, product=product, quantity=quantity,
supplier=supplier)
product_order_line.unit_price = TaxlessPrice(taxless_unit_price)
product_order_line.save()
product_order_line.taxes.add(
OrderLineTax.from_tax(get_test_tax(tax_rate), product_order_line.taxless_total_price)
)
assert order.get_product_ids_and_quantities()[product.pk] == (quantity * n_lines), "Things got added"
return order
示例3: add_product_to_order
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def add_product_to_order(order, supplier, product, quantity, taxless_base_unit_price, tax_rate=0, pricing_context=None):
if not pricing_context:
pricing_context = _get_pricing_context(order.shop, order.customer)
product_order_line = OrderLine(order=order)
update_order_line_from_product(pricing_context,
order_line=product_order_line,
product=product, quantity=quantity,
supplier=supplier)
product_order_line.base_unit_price = order.shop.create_price(taxless_base_unit_price)
product_order_line.save()
product_order_line.taxes.add(OrderLineTax.from_tax(
get_test_tax(tax_rate),
product_order_line.taxless_price.amount,
order_line=product_order_line,
))
示例4: test_basic_order
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def test_basic_order():
PRODUCTS_TO_SEND = 10
product = get_default_product()
supplier = get_default_supplier()
order = create_order_with_product(
product,
supplier=supplier,
quantity=PRODUCTS_TO_SEND,
taxless_base_unit_price=10,
tax_rate=Decimal("0.5")
)
assert order.shop.prices_include_tax is False
price = order.shop.create_price
currency = order.currency
discount_order_line = OrderLine(order=order, quantity=1, type=OrderLineType.OTHER)
discount_order_line.discount_amount = price(30)
assert discount_order_line.total_price == price(-30)
discount_order_line.save()
order.cache_prices()
order.check_all_verified()
order.save()
assert order.taxful_total_price == TaxfulPrice(PRODUCTS_TO_SEND * (10 + 5) - 30, currency)
shipment = order.create_shipment_of_all_products(supplier=supplier)
assert shipment.total_products == PRODUCTS_TO_SEND, "All products were shipped"
assert shipment.weight == product.net_weight * PRODUCTS_TO_SEND, "Gravity works"
assert not order.get_unshipped_products(), "Nothing was left in the warehouse"
order.shipping_status = ShippingStatus.FULLY_SHIPPED
order.create_payment(order.taxful_total_price)
assert order.payments.exists(), "A payment was created"
with pytest.raises(NoPaymentToCreateException):
order.create_payment(Money(6, currency))
assert order.is_paid(), "Order got paid"
assert order.can_set_complete(), "Finalization is possible"
order.status = OrderStatus.objects.get_default_complete()
assert order.is_complete(), "Finalization done"
summary = order.get_tax_summary()
assert len(summary) == 2
assert summary[0].tax_id is None
assert summary[0].tax_code == ''
assert summary[0].tax_amount == Money(0, currency)
assert summary[0].tax_rate == 0
assert summary[1].tax_rate * 100 == 50
assert summary[1].based_on == Money(100, currency)
assert summary[1].tax_amount == Money(50, currency)
assert summary[1].taxful == summary[1].based_on + summary[1].tax_amount
示例5: test_line_discount
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def test_line_discount():
order = create_empty_order(prices_include_tax=False)
order.save()
currency = order.shop.currency
ol = OrderLine(order=order, type=OrderLineType.OTHER, quantity=5, text="Thing")
ol.discount_amount = order.shop.create_price(50)
ol.base_unit_price = order.shop.create_price(40)
ol.save()
ol.taxes.add(OrderLineTax.from_tax(get_default_tax(), ol.taxless_price.amount, order_line=ol))
assert ol.taxless_discount_amount == order.shop.create_price(50)
assert ol.taxful_discount_amount == TaxfulPrice(75, currency)
assert ol.taxless_price == order.shop.create_price(150)
assert ol.taxful_price == TaxfulPrice(150 + 75, currency)
assert ol.taxless_base_unit_price == order.shop.create_price(40)
assert ol.taxful_base_unit_price == TaxfulPrice(60, currency)
assert "Thing" in six.text_type(ol)
示例6: create_order
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def create_order(request, creator, customer, product):
billing_address = get_address()
shipping_address = get_address(name="Shippy Doge")
shipping_address.save()
order = Order(
creator=creator,
customer=customer,
shop=get_default_shop(),
payment_method=get_default_payment_method(),
shipping_method=get_default_shipping_method(),
billing_address=billing_address,
shipping_address=shipping_address,
order_date=now(),
status=get_initial_order_status()
)
order.full_clean()
order.save()
supplier = get_default_supplier()
product_order_line = OrderLine(order=order)
update_order_line_from_product(order_line=product_order_line, product=product, request=request, quantity=5, supplier=supplier)
product_order_line.unit_price = TaxlessPrice(100)
assert product_order_line.taxful_total_price.amount > 0
product_order_line.save()
product_order_line.taxes.add(OrderLineTax.from_tax(get_default_tax(), product_order_line.taxless_total_price))
discount_order_line = OrderLine(order=order, quantity=1, type=OrderLineType.OTHER)
discount_order_line.total_discount = TaxfulPrice(30)
assert discount_order_line.taxful_total_discount.amount == 30
assert discount_order_line.taxful_total_price.amount == -30
assert discount_order_line.taxful_unit_price.amount == 0
discount_order_line.save()
order.cache_prices()
order.check_all_verified()
order.save()
base_amount = 5 * 100
tax_value = get_default_tax().calculate_amount(base_amount)
assert order.taxful_total_price == base_amount + tax_value - 30, "Math works"
shipment = order.create_shipment_of_all_products(supplier=supplier)
assert shipment.total_products == 5, "All products were shipped"
assert shipment.weight == product.net_weight * 5, "Gravity works"
assert not order.get_unshipped_products(), "Nothing was left in the warehouse"
order.create_payment(order.taxful_total_price)
assert order.is_paid()
assert Order.objects.paid().filter(pk=order.pk).exists(), "It was paid! Honestly!"
示例7: test_line_discount_more
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def test_line_discount_more():
order = create_empty_order()
order.save()
ol = OrderLine(order=order, type=OrderLineType.OTHER)
ol.quantity = 5
ol.unit_price = TaxlessPrice(30)
ol.total_discount = TaxlessPrice(50)
ol.save()
assert ol.taxless_unit_price == TaxlessPrice(30)
assert ol.taxless_total_discount == TaxlessPrice(50)
assert ol.taxless_total_price == TaxlessPrice(5 * 30 - 50)
ol.taxes.add(OrderLineTax.from_tax(get_default_tax(), ol.taxless_total_price))
assert ol.taxless_total_discount == TaxlessPrice(50)
assert ol.taxful_total_discount == TaxfulPrice(75)
assert ol.taxless_total_price == TaxlessPrice(100)
assert ol.taxful_total_price == TaxfulPrice(150)
assert ol.taxless_unit_price == TaxlessPrice(30)
assert ol.taxful_unit_price == TaxfulPrice(45)
示例8: test_line_discount_more
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def test_line_discount_more():
order = create_empty_order()
order.save()
ol = OrderLine(order=order, type=OrderLineType.OTHER)
ol.quantity = 5
ol.base_unit_price = order.shop.create_price(30)
ol.discount_amount = order.shop.create_price(50)
ol.save()
currency = order.shop.currency
assert ol.taxless_base_unit_price == TaxlessPrice(30, currency)
assert ol.taxless_discount_amount == TaxlessPrice(50, currency)
assert ol.taxless_price == TaxlessPrice(5 * 30 - 50, currency)
ol.taxes.add(OrderLineTax.from_tax(get_default_tax(), ol.taxless_price.amount, order_line=ol))
assert ol.taxless_discount_amount == TaxlessPrice(50, currency)
assert ol.taxful_discount_amount == TaxfulPrice(75, currency)
assert ol.taxless_price == TaxlessPrice(100, currency)
assert ol.taxful_price == TaxfulPrice(150, currency)
assert ol.taxless_base_unit_price == TaxlessPrice(30, currency)
assert ol.taxful_base_unit_price == TaxfulPrice(45, currency)
示例9: test_line_discount
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def test_line_discount():
order = create_empty_order()
order.save()
ol = OrderLine(
order=order,
type=OrderLineType.OTHER,
quantity=5,
text="Thing"
)
ol.total_discount = TaxlessPrice(50)
ol.unit_price = TaxlessPrice(40)
ol.save()
ol.taxes.add(OrderLineTax.from_tax(get_default_tax(), ol.taxless_total_price))
assert ol.taxless_total_discount == TaxlessPrice(50)
assert ol.taxful_total_discount == TaxfulPrice(75)
assert ol.taxless_total_price == TaxlessPrice(150)
assert ol.taxful_total_price == TaxfulPrice(150 + 75)
assert ol.taxless_unit_price == TaxlessPrice(40)
assert ol.taxful_unit_price == TaxfulPrice(60)
assert "Thing" in six.text_type(ol)
示例10: create_order
# 需要导入模块: from shoop.core.models import OrderLine [as 别名]
# 或者: from shoop.core.models.OrderLine import save [as 别名]
def create_order(request, creator, customer, product):
billing_address = get_address().to_immutable()
shipping_address = get_address(name="Shippy Doge").to_immutable()
shipping_address.save()
shop = request.shop
order = Order(
creator=creator,
customer=customer,
shop=shop,
payment_method=get_default_payment_method(),
shipping_method=get_default_shipping_method(),
billing_address=billing_address,
shipping_address=shipping_address,
order_date=now(),
status=get_initial_order_status(),
currency=shop.currency,
prices_include_tax=shop.prices_include_tax,
)
order.full_clean()
order.save()
supplier = get_default_supplier()
product_order_line = OrderLine(order=order)
update_order_line_from_product(
pricing_context=request, order_line=product_order_line, product=product, quantity=5, supplier=supplier
)
product_order_line.base_unit_price = shop.create_price(100)
assert product_order_line.price.value > 0
product_order_line.save()
line_tax = get_line_taxes_for(product_order_line)[0]
product_order_line.taxes.add(
OrderLineTax.from_tax(tax=line_tax.tax, base_amount=line_tax.base_amount, order_line=product_order_line)
)
discount_order_line = OrderLine(order=order, quantity=1, type=OrderLineType.OTHER)
discount_order_line.discount_amount = shop.create_price(30)
assert discount_order_line.discount_amount.value == 30
assert discount_order_line.price.value == -30
assert discount_order_line.base_unit_price.value == 0
discount_order_line.save()
order.cache_prices()
order.check_all_verified()
order.save()
base = 5 * shop.create_price(100).amount
discount = shop.create_price(30).amount
tax_value = line_tax.amount
if not order.prices_include_tax:
assert order.taxless_total_price.amount == base - discount
assert order.taxful_total_price.amount == base + tax_value - discount
else:
assert_almost_equal(order.taxless_total_price.amount, base - tax_value - discount)
assert_almost_equal(order.taxful_total_price.amount, base - discount)
shipment = order.create_shipment_of_all_products(supplier=supplier)
assert shipment.total_products == 5, "All products were shipped"
assert shipment.weight == product.net_weight * 5, "Gravity works"
assert not order.get_unshipped_products(), "Nothing was left in the warehouse"
order.create_payment(order.taxful_total_price)
assert order.is_paid()
assert Order.objects.paid().filter(pk=order.pk).exists(), "It was paid! Honestly!"