X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/4fd22b569d4436293e0a9d364d7356b5bfc503e5..e14cb525c640cb15bb6b2dfb62ccebbe78cb45cd:/SL/DB/Contact.pm?ds=inline diff --git a/SL/DB/Contact.pm b/SL/DB/Contact.pm index 69d666fec..565566a19 100644 --- a/SL/DB/Contact.pm +++ b/SL/DB/Contact.pm @@ -6,8 +6,48 @@ package SL::DB::Contact; use strict; use SL::DB::MetaSetup::Contact; +use SL::DB::Helper::CustomVariables ( + module => 'Contacts', + cvars_alias => 1, +); # Creates get_all, get_all_count, get_all_iterator, delete_all and update_all. __PACKAGE__->meta->make_manager_class; +__PACKAGE__->meta->initialize; + +sub used { + my ($self) = @_; + + return unless $self->cp_id; + + require SL::DB::Order; + require SL::DB::Invoice; + require SL::DB::PurchaseInvoice; + require SL::DB::DeliveryOrder; + + return SL::DB::Manager::Order->get_all_count(query => [ cp_id => $self->cp_id ]) + + SL::DB::Manager::Invoice->get_all_count(query => [ cp_id => $self->cp_id ]) + + SL::DB::Manager::PurchaseInvoice->get_all_count(query => [ cp_id => $self->cp_id ]) + + SL::DB::Manager::DeliveryOrder->get_all_count(query => [ cp_id => $self->cp_id ]); +} + +sub detach { + $_[0]->cp_cv_id(undef); + $_[0]; +} + +sub full_name { + my ($self) = @_; + die 'not an accessor' if @_ > 1; + join ', ', grep $_, $self->cp_name, $self->cp_givenname; +} + +sub full_name_dep { + my ($self) = @_; + die 'not an accessor' if @_ > 1; + $self->full_name + . join '', map { " ($_)" } grep $_, $self->cp_abteilung; +} + 1;