Lori

Lori

С нами с 13 октября 2014; Место в рейтинге пользователей: #398
Lori
23 декабря 2020, 11:08
0
Ситуация такая. Я сделал сайт для снабженцов компании: они выбирают товары из каталога, добавляют их в заявки (корзина) и сохраняют их (оформление заказа). Руководство выделяет деньги в соответствии с суммой заявки каждому снабженцу. Товары разные: строительные материалы, продукты, хозтовары, также есть такие позиции как парковка, мойка и заправка. Цены могут меняться с каждым разом, поэтому помимо обычной цены я добавил еще одно поле «Цена покупки», чтобы если расходы были ниже или выше, чем в заявке, снабженцы могли это указать перед закрытием заявки и руководство видело из-за чего другая сумма. Так вот, очень неудобно было бы менять все в наименьшую сторону, так как снабженцам помимо их рабочих суматох еще и придется перед заполнением считать цены: вместо КГ в Г, вместо М в СМ, вместо М2 в СМ2 — тут 100% будут ошибки.

Я путем велосипеда добавил возможность указывать дробное количество, но оно только в корзине. В каталоге, после оформления заказа (заявки) и в админке указываются все равно целые числа, хотя сумма считается правильно, т.е. учитываются дробные, а сам count почему-то все равно целое число.
Lori
23 декабря 2020, 08:26
0
Проблема решилась, но появилась вторая.

После оформления заказа и в админке количество все равно указывается целым числом: если меньше одного, то 0, если больше, то ближайшее целое. Куда теперь ковырять, чтобы и там отображалось верно. Интересно то, что сумму считает верно, но вот именно count выводит неправильно после оформления заказа и в админке.
Lori
07 декабря 2020, 12:24
0
разобрался, спасибо большое!
Lori
07 декабря 2020, 12:19
0
Пардон, маленько неправильно выразился. куда мне нужно вернуть галочки, чтобы в меню был minishop2 и возможность видеть и управлять заказами? А то сейчас только «Содержимое->Перейти на сайт»
Lori
04 декабря 2020, 10:07
0
точно, нашел! оказалось так просто! спасибо большое :)
Lori
04 декабря 2020, 10:05
0
а где это можно изменить? оО в системных настройках?
Lori
04 декабря 2020, 09:55
0
Спасибо, сейчас ознакомлюсь
Lori
02 декабря 2020, 14:37
0
спасибо большое, решилось само по себе после очистки кэша…
Lori
02 декабря 2020, 13:40
0
не работает, выводит странное число
Lori
02 декабря 2020, 13:03
0
эти переменные были в шаблоне tpl.msGetOrder — не я их создавал. Да и в любом случае, даже используя просто $total.weight и $total.cost я получаю тоже самое. Не знаю как преобразовать строку в число
Lori
02 декабря 2020, 12:53
0
вроде понял. обе переменные пусть и принимают числовые значения, но являются строками. нужно просто конвертировать строки в числа перед вычислением
Lori
02 декабря 2020, 12:44
0
это же общий вес и общая стоимость товаров в корзине. Если выводить просто по отдельности, то нормальные числа, но как только делаю математические операции, то они оба будто определяются как 1.
Lori
02 декабря 2020, 12:35
0
да, верно. при этом выводится 0, если $total.cart_cost меньше $total.cart_weight, и выводится 1 если наоборот
Lori
02 декабря 2020, 12:03
0
извини за назойливость. я все таки смог изменить значение weight и теперь переименовал эту графу. теперь мне нужно вывести разницу total_price и total.weight, но когда я пишу в чанке так:
{$total.cart_cost - $total.cart_weight}
то у меня выводится либо 0 либо 1. Подскажи как сделать такую простую вещь?
Lori
02 декабря 2020, 11:18
0
да, на вкладке элементы, галочку давно поставил
Lori
02 декабря 2020, 11:03
0
ладно друг, спасибо большое за уделенное время, но видимо я все таки не справлюсь с этой задачей. Сделал все, в логе только «Невозможно запустить функцию mail», пробовал выводить и на фронте. Заказ в админке появляется но со старыми ценами. Плагина код:
<?php
switch ($modx->event->name) {
        case 'msOnChangeInCart':
            $modx->log(1, print_r($_POST,1,'HTML'));
            $tmp = $cart->get();
            $modx->log(1, print_r($tmp,1,'HTML')); 
            $tmp[$key]['price'] = $_POST['price2'];
            $cart->set($tmp);
         break;
}
Форма на сайте
<form method="post" class="ms2_form" role="form">
                                <input type="hidden" name="key" value="{$product.key}"/>
                                <div class="form-group">
                                    <div class="input-group input-group-sm">
                                        <input type="number" name="price2" value="" class="form-control"/>
                                        <div class="input-group-append">
                                            <span class="input-group-text">{'ms2_frontend_currency' | lexicon}</span>
                                        </div>
                                    </div>
                                    <button class="btn btn-sm" type="submit" name="ms2_action" value="cart/change">↻</button>
                                </div>
                            </form>
Lori
02 декабря 2020, 10:47
0
а закрывающую скобку сразу или после всех операций в конце после фигурной?
Lori
02 декабря 2020, 10:42
0
Событие поставил.
Пардон, а в каком месте плагина именно вставить, просто я в PHP нулина
Lori
02 декабря 2020, 10:18
0
Да добавил, name сделал price2. В коде соответственно сделал так
$tmp[$key]['price'] = $_POST['price2'];
Смотрел только результат POST запроса в Network
Lori
02 декабря 2020, 09:56
0
не сработало к сожалению, отправляется также цена та, что есть.