Kors Опубликовано 6 декабря, 2015 Жалоба Поделиться Опубликовано 6 декабря, 2015 В api/Orders.php есть такой запрос $query = $this->db->placehold("UPDATE __orders SET payment_status=1, payment_date=NOW(), modified=NOW() WHERE id=? LIMIT 1", $order->id); $this->db->query($query); Запрос это никогда не выполняется, так как дает синтаксическую ошибку, потому как поле payment_status в таблице отсутствует.Похоже, такое поле было в версии 1, и это отголоски тех времен.И сама функция с этими строками, кажется, нигде в Simpla не используется... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 6 декабря, 2015 Жалоба Поделиться Опубликовано 6 декабря, 2015 Я об этом Денису писал уже, на что получил совсем не верный ответ, цитирую:Эта функция помечает заказ как оплаченный Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 6 декабря, 2015 Автор Жалоба Поделиться Опубликовано 6 декабря, 2015 Видимо, Денис имел в виду, что эта функция ЗАДУМАНА, чтобы помечать заказ как оплаченный. НО1. Реально этого не делает, по причине ошибки в SQL-запросе.2. И по-моему, нигде в стандартной Simpla 2.3.7 функция не вызывается. Если кто знает, где она вызывается, прошу сообщить... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 6 декабря, 2015 Жалоба Поделиться Опубликовано 6 декабря, 2015 поиск по файлам места вызова orders->pay результата не дал Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 6 декабря, 2015 Жалоба Поделиться Опубликовано 6 декабря, 2015 поиск по файлам места вызова orders->pay результата не далВ том то и дело, что эта функция нигде не вызывается, Денис с этим не согласен.В функции есть сразу 2 ошибки, а не одна. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 7 декабря, 2015 Автор Жалоба Поделиться Опубликовано 7 декабря, 2015 В том то и дело, что эта функция нигде не вызывается, Денис с этим не согласен. Жаль, что он не высказывает АРГУМЕНТИРОВАНО здесь свое несогласие... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 9 декабря, 2015 Жалоба Поделиться Опубликовано 9 декабря, 2015 В том то и дело, что эта функция нигде не вызывается, Денис с этим не согласен.В функции есть сразу 2 ошибки, а не одна. ошибки есть, но ф-я нигде не вызывается, поэтому от нее нет ни пользы ни вреда. занимает пару строк кода, никому не мешает. не так критично, если бы она юзалась, другое дело Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 9 декабря, 2015 Жалоба Поделиться Опубликовано 9 декабря, 2015 ошибки есть, но ф-я нигде не вызывается, поэтому от нее нет ни пользы ни вреда. занимает пару строк кода, никому не мешает. не так критично, если бы она юзалась, другое делоТы повторяешь тоже что я и корс описали.С таким мышлением можно тьму кода написать который не будет использоваться и не будет мешать, и толку с этого? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 9 декабря, 2015 Жалоба Поделиться Опубликовано 9 декабря, 2015 С таким мышлением можно тьму кода написать который не будет использоваться и не будет мешать, и толку с этого? ну так, ни толку ни вреда. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 9 декабря, 2015 Жалоба Поделиться Опубликовано 9 декабря, 2015 ну так, ни толку ни вреда.Именно! Пикусов гонится за простотой, вот пусть упростит. Да и вообще тема была создана исключительно для разработчика. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 10 декабря, 2015 Автор Жалоба Поделиться Опубликовано 10 декабря, 2015 Именно! Пикусов гонится за простотой, вот пусть упростит. Да и вообще тема была создана исключительно для разработчика. Очень правильно замечено.Могу дополнительно добавить, что за последние 2-3 года в Simpla обнаружено несколько явно усложненных мест. Например, при выводе главной страницы и в шаблоне тройной повтор почти одинакового кода и в PHP много дублирования кода (View.php). Пора бы автору меры принять... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 декабря, 2015 Жалоба Поделиться Опубликовано 10 декабря, 2015 Очень правильно замечено. Могу дополнительно добавить, что за последние 2-3 года в Simpla обнаружено несколько явно усложненных мест. Например, при выводе главной страницы и в шаблоне тройной повтор почти одинакового кода и в PHP много дублирования кода (View.php). Пора бы автору меры принять...Я полностью согласен с этим. Хотел бы еще упомянуть о разграничении прав менеджеров, это сделано очень не просто и я бы сказал наоборот очень сложно, часто усложняет установку модулей. Цитата Ссылка на сообщение Поделиться на другие сайты
bananovsv Опубликовано 21 ноября, 2017 Жалоба Поделиться Опубликовано 21 ноября, 2017 Я правильно понимаю, что если удалить payment_status=1 и добавить эту функцию в колбек платежного модуля, то заработает время оплаты? Цитата Ссылка на сообщение Поделиться на другие сайты
bananovsv Опубликовано 21 ноября, 2017 Жалоба Поделиться Опубликовано 21 ноября, 2017 В том то и дело, что эта функция нигде не вызывается, Денис с этим не согласен.В функции есть сразу 2 ошибки, а не одна.А какая вторая ошибка, кроме неиспользуемого payment_status? Цитата Ссылка на сообщение Поделиться на другие сайты
miltonmors Опубликовано 21 ноября, 2017 Жалоба Поделиться Опубликовано 21 ноября, 2017 Я правильно понимаю, что если удалить payment_status=1 и добавить эту функцию в колбек платежного модуля, то заработает время оплаты? Очень возможно, что да. А лучше вместо подобных вопросов попробовать и узнать ТОЧНО. Но, имейте в виду, это может породить другие ошибки. Например, запрос в этой функции не выполнится, если на момент оплаты количество товара недостаточно для выполнения заказа. Возможно, это имелось в виду в замечании о второй ошибке. И вообще, стандартно в Simpla состояние заказа open/closed привязывается к статусу заказа. А эта функция привязывает его к состоянию оплаты. Естественно, в такой ситуации возможна путаница Цитата Ссылка на сообщение Поделиться на другие сайты
bananovsv Опубликовано 21 ноября, 2017 Жалоба Поделиться Опубликовано 21 ноября, 2017 (изменено) Очень возможно, что да. А лучше вместо подобных вопросов попробовать и узнать ТОЧНО. Но, имейте в виду, это может породить другие ошибки. Например, запрос в этой функции не выполнится, если на момент оплаты количество товара недостаточно для выполнения заказа. Возможно, это имелось в виду в замечании о второй ошибке. И вообще, стандартно в Simpla состояние заказа open/closed привязывается к статусу заказа. А эта функция привязывает его к состоянию оплаты. Естественно, в такой ситуации возможна путаница А есть более простой способ поставить время оплаты? У меня только в этом задача. P. S. Можете мне прям указать, где в этой функции что-то связанное с количеством товара? Не понимаю, почему она не выполнится, если товара недостаточно. Изменено 21 ноября, 2017 пользователем bananovsv Цитата Ссылка на сообщение Поделиться на другие сайты
miltonmors Опубликовано 21 ноября, 2017 Жалоба Поделиться Опубликовано 21 ноября, 2017 (изменено) А есть более простой способ поставить время оплаты? У меня только в этом задача. В callback разных методов оплату фиксируется факт оплаты в строке$simpla->orders->update_order(intval($order->id), array('paid'=>1));Меняйте на$simpla->orders->update_order(intval($order->id), array('paid'=>1, 'payment_date'=date('Y-m-d H:i:s'))); P. S. Можете мне прям указать, где в этой функции что-то связанное с количеством товара? Не понимаю, почему она не выполнится, если товара недостаточно. В функции function pay($order_id) есть строкиif(!$this->close($order->id)){return false;} А в функции function close($order_id) есть фрагментforeach($variants_amounts as $id=>$amount){$variant = $this->variants->get_variant($id);if(empty($variant) || ($variant->stock<$amount))return false;} Поэтому, если сработает условие в этом фрагменте, то функция close вернет false, это прервет выполнение функции pay ДО вызова запроса. Изменено 21 ноября, 2017 пользователем miltonmors Цитата Ссылка на сообщение Поделиться на другие сайты
bananovsv Опубликовано 21 ноября, 2017 Жалоба Поделиться Опубликовано 21 ноября, 2017 В callback разных методов оплату фиксируется факт оплаты в строке$simpla->orders->update_order(intval($order->id), array('paid'=>1));Меняйте на$simpla->orders->update_order(intval($order->id), array('paid'=>1, 'payment_date'=date('Y-m-d H:i:s'))); В функции function pay($order_id) есть строкиif(!$this->close($order->id)){return false;} А в функции function close($order_id) есть фрагментforeach($variants_amounts as $id=>$amount){$variant = $this->variants->get_variant($id);if(empty($variant) || ($variant->stock<$amount))return false;} Поэтому, если сработает условие в этом фрагменте, то функция close вернет false, это прервет выполнение функции pay ДО вызова запроса. Спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.