e3b994c79b48375bb2d4b7284668032da651adc6
[kivitendo-erp.git] / SL / DB / Vendor.pm
1 package SL::DB::Vendor;
2
3 use strict;
4
5 use SL::DB::MetaSetup::Vendor;
6 use SL::DB::Manager::Vendor;
7 use SL::DB::Helper::TransNumberGenerator;
8 use SL::DB::Helper::CustomVariables (
9   module      => 'CT',
10   cvars_alias => 1,
11 );
12
13 use SL::DB::VC;
14
15 __PACKAGE__->meta->add_relationship(
16   shipto => {
17     type         => 'one to many',
18     class        => 'SL::DB::Shipto',
19     column_map   => { id      => 'trans_id' },
20     manager_args => { sort_by => 'lower(shipto.shiptoname)' },
21     query_args   => [ module  => 'CT' ],
22   },
23   contacts => {
24     type         => 'one to many',
25     class        => 'SL::DB::Contact',
26     column_map   => { id      => 'cp_cv_id' },
27     manager_args => { sort_by => 'lower(contacts.cp_name)' },
28   },
29 );
30
31 __PACKAGE__->meta->initialize;
32
33 __PACKAGE__->before_save('_before_save_set_vendornumber');
34
35 sub _before_save_set_vendornumber {
36   my ($self) = @_;
37
38   $self->create_trans_number if !defined $self->vendornumber || $self->vendornumber eq '';
39   return 1;
40 }
41
42 sub displayable_name {
43   my $self = shift;
44
45   return join ' ', grep $_, $self->vendornumber, $self->name;
46 }
47
48 sub is_customer { 0 };
49 sub is_vendor   { 1 };
50 sub payment_terms { goto &payment }
51
52 1;