Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: не определяется переменная
Форумы портала PHP.SU » » Если скрипт не работает » не определяется переменная

Страниц (1): [1]
 

1. serdr - 16 Ноября, 2011 - 18:57:33 - перейти к сообщению
не определяется переменная в модуле оплаты.
я так подразумеваю надо поставить переменную $num = 0; (может я не прав?)
только в какое место ее засунуть не знаю, подскажите (буду очень признателен?


есть три ошибки (на локалке правда все нормально, на сервере вылезает, может на сервере что подкрутить? PHP5.2.10)
Notice: Undefined offset: 3 in ................... : eval()'d code on line 321
Notice: Undefined variable: nomer in.................... eval()'d code on line 296
Notice: Undefined offset: 0 .................... : eval()'d code on line 86

Сам код:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /*
  3. Модуль оплаты для VirtueMart 1.1.x / Joomla 1.5.x.
  4. Содержит форму счет, стандартного вида, для оплаты между юр. лицами.
  5. Автор модуля: программисты ecomsite
  6. Сайт поддержки http://ecomsite.ru
  7. Управляющие файлы: ps_fsch.php и ps_fsch.cfg.php
  8. Распространяется по лицензии GNU/GPL
  9. */
  10. ?>
  11. <?PHP    class num2str
  12. {
  13.     var $nums = array(
  14.         1 => array( 'один', 'одна' ),
  15.         2 => array( 'два', 'две' ),
  16.         3 => 'три',
  17.         4 => 'четыре',
  18.         5 => 'пять',
  19.         6 => 'шесть',
  20.         7 => 'семь',
  21.         8 => 'восемь',
  22.         9 => 'девять',
  23.         10 => 'десять',
  24.         11 => 'одиннадцать',
  25.         12 => 'двенадцать',
  26.         13 => 'тринадцать',
  27.         14 => 'четырнадцать',
  28.         15 => 'пятнадцать',
  29.         16 => 'шестнадцать',
  30.         17 => 'семнадцать',
  31.         18 => 'восемнадцать',
  32.         19 => 'девятнадцать',
  33.         20 => 'двадцать',
  34.         30 => 'тридцать',
  35.         40 => 'сорок',
  36.         50 => 'пятьдесят',
  37.         60 => 'шестьдесят',
  38.         70 => 'семьдесят',
  39.         80 => 'восемьдесят',
  40.         90 => 'девяносто',
  41.         100 => 'сто',
  42.         200 => 'двести',
  43.         300 => 'триста',
  44.         400 => 'четыреста',
  45.         500 => 'пятьсот',
  46.         600 => 'шестьсот',
  47.         700 => 'семьсот',
  48.         800 => 'восемьсот',
  49.         900 => 'девятьсот',
  50.     );
  51.     var $names = array(
  52.         1000 => array( 'тысяча', 'тысячи', 'тысяч', '', 'sem' => 1 ),
  53.         1000000 => array( 'миллион', 'миллиона', 'миллионов', '', 'sem' => 0 ),
  54.         1000000000 => array( 'миллиард', 'миллиарда', 'миллиардов', '', 'sem' => 0 )
  55.     );
  56.     var $out = array();
  57.     function semantic( $num, $words )
  58.     {
  59.         $des = false;
  60.         $num = $num % 100;
  61.         if( $num > 20 )
  62.         {
  63.             $num = $num % 10;
  64.             if( !$num ){
  65.                 $des= true;
  66.             }
  67.         }
  68.         if ( 1 == $num ){
  69.             return $words[0];
  70.         }elseif( $des ){
  71.             return $words[2];
  72.         }elseif( !$num ){
  73.             return $words[3];
  74.         }elseif( $num <= 4  ){
  75.             return $words[1];
  76.         }else{
  77.            return $words[2];
  78.         }
  79.     }
  80.     function small_nums( $num, $sem )
  81.     {
  82.         if( $num < 21 )
  83.         {  
  84.             if( $num <= 2 )
  85.             {
  86.                 $this->out[] =  $this->nums[$num][$sem];
  87.             }else{
  88.                 $this->out[] =  $this->nums[$num];
  89.             }
  90.         }else{
  91.             $this->out[] = $this->nums[$num - ( $num % 10 )];
  92.             if( ( $num % 10 ) <= 2 )
  93.             {
  94.                 $this->out[] = $this->nums[$num % 10][$sem];
  95.             }else{
  96.                 $this->out[] =  $this->nums[$num % 10];
  97.             }
  98.         }
  99.     }
  100.     function work( $num, $all_sem )
  101.     {
  102.         foreach( array( 1000000000, 1000000, 1000 ) as $order )
  103.         {
  104.             $temp = floor( $num / $order );
  105.             if( ( $temp - ( $temp % 100 ) ) > 0 ){
  106.                 $this->out[] = $this->nums[$temp - ( $temp % 100 )];
  107.             }
  108.             $this->small_nums( $temp % 100, $this->names[$order]['sem'] );
  109.             $this->out[] = $this->semantic( $temp, $this->names[$order] );
  110.             $num -= $temp * $order;
  111.         }
  112.         $temp = $num;
  113.         if( ( $temp - ( $temp % 100 ) ) > 0 ){
  114.             $this->out[] = $this->nums[$temp - ( $temp % 100 )];
  115.         }
  116.         $this->small_nums( $temp % 100, $all_sem );
  117.         $temp = implode( ' ', $this->out );
  118.         $this->out = array();
  119.         return $temp;
  120.     }
  121. }
  122. class money2str
  123. {
  124.     var $names = array(
  125.         1 => array( 'рубль', 'рубля', 'рублей', 'рублей', 'sem' => 0 ),
  126.         2 => array( 'копейка', 'копейки', 'копеек', 'копеек', 'sem' => 1 )
  127.     );
  128.     var $out = array();
  129.     function money2str()
  130.     {
  131.         $this->num2str = new num2str();
  132.     }
  133.     function work( $money, $kopnum = false )
  134.     {
  135.         $kop = substr( $money, -2 );
  136.         $rub = substr( $money, 0, -3 );
  137.         if( !$rub )
  138.         {
  139.             $this->out[] = 'ноль';
  140.         }else{
  141.             $this->out[] = $this->num2str->work( $rub, $this->names[1]['sem'] );
  142.         }
  143.         $this->out[] = $this->num2str->semantic( $rub, $this->names[1] );
  144.         if( !$kopnum )
  145.         {
  146.             if( !$kop )
  147.             {
  148.                 $this->out[] = 'ноль';
  149.             }else{
  150.                 $this->out[] = $this->num2str->work( $kop, $this->names[2]['sem'] );
  151.             }
  152.         }else{
  153.             $this->out[] = $kop;
  154.         }
  155.         $this->out[] = $this->num2str->semantic( $kop, $this->names[2] );
  156.         $temp = implode( ' ', $this->out );
  157.         $this->out = array();
  158.         return $temp;
  159.     }
  160. }
  161. ?>
  162. <?PHP
  163. $name=fsch_name;
  164. $KPP=fsch_KPP;
  165. $INN=fsch_INN;
  166. $Rch=fsch_Rch;
  167. $Rch_v=fsch_Rch_v;
  168. $BIK=fsch_BIK;
  169. $Kch=fsch_Kch;
  170. $IND=fsch_IND;
  171. $obl=fsch_obl;
  172. $gor=fsch_gor;
  173. $ul=fsch_ul;
  174. $dom=fsch_dom;
  175. $office=fsch_office;
  176. $tel=fsch_tel;
  177. $fax=fsch_fax;
  178. $url_img=fsch_url;
  179. $width_img=fsch_width;
  180. $height_img=fsch_height;
  181. ?>
  182. <script>
  183. function Load2(){
  184. text = document.getElementById('result2').innerHTML;
  185. printwin = open('', 'printwin', 'width=600,height=800');
  186. printwin.document.open();
  187. printwin.document.writeln('<html><head><title></title></head><body onload=print();close()>');
  188. printwin.document.writeln(text);
  189. printwin.document.writeln('</body></html>');
  190. printwin.document.close();
  191. }
  192. </script>
  193. <table width="560px" border="0" cellspacing="0" cellpadding="0" id=result2>
  194. <tr>
  195. <td><table width="100%" border="1" cellspacing="0" cellpadding="0">
  196. <tr>
  197. <td colspan="2" rowspan="2" valign="top" style="border-bottom:none;">
  198. <p style="font-size:12px; padding:2px;"> <?PHP echo $Rch_v;?></p></td>
  199. <td><p style="font-size:12px; padding:2px;">БИК</p></td>
  200. <td><p style="font-size:12px; padding:2px;"><?PHP echo $BIK;?></p></td>
  201. </tr>
  202. <tr>
  203. <td style="border-bottom:none;"><p style="font-size:12px; padding:2px;">Сч. №</p></td>
  204. <td style="border-bottom:none;"><p style="font-size:12px; padding:2px;"><?PHP echo $Kch;?></p></td>
  205. </tr>
  206. <tr>
  207. <td colspan="2" style="border-top:none;"><p style="font-size:10px; padding:2px;">Банк получателя</p></td>
  208. <td style="border-top:none;">&nbsp;</td>
  209. <td style="border-top:none;">&nbsp;</td>
  210. </tr>
  211. <tr>
  212. <td><p style="font-size:12px; padding:2px;">ИНН <?PHP echo $INN; ?></p></td>
  213. <td><p style="font-size:12px; padding:2px;">КПП <?PHP echo $KPP; ?></p></td>
  214. <td rowspan="3" valign="top"><p style="font-size:12px; padding:2px;">Сч. №</p></td>
  215. <td rowspan="3" valign="top"><p style="font-size:12px; padding:2px;"><?PHP echo $Rch; ?></p></td>
  216. </tr>
  217. <tr>
  218. <td colspan="2" style="border-bottom:none;"><p style="font-size:12px; padding:2px;"><?PHP echo $name; ?></p></td>
  219. </tr>
  220. <tr>
  221. <td colspan="2" style="border-top:none;"><p style="font-size:10px; padding:2px;">Получатель</p></td>
  222. </tr>
  223. </table></td>
  224. </tr>
  225. <tr>
  226. <td>
  227. <table height="40" width="100%" border="0" cellspacing="0" cellpadding="0">
  228. <tr>
  229. <td style="border-bottom:2px solid #000000;"><p style="font-size:16px;"><strong>Счет на оплату № <?PHP printf("%04d", $db->f("order_id")); ?> от <?PHP echo vmFormatDate($db->f("cdate"), "%d.%m.%Y");?>г.</strong></p>
  230. </td>
  231. </tr>
  232. </table>
  233. </td>
  234. </tr>
  235. <tr>
  236. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  237. <tr>
  238. <td align="center"><p style="font-size:12px;">Поставщик:</p></td>
  239. <td><p style="font-size:12px;"><strong>
  240.               <?PHP if ($INN!="") echo "ИНН $INN,"; ?>
  241.               <?PHP if ($KPP!="") echo "КПП $KPP,"; ?>
  242.               <?PHP if ($name!="") echo "$name,"; ?>
  243.               <?PHP if ($IND!="") echo "$IND,"; ?>
  244.               <?PHP if ($obl!="") echo "$obl,"; ?><br>
  245.               <?PHP if ($gor!="") echo "$gor,"; ?>
  246.               <?PHP if ($ul!="") echo "$ul,"; ?>
  247.               <?PHP if ($dom!="") echo "$dom,"; ?>
  248.               <?PHP if ($office!="") echo "$office,"; ?><br>
  249.               <?PHP if ($tel!="") echo "тел.: $tel"; ?>
  250.               <?PHP if ($fax!="") echo ", факс: $fax"; ?>
  251. </strong></p></td>
  252. </tr>
  253. <tr>
  254. <td width="80" align="center"><p style="font-size:12px;">Покупатель:</p></td>
  255. <td><p style="font-size:12px;"><strong>
  256.               <?PHP $INN_P=$dbbt->f("vm_inn"); if ($INN_P!="") echo "ИНН $INN_P,";?>
  257.               <?PHP $KPP_P=$dbbt->f("vm_kpp"); if ($KPP_P!="") echo "КПП $KPP_P,";?>
  258.               <?PHP $company=$dbbt->f("company"); if ($company!="") echo "$company,";?>
  259.               <?PHP $zip=$dbbt->f("zip"); if ($zip!="") echo "$zip,";?>
  260.               <?PHP $vm_state=$dbbt->f("vm_state"); if ($vm_state!="") echo "$vm_state,";?><br>
  261.               <?PHP $city=$dbbt->f("city"); if ($city!="") echo "$city,";?>
  262.               <?PHP $address_1=$dbbt->f("address_1"); if ($address_1!="") echo "$address_1,";?>
  263.               <?PHP $address_2=$dbbt->f("address_2"); if ($address_2!="") echo "$address_2,";?>
  264.               <?PHP $office_P=$dbbt->f("vm_office"); if ($office_P!="") echo "$office_P,";?>
  265.               <?PHP $phone=$dbbt->f("phone_1"); if ($phone!="") echo "тел.: $phone"; ?>
  266.               <br>Контактное лицо:
  267.               <?PHP echo $dbbt->f("last_name");?>
  268.               <?PHP echo $dbbt->f("first_name");?>
  269.               <?PHP echo $dbbt->f("middle_name");?>
  270. </strong></p>
  271. </td>
  272. </tr>
  273. </table></td>
  274. </tr>
  275. <tr>
  276. <td><table width="100%" border="1" cellspacing="0" cellpadding="0">
  277. <tr>
  278. <td align="center"><p style="font-size:12px;"><strong>№</strong></p></td>
  279. <td align="center"><p style="font-size:12px;"><strong>Товары (услуги, работы)</strong></p></td>
  280. <td align="center"><p style="font-size:12px;"><strong>Кол-во</strong></p></td>
  281. <td align="center"><p style="font-size:12px;"><strong>Ед.</strong></p></td>
  282. <td align="center"><p style="font-size:12px;"><strong>Цена</strong></p></td>
  283. <td align="center"><p style="font-size:12px;"><strong>Сумма</strong></p></td>
  284. </tr>
  285. <?PHP
  286. $dbcart = new ps_DB;
  287. $q  = "SELECT * FROM #__vm_order_item ";
  288. $q .= "WHERE #__vm_order_item.order_id='$order_id' ";
  289. $dbcart->query($q);
  290. $subtotal = 0;
  291. $dbi = new ps_DB;
  292. $dbdel = new ps_DB;
  293. while ($dbcart->next_record()) {
  294. ?>
  295. <tr>
  296. <td align="center"><?PHP $nomer=$nomer+1; echo $nomer;?></td>
  297. <td>
  298. <p style="font-size:12px; line-height:12px; margin:0px; padding:0px; padding-left:2px; padding-right:2px;">
  299. <?PHP $dbcart->p("order_item_name");?></p>
  300. <p style="font-size:10px; line-height:11px; margin:0px; padding:0px; padding-left:10px;">
  301. <?PHP echo $dbcart->f("product_attribute");?></p>
  302. </td>
  303. <td align="right"><p style="font-size:11px; padding-right:5px;">
  304. <?PHP $dbcart->p("product_quantity");?></p></td>
  305. <td align="center">шт.</td>
  306. <td align="right"><p style="font-size:11px; padding-right:5px;">
  307. <?PHP if( $auth["show_price_including_tax"] ){
  308.                                 $item_price = $dbcart->f("product_final_price");
  309.                         }
  310.                         else {
  311.                                 $item_price = $dbcart->f("product_item_price");
  312.                         }
  313.         $cena2=$dbcart->f("product_final_price");
  314.         echo number_format($cena2, 2, '.', ' ');
  315.                    ?></p></td>
  316. <td align="right"><p style="font-size:11px; padding-right:5px;">
  317. <?PHP $total = $dbcart->f("product_quantity") * $item_price; echo number_format($total, 2, '.', ' ');?></p>
  318. </td>
  319. </tr><?PHP } ?>
  320. <?PHP $details = explode( "|", $db->f("ship_method_id"));
  321. $dostavka=$details[3];
  322. if ($dostavka!=0) {
  323. ?>
  324. <tr>
  325. <td align="center"><?PHP $nomer=$nomer+1; echo $nomer;?></td>
  326. <td><p style="font-size:12px; padding-left:2px;">Вариант доставки:<br>
  327. <?PHP echo $details[1];?></p></td>
  328. <td>&nbsp;</td>
  329. <td>&nbsp;</td>
  330. <td align="right"><p style="font-size:12px; padding-right:5px;"><?PHP echo number_format($dostavka, 2, '.', ' ');?></p></td>
  331. <td align="right"><p style="font-size:12px; padding-right:5px;"><?PHP echo number_format($dostavka, 2, '.', ' ');?></p></td>
  332. </tr>
  333. <?PHP }?>
  334. </table></td>
  335. </tr>
  336. <tr>
  337. <td>
  338. <table width="100%" height="50" border="0" cellpadding="0" cellspacing="0">
  339. <tr>
  340. <td width="100">&nbsp;</td>
  341. <td width="360" height="20" align="right" valign="bottom">
  342. <p style="font-size:12px; padding-right:5px;"><strong>Итого:</strong></p></td>
  343. <td width="100" align="right" valign="bottom">
  344. <p style="font-size:12px; padding-right:5px;"><strong><?PHP $total_sum = $db->f("order_total");
  345. echo number_format($total_sum, 2, '.', ' ');?></strong></p>
  346. </td>
  347. </tr>
  348. <tr>
  349. <td>&nbsp;</td>
  350. <td height="20" align="right">
  351. <p style="font-size:12px; padding-right:5px;">В том числе НДС:</p></td>
  352. <td align="right">
  353. <p style="font-size:12px; padding-right:5px;"><?PHP $tax_total = $db->f("order_tax") + $db->f("order_shipping_tax"); echo number_format($tax_total, 2, '.', ' ');?></p></td>
  354. </tr>
  355. <tr>
  356. <td>&nbsp;</td>
  357. <td height="20" align="right">
  358. <p style="font-size:12px; padding-right:5px;">Без налога (НДС):</p></td>
  359. <td align="right">
  360. <p style="font-size:12px; padding-right:5px;">
  361. <?PHP $summa_bez_nalogov=$total_sum-$tax_total;
  362. echo number_format($summa_bez_nalogov, 2, '.', ' ');?></p></td>
  363. </tr>
  364. </table>
  365. </td>
  366. </tr>
  367. <tr>
  368. <td>
  369. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  370. <tr>
  371. <td height="40" style="border-bottom:2px solid #000000;">
  372. <p style="font-size:12px; padding-left:10px;">Всего наименований <strong><?PHP echo $nomer;?></strong>, на сумму <strong><?PHP echo number_format($total_sum, 2, '.', ' ');?> руб.<br>
  373. <?PHP
  374. $m = new money2str();
  375. echo $m->work( $total_sum, true );
  376. ?>
  377. </strong></p>
  378. </td>
  379. </tr>
  380. </table>
  381. </td>
  382. </tr>
  383. <tr>
  384. <td align="center">
  385. <img src="<?PHP echo $url_img; ?>" width="<?PHP echo $width_img; ?>" height="<?PHP echo $height_img; ?>">
  386. </td>
  387. </tr>
  388. </table>
  389. <br>
  390. <input type=submit onclick=Load2() value="Распечатать счет">
2. DeepVarvar - 16 Ноября, 2011 - 19:00:49 - перейти к сообщению
serdr пишет:
on line 296
Номера строк высчитывать самим? Оформите код тегами...
3. serdr - 16 Ноября, 2011 - 19:04:16 - перейти к сообщению
DeepVarvar пишет:
serdr пишет:
on line 296
Номера строк высчитывать самим? Оформите код тегами...

а как автоматом поставить в проге php expert editor номера строк?
(Добавление)
если только так, где смайлики
-------------------------------- ------------------------ сам код
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /*
  3. Модуль оплаты для VirtueMart 1.1.x / Joomla 1.5.x.
  4. Содержит форму счет, стандартного вида, для оплаты между юр. лицами.
  5. Автор модуля: программисты ecomsite
  6. Сайт поддержки http://ecomsite.ru
  7. Управляющие файлы: ps_fsch.php и ps_fsch.cfg.php
  8. Распространяется по лицензии GNU/GPL
  9. */
  10. ?>
  11.  
  12. <?PHP    class num2str
  13. {
  14.     var $nums = array(
  15.         1 => array( 'один', 'одна' ),
  16.         2 => array( 'два', 'две' ),
  17.         3 => 'три',
  18.         4 => 'четыре',
  19.         5 => 'пять',
  20.         6 => 'шесть',
  21.         7 => 'семь',
  22.         8 => 'восемь',
  23.         9 => 'девять',
  24.         10 => 'десять',
  25.         11 => 'одиннадцать',
  26.         12 => 'двенадцать',
  27.         13 => 'тринадцать',
  28.         14 => 'четырнадцать',
  29.         15 => 'пятнадцать',
  30.         16 => 'шестнадцать',
  31.         17 => 'семнадцать',
  32.         18 => 'восемнадцать',
  33.         19 => 'девятнадцать',
  34.         20 => 'двадцать',
  35.         30 => 'тридцать',
  36.         40 => 'сорок',
  37.         50 => 'пятьдесят',
  38.         60 => 'шестьдесят',
  39.         70 => 'семьдесят',
  40.         80 => 'восемьдесят',
  41.         90 => 'девяносто',
  42.         100 => 'сто',
  43.         200 => 'двести',
  44.         300 => 'триста',
  45.         400 => 'четыреста',
  46.         500 => 'пятьсот',
  47.         600 => 'шестьсот',
  48.         700 => 'семьсот',
  49.         800 => 'восемьсот',
  50.         900 => 'девятьсот',
  51.     );
  52.     var $names = array(
  53.         1000 => array( 'тысяча', 'тысячи', 'тысяч', '', 'sem' => 1 ),
  54.         1000000 => array( 'миллион', 'миллиона', 'миллионов', '', 'sem' => 0 ),
  55.         1000000000 => array( 'миллиард', 'миллиарда', 'миллиардов', '', 'sem' => 0 )
  56.     );
  57.     var $out = array();
  58.     function semantic( $num, $words )
  59.     {
  60.         $des = false;
  61.         $num = $num % 100;
  62.         if( $num > 20 )
  63.         {
  64.             $num = $num % 10;
  65.             if( !$num ){
  66.                 $des= true;
  67.             }
  68.         }
  69.         if ( 1 == $num ){
  70.             return $words[0];
  71.         }elseif( $des ){
  72.             return $words[2];
  73.         }elseif( !$num ){
  74.             return $words[3];
  75.         }elseif( $num <= 4  ){
  76.             return $words[1];
  77.         }else{
  78.            return $words[2];
  79.         }
  80.     }
  81.     function small_nums( $num, $sem )
  82.     {
  83.         if( $num < 21 )
  84.         {  
  85.             if( $num <= 2 )
  86.             {
  87.                 $this->out[] =  $this->nums[$num][$sem];
  88.             }else{
  89.                 $this->out[] =  $this->nums[$num];
  90.         }
  91.         }else{
  92.             $this->out[] = $this->nums[$num - ( $num % 10 )];
  93.             if( ( $num % 10 ) <= 2 )
  94.             {
  95.                 $this->out[] = $this->nums[$num % 10][$sem];
  96.             }else{
  97.                 $this->out[] =  $this->nums[$num % 10];
  98.             }
  99.         }
  100.     }
  101.     function work( $num, $all_sem )
  102.     {
  103.         foreach( array( 1000000000, 1000000, 1000 ) as $order )
  104.         {
  105.             $temp = floor( $num / $order );
  106.             if( ( $temp - ( $temp % 100 ) ) > 0 ){
  107.                 $this->out[] = $this->nums[$temp - ( $temp % 100 )];
  108.             }
  109.             $this->small_nums( $temp % 100, $this->names[$order]['sem'] );
  110.             $this->out[] = $this->semantic( $temp, $this->names[$order] );
  111.             $num -= $temp * $order;
  112.         }
  113.         $temp = $num;
  114.         if( ( $temp - ( $temp % 100 ) ) > 0 ){
  115.             $this->out[] = $this->nums[$temp - ( $temp % 100 )];
  116.         }
  117.         $this->small_nums( $temp % 100, $all_sem );
  118.         $temp = implode( ' ', $this->out );
  119.         $this->out = array();
  120.         return $temp;
  121.     }
  122. }
  123. class money2str
  124. {
  125.     var $names = array(
  126.         1 => array( 'рубль', 'рубля', 'рублей', 'рублей', 'sem' => 0 ),
  127.         2 => array( 'копейка', 'копейки', 'копеек', 'копеек', 'sem' => 1 )
  128.     );
  129.     var $out = array();
  130.     function money2str()
  131.     {
  132.         $this->num2str = new num2str();
  133.     }
  134.     function work( $money, $kopnum = false )
  135.     {
  136.         $kop = substr( $money, -2 );
  137.         $rub = substr( $money, 0, -3 );
  138.         if( !$rub )
  139.         {
  140.             $this->out[] = 'ноль';
  141.         }else{
  142.             $this->out[] = $this->num2str->work( $rub, $this->names[1]['sem'] );
  143.         }
  144.         $this->out[] = $this->num2str->semantic( $rub, $this->names[1] );
  145.         if( !$kopnum )
  146.         {
  147.             if( !$kop )
  148.             {
  149.                 $this->out[] = 'ноль';
  150.             }else{
  151.                 $this->out[] = $this->num2str->work( $kop, $this->names[2]['sem'] );
  152.             }
  153.         }else{
  154.             $this->out[] = $kop;
  155.         }
  156.         $this->out[] = $this->num2str->semantic( $kop, $this->names[2] );
  157.         $temp = implode( ' ', $this->out );
  158.         $this->out = array();
  159.         return $temp;
  160.     }
  161. }
  162. ?>
  163. <?PHP
  164. $name=fsch_name;
  165. $KPP=fsch_KPP;
  166. $INN=fsch_INN;
  167. $Rch=fsch_Rch;
  168. $Rch_v=fsch_Rch_v;
  169. $BIK=fsch_BIK;
  170. $Kch=fsch_Kch;
  171. $IND=fsch_IND;
  172. $obl=fsch_obl;
  173. $gor=fsch_gor;
  174. $ul=fsch_ul;
  175. $dom=fsch_dom;
  176. $office=fsch_office;
  177. $tel=fsch_tel;
  178. $fax=fsch_fax;
  179. $url_img=fsch_url;
  180. $width_img=fsch_width;
  181. $height_img=fsch_height;
  182. ?>
  183. <script>
  184. function Load2(){
  185. text = document.getElementById('result2').innerHTML;
  186. printwin = open('', 'printwin', 'width=600,height=800');
  187. printwin.document.open();
  188. printwin.document.writeln('<html><head><title></title></head><body onload=print();close()>');
  189. printwin.document.writeln(text);
  190. printwin.document.writeln('</body></html>');
  191. printwin.document.close();
  192. }
  193. </script>
  194. <table width="560px" border="0" cellspacing="0" cellpadding="0" id=result2>
  195. <tr>
  196. <td><table width="100%" border="1" cellspacing="0" cellpadding="0">
  197. <tr>
  198. <td colspan="2" rowspan="2" valign="top" style="border-bottom:none;">
  199. <p style="font-size:12px; padding:2px;"> <?PHP echo $Rch_v;?></p></td>
  200. <td><p style="font-size:12px; padding:2px;">БИК</p></td>
  201. <td><p style="font-size:12px; padding:2px;"><?PHP echo $BIK;?></p></td>
  202. </tr>
  203. <tr>
  204. <td style="border-bottom:none;"><p style="font-size:12px; padding:2px;">Сч. №</p></td>
  205. <td style="border-bottom:none;"><p style="font-size:12px; padding:2px;"><?PHP echo $Kch;?></p></td>
  206. </tr>
  207. <tr>
  208. <td colspan="2" style="border-top:none;"><p style="font-size:10px; padding:2px;">Банк получателя</p></td>
  209. <td style="border-top:none;">&nbsp;</td>
  210. <td style="border-top:none;">&nbsp;</td>
  211. </tr>
  212. <tr>
  213. <td><p style="font-size:12px; padding:2px;">ИНН <?PHP echo $INN; ?></p></td>
  214. <td><p style="font-size:12px; padding:2px;">КПП <?PHP echo $KPP; ?></p></td>
  215. <td rowspan="3" valign="top"><p style="font-size:12px; padding:2px;">Сч. №</p></td>
  216. <td rowspan="3" valign="top"><p style="font-size:12px; padding:2px;"><?PHP echo $Rch; ?></p></td>
  217. </tr>
  218. <tr>
  219. <td colspan="2" style="border-bottom:none;"><p style="font-size:12px; padding:2px;"><?PHP echo $name; ?></p></td>
  220. </tr>
  221. <tr>
  222. <td colspan="2" style="border-top:none;"><p style="font-size:10px; padding:2px;">Получатель</p></td>
  223. </tr>
  224. </table></td>
  225. </tr>
  226. <tr>
  227. <td>
  228. <table height="40" width="100%" border="0" cellspacing="0" cellpadding="0">
  229. <tr>
  230. <td style="border-bottom:2px solid #000000;"><p style="font-size:16px;"><strong>Счет на оплату № <?PHP printf("%04d", $db->f("order_id")); ?> от <?PHP echo vmFormatDate($db->f("cdate"), "%d.%m.%Y");?>г.</strong></p>
  231. </td>
  232. </tr>
  233. </table>
  234. </td>
  235. </tr>
  236. <tr>
  237. <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  238. <tr>
  239. <td align="center"><p style="font-size:12px;">Поставщик:</p></td>
  240. <td><p style="font-size:12px;"><strong>
  241.               <?PHP if ($INN!="") echo "ИНН $INN,"; ?>
  242.               <?PHP if ($KPP!="") echo "КПП $KPP,"; ?>
  243.               <?PHP if ($name!="") echo "$name,"; ?>
  244.               <?PHP if ($IND!="") echo "$IND,"; ?>
  245.               <?PHP if ($obl!="") echo "$obl,"; ?><br>
  246.               <?PHP if ($gor!="") echo "$gor,"; ?>
  247.               <?PHP if ($ul!="") echo "$ul,"; ?>
  248.               <?PHP if ($dom!="") echo "$dom,"; ?>
  249.               <?PHP if ($office!="") echo "$office,"; ?><br>
  250.               <?PHP if ($tel!="") echo "тел.: $tel"; ?>
  251.               <?PHP if ($fax!="") echo ", факс: $fax"; ?>
  252. </strong></p></td>
  253. </tr>
  254. <tr>
  255. <td width="80" align="center"><p style="font-size:12px;">Покупатель:</p></td>
  256. <td><p style="font-size:12px;"><strong>
  257.               <?PHP $INN_P=$dbbt->f("vm_inn"); if ($INN_P!="") echo "ИНН $INN_P,";?>
  258.               <?PHP $KPP_P=$dbbt->f("vm_kpp"); if ($KPP_P!="") echo "КПП $KPP_P,";?>
  259.               <?PHP $company=$dbbt->f("company"); if ($company!="") echo "$company,";?>
  260.               <?PHP $zip=$dbbt->f("zip"); if ($zip!="") echo "$zip,";?>
  261.               <?PHP $vm_state=$dbbt->f("vm_state"); if ($vm_state!="") echo "$vm_state,";?><br>
  262.               <?PHP $city=$dbbt->f("city"); if ($city!="") echo "$city,";?>
  263.               <?PHP $address_1=$dbbt->f("address_1"); if ($address_1!="") echo "$address_1,";?>
  264.               <?PHP $address_2=$dbbt->f("address_2"); if ($address_2!="") echo "$address_2,";?>
  265.               <?PHP $office_P=$dbbt->f("vm_office"); if ($office_P!="") echo "$office_P,";?>
  266.               <?PHP $phone=$dbbt->f("phone_1"); if ($phone!="") echo "тел.: $phone"; ?>
  267.               <br>Контактное лицо:
  268.               <?PHP echo $dbbt->f("last_name");?>
  269.               <?PHP echo $dbbt->f("first_name");?>
  270.               <?PHP echo $dbbt->f("middle_name");?>
  271. </strong></p>
  272. </td>
  273. </tr>
  274. </table></td>
  275. </tr>
  276. <tr>
  277. <td><table width="100%" border="1" cellspacing="0" cellpadding="0">
  278. <tr>
  279. <td align="center"><p style="font-size:12px;"><strong>№</strong></p></td>
  280. <td align="center"><p style="font-size:12px;"><strong>Товары (услуги, работы)</strong></p></td>
  281. <td align="center"><p style="font-size:12px;"><strong>Кол-во</strong></p></td>
  282. <td align="center"><p style="font-size:12px;"><strong>Ед.</strong></p></td>
  283. <td align="center"><p style="font-size:12px;"><strong>Цена</strong></p></td>
  284. <td align="center"><p style="font-size:12px;"><strong>Сумма</strong></p></td>
  285. </tr>
  286. <?PHP
  287. $dbcart = new ps_DB;
  288. $q  = "SELECT * FROM #__vm_order_item ";
  289. $q .= "WHERE #__vm_order_item.order_id='$order_id' ";
  290. $dbcart->query($q);
  291. $subtotal = 0;
  292. $dbi = new ps_DB;
  293. $dbdel = new ps_DB;
  294. while ($dbcart->next_record()) {
  295. ?>
  296. <tr>
  297. <td align="center"><?PHP $nomer=$nomer+1; echo $nomer;?></td>
  298. <td>
  299. <p style="font-size:12px; line-height:12px; margin:0px; padding:0px; padding-left:2px; padding-right:2px;">
  300.   <?PHP $dbcart->p("order_item_name");?></p>
  301. <p style="font-size:10px; line-height:11px; margin:0px; padding:0px; padding-left:10px;">
  302. <?PHP echo $dbcart->f("product_attribute");?></p>
  303. </td>
  304. <td align="right"><p style="font-size:11px; padding-right:5px;">
  305. <?PHP $dbcart->p("product_quantity");?></p></td>
  306. <td align="center">шт.</td>
  307. <td align="right"><p style="font-size:11px; padding-right:5px;">
  308. <?PHP if( $auth["show_price_including_tax"] ){
  309.                                 $item_price = $dbcart->f("product_final_price");
  310.                         }
  311.                         else {
  312.                                 $item_price = $dbcart->f("product_item_price");
  313.                         }
  314.         $cena2=$dbcart->f("product_final_price");
  315.         echo number_format($cena2, 2, '.', ' ');
  316.                    ?></p></td>
  317. <td align="right"><p style="font-size:11px; padding-right:5px;">
  318. <?PHP $total = $dbcart->f("product_quantity") * $item_price; echo number_format($total, 2, '.', ' ');?></p>
  319. </td>
  320. </tr><?PHP } ?>
  321. <?PHP $details = explode( "|", $db->f("ship_method_id"));
  322. $dostavka=$details[3];
  323. if ($dostavka!=0) {
  324. ?>
  325.   <tr>
  326. <td align="center"><?PHP $nomer=$nomer+1; echo $nomer;?></td>
  327. <td><p style="font-size:12px; padding-left:2px;">Вариант доставки:<br>
  328. <?PHP echo $details[1];?></p></td>
  329. <td>&nbsp;</td>
  330. <td>&nbsp;</td>
  331. <td align="right"><p style="font-size:12px; padding-right:5px;"><?PHP echo number_format($dostavka, 2, '.', ' ');?></p></td>
  332. <td align="right"><p style="font-size:12px; padding-right:5px;"><?PHP echo number_format($dostavka, 2, '.', ' ');?></p></td>
  333. </tr>
  334. <?PHP }?>
  335. </table></td>
  336. </tr>
  337. <tr>
  338. <td>
  339. <table width="100%" height="50" border="0" cellpadding="0" cellspacing="0">
  340. <tr>
  341. <td width="100">&nbsp;</td>
  342. <td width="360" height="20" align="right" valign="bottom">
  343. <p style="font-size:12px; padding-right:5px;"><strong>Итого:</strong></p></td>
  344. <td width="100" align="right" valign="bottom">
  345. <p style="font-size:12px; padding-right:5px;"><strong><?PHP $total_sum = $db->f("order_total");
  346. echo number_format($total_sum, 2, '.', ' ');?></strong></p>
  347. </td>
  348. </tr>
  349. <tr>
  350. <td>&nbsp;</td>
  351. <td height="20" align="right">
  352. <p style="font-size:12px; padding-right:5px;">В том числе НДС:</p></td>
  353. <td align="right">
  354. <p style="font-size:12px; padding-right:5px;"><?PHP $tax_total = $db->f("order_tax") + $db->f("order_shipping_tax"); echo number_format($tax_total, 2, '.', ' ');?></p></td>
  355. </tr>
  356. <tr>
  357. <td>&nbsp;</td>
  358. <td height="20" align="right">
  359. <p style="font-size:12px; padding-right:5px;">Без налога (НДС):</p></td>
  360. <td align="right">
  361. <p style="font-size:12px; padding-right:5px;">
  362. <?PHP $summa_bez_nalogov=$total_sum-$tax_total;
  363. echo number_format($summa_bez_nalogov, 2, '.', ' ');?></p></td>
  364. </tr>
  365. </table>
  366. </td>
  367. </tr>
  368. <tr>
  369. <td>
  370. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  371. <tr>
  372. <td height="40" style="border-bottom:2px solid #000000;">
  373. <p style="font-size:12px; padding-left:10px;">Всего наименований <strong><?PHP echo $nomer;?></strong>, на сумму <strong><?PHP echo number_format($total_sum, 2, '.', ' ');?> руб.<br>
  374. <?PHP
  375. $m = new money2str();
  376. echo $m->work( $total_sum, true );
  377. ?>
  378. </strong></p>
  379. </td>
  380. </tr>
  381. </table>
  382. </td>
  383. </tr>
  384. <tr>
  385. <td align="center">
  386. <img src="<?PHP echo $url_img; ?>" width="<?PHP echo $width_img; ?>" height="<?PHP echo $height_img; ?>">
  387. </td>
  388. </tr>
  389. </table>
  390. <br>
  391. <input type=submit onclick=Load2() value="Распечатать счет">
4. DeepVarvar - 16 Ноября, 2011 - 19:25:44 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo "это форматированый код!!!";
  3. ?>
5. serdr - 16 Ноября, 2011 - 19:31:59 - перейти к сообщению
DeepVarvar пишет:


PHP:
скопировать код в буфер обмена

1.
<?PHP
2.
echo "это форматированый код!!!";
3.
?>


самый верхний нет
6. Данил_123 - 16 Ноября, 2011 - 19:54:42 - перейти к сообщению
[spoiler][/spoiler] бы не помешал
7. serdr - 16 Ноября, 2011 - 19:55:06 - перейти к сообщению
код в файле

 

Powered by ExBB FM 1.0 RC1