Revision 6c044ff2
Von Werner Hahn vor mehr als 7 Jahren hinzugefügt
SL/Controller/ShopOrder.pm | ||
---|---|---|
|
||
sub action_transfer {
|
||
my ( $self ) = @_;
|
||
|
||
my $customer = SL::DB::Manager::Customer->find_by(id => $::form->{customer});
|
||
die "Can't find customer" unless $customer;
|
||
my $employee = SL::DB::Manager::Employee->current;
|
||
... | ... | |
flash_later('error',@{$order->{errors}});
|
||
$self->redirect_to(controller => "ShopOrder", action => 'show', id => $self->shop_order->id);
|
||
}else{
|
||
$order->save;
|
||
|
||
my $snumbers = "ordernumber_" . $order->ordnumber;
|
||
SL::DB::History->new(
|
||
trans_id => $order->id,
|
||
snumbers => $snumbers,
|
||
employee_id => SL::DB::Manager::Employee->current->id,
|
||
addition => 'SAVED',
|
||
what_done => 'Shopimport -> Order',
|
||
)->save();
|
||
foreach my $item(@{ $order->orderitems }){
|
||
$item->parse_custom_variable_values->save;
|
||
$item->{custom_variables} = \@{ $item->cvars_by_config };
|
||
$item->save;
|
||
}
|
||
|
||
$self->shop_order->transferred(1);
|
||
$self->shop_order->transfer_date(DateTime->now_local);
|
||
$self->shop_order->oe_transid($order->id);
|
||
$self->shop_order->save;
|
||
$self->shop_order->link_to_record($order);
|
||
$self->redirect_to(controller => "oe.pl", action => 'edit', type => 'sales_order', vc => 'customer', id => $order->id);
|
||
$order->db->with_transaction( sub {
|
||
$order->save;
|
||
|
||
my $snumbers = "ordernumber_" . $order->ordnumber;
|
||
SL::DB::History->new(
|
||
trans_id => $order->id,
|
||
snumbers => $snumbers,
|
||
employee_id => SL::DB::Manager::Employee->current->id,
|
||
addition => 'SAVED',
|
||
what_done => 'Shopimport -> Order',
|
||
)->save();
|
||
foreach my $item(@{ $order->orderitems }){
|
||
$item->parse_custom_variable_values->save;
|
||
$item->{custom_variables} = \@{ $item->cvars_by_config };
|
||
$item->save;
|
||
}
|
||
|
||
$self->shop_order->transferred(1);
|
||
$self->shop_order->transfer_date(DateTime->now_local);
|
||
$self->shop_order->oe_transid($order->id);
|
||
$self->shop_order->save;
|
||
$self->shop_order->link_to_record($order);
|
||
$self->redirect_to(controller => "oe.pl", action => 'edit', type => 'sales_order', vc => 'customer', id => $order->id);
|
||
}) || die $order->db->error;
|
||
}
|
||
}
|
||
|
Auch abrufbar als: Unified diff
Shopmodul with_transaction im ShopOrder Controller