MT#63724 reduce contract_cnt limit to 10

select count(1) from (select 1 from Y .. limit X) can have a longer
runtime, depending on order of rows in table Y.

to better limit the runtime, X is reduced from 1000 to 10.

the UI will show now "used by 10+ contracts" instead of
"used by 1000+ contracts".

Change-Id: I028b0569cd5f3325d4bd6bed314517b061e4659b
(cherry picked from commit 82b253973e)
(cherry picked from commit 05897591f7)
mr13.5.1
Rene Krenn 6 months ago
parent 375cf28776
commit 3bd7a960db

@ -47,7 +47,7 @@ sub _profile_resultset_admin {
my $rs = $c->model('DB')->resultset('billing_profiles')->search({
'me.status' => { '!=' => 'terminated' },
},
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::Billing::get_contract_count_stmt(1000) ] , -as => 'contract_cnt' },
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::Billing::get_contract_count_stmt(10) ] , -as => 'contract_cnt' },
{ '' => \[ NGCP::Panel::Utils::Billing::get_contract_exists_stmt() ] , -as => 'contract_exists' },
{ '' => \[ NGCP::Panel::Utils::Billing::get_package_count_stmt() ] , -as => 'package_cnt' }, ],
});
@ -61,7 +61,7 @@ sub _profile_resultset_reseller {
->search_rs({
'me.status' => { '!=' => 'terminated' },
},
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::Billing::get_contract_count_stmt(1000) ] , -as => 'contract_cnt' },
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::Billing::get_contract_count_stmt(10) ] , -as => 'contract_cnt' },
{ '' => \[ NGCP::Panel::Utils::Billing::get_contract_exists_stmt() ] , -as => 'contract_exists' },
{ '' => \[ NGCP::Panel::Utils::Billing::get_package_count_stmt() ] , -as => 'package_cnt' }, ],
});

@ -47,7 +47,7 @@ sub _network_resultset_admin {
})->search_rs({
'me.status' => { '!=' => 'terminated' },
},
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::BillingNetworks::get_contract_count_stmt(1000) ] , -as => 'contract_cnt' },
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::BillingNetworks::get_contract_count_stmt(10) ] , -as => 'contract_cnt' },
{ '' => \[ NGCP::Panel::Utils::BillingNetworks::get_contract_exists_stmt() ] , -as => 'contract_exists' },
{ '' => \[ NGCP::Panel::Utils::BillingNetworks::get_package_count_stmt() ] , -as => 'package_cnt' }, ],
});
@ -65,7 +65,7 @@ sub _network_resultset_reseller {
})->search_rs({
'me.status' => { '!=' => 'terminated' },
},
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::BillingNetworks::get_contract_count_stmt(1000) ] , -as => 'contract_cnt' },
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::BillingNetworks::get_contract_count_stmt(10) ] , -as => 'contract_cnt' },
{ '' => \[ NGCP::Panel::Utils::BillingNetworks::get_contract_exists_stmt() ] , -as => 'contract_exists' },
{ '' => \[ NGCP::Panel::Utils::BillingNetworks::get_package_count_stmt() ] , -as => 'package_cnt' }, ],
});

@ -47,7 +47,7 @@ sub _package_resultset_admin {
{ group_by => 'me.id',
})->search_rs(
undef,
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::ProfilePackages::get_contract_count_stmt(1000) ] , -as => 'contract_cnt' },
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::ProfilePackages::get_contract_count_stmt(10) ] , -as => 'contract_cnt' },
{ '' => \[ NGCP::Panel::Utils::ProfilePackages::get_voucher_count_stmt() ] , -as => 'voucher_cnt' },
],
});
@ -64,7 +64,7 @@ sub _package_resultset_reseller {
{ group_by => 'me.id',
})->search_rs(
undef,
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::ProfilePackages::get_contract_count_stmt(1000) ] , -as => 'contract_cnt' },
{ '+select' => [ { '' => \[ NGCP::Panel::Utils::ProfilePackages::get_contract_count_stmt(10) ] , -as => 'contract_cnt' },
{ '' => \[ NGCP::Panel::Utils::ProfilePackages::get_voucher_count_stmt() ] , -as => 'voucher_cnt' },
],
});

