kivitendo/SL/DB/AdditionalBillingAddress.pm @ 7b1da9c3
b5b366c9 | Moritz Bunkus | package SL::DB::AdditionalBillingAddress;
|
||
use strict;
|
||||
use SL::DB::MetaSetup::AdditionalBillingAddress;
|
||||
use SL::DB::Manager::AdditionalBillingAddress;
|
||||
__PACKAGE__->meta->initialize;
|
||||
59274d46 | Moritz Bunkus | __PACKAGE__->after_save('_after_save_ensure_only_one_marked_as_default_per_customer');
|
||
sub _after_save_ensure_only_one_marked_as_default_per_customer {
|
||||
my ($self) = @_;
|
||||
if ($self->id && $self->customer_id && $self->default_address) {
|
||||
SL::DB::Manager::AdditionalBillingAddress->update_all(
|
||||
set => { default_address => 0 },
|
||||
where => [
|
||||
customer_id => $self->customer_id,
|
||||
'!id' => $self->id,
|
||||
],
|
||||
);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
b5b366c9 | Moritz Bunkus | sub displayable_id {
|
||
my $self = shift;
|
||||
my $text = join('; ', grep { $_ } (map({ $self->$_ } qw(name street)),
|
||||
join(' ', grep { $_ }
|
||||
map { $self->$_ }
|
||||
qw(zipcode city))));
|
||||
return $text;
|
||||
}
|
||||
sub used {
|
||||
my ($self) = @_;
|
||||
return unless $self->id;
|
||||
require SL::DB::Order;
|
||||
require SL::DB::Invoice;
|
||||
require SL::DB::DeliveryOrder;
|
||||
my %args = (query => [ billing_address_id => $self->id ]);
|
||||
return SL::DB::Manager::Invoice->get_all_count(%args)
|
||||
|| SL::DB::Manager::Order->get_all_count(%args)
|
||||
|| SL::DB::Manager::DeliveryOrder->get_all_count(%args);
|
||||
}
|
||||
sub detach {
|
||||
$_[0]->customer_id(undef);
|
||||
return $_[0];
|
||||
}
|
||||
1;
|