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 => {
class => 'SL::DB::PeriodicInvoicesConfig',
column_map => { id => 'oe_id' },
},
+ custom_shipto => {
+ type => 'one to one',
+ class => 'SL::DB::Shipto',
+ column_map => { id => 'trans_id' },
+ query_args => [ module => 'OE' ],
+ },
);
__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 type {
my $self = shift;
}
sub convert_to_delivery_order {
- my ($self, %params) = @_;
+ my ($self, @args) = @_;
my ($delivery_order, $custom_shipto);
if (!$self->db->with_transaction(sub {
require SL::DB::DeliveryOrder;
- ($delivery_order, $custom_shipto) = SL::DB::DeliveryOrder->new_from($self, %params);
+ ($delivery_order, $custom_shipto) = SL::DB::DeliveryOrder->new_from($self, @args);
$delivery_order->save;
$custom_shipto->save if $custom_shipto;
$self->link_to_record($delivery_order);
return $self->${ \ $number_method{$self->type} }(@_);
}
+sub customervendor {
+ $_[0]->is_sales ? $_[0]->customer : $_[0]->vendor;
+}
+
sub date {
goto &transdate;
}