use SL::DB::MetaSetup::Order;
use SL::DB::Manager::Order;
+use SL::DB::Helper::AttrHTML;
+use SL::DB::Helper::AttrSorted;
use SL::DB::Helper::FlattenToForm;
use SL::DB::Helper::LinkedRecords;
use SL::DB::Helper::PriceTaxCalculator;
use SL::DB::Helper::PriceUpdater;
use SL::DB::Helper::TransNumberGenerator;
use SL::RecordLinks;
+use Rose::DB::Object::Helpers qw(as_tree);
__PACKAGE__->meta->add_relationship(
orderitems => {
__PACKAGE__->meta->initialize;
+__PACKAGE__->attr_html('notes');
+__PACKAGE__->attr_sorted('items');
+
__PACKAGE__->before_save('_before_save_set_ord_quo_number');
# hooks
# methods
sub items { goto &orderitems; }
-
-sub items_sorted {
- my ($self) = @_;
-
- return [ sort {$a->id <=> $b->id } @{ $self->items } ];
-}
+sub add_items { goto &add_orderitems; }
+sub record_number { goto &number; }
sub type {
my $self = shift;
die 'invalid type';
}
+sub displayable_name {
+ join ' ', grep $_, map $_[0]->$_, qw(displayable_type record_number);
+};
sub is_sales {
croak 'not an accessor' if @_ > 1;
return $self->${ \ $number_method{$self->type} }(@_);
}
+sub customervendor {
+ $_[0]->is_sales ? $_[0]->customer : $_[0]->vendor;
+}
+
sub date {
goto &transdate;
}