Автор Тема: Не правильно считает чистую прибыль.  (Прочитано 804 раз)

21 Июль 2015, 11:38:02
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте! Помогите разобраться с проблемой неправильного вычисления чистой прибыли.
Есть магазин на PrestaShop 1.6.0.14. В нем 3 валюты, основная USD. Подсчет прибыли смотрим во вкладке: Пульт, на панели: Обзор/Чистая прибыль.
При оформлении заказа в USD все корректно. Но стоит сделать заказ в любой валюте, отличной от USD, то прибыль считается как разность Розничной стоимости, конвертированной в выбранную валюту, минус оптовая стоимость, взятая из карточки товара, но не конвертированная. С последующей конвертацией в USD полученной разницы.
То есть, если оптовая стоимость 100USD а розничная 120USD и оформлять заказ в евро то получим:
110.86€ - 100 = 10,86€ или 11,76$  хотя на самом деле прибыль должна быть 20$
В настройках панели обзора, все комиссии пока стоят =0.
 
Если это подскажет путь к решению, то в карточке товара при заполнении цен, в оптовой стоит два знака после запятой, а в розничной шесть знаков после запятой.
21 Июль 2015, 11:58:56
Ответ #1
  • Старожил
  • ****
  • Сообщений: 274
  • Репутация: +3/-0
    • Просмотр профиля
А в Пульт, на панели: Обзор/Продажи суммы правильные?
В этой таблице подсчет ведется в основной валюте.
21 Июль 2015, 12:06:24
Ответ #2
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да. В панели-Обзор, колонка-Продажи стоит правильная сумма, в основной валюте. А как раз дальше, в колонке-Чистая прибыль (этой же таблицы) уже стоит не правильная сумма в основной валюте.
21 Июль 2015, 13:10:35
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Данные для стат. берутся из таблицы ps_orders. Проверьте в ней данные для этого заказа
id_currency
conversion_rate
total_paid_tax_incl
total_shipping_tax_excl
21 Июль 2015, 21:22:51
Ответ #4
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
id_currency=2 (евро)
conversion_rate = 0,92 (курс)
total_paid_tax_incl = 33,58 (розница конвертированная в евро)
total_shipping_tax_excl = 0

Тут все верно.
В этой таблице, я не увидел значения оптовой цены.

есть таблица ps_order_detail, вот там наряду с розницей в евро, есть идентификатор purchase_supplier_price со значением в USD



22 Июль 2015, 10:15:53
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Для подсчета прибыли используются данные из нескольких таблиц

Модуль /modules/dashtrends/dashtrends.php
$refined_data['net_profits'][$date] = 0;
if (isset($gross_data['total_paid_tax_excl'][$date]))
$refined_data['net_profits'][$date] += $gross_data['total_paid_tax_excl'][$date];
if (isset($gross_data['total_purchases'][$date]))
$refined_data['net_profits'][$date] -= $gross_data['total_purchases'][$date];
if (isset($gross_data['total_expenses'][$date]))
$refined_data['net_profits'][$date] -= $gross_data['total_expenses'][$date];

Котроллер /controllers/admin/AdminStatsController.php
function getExpenses
function getPurchases
function getTotalSales

У вас не правильно считает цену продажи. Это function getPurchases. Там не учитывается конвертация для цены в другой валюте.
22 Июль 2015, 10:55:54
Ответ #6
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля

У вас не правильно считает цену продажи. Это function getPurchases. Там не учитывается конвертация для цены в другой валюте.

Не подскажите как это поправить?