Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 2121 Просмотров
*

sereja_rwb

  • Осваиваюсь на форуме
  • 28
  • 5 / 0
Собственно такая проблема:
При смене статуса товара, происходит увеличение его на то которое было в заказе
т.е. было 100 кусков мыла, заказали 10, при заказе 10 сминусовалось и теперь наличие состовляет 90, что правильно.
При отмене заказа ("Код состояния заказа" "x") товар возвращается на склад т.е. 10 кусков мыла прибавляются к складскому остатку 90 +10 = 100


Но косяк в том что при смене некоторых статусов "r" обычно он стоит на статусе выполнено товар возвращается на склад т.е. 10 кусков мыла прибавляются к складскому остатку 90 +10 = 100 что не есть правильно ведь товар отгружен.


Что бы корректно работали остатки на складе нужно The Order Status Type или "Код состояния заказа" (он заполняется при редактировании типов состояния заказа)
Указывать буквы, эксперементальным путем получилось:
"x", "r" плюсует товар на склад (что и правильно при отмене заказа, он возвращается обратно в продажу, но не подходит для других типов)
"p", "b", "c", "a"   оставляет прежним значение наличия товара на складе (подходит для смены статусов типа оплочен, комплектуется, отправлен....)


Другие буквы не проверял (больше 6 статусов не требуется), но думаю ясно куда копать, пробуйте различные буквы и смотрите результат
*

puzzin

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Интересно есть ли буква для минусования количетсва.... Очень надобно :) Типа отменили заказ... а потом передумали и опять заказали...
Надо бы порыться. или подправить скриптик...
*

puzzin

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
В общем не долго думая раскопал гиде это...
файл ps_order.php

Вставил там после :
Цитировать
if( ($d["order_status"] == "X" || $d["order_status"]=="R" ||
         $d["order_status"] == "x" || $d["order_status"]=="r") &&
         //CHECK_STOCK == '1' &&
         $curr_order_status != $d["order_status"]
         ) {
         // Get the order items and update the stock level
         // to the number before the order was placed
         $q = "SELECT product_id, product_quantity FROM #__{vm}_order_item WHERE order_id='".$d["order_id"]."'";
         $db->query( $q );
         $dbu = new ps_DB;
         // Now update each ordered product
         while( $db->next_record() ) {
            $q = "UPDATE #__{vm}_product SET product_in_stock=product_in_stock+".$db->f("product_quantity")
            .",product_sales=product_sales-".$db->f("product_quantity")." WHERE product_id='".$db->f("product_id")."'";
            $dbu->query( $q );
         }
      }

Код
if( ($d["order_status"] == "Z" || $d["order_status"]=="z") &&
//CHECK_STOCK == '1' &&
$curr_order_status != $d["order_status"]
) {
// Get the order items and update the stock level
// to the number before the order was placed
$q = "SELECT product_id, product_quantity FROM #__{vm}_order_item WHERE order_id='".$d["order_id"]."'";
$db->query( $q );
$dbu = new ps_DB;
// Now update each ordered product
while( $db->next_record() ) {
$q = "UPDATE #__{vm}_product SET product_in_stock=product_in_stock-".$db->f("product_quantity")
.",product_sales=product_sales+".$db->f("product_quantity")." WHERE product_id='".$db->f("product_id")."'";
$dbu->query( $q );
}
}

Усе... теперь идем в статусы... создаем новый... называем как хотим... например "ВЫЧЕТСКЛАД". Код состояния заказа присваиваем  "Z".
Наслаждаемся...

у меня бмпе 1.015

Всем творческих успехов.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться