Категории
[FAQ] Часто задаваемые вопросы и ответы
Проблемы и решения
Ошибки и исправления
Общие вопросы
Расширения
Установка и обновление
Модули
Шаблоны
Локализация интерфейса
Коммерческие предложения
Учимся бизнесу
Бизнес книги
Поисковая оптимизация (SEO)
Магазины на ShopOS
Хостинг для ShopOS
Предложения и пожелания
Курилка
|
Нужно доделать товарную накладную
есть Форма товарной накладной надо подогнать печатную форму shopos под эту накладную, расставить переменные
никому не интересно сделать нормальную накладную торг 12?
Можно скрин формы? Я далек от бумажек, так что не представляю её.
где то на форуме обсуждался это тема. и если не ошибаюсь кто то выложил этот файл!
выкладывали от другого движка также просили переделать
Не могу понять как выдернуть из order_total стоимость доставки.
<?php /* ##################################### # ShopOS: Shopping Cart Software.
# Copyright (c) 2008-2010 # http://www.shopos.ru # http://www.shoposs.com # Ver. 1.0.0 ##################################### */
include ('includes/top.php'); class inwords { var $diw=Array( 0 => Array( 0 => Array( 0=> "ноль", 1=>1), 1 => Array( 0=> "", 1=>2), 2 => Array( 0=> "", 1=>3), 3 => Array( 0=> "три", 1=>0), 4 => Array( 0=> "четыре", 1=>0), 5 => Array( 0=> "пять", 1=>1), 6 => Array( 0=> "шесть", 1=>1), 7 => Array( 0=> "семь", 1=>1), 8 => Array( 0=> "восемь", 1=>1), 9 => Array( 0=> "девять", 1=>1), 10 => Array( 0=> "десять", 1=>1), 11 => Array( 0=> "одинадцать", 1=>1), 12 => Array( 0=> "двенадцать", 1=>1), 13 => Array( 0=> "тринадцать", 1=>1), 14 => Array( 0=> "четырнадцать",1=>1), 15 => Array( 0=> "пятнадцать", 1=>1), 16 => Array( 0=> "шестнадцать", 1=>1), 17 => Array( 0=> "семнадцать", 1=>1), 18 => Array( 0=> "восемнадцать",1=>1), 19 => Array( 0=> "девятнадцать",1=>1) ), 1 => Array( 2 => Array( 0=> "двадцать", 1=>1), 3 => Array( 0=> "тридцать", 1=>1), 4 => Array( 0=> "сорок", 1=>1), 5 => Array( 0=> "пятьдесят", 1=>1), 6 => Array( 0=> "шестьдесят", 1=>1), 7 => Array( 0=> "семьдесят", 1=>1), 8 => Array( 0=> "восемьдесят", 1=>1), 9 => Array( 0=> "девяносто", 1=>1) ), 2 => Array( 1 => Array( 0=> "сто", 1=>1), 2 => Array( 0=> "двести", 1=>1), 3 => Array( 0=> "триста", 1=>1), 4 => Array( 0=> "четыреста", 1=>1), 5 => Array( 0=> "пятьсот", 1=>1), 6 => Array( 0=> "шестьсот", 1=>1), 7 => Array( 0=> "семьсот", 1=>1), 8 => Array( 0=> "восемьсот", 1=>1), 9 => Array( 0=> "девятьсот", 1=>1) ) );
var $nom=Array( 0 => Array(0=>"копейки", 1=>"копеек", 2=>"одна копейка", 3=>"две копейки"), 1 => Array(0=>"рубля", 1=>"рублей", 2=>"один рубль", 3=>"два рубля"), 2 => Array(0=>"тысячи", 1=>"тысяч", 2=>"одна тысяча", 3=>"две тысячи"), 3 => Array(0=>"миллиона", 1=>"миллионов", 2=>"один миллион", 3=>"два миллиона"), 4 => Array(0=>"миллиарда",1=>"миллиардов",2=>"один миллиард",3=>"два миллиарда"), /* :))) */ 5 => Array(0=>"триллиона",1=>"триллионов",2=>"один триллион",3=>"два триллиона") );
var $out_rub;
function get($summ) {
if($summ>=1) $this->out_rub=0; else $this->out_rub=1; $summ_rub= doubleval(sprintf("%0.0f",$summ)); if(($summ_rub-$summ)>0) $summ_rub--; $summ_kop= doubleval(sprintf("%0.2f",$summ-$summ_rub))*100; $kop=$this->get_string($summ_kop,0); $retval=""; for($i=1;$i<6&&$summ_rub>=1;$i++): $summ_tmp=$summ_rub/1000; $summ_part=doubleval(sprintf("%0.3f",$summ_tmp-intval($summ_tmp)))*1000; $summ_rub= doubleval(sprintf("%0.0f",$summ_tmp)); if(($summ_rub-$summ_tmp)>0) $summ_rub--; $retval=$this->get_string($summ_part,$i)." ".$retval; endfor; if(($this->out_rub)==0) $retval.=" рублей"; return $retval." ".$kop; }
function get_string($summ,$nominal){ $retval=""; $nom=-1; $summ=round($summ); if(($nominal==0&&$summ<100)||($nominal>0&&$nominal<6&&$summ<1000)): $s2=intval($summ/100); if($s2>0): $retval.=" ".$this->diw; $nom=$this->diw; endif; $sx=doubleval(sprintf("%0.0f",$summ-$s2*100)); if(($sx-($summ-$s2*100))>0) $sx--; if(($sx<20&&$sx>0)||($sx==0&&$nominal==0)): $retval.=" ".$this->diw; $nom=$this->diw; else: $s1=doubleval(sprintf("%0.0f",$sx/10)); if(($s1-$sx/10)>0)$s1--; $s0=doubleval($summ-$s2*100-$s1*10); if($s1>0): $retval.=" ".$this->diw; $nom=$this->diw; endif; if($s0>0): $retval.=" ".$this->diw; $nom=$this->diw; endif; endif; endif; if($nom>=0): $retval.=" ".$this->nom; if($nominal==1) $this->out_rub=1; endif; return trim($retval); }
}
//$osTemplate = new osTemplate;
// check if custmer is allowed to see this order! $order_query_check = os_db_query("SELECT customers_id FROM ".TABLE_ORDERS." WHERE orders_id='".(int) $_GET['oID']."'"); $oID = (int) $_GET['oID']; $order_check = os_db_fetch_array($order_query_check);
$company_query = os_db_query("SELECT * FROM ".TABLE_COMPANIES." WHERE orders_id='".(int)$_GET['oID']."'"); $company = os_db_fetch_array($company_query);
$osTemplate->assign('company_name', $company['name']); $osTemplate->assign('company_telephone', $company['telephone']); $osTemplate->assign('company_fax', $company['fax']); $osTemplate->assign('company_inn', $company['inn']); $osTemplate->assign('company_kpp', $company['kpp']); $osTemplate->assign('company_ogrn', $company['ogrn']); $osTemplate->assign('company_okpo', $company['okpo']); $osTemplate->assign('company_rs', $company['rs']); $osTemplate->assign('company_bank_name', $company['bank_name']); $osTemplate->assign('company_bik', $company['bik']); $osTemplate->assign('company_ks', $company['ks']); $osTemplate->assign('company_address', $company['address']); $osTemplate->assign('company_yur_address', $company['yur_address']); $osTemplate->assign('company_fakt_address', $company['fakt_address']); $osTemplate->assign('company_director', $company['name']); $osTemplate->assign('company_accountant', $company['accountant']);
if ($_SESSION['customer_id'] == $order_check['customers_id']) { // get order data include (dir_path('class').'order.php'); $order = new order($oID); $osTemplate->assign('address_label_customer', os_address_format($order->customer['format_id'], $order->customer, 1, '', '<br />')); $osTemplate->assign('address_label_shipping', os_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br />')); $osTemplate->assign('address_label_payment', os_address_format($order->billing['format_id'], $order->billing, 1, '', '<br />')); $osTemplate->assign('csID', $order->customer['csID']); // get products data $order_total = $order->getTotalData($oID); //print_r($order_total);
$osTemplate->assign('order_data', $order->getOrderData($oID)); $osTemplate->assign('order_total', $order_total['data']);
$osTemplate->assign('1', MODULE_PAYMENT_SCHET_1); $osTemplate->assign('2', MODULE_PAYMENT_SCHET_2); $osTemplate->assign('3', MODULE_PAYMENT_SCHET_3); $osTemplate->assign('4', MODULE_PAYMENT_SCHET_4); $osTemplate->assign('5', MODULE_PAYMENT_SCHET_5); $osTemplate->assign('6', MODULE_PAYMENT_SCHET_6); $osTemplate->assign('7', MODULE_PAYMENT_SCHET_7); $osTemplate->assign('8', MODULE_PAYMENT_SCHET_8); $osTemplate->assign('9', MODULE_PAYMENT_SCHET_9); $osTemplate->assign('10', MODULE_PAYMENT_SCHET_10); $osTemplate->assign('11', MODULE_PAYMENT_SCHET_11); $osTemplate->assign('12', MODULE_PAYMENT_SCHET_12); $osTemplate->assign('13', $order->customer['firstname']); $osTemplate->assign('14', $order->customer['lastname']);
$iw=new inwords;
$osTemplate->assign('summa', $iw->get($order->info['total'])); $osTemplate->assign('language', $_SESSION['language']); $osTemplate->assign('charset', $_SESSION['language_charset']); $osTemplate->assign('oID', (int) $_GET['oID']); if ($order->info['payment_method'] != '' && $order->info['payment_method'] != 'no_payment') { include (DIR_FS_DOCUMENT_ROOT.'/modules/payment/' . $order->info['payment_method'] . '/'.$_SESSION['language'].'.php'); $payment_method = constant(strtoupper('MODULE_PAYMENT_'.$order->info['payment_method'].'_TEXT_TITLE')); } if ($order->info['shipping_method'] != '') { $shipping_method = $order->info['shipping_method']; } $osTemplate->assign('SHIPPING_METHOD', $shipping_method); $osTemplate->assign('PAYMENT_METHOD', $payment_method); $osTemplate->assign('COMMENT', $order->info['comments']); $osTemplate->assign('DATE', os_date_short($order->info['date_purchased'])); $path = DIR_WS_CATALOG._THEMES_C; $osTemplate->assign('tpl_path', $path); $osTemplate->caching = false; $osTemplate->display(CURRENT_TEMPLATE.'/module/schet.html'); } else { $osTemplate->assign('ERROR', 'You are not allowed to view this order!'); $osTemplate->display(CURRENT_TEMPLATE.'/module/error_message.html'); } ?>
Способо доставки вывести легко, добавив в HTML счета {$SHIPPING_METHOD} А вот как дергануть стоимость. Надо маны почитать по работе с массивами. Может кто допилит.
сделал я цену, осталось порядковые номера (counter) прописью и общее количество товаров вывести
Не могу понять как выдернуть из order_total стоимость доставки.
$order_total = $order->getTotalData($oID); if ($order_total['data']['CLASS'] = 'ot_shipping') { $ot_shipping = $order_total['data']['VALUE']; } echo 'Total shipping cost: '.$ot_shipping;
а как сложить все заказанные товары в товарной накладной
порядковые номера (counter) прописью
Гм. Это в какой стране такие дикие правила?
Россия, а что делать с налоговой шутки плохи Есть шаблон print_packingslip.html там {counter} выводит порядковый номер а в print_packingslip.php он не описан - надо вывести последний п/п прописью
нашел функцию /includes/lib/smarty/plugins/function.counter.php вот похоже эта функция и выводит порядковый номер, а вот как вывод еще и прописью сделать?
Россия, а что делать с налоговой шутки плохи
Prooflink?
Есть шаблон print_packingslip.html там {counter} выводит порядковый номер а в print_packingslip.php он не описан - надо вывести последний п/п прописью
Это в каком шаблоне? В default такого {counter} нет.
Пропись для подсчета не сумм можно сделать создав копию sumpropis.php и убрав всё относящееся к валюте. http://www.shopos.ru/forum/index.php?topic=3850.msg19695#msg19695
да, я {counter} вытащил из schet.html
все решил проблемы
Источник
|