VM 1.x Модуль квитанции VirtueMart для Joomla. Округление нулей.

Статус
В этой теме нельзя размещать новые ответы.

Siberex

Мастер
Регистрация
12 Окт 2009
Сообщения
159
Реакции
30
Здравствуйте. Помогите пожалуйста решить проблемку.
Для просмотра ссылки Войди или Зарегистрируйся
Нужно эти числа либо округлить, либо убрать лишние нули.
Вот код
PHP:
<?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
class ps_kvytanciya {
    var $classname = "ps_kvytanciya";
    var $payment_code = "kvyt";
    /**
    * Show all configuration parameters for this payment method
    * @returns boolean False when the Payment method has no configration
    */
    function show_configuration() {
        global $VM_LANG;
        $db = new ps_DB();
        include_once(CLASSPATH ."payment/".$this->classname.".cfg.php");
    ?>
    <table>
        <tr>
            <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_BANK') ?>:</strong></td>
            <td>
                <input type="text" name="CONF_BANK_OTR" class="inputbox" value="<?php echo CONF_BANK_OTR ?>" />
            </td>
            <td></td>
        </tr>
<tr>
            <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_ROZR_PACHUNOK') ?>:</strong></td>
            <td>
                <input type="text" name="CONF_ROZR_PACHUNOK" class="inputbox" value="<?php echo CONF_ROZR_PACHUNOK ?>" />
            </td>
        </tr>
<tr>
            <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_OTRYM') ?>:</strong></td>
            <td>
                <input type="text" name="CONF_OTRYM" class="inputbox" value="<?php echo CONF_OTRYM ?>" />
            </td>
        </tr>
<tr>
            <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_ADRESA') ?>:</strong></td>
            <td>
                <input type="text" name="CONF_ADRESA" class="inputbox" value="<?php echo CONF_ADRESA ?>" />
            </td>
        </tr>
<tr>
            <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_MFO') ?>:</strong></td>
            <td>
                <input type="text" name="CONF_MFO" class="inputbox" value="<?php echo CONF_MFO ?>" />
            </td>
                    </tr>
<tr>
            <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_EDRPOY') ?>:</strong></td>
            <td>
                <input type="text" name="CONF_EDPROU" class="inputbox" value="<?php echo CONF_EDPROU ?>" />
            </td>
        </tr>
<tr>
            <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_PRYZNACHENNYA') ?>:</strong></td>
            <td>
                <input type="text" name="CONF_PRYZNACHENNYA" class="inputbox" value="<?php echo CONF_PRYZNACHENNYA ?>" />
            </td>
        </tr>
              </table>
    <?php
    }
    function has_configuration() {
      // return false if there's no configuration
      return true;
   }
  /**
	* Returns the "is_writeable" status of the configuration file
	* @param void
	* @returns boolean True when the configuration file is writeable, false when not
	*/
   function configfile_writeable() {
      return is_writeable( CLASSPATH."payment/".$this->classname.".cfg.php" );
   }
  /**
	* Returns the "is_readable" status of the configuration file
	* @param void
	* @returns boolean True when the configuration file is writeable, false when not
	*/
   function configfile_readable() {
      return is_readable( CLASSPATH."payment/".$this->classname.".cfg.php" );
   }
  /**
	* Writes the configuration file for this payment method
	* @param array An array of objects
	* @returns boolean True when writing was successful
	*/
   function write_configuration( &$d ) {
      $my_config_array = array(
					"CONF_BANK_OTR" => $d['CONF_BANK_OTR'],
					"CONF_ROZR_PACHUNOK" => $d['CONF_ROZR_PACHUNOK'],
					"CONF_OTRYM" => $d['CONF_OTRYM'],
					"CONF_MFO" => $d['CONF_MFO'],
					"CONF_EDPROU" => $d['CONF_EDPROU'],
					"CONF_PRYZNACHENNYA" => $d['CONF_PRYZNACHENNYA'],
					"CONF_ADRESA" => $d['CONF_ADRESA'],
                                                                             );
      $config = "<?php\n";
      $config .= "defined('_VALID_MOS') or die('Direct Access to this location is not allowed.'); \n\n";
      foreach( $my_config_array as $key => $value ) {
        $config .= "define ('$key', '$value');\n";
      }
      $config .= "?>";
      if ($fp = fopen(CLASSPATH ."payment/".$this->classname.".cfg.php", "w")) {
          fputs($fp, $config, strlen($config));
          fclose ($fp);
          return true;
     }
     else
        return false;
   }
  /**************************************************************************
  ** name: process_payment()
  ** returns: 
  ***************************************************************************/
   function process_payment($order_number, $order_total, &$d) {
        return true;
    }
}
Как и где поставить функцию округления?
Или ели вопрос в базах, то в какой таблице сделать изменение?
Спасибо заранее.
 
Не сочтите за флуд... Поделитесь данной квитанцией - нужна именно для Украины

В коде вроде как ничего нет для вывода этих нулей - вы уверены, что в настройках вирта у вас правильное значение символов?

Гляньте "Информация о магазине" -> "Стиль отображения валюты" -> "Количество разрядов"
 
Не сочтите за флуд... Поделитесь данной квитанцией - нужна именно для Украины
В коде вроде как ничего нет для вывода этих нулей - вы уверены, что в настройках вирта у вас правильное значение символов?
Точно не помню где брал. Почитайте тут Для просмотра ссылки Войди или Зарегистрируйся
Кстати вам тоже придется решать эту проблему.
 
Так, я не уверен, но может и сработает (у меня этой квитанции пока нет)

Лезем в базу магазина через phpmyadmin и ищем поле jos_vm_product_price. Теперь редактируем его:
там есть поле "Длина/значения" - у меня это значение - 12,5
Вот эта "5" и есть вроде как кол-во знаков после запятой.

Попробуйте, может и выйдет
 
Так, я не уверен, но может и сработает
Лезем в базу магазина через phpmyadmin и ищем поле jos_vm_product_price. Теперь редактируем его:
там есть поле "Длина/значения" - у меня это значение - 12,5
Вот эта "5" и есть вроде как кол-во знаков после запятой.
Попробуйте, может и выйдет
Да, значение есть, меняю. Если в этой таблице посмотреть обзор поля то цены действительно изменились с *.00000 на *.00 но в квитанции изменений не наблюдаю. И, кстати, в стиле отображения валюты в настройках стоит "2".
 
Тогда ждём - может кто-то подскажет верное решение.
А пока я поставлю квитанцию себе и может чего накопаю
 
самый простой вариант изменить вывод чисел в шаблоне.
типа так
PHP:
round($price, 2);
 
Тогда ждём - может кто-то подскажет верное решение.
А пока я поставлю квитанцию себе и может чего накопаю


Я решил это другим путем.
в настройках модуля оплаты там где
Код:
<?php printf($db->f(order_total))?>
нужно заменить на
Код:
<?php $total_sum = $db->f("order_total");
echo number_format($total_sum, 2, '.', ' ');?>
 
можно вот так еще
Код:
<?php printf('%.2f', $price); ?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху