Revision 2714604a
Von Moritz Bunkus vor mehr als 10 Jahren hinzugefügt
SL/DB/DeliveryOrder.pm | ||
---|---|---|
4 | 4 |
|
5 | 5 |
use Carp; |
6 | 6 |
|
7 |
use Rose::DB::Object::Helpers (); |
|
8 |
|
|
7 | 9 |
use SL::DB::MetaSetup::DeliveryOrder; |
8 | 10 |
use SL::DB::Manager::DeliveryOrder; |
9 | 11 |
use SL::DB::Helper::FlattenToForm; |
... | ... | |
81 | 83 |
goto &transdate; |
82 | 84 |
} |
83 | 85 |
|
86 |
sub _clone_orderitem_cvar { |
|
87 |
my ($cvar) = @_; |
|
88 |
|
|
89 |
my $cloned = Rose::DB::Object::Helpers::clone_and_reset($_); |
|
90 |
$cloned->sub_module('delivery_order_items'); |
|
91 |
|
|
92 |
return $cloned; |
|
93 |
} |
|
94 |
|
|
84 | 95 |
sub new_from { |
85 | 96 |
my ($class, $source, %params) = @_; |
86 | 97 |
|
... | ... | |
124 | 135 |
my $delivery_order = $class->new(%args, %params); |
125 | 136 |
|
126 | 137 |
my @items = map { |
127 |
my $source_item = $_; |
|
138 |
my $source_item = $_; |
|
139 |
my @custom_variables = map { _clone_orderitem_cvar($_) } @{ $source_item->custom_variables }; |
|
140 |
|
|
128 | 141 |
SL::DB::DeliveryOrderItem->new(map({ ( $_ => $source_item->$_ ) } |
129 |
qw(base_qty cusordnumber description discount lastcost longdescription marge_price_factor ordnumber parts_id price_factor price_factor_id |
|
130 |
project_id qty reqdate sellprice serialnumber transdate unit |
|
131 |
))); |
|
142 |
qw(base_qty cusordnumber description discount lastcost longdescription marge_price_factor ordnumber parts_id price_factor price_factor_id |
|
143 |
project_id qty reqdate sellprice serialnumber transdate unit |
|
144 |
)), |
|
145 |
custom_variables => \@custom_variables); |
|
146 |
|
|
132 | 147 |
} @{ $source->items_sorted }; |
133 | 148 |
|
134 | 149 |
$delivery_order->items(\@items); |
Auch abrufbar als: Unified diff
SL::DB::{DeliveryOrder,Invoice}->new_from: custom_variables der Items mit clonen
Behebt #2365 auf eine etwas angenehmere Weise als
5bd7e74db1f425a8bbc43357e949efcc1d4eb135.