Revision 5cada5ab
Von Bernd Bleßmann vor etwa 2 Jahren hinzugefügt
SL/Controller/Order.pm | ||
---|---|---|
use SL::DB::RequirementSpec;
|
||
use SL::DB::Shipto;
|
||
use SL::DB::Translation;
|
||
use SL::DB::ValidityToken;
|
||
|
||
use SL::Helper::CreatePDF qw(:all);
|
||
use SL::Helper::PrintOptions;
|
||
... | ... | |
|
||
|
||
$self->pre_render();
|
||
|
||
if (!$::form->{form_validity_token}) {
|
||
$::form->{form_validity_token} = SL::DB::ValidityToken->create(scope => SL::DB::ValidityToken::SCOPE_ORDER_SAVE())->token;
|
||
}
|
||
|
||
$self->render(
|
||
'order/form',
|
||
title => $self->get_title_for('add'),
|
||
... | ... | |
|
||
$self->recalc();
|
||
$self->pre_render();
|
||
|
||
if (!$::form->{form_validity_token}) {
|
||
$::form->{form_validity_token} = SL::DB::ValidityToken->create(scope => SL::DB::ValidityToken::SCOPE_ORDER_SAVE())->token;
|
||
}
|
||
|
||
$self->render(
|
||
'order/form',
|
||
title => $self->get_title_for('edit'),
|
||
... | ... | |
# are loaded only on demand. So we need to keep the values from
|
||
# the source.
|
||
$_->{render_second_row} = 1 for @{ $self->order->items_sorted };
|
||
|
||
if (!$::form->{form_validity_token}) {
|
||
$::form->{form_validity_token} = SL::DB::ValidityToken->create(scope => SL::DB::ValidityToken::SCOPE_ORDER_SAVE())->token;
|
||
}
|
||
}
|
||
|
||
$self->recalc();
|
||
... | ... | |
# no linked records on save as new
|
||
delete $::form->{$_} for qw(converted_from_oe_id converted_from_orderitems_ids);
|
||
|
||
if (!$::form->{form_validity_token}) {
|
||
$::form->{form_validity_token} = SL::DB::ValidityToken->create(scope => SL::DB::ValidityToken::SCOPE_ORDER_SAVE())->token;
|
||
}
|
||
|
||
# save
|
||
$self->action_save();
|
||
}
|
||
... | ... | |
# source.
|
||
$_->{render_second_row} = 1 for @{ $self->order->items_sorted };
|
||
|
||
if (!$::form->{form_validity_token}) {
|
||
$::form->{form_validity_token} = SL::DB::ValidityToken->create(scope => SL::DB::ValidityToken::SCOPE_ORDER_SAVE())->token;
|
||
}
|
||
|
||
$self->render(
|
||
'order/form',
|
||
title => $self->get_title_for('edit'),
|
||
... | ... | |
sub save {
|
||
my ($self) = @_;
|
||
|
||
my $validity_token;
|
||
if (!$self->order->id) {
|
||
$validity_token = SL::DB::Manager::ValidityToken->fetch_valid_token(
|
||
scope => SL::DB::ValidityToken::SCOPE_ORDER_SAVE(),
|
||
token => $::form->{form_validity_token},
|
||
);
|
||
|
||
return [t8('The form is not valid anymore.')] if !$validity_token;
|
||
}
|
||
|
||
$self->recalc();
|
||
$self->get_unalterable_data();
|
||
|
||
... | ... | |
|
||
$self->save_history('SAVED');
|
||
|
||
$validity_token->delete if $validity_token;
|
||
delete $::form->{form_validity_token};
|
||
|
||
1;
|
||
}) || push(@{$errors}, $db->error);
|
||
|
SL/DB/ValidityToken.pm | ||
---|---|---|
|
||
use constant SCOPE_SALES_INVOICE_POST => 'SalesInvoice::Post';
|
||
use constant SCOPE_DELIVERY_ORDER_SAVE => 'DeliveryOrder::Save';
|
||
use constant SCOPE_ORDER_SAVE => 'Order::Save';
|
||
|
||
sub create {
|
||
my ($class, %params) = @_;
|
templates/design40_webpages/order/form.html | ||
---|---|---|
[% L.hidden_tag('converted_from_oe_id', SELF.converted_from_oe_id) %]
|
||
[% L.hidden_tag('converted_from_reclamation_id', SELF.converted_from_reclamation_id) %]
|
||
|
||
[% IF !SELF.order.id %]
|
||
[% L.hidden_tag('form_validity_token', FORM.form_validity_token) %]
|
||
[% END %]
|
||
|
||
[% INCLUDE 'common/flash.html' %]
|
||
|
||
<div class="tabwidget" id="order_tabs">
|
templates/webpages/order/form.html | ||
---|---|---|
[% L.hidden_tag('converted_from_oe_id', SELF.converted_from_oe_id) %]
|
||
[% L.hidden_tag('converted_from_reclamation_id', SELF.converted_from_reclamation_id) %]
|
||
|
||
[% IF !SELF.order.id %]
|
||
[% L.hidden_tag('form_validity_token', FORM.form_validity_token) %]
|
||
[% END %]
|
||
|
||
[%- INCLUDE 'common/flash.html' %]
|
||
|
||
<div class="tabwidget" id="order_tabs">
|
Auch abrufbar als: Unified diff
Gültigkeitstoken Auftragscontroller