Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 376cac9b

Von Bernd Bleßmann vor fast 2 Jahren hinzugefügt

  • ID 376cac9b5dc18aed8d814570771ba23b5248812d
  • Vorgänger 5835a85f
  • Nachfolger 41cff96b

DeliveryOrder-Controller: Model::Record->save verwenden

Unterschiede anzeigen:

SL/Controller/DeliveryOrder.pm
use SL::DB::Helper::TypeDataProxy;
use SL::DB::DeliveryOrder;
use SL::DB::DeliveryOrder::TypeData qw(:types);
use SL::DB::Manager::DeliveryOrderItem;
use SL::DB::DeliveryOrderItemsStock;
use SL::Model::Record;
......
sub action_save {
my ($self) = @_;
my $errors = $self->save();
if (scalar @{ $errors }) {
$self->js->flash('error', $_) foreach @{ $errors };
return $self->js->render();
}
$self->save();
flash_later('info', $self->type_data->text("saved"));
......
my ($self) = @_;
if ( !$self->order->delivered ) {
my $errors = $self->save();
if (scalar @{ $errors }) {
$self->js->flash('error', $_) foreach @{ $errors };
return $self->js->render();
}
$self->save();
$self->js_reset_order_and_item_ids_after_save;
}
......
my ($self) = @_;
if ( !$self->order->delivered ) {
my $errors = $self->save();
if (scalar @{ $errors }) {
$self->js->flash('error', $_) foreach @{ $errors };
return $self->js->render();
}
$self->save();
$self->js_reset_order_and_item_ids_after_save;
}
......
my ($self) = @_;
if ( !$self->order->delivered ) {
my $errors = $self->save();
if (scalar @{ $errors }) {
$self->js->flash('error', $_) foreach @{ $errors };
return $self->js->render();
}
$self->save();
}
my $cv_method = $self->cv;
......
my ($self) = @_;
if ( !$self->order->delivered ) {
my $errors = $self->save();
if (scalar @{ $errors }) {
$self->js->run('kivi.DeliveryOrder.close_email_dialog');
$self->js->flash('error', $_) foreach @{ $errors };
return $self->js->render();
}
$self->save();
$self->js_reset_order_and_item_ids_after_save;
}
my $email_form = delete $::form->{email_form};
my %field_names = (to => 'email');
......
sub save {
my ($self) = @_;
my $errors = [];
my $db = $self->order->db;
# link records
if ($::form->{converted_from_oe_id}) {
my @converted_from_oe_ids = split ' ', $::form->{converted_from_oe_id};
......
);
}
$db->with_transaction(sub {
my $validity_token;
if (!$self->order->id) {
$validity_token = SL::DB::Manager::ValidityToken->fetch_valid_token(
scope => SL::DB::ValidityToken::SCOPE_DELIVERY_ORDER_SAVE(),
token => $::form->{form_validity_token},
);
die $::locale->text('The form is not valid anymore.') if !$validity_token;
}
# delete custom shipto if it is to be deleted or if it is empty
if ($self->order->custom_shipto && ($self->is_custom_shipto_to_delete || $self->order->custom_shipto->is_empty)) {
$self->order->custom_shipto->delete if $self->order->custom_shipto->shipto_id;
$self->order->custom_shipto(undef);
}
SL::DB::DeliveryOrderItem->new(id => $_)->delete for @{$self->item_ids_to_delete || []};
$self->order->save(cascade => 1);
my $items_to_delete = scalar @{ $self->item_ids_to_delete || [] }
? SL::DB::Manager::DeliveryOrderItem->get_all(where => [id => $self->item_ids_to_delete])
: undef;
$self->save_history('SAVED');
$validity_token->delete if $validity_token;
delete $::form->{form_validity_token};
1;
}) || push(@{$errors}, $db->error);
SL::Model::Record->save($self->order,
with_validity_token => { scope => SL::DB::ValidityToken::SCOPE_DELIVERY_ORDER_SAVE(), token => $::form->{form_validity_token} },
delete_custom_shipto => $self->is_custom_shipto_to_delete || $self->order->custom_shipto->is_empty,
items_to_delete => $items_to_delete,
);
return $errors;
delete $::form->{form_validity_token};
}
sub workflow_sales_or_request_for_quotation {
my ($self) = @_;
# always save
my $errors = $self->save();
if (scalar @{ $errors }) {
$self->js->flash('error', $_) for @{ $errors };
return $self->js->render();
}
$self->save();
my $destination_type = $self->type_data->workflow("to_quotation_type");
......
my ($self) = @_;
# always save
my $errors = $self->save();
if (scalar @{ $errors }) {
$self->js->flash('error', $_) foreach @{ $errors };
return $self->js->render();
}
$self->save();
my $destination_type = $self->type_data->workflow("to_order_type");
......
sub save_and_redirect_to {
my ($self, %params) = @_;
my $errors = $self->save();
if (scalar @{ $errors }) {
$self->js->flash('error', $_) foreach @{ $errors };
return $self->js->render();
}
$self->save();
flash_later('info', $self->type_data->text("saved"));

Auch abrufbar als: Unified diff