MT#15441 Don't synchronize cli and primary number if they already differ

Cli can be edited through subscriberpreferences.
In such case it's value should be preserved on primary_number change.

Change-Id: I6b9d4a8d70e6e85dd9e2bf063cf4c047296deea1
changes/01/2801/4
Irina Peshinskaya 10 years ago
parent d0fdbffa08
commit a8c7990b62

@ -548,6 +548,9 @@ sub update_subscriber_numbers {
});
my $prov_subs = $billing_subs->provisioning_voip_subscriber;
my @nums = ();
my $primary_number_old = defined $billing_subs->primary_number ? { $billing_subs->primary_number->get_inflated_columns } : undef;
my $acli_pref;
$acli_pref = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => 'allowed_clis', prov_subscriber => $prov_subs)
@ -564,7 +567,9 @@ sub update_subscriber_numbers {
my $cli_pref = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => 'cli', prov_subscriber => $prov_subs);
if(defined $cli_pref) {
$cli_pref->delete;
if($cli_pref->first && defined $primary_number_old && ( $cli_pref->first->value eq number_as_string($primary_number_old) ) ){
$cli_pref->delete;
}
}
for my $cfset($prov_subs->voip_cf_destination_sets->all) {
for my $cf($cfset->voip_cf_destinations->all) {
@ -625,12 +630,16 @@ sub update_subscriber_numbers {
my $cli_pref = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => 'cli', prov_subscriber => $prov_subs);
if($cli_pref->first) {
$cli_pref->first->update({ value => $primary_number->{cc} . ($primary_number->{ac} // '') . $primary_number->{sn} });
if(defined $primary_number_old && ( number_as_string($primary_number_old) eq $cli_pref->first->value ) ){
$cli_pref->first->update({ value => $primary_number->{cc} . ($primary_number->{ac} // '') . $primary_number->{sn} });
}
} else {
$cli_pref->create({
subscriber_id => $prov_subs->id,
value => $primary_number->{cc} . ($primary_number->{ac} // '') . $primary_number->{sn}
});
if( ! defined $primary_number_old ){
$cli_pref->create({
subscriber_id => $prov_subs->id,
value => $primary_number->{cc} . ($primary_number->{ac} // '') . $primary_number->{sn}
});
}
}
}
@ -1399,6 +1408,13 @@ sub mark_voicemail_read{
$voicemail->update({ dir => $dir });
return;
}
sub number_as_string{
my ($number_row, %params) = @_;
return 'HASH' eq ref $number_row
? $number_row->{cc} . ($number_row->{ac} // '') . $number_row->{sn}
: $number_row->cc . ($number_row->ac // '') . $number_row->sn;
}
1;
=head1 NAME

Loading…
Cancel
Save