FIAS-SQL
view release on metacpan or search on metacpan
lib/FIAS/SQL.pm view on Meta::CPAN
elsif ( $type eq 'N' ) {
$cell = $record->{ $name } // 0;
}
push @sqlcommand, $cell;
}
# Склеиваем даннÑе запÑÑÑми Ð´Ð»Ñ Ð¸Ð½ÑÑÑÑа
return join( ',', @sqlcommand );
}
sub _get_formatted_date {
my ( $date ) = @_;
$date = sprintf( '%08d', $date ) if ( length($date) < 8 );
$date =~ s/(\d{4})(\d{2})(\d{2})/\'$1-$2-$3\'/;
return $date;
}
sub _get_quoted_text {
my ( $text ) = @_;
# ÐкÑаниÑÑем
$text =~ s/\\/\\\\/g;
$text =~ s/\'/\\\'/g;
# ÐекодиÑÑем
$text = decode( 'cp866', $text );
return $text;
}
1;
__END__
=pod
=encoding utf8
=head1 DESCRIPTION ÐодÑÐ»Ñ Ð´Ð»Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñной ÑабоÑÑ Ñ Ð´Ð°Ð½Ð½Ñми из Ð±Ð°Ð·Ñ Ð¤ÐÐC https://fias.nalog.ru/FiasInfo.aspx
=head1 NAME
FIAS::SQL
=head1 SYNOPSIS
=head1 NAME
FIAS::SQL - ÐодÑÐ»Ñ Ð´Ð»Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñной ÑабоÑÑ Ñ Ð´Ð°Ð½Ð½Ñми из Ð±Ð°Ð·Ñ Ð¤ÐÐC https://fias.nalog.ru/FiasInfo.aspx
=head1 VERSION
version 0.08
# Создание обÑекÑа, подклÑÑение к базе
my $fias = FIAS::SQL->new(
db_connection => {
dsn => 'DBI:mysql:database=fias;host=localhost;port=3306';',
login => 'user',
password => 'pass',
},
# ÐпÑионалÑнÑе паÑамеÑÑÑ
additional_connection_params => {
# вÑÑÑавлÑем Ñлаг UTF-8 Ð´Ð»Ñ Ð½Ð¾ÑмалÑной ÑабоÑÑ Ñ unicode( опÑионалÑно)
mysql_enable_utf8 => 1,
}
);
# авÑомаÑиÑеÑкое ÑкаÑивание и ÑаÑпаковка пока не ÑеализованÑ
# ÑÐ°Ð¹Ð»Ñ Ð±ÑаÑÑ Ð·Ð´ÐµÑÑ https://fias.nalog.ru/Updates.aspx ( ÐÐ¾Ð»Ð½Ð°Ñ ÐРФÐÐС, DBF )
# ÐагÑÑзка Ð±Ð°Ð·Ñ Ð¸Ð· ÑекÑÑей диÑекÑоÑии
$fias->load_files( '.' );
# ÐолÑÑение вÑеÑ
запиÑей пеÑвого ÑÑовнÑ( Ñегионов )
my $regions = $fias->get_address_objects( aolevel=>'region' );
# ÐолÑÑение вÑеÑ
ÑÑбÑекÑов Ñегиона
my $under_region = $fias->get_address_objects( parentguid => 'ee594d5e-30a9-40dc-b9f2-0add1be44ba1' );
# ÐолÑÑение вÑеÑ
ÑÑÑоений наÑ
одÑÑиÑ
ÑÑ Ð½Ð° адÑеÑном обÑекÑе Ñ aoguid '00001be9-7886-4c7b-bcfe-74bdd601b81a'
my $houses = $fias->get_houses_for_address_objects( '00001be9-7886-4c7b-bcfe-74bdd601b81a' );
# ÐолÑÑение вÑеÑ
помеÑений наÑ
одÑÑиÑ
ÑÑ Ð² ÑÑÑоении Ñ houseid '000012ba-2754-425c-ba4a-4c35d0771045'
my $rooms = $fias->get_rooms_of_address_objects( '000012ba-2754-425c-ba4a-4c35d0771045' );
=head2 меÑÐ¾Ð´Ñ Ð¼Ð¾Ð´ÑлÑ
=over
=item B<new>
Создание обÑекÑа
%params
db_connection -- паÑамеÑÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ðº базе
dsn -- DBI Data Source Name
login -- логин Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº базе
password -- паÑÐ¾Ð»Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº базе
# ÐпÑионалÑно
additional_connection_params {
# Ñлаг Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº MySQL базе( опÑионалÑно )
mysql_enable_utf8 => 1
}
=item B<load_files>
ÐеÑод Ð´Ð»Ñ Ð·Ð°Ð³ÑÑзки dbf Ñайлов в базÑ
$directory -- папка Ñ DBF Ñайлами
$update -- Ñлаг Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ
=item B<get_address_objects>
ÐолÑÑение адÑеÑнÑÑ
обÑекÑов по ÑÑÐ¾Ð²Ð½Ñ Ð¸ ÑодиÑелÑ
%params
parentguid -- id ÑодиÑелÑÑкого обÑекÑа
aolevel -- ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¿Ð¾Ð»ÑÑаемÑÑ
обÑекÑов
УÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑа Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ ÑолÑко нижепеÑеÑиÑленнÑе знаÑениÑ
ÑооÑвеÑÑÐ²Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñ ÑÑÑоками и ÑиÑлами ÑÐºÐ°Ð·Ð°Ð½Ñ Ð² Ñ
еÑе $LEVELS
region(1) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ñегиона
district(3) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ñайона
settlement(35) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ð³Ð¾ÑодÑкиÑ
и ÑелÑÑкиÑ
поÑелений
town(4) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ð³Ð¾Ñода
inhabitet_locality(6) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ð½Ð°Ñеленного пÑнкÑа
planning_structure(65) â планиÑовоÑÐ½Ð°Ñ ÑÑÑÑкÑÑÑа
street(7) â ÑÑÐ¾Ð²ÐµÐ½Ñ ÑлиÑÑ
stead(75) â земелÑнÑй ÑÑаÑÑок
structure(8) â зданиÑ, ÑооÑÑжениÑ, обÑекÑа незавеÑÑенного ÑÑÑоиÑелÑÑÑва
premises(9) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¿Ð¾Ð¼ÐµÑÐµÐ½Ð¸Ñ Ð² пÑеделаÑ
зданиÑ, ÑооÑÑжениÑ
ФÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð¼Ð°ÑÑив из hashrefs кваÑÑÐ¸Ñ Ð² ÑоÑмаÑе
{
'aolevel' => '1',
'shortname' => 'обл',
'offname' => 'ÐÑÑнÑкаÑ',
'aoguid' => 'f5807226-8be0-4ea8-91fc-39d053aec1e2'
}
aoguid -- ÐлобалÑнÑй ÑникалÑнÑй иденÑиÑикаÑÐ¾Ñ Ð°Ð´ÑеÑного обÑекÑа
aolevel -- УÑÐ¾Ð²ÐµÐ½Ñ Ð°Ð´ÑеÑного обÑекÑа
offname -- ÐÑиÑиалÑное наименование
shortname -- ÐÑаÑкое наименование Ñипа обÑекÑа
=item B<get_address_objects_guids_only>
ÐолÑÑение адÑеÑнÑÑ
обÑекÑов по ÑÑÐ¾Ð²Ð½Ñ Ð¸ ÑодиÑелÑ, возвÑаÑаÑÑÑÑ ÑолÑко ÑникалÑнÑе id обÑекÑа
%params
parentguid -- id ÑодиÑелÑÑкого обÑекÑа
aolevel -- ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¿Ð¾Ð»ÑÑаемÑÑ
обÑекÑов
УÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑа Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ ÑолÑко нижепеÑеÑиÑленнÑе знаÑениÑ
ÑооÑвеÑÑÑÐ²Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñ ÑÑÑоками и ÑиÑлами ÑÐºÐ°Ð·Ð°Ð½Ñ Ð² Ñ
еÑе $LEVELS
region(1) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ñегиона
district(3) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ñайона
settlement(35) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ð³Ð¾ÑодÑкиÑ
и ÑелÑÑкиÑ
поÑелений
town(4) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ð³Ð¾Ñода
inhabitet_locality(6) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ð½Ð°Ñеленного пÑнкÑа
planning_structure(65) â планиÑовоÑÐ½Ð°Ñ ÑÑÑÑкÑÑÑа
street(7) â ÑÑÐ¾Ð²ÐµÐ½Ñ ÑлиÑÑ
stead(75) â земелÑнÑй ÑÑаÑÑок
structure(8) â зданиÑ, ÑооÑÑжениÑ, обÑекÑа незавеÑÑенного ÑÑÑоиÑелÑÑÑва
premises(9) â ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¿Ð¾Ð¼ÐµÑÐµÐ½Ð¸Ñ Ð² пÑеделаÑ
зданиÑ, ÑооÑÑжениÑ
ФÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ arrayref из aoguids
( run in 0.614 second using v1.01-cache-2.11-cpan-d7f47b0818f )