X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FDB%2FOrder.pm;h=194431dcd31fea66da7143f9216daf49830fc072;hb=1168e9c997382048dd721eb94a5e021ac9145432;hp=b23e1da82cfdc22a8845aedb37f782e6928af008;hpb=8b7b7b3f6252786b38bb6c9357fc00a08750b8db;p=kivitendo-erp.git diff --git a/SL/DB/Order.pm b/SL/DB/Order.pm index b23e1da82..194431dcd 100644 --- a/SL/DB/Order.pm +++ b/SL/DB/Order.pm @@ -9,7 +9,6 @@ use List::Util qw(max); use SL::DB::MetaSetup::Order; use SL::DB::Manager::Order; -use SL::DB::Invoice; use SL::DB::Helper::FlattenToForm; use SL::DB::Helper::LinkedRecords; use SL::DB::Helper::PriceTaxCalculator; @@ -23,7 +22,7 @@ __PACKAGE__->meta->add_relationship( class => 'SL::DB::OrderItem', column_map => { id => 'trans_id' }, manager_args => { - with_objects => [ 'parts' ] + with_objects => [ 'part' ] } }, periodic_invoices_config => { @@ -35,10 +34,32 @@ __PACKAGE__->meta->add_relationship( __PACKAGE__->meta->initialize; +__PACKAGE__->before_save('_before_save_set_ord_quo_number'); + +# hooks + +sub _before_save_set_ord_quo_number { + my ($self) = @_; + + # ordnumber is 'NOT NULL'. Therefore make sure it's always set to at + # least an empty string, even if we're saving a quotation. + $self->ordnumber('') if !$self->ordnumber; + + my $field = $self->quotation ? 'quonumber' : 'ordnumber'; + $self->create_trans_number if !$self->$field; + + return 1; +} + # methods -sub items { goto &orderitems; } -sub payment_terms { goto &payment; } +sub items { goto &orderitems; } + +sub items_sorted { + my ($self) = @_; + + return [ sort {$a->id <=> $b->id } @{ $self->items } ]; +} sub type { my $self = shift; @@ -69,7 +90,7 @@ sub displayable_type { sub is_sales { croak 'not an accessor' if @_ > 1; - return shift->customer_id; + return !!shift->customer_id; } sub invoices { @@ -79,6 +100,7 @@ sub invoices { if ($self->quotation) { return []; } else { + require SL::DB::Invoice; return SL::DB::Manager::Invoice->get_all( query => [ ordnumber => $self->ordnumber, @@ -133,6 +155,10 @@ sub number { return $self->${ \ $number_method{$self->type} }(@_); } +sub date { + goto &transdate; +} + 1; __END__