MT#20837 handle unique lnp numbers properly

+importing lnp numbers now requires unique numbers,
 it required unique prefix+number before
+ngcp billing.lnp_number records are considered as
 unique per number (before it was unique per
 prefix+number)

Change-Id: I5a6f9ed4235a1ee0edecd58ec3b04ad393839dbb
changes/62/7962/3
Rene Krenn 9 years ago
parent babc1534ed
commit a781396fa3

@ -72,12 +72,16 @@ sub findby_lnpproviderid_number {
my $table = $db->tableidentifier($tablename);
my $stmt = 'SELECT * FROM ' . $table . ' WHERE ' .
$db->columnidentifier('lnp_provider_id') . ' = ?' .
' AND ' . $db->columnidentifier('number') . ' = ?';
my @params = ($lnp_provider_id,$number);
$db->columnidentifier('number') . ' = ?';
my @params = ($number);
if (defined $lnp_provider_id) {
$stmt .= ' AND ' . $db->columnidentifier('lnp_provider_id') . ' = ?';
push(@params,$lnp_provider_id);
}
my $rows = $xa_db->db_get_all_arrayref($stmt,@params);
return buildrecords_fromrows($rows,$load_recursive)->[0];
return buildrecords_fromrows($rows,$load_recursive);
}

@ -63,7 +63,7 @@ my $expected_fieldnames = [
];
# table creation:
my $primarykey_fieldnames = [ 'lrn_code', 'ported_number' ];
my $primarykey_fieldnames = [ 'ported_number' ];
my $indexes = { $tablename . '_delta' => [ 'delta(7)' ]};
#my $fixtable_statements = [];

@ -143,25 +143,27 @@ sub _create_lnp {
# $context->{db}->db_begin();
#_warn($context,'AutoCommit is on') if $context->{db}->{drh}->{AutoCommit};
my $existing_lnp_number = NGCP::BulkProcessor::Dao::Trunk::billing::lnp_numbers::findby_lnpproviderid_number($context->{db},
$context->{lnp_provider}->{id}, $context->{number});
if (defined $existing_lnp_number) {
$context->{lnp_number_id} = $existing_lnp_number->{id};
if ($context->{delta} eq
$NGCP::BulkProcessor::Projects::Migration::IPGallery::Dao::import::Lnp::deleted_delta) {
_info($context,"($context->{rownum}) " . 'lnp ' . $context->{number} . ' is deleted, but lnp_number found');
_delete_lnp_number($context);
} else {
_info($context,"($context->{rownum}) " . 'lnp_number for lnp ' . $context->{number} . ' exists',1);
#_update_lnp_number($context);
}
} else {
my $existing_lnp_numbers = NGCP::BulkProcessor::Dao::Trunk::billing::lnp_numbers::findby_lnpproviderid_number($context->{db},
undef, $context->{number});
if ((scalar @$existing_lnp_numbers) == 0) {
if ($context->{delta} eq
$NGCP::BulkProcessor::Projects::Migration::IPGallery::Dao::import::Lnp::deleted_delta) {
_info($context,"($context->{rownum}) " . 'lnp ' . $context->{number} . ' is deleted, and no lnp_number found');
} else {
_create_lnp_number($context);
_info($context,"($context->{rownum}) " . 'lnp_number ' . $context->{number} . ' created',1);
}
} elsif ((scalar @$existing_lnp_numbers) >= 1) {
_warn($context,"($context->{rownum}) " . 'multiple (' . (scalar @$existing_lnp_numbers) . ') existing lnp\'s ' . $context->{number} . ' found, processing each') if ((scalar @$existing_lnp_numbers) > 1);
foreach my $existing_lnp_number (@$existing_lnp_numbers) {
$context->{lnp_number_id} = $existing_lnp_number->{id};
if ($context->{delta} eq
$NGCP::BulkProcessor::Projects::Migration::IPGallery::Dao::import::Lnp::deleted_delta) {
_info($context,"($context->{rownum}) " . 'lnp ' . $context->{number} . ' is deleted, but lnp_number found');
_delete_lnp_number($context);
} else {
_info($context,"($context->{rownum}) " . 'lnp_number for lnp ' . $context->{number} . ' exists',1);
_update_lnp_number($context);
}
}
}
@ -237,6 +239,7 @@ sub _create_lnp_number {
number => $context->{number},
lnp_provider_id => $context->{lnp_provider}->{id},
);
_info($context,"($context->{rownum}) " . 'lnp_number ' . $context->{number} . ' created',1);
return 1;

@ -39,6 +39,7 @@ sub new {
$self->{tid} = threadid();
$self->{uri} = undef;
$self->{path} = undef;
$self->{netloc} = undef;
$self->{ua} = undef;
@ -67,9 +68,15 @@ sub baseuri {
my $uri = shift;
undef $self->{ua};
undef $self->{uri};
undef $self->{path};
undef $self->{netloc};
if (($self->{netloc}) = ($uri =~ m!^https?://(.*)/?.*$!)) {
if ($uri =~ m!^https?://([^/]+)/?.*$!) {
$self->{netloc} = $1;
$self->{uri} = URI->new($uri);
$self->{path} = $self->{uri}->path();
if (defined $self->{path} and length($self->{path}) > 0) {
$self->{path} .= '/' if $self->{path} !~ m!/$!;
}
$self->{uri}->path_query('');
$self->{uri}->fragment(undef);
restdebug($self,"base URL set to '" . $self->{uri} . "'",getlogger(__PACKAGE__));
@ -178,8 +185,16 @@ sub _get_request_uri {
if (!defined $self->{uri}) {
resterror($self,'base URL not set',getlogger(__PACKAGE__));
}
if (blessed($path_query) and $path_query->isa('URI')) {
$path_query = $path_query->path_query();
if (defined $path_query) {
if (blessed($path_query) and $path_query->isa('URI')) {
$path_query = $path_query->path_query();
}
} else {
$path_query = '';
}
if (defined $self->{path} and length($self->{path}) > 0) {
$path_query =~ s!^/!!;
$path_query = $self->{path} . $path_query;
}
my $uri = $self->{uri}->clone();
$uri->path_query($path_query);

Loading…
Cancel
Save