kivitendo/SL/DB/Order.pm @ 38aac441
82515b2d | Sven Schöling | package SL::DB::Order;
|
||
05c6840d | Moritz Bunkus | use utf8;
|
||
82515b2d | Sven Schöling | use strict;
|
||
use SL::RecordLinks;
|
||||
use SL::DB::MetaSetup::Order;
|
||||
use SL::DB::Manager::Order;
|
||||
use SL::DB::Invoice;
|
||||
__PACKAGE__->meta->add_relationship(
|
||||
orderitems => {
|
||||
type => 'one to many',
|
||||
class => 'SL::DB::OrderItem',
|
||||
column_map => { id => 'trans_id' },
|
||||
manager_args => {
|
||||
with_objects => [ 'part' ]
|
||||
}
|
||||
}
|
||||
);
|
||||
__PACKAGE__->meta->initialize;
|
||||
# methods
|
||||
sub type {
|
||||
my $self = shift;
|
||||
return 'sales_order' if $self->customer_id && ! $self->quotation;
|
||||
return 'purchase_order' if $self->vendor_id && ! $self->quotation;
|
||||
return 'sales_quotation' if $self->customer_id && $self->quotation;
|
||||
return 'request_quotation' if $self->vendor_id && $self->quotation;
|
||||
return;
|
||||
}
|
||||
sub is_type {
|
||||
return shift->type eq shift;
|
||||
}
|
||||
sub invoices {
|
||||
my $self = shift;
|
||||
my %params = @_;
|
||||
if ($self->quotation) {
|
||||
return [];
|
||||
} else {
|
||||
return SL::DB::Manager::Invoice->get_all(
|
||||
query => [
|
||||
ordnumber => $self->ordnumber,
|
||||
@{ $params{query} || [] },
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
sub abschlag_invoices {
|
||||
return shift()->invoices(query => [ abschlag => 1 ]);
|
||||
}
|
||||
sub end_invoice {
|
||||
return shift()->invoices(query => [ abschlag => 0 ]);
|
||||
}
|
||||
1;
|
||||
__END__
|
||||
=head1 NAME
|
||||
SL::DB::Order - Order Datenbank Objekt.
|
||||
=head1 FUNCTIONS
|
||||
=head2 type
|
||||
Returns one of the following string types:
|
||||
=over 4
|
||||
=item saes_order
|
||||
=item purchase_order
|
||||
=item sales_quotation
|
||||
=item request_quotation
|
||||
=back
|
||||
=head2 is_type TYPE
|
||||
Rreturns true if the order is of the given type.
|
||||
=head1 BUGS
|
||||
Nothing here yet.
|
||||
=head1 AUTHOR
|
||||
05c6840d | Moritz Bunkus | Sven Schöling <s.schoeling@linet-services.de>
|
||
82515b2d | Sven Schöling | |||
=cut
|