Revision 524ae79f
Von Tamino Steinert vor mehr als 1 Jahr hinzugefügt
SL/Controller/Reclamation.pm | ||
---|---|---|
use SL::DB::Shipto;
|
||
use SL::DB::Translation;
|
||
use SL::DB::ValidityToken;
|
||
use SL::DB::Helper::RecordLink qw(RECORD_ID RECORD_TYPE_REF RECORD_ITEM_ID RECORD_ITEM_TYPE_REF);
|
||
use SL::DB::Helper::RecordLink qw(set_record_link_conversions RECORD_ID RECORD_TYPE_REF RECORD_ITEM_ID RECORD_ITEM_TYPE_REF);
|
||
use SL::DB::Helper::TypeDataProxy;
|
||
use SL::DB::Helper::Record qw(get_object_name_from_type get_class_from_type);
|
||
|
||
... | ... | |
save_and_credit_note
|
||
)]);
|
||
|
||
__PACKAGE__->run_before('get_record_links_data_from_form',
|
||
only => [qw(
|
||
save save_as_new print preview_pdf send_email
|
||
save_and_show_email_dialog
|
||
save_and_new_record
|
||
save_and_credit_note
|
||
)]);
|
||
|
||
#
|
||
# actions
|
||
#
|
||
... | ... | |
}
|
||
}
|
||
|
||
# get data for record_links from form and store it in the object
|
||
sub get_record_links_data_from_form {
|
||
my ($self) = @_;
|
||
|
||
my $reclamation = $self->reclamation;
|
||
|
||
$reclamation->{RECORD_ID()} = delete $::form->{converted_from_record_id};
|
||
$reclamation->{RECORD_TYPE_REF()} = delete $::form->{converted_from_record_type_ref};
|
||
|
||
my $from_record_item_ids = delete $::form->{converted_from_record_item_ids} ;
|
||
my $from_record_item_type_refs = delete $::form->{converted_from_record_item_type_refs} ;
|
||
|
||
if (scalar @{ $from_record_item_ids || [] }) {
|
||
for my $idx (0 .. $#{ $reclamation->items_sorted }) {
|
||
my $reclamation_item = $reclamation->items_sorted->[$idx];
|
||
$reclamation_item->{RECORD_ITEM_ID()} = $from_record_item_ids->[$idx];
|
||
$reclamation_item->{RECORD_ITEM_TYPE_REF()} = $from_record_item_type_refs->[$idx];
|
||
}
|
||
}
|
||
}
|
||
|
||
# save the reclamation
|
||
#
|
||
# And delete items that are deleted in the form.
|
||
sub save {
|
||
my ($self) = @_;
|
||
|
||
set_record_link_conversions($self->reclamation,
|
||
delete $::form->{RECORD_TYPE_REF()}
|
||
=> delete $::form->{RECORD_ID()},
|
||
delete $::form->{RECORD_ITEM_TYPE_REF()}
|
||
=> delete $::form->{RECORD_ITEM_ID()},
|
||
);
|
||
|
||
my $items_to_delete = scalar @{ $self->item_ids_to_delete || [] }
|
||
? SL::DB::Manager::ReclamationItem->get_all(where => [id => $self->item_ids_to_delete])
|
||
: undef;
|
Auch abrufbar als: Unified diff
S:C:Reclamation: nutze Helferfunktion zum Auslesen der Verknüpfungsinfo