+sub action_delete_additional_billing_address {
+ my ($self) = @_;
+
+ my $db = $self->{additional_billing_address}->db;
+
+ if ( !$self->{additional_billing_address}->id ) {
+ SL::Helper::Flash::flash('error', $::locale->text('No address selected to delete'));
+ } else {
+ $db->with_transaction(sub {
+ if ( $self->{additional_billing_address}->used ) {
+ $self->{additional_billing_address}->detach;
+ $self->{additional_billing_address}->save(cascade => 1);
+ SL::Helper::Flash::flash('info', $::locale->text('Address is in use and was flagged invalid.'));
+ } else {
+ $self->{additional_billing_address}->delete(cascade => 1);
+ SL::Helper::Flash::flash('info', $::locale->text('Address deleted.'));
+ }
+
+ 1;
+ }) || die($db->error);
+
+ $self->{additional_billing_address} = SL::DB::AdditionalBillingAddress->new;
+ }
+
+ $self->action_edit;
+}