Revision 60a2e713
Von Tamino Steinert vor 12 Monaten hinzugefügt
SL/Controller/Order.pm | ||
---|---|---|
33 | 33 |
use SL::DB::Shipto; |
34 | 34 |
use SL::DB::Translation; |
35 | 35 |
use SL::DB::ValidityToken; |
36 |
use SL::DB::Helper::RecordLink qw(set_record_link_conversions RECORD_ID RECORD_ITEM_ID);
|
|
36 |
use SL::DB::Helper::RecordLink qw(set_record_link_conversions RECORD_ID RECORD_TYPE_REF RECORD_ITEM_ID RECORD_ITEM_TYPE_REF);
|
|
37 | 37 |
use SL::DB::Helper::TypeDataProxy; |
38 | 38 |
use SL::DB::Helper::Record qw(get_object_name_from_type get_class_from_type); |
39 | 39 |
use SL::Model::Record; |
... | ... | |
120 | 120 |
my $order = SL::Model::Record->new_from_workflow($record, $self->type, %flags); |
121 | 121 |
$self->order($order); |
122 | 122 |
|
123 |
if (ref($record) eq 'SL::DB::Reclamation') { |
|
124 |
$self->{converted_from_reclamation_id} = $order->{ RECORD_ID() }; |
|
125 |
$_ ->{converted_from_reclamation_items_id} = $_ ->{ RECORD_ITEM_ID() } for @{ $order->items_sorted }; |
|
126 |
} |
|
127 |
if (ref($record) eq 'SL::DB::Order') { |
|
128 |
$self->{converted_from_oe_id} = $order->{ RECORD_ID() }; |
|
129 |
$_ ->{converted_from_oe_items_id} = $_ ->{ RECORD_ITEM_ID() } for @{ $order->items_sorted }; |
|
130 |
} |
|
131 |
|
|
132 |
|
|
133 | 123 |
$self->recalc(); |
134 | 124 |
$self->pre_render(); |
135 | 125 |
|
... | ... | |
230 | 220 |
|
231 | 221 |
# make new order from given orders |
232 | 222 |
my @multi_orders = map { SL::DB::Order->new(id => $_)->load } @multi_ids; |
233 |
$self->{converted_from_oe_id} = join ' ', map { $_->id } @multi_orders; |
|
234 |
my $target_type = "sales_order"; |
|
223 |
my $target_type = SALES_ORDER_TYPE(); |
|
235 | 224 |
my $order = SL::Model::Record->new_from_workflow_multi(\@multi_orders, $target_type, sort_sources_by => 'transdate'); |
236 | 225 |
$self->order($order); |
237 | 226 |
|
... | ... | |
1587 | 1576 |
|
1588 | 1577 |
$self->js |
1589 | 1578 |
->val('#id', $self->order->id) |
1590 |
->val('#converted_from_oe_id', '')
|
|
1591 |
->val('#converted_from_reclamation_id', '')
|
|
1579 |
->val('#converted_from_record_type_ref', '')
|
|
1580 |
->val('#converted_from_record_id', '')
|
|
1592 | 1581 |
->val('#order_' . $self->nr_key(), $self->order->number); |
1593 | 1582 |
|
1594 | 1583 |
my $idx = 0; |
... | ... | |
1602 | 1591 |
} continue { |
1603 | 1592 |
$idx++; |
1604 | 1593 |
} |
1605 |
$self->js->val('[name="converted_from_orderitems_ids[+]"]', '');
|
|
1606 |
$self->js->val('[name="converted_from_reclamation_items_ids[+]"]', '');
|
|
1594 |
$self->js->val('[name="converted_from_record_item_type_refs[+]"]', '');
|
|
1595 |
$self->js->val('[name="converted_from_record_item_ids[+]"]', '');
|
|
1607 | 1596 |
$self->js->val('[name="basket_item_ids[+]"]', ''); |
1608 | 1597 |
} |
1609 | 1598 |
|
... | ... | |
2058 | 2047 |
sub save { |
2059 | 2048 |
my ($self) = @_; |
2060 | 2049 |
|
2050 |
my $is_new = !$self->order->id; |
|
2051 |
|
|
2061 | 2052 |
$self->parse_phone_note if $::form->{phone_note}->{subject} || $::form->{phone_note}->{body}; |
2062 | 2053 |
|
2063 | 2054 |
# create first version if none exists |
2064 | 2055 |
$self->order->add_order_version(SL::DB::OrderVersion->new(version => 1)) if !$self->order->order_version; |
2065 | 2056 |
|
2057 |
set_record_link_conversions($self->order, |
|
2058 |
delete $::form->{RECORD_TYPE_REF()} |
|
2059 |
=> delete $::form->{RECORD_ID()}, |
|
2060 |
delete $::form->{RECORD_ITEM_TYPE_REF()} |
|
2061 |
=> delete $::form->{RECORD_ITEM_ID()}, |
|
2062 |
); |
|
2063 |
|
|
2066 | 2064 |
my @converted_from_oe_ids; |
2067 |
if ($::form->{converted_from_oe_id}) { |
|
2068 |
@converted_from_oe_ids = split ' ', $::form->{converted_from_oe_id}; |
|
2069 |
set_record_link_conversions( |
|
2070 |
$self->order, |
|
2071 |
'SL::DB::Order' => \@converted_from_oe_ids, |
|
2072 |
'SL::DB::OrderItem' => $::form->{converted_from_orderitems_ids}, |
|
2073 |
); |
|
2074 |
} |
|
2075 |
if ($::form->{converted_from_reclamation_id}) { |
|
2076 |
my @converted_from_reclamation_ids = split ' ', $::form->{converted_from_reclamation_id}; |
|
2077 |
set_record_link_conversions( |
|
2078 |
$self->order, |
|
2079 |
'SL::DB::Reclamation' => \@converted_from_reclamation_ids, |
|
2080 |
'SL::DB::ReclamationItem' => $::form->{converted_from_reclamation_items_ids}, |
|
2081 |
); |
|
2065 |
if ($self->order->{RECORD_TYPE_REF()} eq 'SL::DB::Order' |
|
2066 |
&& $self->order->{RECORD_ID()}) { |
|
2067 |
@converted_from_oe_ids = split ' ', $self->order->{RECORD_ID()}; |
|
2082 | 2068 |
} |
2083 | 2069 |
|
2084 | 2070 |
# check for purchase basket items |
... | ... | |
2102 | 2088 |
} |
2103 | 2089 |
} |
2104 | 2090 |
|
2105 |
my $is_new = !$self->order->id; |
|
2106 |
|
|
2107 | 2091 |
my $objects_to_close = scalar @converted_from_oe_ids |
2108 | 2092 |
? SL::DB::Manager::Order->get_all(where => [ |
2109 | 2093 |
id => \@converted_from_oe_ids, |
Auch abrufbar als: Unified diff
Order: Nutze Type und ID zum Erstellen von verknüpften Belegen