Как изменить формат номера заказа

#
Как изменить формат номера заказа
Здравствуйте.

По-умолчанию в качестве номера заказа служит его идентификатор в базе (id). А необходимо, чтобы формат номера был вида 09XXX , где 09 - текущий год, а XXX - идентификатор заказа.  Как я понял, за генерацию номера заказа отвечает метод shop::ProcessOrder
Можно ли как-то его модифицировать, чтобы номер заказа соответствовал вышеозначенному формату? Либо как-то изменить код админки магазина, чтобы в полях "номер заказа" содержался не id , а номер согласно шаблону 09XXX (и соотв. в письмах, отправляемых пользователю и куратору).

Заранее спасибо!
ITeka.ru - создание сайтов, дизайн, поддержка, реклама.
Модератор
#
Re: Как изменить формат номера заказа
Ammon,
можно. Во всех нужны обработчиках пишите после
// описание и системная информация, по умолчанию пустая строка
      if (to_str($_SESSION['shop_coupon_text']) != '')
      {
         $order_row['description'] .= "Купон на скидку: ".to_str($_SESSION['shop_coupon_text'])."\n";
      }

      $order_row['shop_order_account_number'] = здесь нужная логика формирования номера заказа;
#
Re: Как изменить формат номера заказа
Уразумел. Спасибо!
ITeka.ru - создание сайтов, дизайн, поддержка, реклама.
Модератор
#
Re: Как изменить формат номера заказа
Ammon,
Пожалуйста.
#
Re: Как изменить формат номера заказа
<?
/* Оплата наличными */
class system_of_pay_handler
{
   /**
    * Метод, запускающий выполнение обработчика
    *
    */
   function Execute()
   {
      /* Обработчик формы оплаты "Оплата при получении" */
      $shop_id = to_int($GLOBALS['shop_id']);

      /* ID платежной системы берем из сессии */
      $system_of_pay_id = to_int($_SESSION['system_of_pay_id']);

      if (class_exists('SiteUsers'))
      {
         /* Получаем id текущего пользователя сайта */
         $SiteUsers = & singleton('SiteUsers');
         $site_users_id = $SiteUsers->GetCurrentSiteUser();
      }
      else
      {
         $site_users_id = false;
      }

      // статус платежа, по умолчанию 0
      $order_row['status_of_pay'] = 0 ;

      // дата платежа, по умолчанию пустая строка
      $order_row['date_of_pay'] = '';

      // описание и системная информация, по умолчанию пустая строка
      $order_row['description'] = '';

      $shop = & singleton('shop');

      /* Оформляем заказ */
      $order_id = $shop->ProcessOrder($shop_id, $site_users_id, $system_of_pay_id, $order_row);

      if ($order_id > 0)
      {
         if (!class_exists('SiteUsers'))
         {
            /* Класс пользователей сайта не существует, дописываем информацию о заказчике
            в поле shop_order_description из текущей сессии */
            if ($order_row)
            {
               /* E-Mail заказчика */
               $user_email = trim(to_str($_SESSION['site_users_email']));

               /* Описание заказчика */
               $description = "Информация о заказчике:\n"
               ."Имя: ".to_str($_SESSION['site_users_name'])."\n"
               ."Фамилия: ".to_str($_SESSION['site_users_surname'])."\n"
               ."Отчество: ".to_str($_SESSION['site_users_patronymic'])."\n"
               ."E-Mail: ".to_str($_SESSION['site_users_email'])."\n"
               ."Телефон: ".to_str($_SESSION['site_users_phone'])."\n"
               ."Факс: ".to_str($_SESSION['site_users_fax'])."\n"
               ."Адрес: ".to_str($_SESSION['site_users_address'])."\n";

               $order_row['description'] = to_str($description);

               /* Обязательно добавляем идентификатор! */
               $order_row['id'] = $order_id;

               // Обновляем данные о заказе, добавляя в описание данные о заказчике
               $shop->InsertOrder($order_row);
            }
         }
         else
         {
            $user_email = false;
         }

         /* Формируем XML */
         $xmlData = '<?xml version="1.0" encoding="'.SITE_CODING.'"?>'."\n";
         $xmlData .= '<document_list>'."\n";

         /* Ссылака на версию для печати */
         $shop_row = $shop->GetShop($shop_id);
         if ($shop_row)
         {
            /* Получаем путь к магазину */
            $Structure = & singleton('Structure');
            $shop_path = "/".$Structure->GetStructurePath($shop_row['structure_id'], 0);
            $shop_path .= "cart/print/$order_id/";
            $xmlData .= "<print_link>".$shop_path."</print_link>";
         }

         $xmlData .= $shop->GetXmlForOrder($order_id, false, true);
         $xmlData .= $shop->GetXmlForItemsOrder($order_id);
         $xmlData .= '</document_list>'."\n";

         $xsl = new xsl();
         echo $xsl->build($xmlData, 'ОплатаПриПолучении');

         $structure = & singleton('Structure');
         $structure_row = $structure->GetStructureItem(to_int($shop_row['structure_id']));

         $lib = new lib();
         $LA = $lib->LoadLibPropertiesValue(to_int($structure_row['lib_id']), to_int($structure_row['structure_id']));

         $date_str = date("d.m.Y H:i:s");

         /* Отправляем письмо заказчику */
         $shop->SendMailAboutOrder($shop_id,
         $order_id,
         $site_users_id,
         to_str($LA['xsl_letter_to_admin']),
         to_str($LA['xsl_letter_to_user']),
         $user_email,
         array('admin-content-type' => 'html',
         'user-content-type' => 'html',
         'admin-subject' => sprintf($GLOBALS['MSG_shops']['shop_order_admin_subject'], $order_id, $shop_row['shop_shops_name'], $date_str),
         'user-subject' => sprintf($GLOBALS['MSG_shops']['shop_order_user_subject'], $order_id, $shop_row['shop_shops_name'], $date_str)));
      }
      else
      {
         switch ($order_id)
         {
            case -1:
               {
                  echo "Ошибка вставки заказа в базу данных. Обратитесь к администратору.";
                  break;
               }
            case -2:
               {
                  echo "Ошибка - не найден магазин. Обратитесь к администратору.";
                  break;
               }
         }
      }
   }

   /**
    * Метод для отображения формы заказа для печати.
    *
    * @param int $order_id идентификатор заказа
    */
   function PrintOrder($order_id)
   {

   }
}
?>


подскажите а как изменить чтобы к нумерации заказов в начале добавить 1, то есть не №26, а №126
Авторизация