@ -72,7 +72,7 @@ sub _item_rs {
my $item_rs = $c->model('DB')->resultset('billing_networks')->search_rs();
my $search_xtra = {
'+select' => [ { '' => \[ NGCP::Panel::Utils::BillingNetworks::get_contract_count_stmt(1000) ] , -as => 'contract_cnt' },
'+select' => [ { '' => \[ NGCP::Panel::Utils::BillingNetworks::get_contract_count_stmt(10) ] , -as => 'contract_cnt' },
{ '' => \[ NGCP::Panel::Utils::BillingNetworks::get_contract_exists_stmt() ] , -as => 'contract_exists' },
{ '' => \[ NGCP::Panel::Utils::BillingNetworks::get_package_count_stmt() ] , -as => 'package_cnt' }, ],
};

@ -19,7 +19,7 @@ sub _item_rs {
my $item_rs = $c->model('DB')->resultset('billing_profiles');
my $search_xtra = {
'+select' => [ { '' => \[ NGCP::Panel::Utils::Billing::get_contract_count_stmt(1000) ] , -as => 'contract_cnt' },
'+select' => [ { '' => \[ NGCP::Panel::Utils::Billing::get_contract_count_stmt(10) ] , -as => 'contract_cnt' },
{ '' => \[ NGCP::Panel::Utils::Billing::get_contract_exists_stmt() ] , -as => 'contract_exists' },
{ '' => \[ NGCP::Panel::Utils::Billing::get_package_count_stmt() ] , -as => 'package_cnt' }, ],
};

@ -92,7 +92,7 @@ sub _item_rs {
my $item_rs = $c->model('DB')->resultset('profile_packages')->search_rs();
my $search_xtra = {
'+select' => [ { '' => \[ NGCP::Panel::Utils::ProfilePackages::get_contract_count_stmt(1000) ] , -as => 'contract_cnt' },
'+select' => [ { '' => \[ NGCP::Panel::Utils::ProfilePackages::get_contract_count_stmt(10) ] , -as => 'contract_cnt' },
{ '' => \[ NGCP::Panel::Utils::ProfilePackages::get_voucher_count_stmt() ] , -as => 'voucher_cnt' },
],
};

@ -507,7 +507,7 @@ sub get_datatable_cols {
{ name => "prepaid", "search" => 0, "title" => $c->loc("Prepaid"),
custom_renderer => 'function ( data, type, full, opt ) { opt.escapeHtml = false; return \'<input type="checkbox" disabled="disabled"\' + (full.prepaid == 1 ? \' checked="checked"\': \'\') + \'/>\'; }' },
{ name => "contract_cnt", "search" => 0, "title" => $c->loc("Used (contracts)"),
custom_renderer => 'function ( data, type, full, opt ) { if(full.contract_cnt > 1000){return \'1000+\'}return full.contract_cnt; }' },
custom_renderer => 'function ( data, type, full, opt ) { if(full.contract_cnt > 10){return \'10+\'}return full.contract_cnt; }' },
{ name => "package_cnt", "search" => 0, "title" => $c->loc("Used (packages)"), },
);

@ -201,7 +201,7 @@ sub get_datatable_cols {
my $grp_len = 30;
return (
{ name => "contract_cnt", "search" => 0, "title" => $c->loc("Used (contracts)"),
custom_renderer => 'function ( data, type, full, opt ) { if(full.contract_cnt > 1000){return \'1000+\'}return full.contract_cnt; }' },
custom_renderer => 'function ( data, type, full, opt ) { if(full.contract_cnt > 10){return \'10+\'}return full.contract_cnt; }' },
{ name => "package_cnt", "search" => 0, "title" => $c->loc("Used (packages)"), },
{ name => 'blocks_grp', accessor => "blocks_grp", search => 0, title => $c->loc('Network Blocks'), literal_sql =>
"if(length(".$grp_stmt.") > ".$grp_len.", concat(left(".$grp_stmt.", ".$grp_len."), '...'), ".$grp_stmt.")" },

Loading…
Cancel
Save