#!/usr/bin/perl

#Vadim::Данный скрипт преднозначен для генерации описания отеля в JSON

BEGIN	{
   unshift(@INC,"/var/www/turizm.ru/COMMON/Lib","/var/www/tzm.ru/cgi-bin");
}

use	strict;
use	CGI;
use DBI;
use Data::Dumper;
use BIM::DbConfig;
use TZM::Cache qw(hotels_list_cache);
use JSON::XS;
use Encode;
use CGI::Carp qw/fatalsToBrowser/;

use constant DEBUG => 0;
use constant DEFAULT_TEXT => 'Отель ${PAGE_HOTELNAME} ${PAGE_HOTELCATEGORY} предлагается различными туристическими операторами, специализацией которых является ${PAGE_COUNTRYNAME}. Вы легко можете найти подходящие туры в ${PAGE_HOTELNAME_RUS}, <noindex>для этого рекомендуем воспользоваться <a href="http://hotels.1001tur.ru/${COUNTRY_TRANSLIT}/${CURORT_TRANSLIT}/${HOTEL_ID}/tours">предложениями туров</a></noindex>. Обратите внимание, цены на ${HOTEL_NAME} ${PAGE_HOTELCATEGORY} могут заметно отличаться даже в краткий промежуток времени – это зависит от чартерного графика, локальной наполняемости ${PAGE_HOTELNAME_RUS} ${PAGE_HOTELCATEGORY} и общего спроса на туры по направлению ${PAGE_COUNTRYNAME} <noindex>в конкретные даты. Если по какой-то причине предлагаемые варианты вас не устраивают, </noindex>${PAGE_HOTELNAME} &mdash; не единственное предложение города ${PAGE_CITYNAME}, <noindex>вполне возможно, что другие варианты окажутся даже лучше.</noindex>';

my $cgi = CGI::new();

my $id = int $cgi->param("id");
my $json = int $cgi->param("json");

print "Content-Type: text/javascript; charset=utf-8\n\n";

my $cache = hotels_list_cache();
my $key=qq~desc$id~;
my $js = $cache->get($key);
unless ($js && !DEBUG){
	 my $dbcfg=$BIM::DbConfig::DB->{TURIZM}->{MASTER};
	 my $DBH=DBI->connect("DBI:mysql:database=$dbcfg->{database};host=$dbcfg->{host};port=$dbcfg->{port}",$dbcfg->{login},$dbcfg->{passwd},{PrintError=>0});
	 my $SQL = qq~SELECT h.descr,h.name,h.name_rus,h.category,ac.CountryName,cur.name cityname, ac.CountryCode, cur.name_translit as cur_translit
	 	from hotelsCommon h,allCountry ac,hotelsCity cur where h.id=? and cur.country_id=ac.countryId and cur.id=h.city_id~;
	 my $STH = $DBH->prepare($SQL);
	 $STH->execute($id) or die $DBH->errstr;
	 if (my $row=$STH->fetchrow_hashref){
	 	 $js=$row->{descr};
		 unless ($js){
		 		$js=DEFAULT_TEXT;
		 		$js=~s/\$\{PAGE_HOTELNAME_RUS\}/$row->{name_rus}/g;
		 		$js=~s/\$\{(PAGE_HOTELNAME|HOTEL_NAME)\}/$row->{name}/g;
		 		$js=~s/\$\{PAGE_COUNTRYNAME\}/$row->{CountryName}/g;
		 		$js=~s/\$\{PAGE_HOTELCATEGORY\}/$row->{category}/g;
		 		$js=~s/\$\{PAGE_CITYNAME\}/$row->{cityname}/g;
				$js=~s/\$\{COUNTRY_TRANSLIT\}/$row->{CountryCode}/g;
				$js=~s/\$\{CURORT_TRANSLIT\}/$row->{cur_translit}/g;
		 }
		 Encode::from_to($js,'cp1251','utf8');
		 $cache->set($key, $js, '86400') unless DEBUG;
	 }
	 $STH->finish;
   $DBH->disconnect;
}
print $json ? JSON::XS->new->latin1->encode( { text => $js } ) : $js;

1;
