RT#35197: Apply changes button in Edit rate plan screen clears the global default
[freeside.git] / httemplate / edit / process / rate_detail.html
1 <& elements/process.html,
2   'table' => 'rate_detail',
3   'popup_reload' => 'Rate changed', #a popup "parent reload" for now
4               #someday change the individual element and go away instead
5   'noerror_callback' => $set_default_detail
6 &>
7 <%init>
8
9 my $conf = new FS::Conf;
10 die "access denied"
11   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
12
13 my $set_default_detail = sub {
14   my ($cgi, $rate_detail) = @_;
15   if (!$rate_detail->dest_regionnum) {
16     # then this is a global default rate
17     my $rate = $rate_detail->rate;
18     if ($rate->default_detailnum) {
19       if ($rate->default_detailnum == $rate_detail->ratedetailnum) {
20         return;
21       } else {
22         # there's somehow an existing default rate. remove it.
23         my $old_default = $rate->default_detail;
24         my $error = $old_default->delete;
25         die "$error (removing old default rate)\n" if $error;
26       }
27     }
28     $rate->set('default_detailnum' => $rate_detail->ratedetailnum);
29     my $error = $rate->replace;
30     die "$error (setting default rate)\n" if $error;
31   }
32 };
33
34 </%init>