support 447 Опубликовано 14 октября, 2015 Жалоба Share Опубликовано 14 октября, 2015 Попробуйте в /app/View/Helper/SummaHelper.php закомментировать или удалить: $this->nom = $nom; Это, по идее, уберёт в конце суммы прописью название валюты. А затем нужно править шаблоны счёта и накладной, например если счёт в админке, при просмотре заказа, тогда в /app/View/Orders/admin_print_invoice.ctp и там можно либо вообще удалить суммы прописью, вот этак строка: <p><b><?php echo __('Summa:'); ?> <?php echo $this->Summa->get($data['Order']['total']); ?>. <?php echo __('without tax.'); ?></b></p> Либо может как-то так сделать: <p><b><?php echo __('Summa:'); ?> <?php echo $this->Summa->get($data['Order']['total']) . $_SESSION['Customer']['currency_code']; ?>. <?php echo __('without tax.'); ?></b></p> т.е. брать символ валюты из сессии. Ссылка на сообщение Поделиться на другие сайты
SergeuI 0 Опубликовано 14 октября, 2015 Жалоба Share Опубликовано 14 октября, 2015 Попробую. Спасибо! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 октября, 2015 Жалоба Share Опубликовано 14 октября, 2015 Удачи. Если что, пишите. Но, по логике, всё правильно. Ещё есть счёт и накладная в каталоге, в модуле оплаты invoice, они аналогичны админским, их править в /app/Plugin/Payment/View/Invoice/ Там шаблоны print_invoice.ctp и print_packing_slip.ctp Ссылка на сообщение Поделиться на другие сайты
SergeuI 0 Опубликовано 14 октября, 2015 Жалоба Share Опубликовано 14 октября, 2015 Вот что получилось: Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 октября, 2015 Жалоба Share Опубликовано 14 октября, 2015 (изменено) Если Вы хотите текстом выводить, то это чуть сложнее. Если просто символ валюты выводить, то можно сделать так: Попробуйте в /app/Controller/AppController.php поменять: $new_customer['currency_id'] = $default_currency['Currency']['id']; $new_customer['currency_code'] = $default_currency['Currency']['code']; на: $new_customer['currency_id'] = $default_currency['Currency']['id']; $new_customer['currency_code'] = $default_currency['Currency']['code']; $new_customer['name'] = $default_currency['Currency']['name']; $new_customer['symbol_left'] = $default_currency['Currency']['symbol_left']; $new_customer['symbol_right'] = $default_currency['Currency']['symbol_right']; $new_customer['decimal_point'] = $default_currency['Currency']['decimal_point']; $new_customer['thousands_point'] = $default_currency['Currency']['thousands_point']; $new_customer['decimal_places'] = $default_currency['Currency']['decimal_places']; $new_customer['value'] = $default_currency['Currency']['value']; и в шаблоне счёта можно будет использовать новые метки, как-то так: <p><b><?php echo __('Summa:'); ?> <?php echo $_SESSION['Customer']['symbol_right'] . ' ' . $this->Summa->get($data['Order']['total']) . ' ' . $_SESSION['Customer']['symbol_right']; ?>. <?php echo __('without tax.'); ?></b></p> т.е. новые метки symbol_right и symbol_left, которые выводят символ валюты. Что б новые метки заработали, надо обновить сессию, т.е. закройте окно браузера и снова откройте, либо cookie можно почистить для Вашего магазина. Что б выводить название валюты текстом со склонением, верните оригинальный код во всех файлов, т.е. как в VamShop по умолчанию. и в /app/View/Helper/SummaHelper.php правьте: $nom=Array( 0 => Array(0=>__('penny'), 1=>__('kopecks'), 2=>__('single kopek'), 3=>__('two penny')), 1 => Array(0=>__('ruble'), 1=>__('rubles'), 2=>__('one ruble'), 3=>__('two rubles')), 2 => Array(0=>__('thousands'), 1=>__('thousand'), 2=>__('one thousand'), 3=>__('two thousand')), 3 => Array(0=>__('million'), 1=>__('millions'), 2=>__('one million'), 3=>__('two million')), 4 => Array(0=>__('billion'),1=>__('billions'),2=>__('one billion'),3=>__('two billion')), 5 => Array(0=>__('trillion'),1=>__('trillions'),2=>__('one trillion'),3=>__('two trillion')) ); на что-то типа: $nom=Array( 0 => Array(0=>__('penny'), 1=>__('kopecks'), 2=>__('single kopek'), 3=>__('two penny')), 1 => Array(0=>__('ruble'), 1=>__('rubles'), 2=>__('one ruble'), 3=>__('two rubles')), 2 => Array(0=>__('thousands'), 1=>__('thousand'), 2=>__('one thousand'), 3=>__('two thousand')), 3 => Array(0=>__('million'), 1=>__('millions'), 2=>__('one million'), 3=>__('two million')), 4 => Array(0=>__('billion'),1=>__('billions'),2=>__('one billion'),3=>__('two billion')), 5 => Array(0=>__('trillion'),1=>__('trillions'),2=>__('one trillion'),3=>__('two trillion')) ); if ($_SESSION['Customer']['currency_code'] == 'USD') { $nom=Array( 0 => Array(0=>__('penny'), 1=>__('kopecks'), 2=>__('single kopek'), 3=>__('two penny')), 1 => Array(0=>__('доллар'), 1=>__('долларов'), 2=>__('one ruble'), 3=>__('two rubles')), 2 => Array(0=>__('thousands'), 1=>__('thousand'), 2=>__('one thousand'), 3=>__('two thousand')), 3 => Array(0=>__('million'), 1=>__('millions'), 2=>__('one million'), 3=>__('two million')), 4 => Array(0=>__('billion'),1=>__('billions'),2=>__('one billion'),3=>__('two billion')), 5 => Array(0=>__('trillion'),1=>__('trillions'),2=>__('one trillion'),3=>__('two trillion')) ); } if ($_SESSION['Customer']['currency_code'] == 'UAH') { $nom=Array( 0 => Array(0=>__('penny'), 1=>__('kopecks'), 2=>__('single kopek'), 3=>__('two penny')), 1 => Array(0=>__('гривна'), 1=>__('гривен'), 2=>__('one ruble'), 3=>__('two rubles')), 2 => Array(0=>__('thousands'), 1=>__('thousand'), 2=>__('one thousand'), 3=>__('two thousand')), 3 => Array(0=>__('million'), 1=>__('millions'), 2=>__('one million'), 3=>__('two million')), 4 => Array(0=>__('billion'),1=>__('billions'),2=>__('one billion'),3=>__('two billion')), 5 => Array(0=>__('trillion'),1=>__('trillions'),2=>__('one trillion'),3=>__('two trillion')) ); } Примерно так. т.е. задавайте условие, что за валюта сейчас в сессии и в зависимости от этого выводит текст. Изменено 14 октября, 2015 пользователем VaM Ссылка на сообщение Поделиться на другие сайты
SergeuI 0 Опубликовано 15 октября, 2015 Жалоба Share Опубликовано 15 октября, 2015 Получилось что то вроде этого: Сумма прописью: четыреста семьдесят долларов ноль копеек. Без НДС. Такой еще вопрос, как в накладной отображать цену именно в той валюте в какой оформлялся заказ. На сайте по умолчании стоит доллар, и при заказе гривнами в накладной проходит только доллар. На накладной меняется валюта при перемене валюты на сайте. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 октября, 2015 Жалоба Share Опубликовано 15 октября, 2015 Вроде никак, разве что в админке переключиться на другую валюту по умолчанию. Вообще говоря, иметь в магазине несколько валют, это не совсем правильно, будут проблемы с пересчётом из одной валюты в другую. Ссылка на сообщение Поделиться на другие сайты
SergeuI 0 Опубликовано 15 октября, 2015 Жалоба Share Опубликовано 15 октября, 2015 Скажите пожалуйста а можно подобное воплотить в жизнь? После на надписи сумма в долларах показать курс цифрами, и во второй строке сумма прописью в гривнах по итогам умножения? Если возможно вообще. Спасибо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 октября, 2015 Жалоба Share Опубликовано 15 октября, 2015 Ну это только свой php код добавлять. Курс можно взять из $_SESSION['Customer']['value'] Сумму заказа можно просто умножить на курс, как-то так: $data['Order']['total']*$_SESSION['Customer']['value'] Ссылка на сообщение Поделиться на другие сайты
SergeuI 0 Опубликовано 15 октября, 2015 Жалоба Share Опубликовано 15 октября, 2015 Получилось так! Но вопрос такой ,валюта по умолчанию стоит доллар и курс подает именно доллара. А как подавать курс другой валюты? Спасибо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 октября, 2015 Жалоба Share Опубликовано 15 октября, 2015 Нужно делать запрос в базу данных, в таблицу curencies, вытаскивать оттуда курс нужной валюты и уже считать. Ссылка на сообщение Поделиться на другие сайты
SergeuI 0 Опубликовано 15 октября, 2015 Жалоба Share Опубликовано 15 октября, 2015 По запросу к курсу валют он берет только курс валют по умолчанию, подскажите пожалуйста как выбрать по нужным критериям? Спасибо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 октября, 2015 Жалоба Share Опубликовано 15 октября, 2015 Смотрите как запрашивать данные например в /app/Controller/CurrenciesController.php в методе pick_currency В переменной $currency_data как раз идёт запрос в базу, запрос информации о валюте. Ссылка на сообщение Поделиться на другие сайты
SergeuI 0 Опубликовано 16 октября, 2015 Жалоба Share Опубликовано 16 октября, 2015 Добрый день. Скажите что могло произойти. Вчера поставил запрос: $_SESSION['Customer']['value'] и <?php echo $_SESSION['Customer']['symbol_right'] . ' ' . $this->Summa->get($data['Order']['total']) . ' ' . $_SESSION['Customer']['symbol_right']; ?> Он срабатывал. Но спустя некоторое время запрос перестал работать. В чем может быть проблема? Спасибо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 16 октября, 2015 Жалоба Share Опубликовано 16 октября, 2015 Может в /app/AppController.php вернули оригинальный код?! Поэтому и перестало работать?! Ссылка на сообщение Поделиться на другие сайты
SergeuI 0 Опубликовано 16 октября, 2015 Жалоба Share Опубликовано 16 октября, 2015 Точно. Спасибо. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения