Перейти к содержанию
Форум поддержки пользователей VamShop

Печать сопроводительных документов


Рекомендуемые сообщения

Попробуйте в /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>

т.е. брать символ валюты из сессии.

Ссылка на сообщение
Поделиться на другие сайты

Удачи.

Если что, пишите.

Но, по логике, всё правильно.

Ещё есть счёт и накладная в каталоге, в модуле оплаты invoice, они аналогичны админским, их править в /app/Plugin/Payment/View/Invoice/

Там шаблоны print_invoice.ctp и print_packing_slip.ctp

Ссылка на сообщение
Поделиться на другие сайты

Если Вы хотите текстом выводить, то это чуть сложнее.

Если просто символ валюты выводить, то можно сделать так:

Попробуйте в /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')) 
); 


}

Примерно так.

т.е. задавайте условие, что за валюта сейчас в сессии и в зависимости от этого выводит текст.

Изменено пользователем VaM
Ссылка на сообщение
Поделиться на другие сайты

Получилось что то вроде этого:

Сумма прописью: четыреста семьдесят долларов ноль копеек. Без НДС. 

Такой еще вопрос, как в накладной отображать цену именно в той валюте в какой оформлялся заказ. На сайте по умолчании стоит доллар, и при заказе гривнами в накладной проходит только доллар. 

На накладной меняется валюта при перемене валюты на сайте.

Ссылка на сообщение
Поделиться на другие сайты

Вроде никак, разве что в админке переключиться на другую валюту по умолчанию.

Вообще говоря, иметь в магазине несколько валют, это не совсем правильно, будут проблемы с пересчётом из одной валюты в другую.

Ссылка на сообщение
Поделиться на другие сайты

Скажите пожалуйста а можно подобное воплотить в жизнь? 

После на надписи сумма в долларах показать курс цифрами, и во второй строке сумма прописью в гривнах по итогам умножения?

 Если возможно вообще.

Спасибо.

первый.jpg

первый1.jpg

Ссылка на сообщение
Поделиться на другие сайты

Ну это только свой php код добавлять.

Курс можно взять из $_SESSION['Customer']['value']

Сумму заказа можно просто умножить на курс, как-то так: $data['Order']['total']*$_SESSION['Customer']['value']

Ссылка на сообщение
Поделиться на другие сайты

Получилось так!

Но вопрос такой ,валюта по умолчанию стоит доллар и курс подает именно доллара. А как подавать курс другой валюты?

Спасибо.

первый.jpg

Ссылка на сообщение
Поделиться на другие сайты

Нужно делать запрос в базу данных, в таблицу curencies, вытаскивать оттуда курс нужной валюты и уже считать.

Ссылка на сообщение
Поделиться на другие сайты

По запросу к курсу валют он берет только курс валют по умолчанию, подскажите пожалуйста как выбрать по нужным критериям? 

Спасибо.

Ссылка на сообщение
Поделиться на другие сайты

Смотрите как запрашивать данные например в /app/Controller/CurrenciesController.php в методе pick_currency

В переменной $currency_data как раз идёт запрос в базу, запрос информации о валюте.

Ссылка на сообщение
Поделиться на другие сайты

Добрый день. Скажите что могло произойти. Вчера поставил запрос:

$_SESSION['Customer']['value']

и

<?php echo $_SESSION['Customer']['symbol_right'] . ' ' . $this->Summa->get($data['Order']['total']) . ' ' . $_SESSION['Customer']['symbol_right']; ?>

Он срабатывал. Но спустя некоторое время запрос перестал работать. В чем может быть проблема?

Спасибо. 

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...