feat(woocommerce): реализовать проверку соединения с WooCommerce API
- Добавлена реализация метода test_connection() с обработкой различных HTTP статусов - Реализованы вспомогательные методы _get_api_url() и _get_auth() для работы с API - Добавлена интеграция WooCommerceService в get_integration_service() - Настроены поля формы для WooCommerceIntegration в get_form_fields_meta() fix(inventory): исправить расчет цены продажи в базовых единицах - Исправлен расчет sale_price в SaleProcessor с учетом conversion_factor_snapshot - Обновлен расчет цены в сигнале create_sale_on_order_completion для корректной работы с sales_unit
This commit is contained in:
@@ -35,8 +35,12 @@ class SaleProcessor:
|
||||
"""
|
||||
# Определяем цену продажи из заказа или из товара
|
||||
if order and reservation.order_item:
|
||||
# Цена из OrderItem
|
||||
sale_price = reservation.order_item.price
|
||||
item = reservation.order_item
|
||||
# Пересчитываем цену в базовые единицы
|
||||
if item.sales_unit and item.conversion_factor_snapshot:
|
||||
sale_price = Decimal(str(item.price)) * item.conversion_factor_snapshot
|
||||
else:
|
||||
sale_price = item.price
|
||||
else:
|
||||
# Цена из товара
|
||||
sale_price = reservation.product.actual_price or Decimal('0')
|
||||
|
||||
@@ -480,12 +480,18 @@ def create_sale_on_order_completion(sender, instance, created, **kwargs):
|
||||
f"Используем quantity_in_base_units: {sale_quantity}"
|
||||
)
|
||||
|
||||
# Пересчитываем цену в базовые единицы
|
||||
if item.sales_unit and item.conversion_factor_snapshot:
|
||||
base_price = Decimal(str(item.price)) * item.conversion_factor_snapshot
|
||||
else:
|
||||
base_price = Decimal(str(item.price))
|
||||
|
||||
# Создаем Sale (с автоматическим FIFO-списанием)
|
||||
sale = SaleProcessor.create_sale(
|
||||
product=product,
|
||||
warehouse=warehouse,
|
||||
quantity=sale_quantity,
|
||||
sale_price=Decimal(str(item.price)),
|
||||
sale_price=base_price,
|
||||
order=instance,
|
||||
document_number=instance.order_number,
|
||||
sales_unit=item.sales_unit # Передаем sales_unit в Sale
|
||||
|
||||
Reference in New Issue
Block a user