projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Beim Erzeugen einer Rechnung für Mahngebühren taxzone_id des Kunden eintragen.
[kivitendo-erp.git]
/
SL
/
DB
/
DeliveryOrder.pm
diff --git
a/SL/DB/DeliveryOrder.pm
b/SL/DB/DeliveryOrder.pm
index
75eab64
..
b530db7
100644
(file)
--- a/
SL/DB/DeliveryOrder.pm
+++ b/
SL/DB/DeliveryOrder.pm
@@
-8,6
+8,7
@@
use Rose::DB::Object::Helpers ();
use SL::DB::MetaSetup::DeliveryOrder;
use SL::DB::Manager::DeliveryOrder;
use SL::DB::MetaSetup::DeliveryOrder;
use SL::DB::Manager::DeliveryOrder;
+use SL::DB::Helper::AttrHTML;
use SL::DB::Helper::FlattenToForm;
use SL::DB::Helper::LinkedRecords;
use SL::DB::Helper::TransNumberGenerator;
use SL::DB::Helper::FlattenToForm;
use SL::DB::Helper::LinkedRecords;
use SL::DB::Helper::TransNumberGenerator;
@@
-29,6
+30,8
@@
__PACKAGE__->meta->add_relationship(orderitems => { type => 'one to many
__PACKAGE__->meta->initialize;
__PACKAGE__->meta->initialize;
+__PACKAGE__->attr_html('notes');
+
__PACKAGE__->before_save('_before_save_set_donumber');
# hooks
__PACKAGE__->before_save('_before_save_set_donumber');
# hooks
@@
-44,11
+47,12
@@
sub _before_save_set_donumber {
# methods
sub items { goto &orderitems; }
# methods
sub items { goto &orderitems; }
+sub add_items { goto &add_orderitems; }
sub items_sorted {
my ($self) = @_;
sub items_sorted {
my ($self) = @_;
- return [ sort {$a->
id <=> $b->id
} @{ $self->items } ];
+ return [ sort {$a->
position <=> $b->position
} @{ $self->items } ];
}
sub sales_order {
}
sub sales_order {
@@
-139,7
+143,8
@@
sub new_from {
$args{shipto_id} = $source->shipto_id;
}
$args{shipto_id} = $source->shipto_id;
}
- my $delivery_order = $class->new(%args, %{ $params{attributes} || {} });
+ my $delivery_order = $class->new(%args);
+ $delivery_order->assign_attributes(%{ $params{attributes} }) if $params{attributes};
my $items = delete($params{items}) || $source->items_sorted;
my %item_parents;
my $items = delete($params{items}) || $source->items_sorted;
my %item_parents;
@@
-153,7
+158,7
@@
sub new_from {
SL::DB::DeliveryOrderItem->new(map({ ( $_ => $source_item->$_ ) }
qw(base_qty cusordnumber description discount lastcost longdescription marge_price_factor parts_id price_factor price_factor_id
SL::DB::DeliveryOrderItem->new(map({ ( $_ => $source_item->$_ ) }
qw(base_qty cusordnumber description discount lastcost longdescription marge_price_factor parts_id price_factor price_factor_id
- project_id qty reqdate sellprice serialnumber transdate unit
+ project_id qty reqdate sellprice serialnumber transdate unit
active_discount_source active_price_source
)),
custom_variables => \@custom_variables,
ordnumber => ref($item_parent) eq 'SL::DB::Order' ? $item_parent->ordnumber : $source_item->ordnumber,
)),
custom_variables => \@custom_variables,
ordnumber => ref($item_parent) eq 'SL::DB::Order' ? $item_parent->ordnumber : $source_item->ordnumber,
@@
-162,12
+167,17
@@
sub new_from {
} @{ $items };
@items = grep { $_->qty * 1 } @items if $params{skip_items_zero_qty};
} @{ $items };
@items = grep { $_->qty * 1 } @items if $params{skip_items_zero_qty};
+ @items = grep { $_->qty >=0 } @items if $params{skip_items_negative_qty};
$delivery_order->items(\@items);
return ($delivery_order, $custom_shipto);
}
$delivery_order->items(\@items);
return ($delivery_order, $custom_shipto);
}
+sub customervendor {
+ $_[0]->is_sales ? $_[0]->customer : $_[0]->vendor;
+}
+
1;
__END__
1;
__END__
@@
-237,6
+247,11
@@
missing then the method C<items_sorted> will be called on
C<$source>. This option can be used to override the sorting, to
exclude certain positions or to add additional ones.
C<$source>. This option can be used to override the sorting, to
exclude certain positions or to add additional ones.
+=item C<skip_items_negative_qty>
+
+If trueish then items with a negative quantity are skipped. Items with
+a quantity of 0 are not affected by this option.
+
=item C<skip_items_zero_qty>
If trueish then items with a quantity of 0 are skipped.
=item C<skip_items_zero_qty>
If trueish then items with a quantity of 0 are skipped.