Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a76c2255

Von Sven Schöling vor mehr als 1 Jahr hinzugefügt

  • ID a76c225575f14942099fd6c5e09c43f0d475b8c2
  • Vorgänger 6c3d778b
  • Nachfolger c617ed37

DeliveryOrder: TypeData jetzt über proxy eingebunden

Macht den Controller proxy unnötig. reqdate default werden jetzt anders
behandelt

Unterschiede anzeigen:

SL/Controller/DeliveryOrder.pm
use SL::DB::ValidityToken;
use SL::DB::Warehouse;
use SL::DB::Helper::RecordLink qw(set_record_link_conversions);
use SL::DB::Helper::TypeDataProxy;
use SL::DB::DeliveryOrder;
use SL::DB::DeliveryOrder::TypeData qw(:types);
use SL::Model::Record;
use SL::Helper::CreatePDF qw(:all);
......
use SL::Helper::UserPreferences::UpdatePositions;
use SL::Controller::Helper::GetModels;
use SL::Controller::DeliveryOrder::TypeData qw(:types);
use List::Util qw(first sum0);
use List::UtilsBy qw(sort_by uniq_by);
......
# this interfers with init_order
$self->{converted_from_oe_id} = delete $::form->{id};
$self->type_data->validate($::form->{type});
$self->type_data->validate;
my $order = SL::DB::Order->new(id => $self->{converted_from_oe_id})->load;
......
sub action_delete {
my ($self) = @_;
my $number_type = $self->type_data;
my %history = (snumbers => $self->type . '_' . $self->order->number);
my %params = (history => \%history);
SL::Model::Record->delete($self->order,%params);
......
email_form => $email_form,
show_bcc => $::auth->assert('email_bcc', 'may fail'),
FILES => \%files,
is_customer => $self->type_data->is_customer,
is_customer => $self->type_data->properties("is_customer"),
ALL_EMPLOYEES => $self->{all_employees},
);
......
ITEM => $item,
ID => $item_id,
SELF => $self,
in_out => $self->type_data->transfer,
in_out => $self->type_data->properties("transfer"),
);
if ($::form->{insert_before_item_id}) {
......
ITEM => $item,
ID => $item_id,
SELF => $self,
in_out => $self->type_data->transfer,
in_out => $self->type_data->properties("transfer"),
);
if ($::form->{insert_before_item_id}) {
......
my $item_id = $::form->{item_id};
my $qty = _parse_number($::form->{qty_as_number});
my $inout = $self->type_data->transfer;
my $inout = $self->type_data->properties("transfer");
my @contents = DO->get_item_availability(parts_id => $part->id);
my $stock_info = DO->unpack_stock_information(packed => $stock);
......
sub init_cv {
my ($self) = @_;
return $self->type_data->customervendor;
return $self->type_data->properties("customervendor");
}
sub init_search_cvpartnumber {
......
sub check_auth {
my ($self) = @_;
$::auth->assert($self->type_data->access('view') || 'DOES_NOT_EXIST');
$::auth->assert($self->type_data->rights('view') || 'DOES_NOT_EXIST');
}
sub check_auth_for_edit {
my ($self) = @_;
$::auth->assert($self->type_data->access('edit') || 'DOES_NOT_EXIST');
$::auth->assert($self->type_data->rights('edit') || 'DOES_NOT_EXIST');
}
# build the selection box for contacts
......
# order here solves this problem.
my $order;
$order = SL::DB::DeliveryOrder->new(id => $::form->{id})->load(with => [ 'orderitems', 'orderitems.part' ]) if $::form->{id};
$order ||= SL::DB::DeliveryOrder->new(orderitems => [], currency_id => $::instance_conf->get_currency_id(), order_type => $self->type_data->validate($::form->{type}));
$order ||= SL::DB::DeliveryOrder->new(orderitems => [], currency_id => $::instance_conf->get_currency_id(), order_type => $self->type_data->validate);
my $cv_id_method = $self->cv . '_id';
if (!$::form->{id} && $::form->{$cv_id_method}) {
......
$item->active_discount_source($price_source->discount_from_source($item->active_discount_source));
}
if ($self->order->${\ $self->type_data->nr_key } && $::instance_conf->get_webdav) {
if ($self->order->${\ $self->type_data->properties("nr_key") } && $::instance_conf->get_webdav) {
my $webdav = SL::Webdav->new(
type => $self->type,
number => $self->order->number,
......
} } @all_objects;
}
$self->{template_args}{in_out} = $self->type_data->transfer;
$self->{template_args}{in_out} = $self->type_data->properties("transfer");
$self->{template_args}{longdescription_dialog_size_percentage} = SL::Helper::UserPreferences::DisplayPreferences->new()->get_longdescription_dialog_size_percentage();
$self->get_item_cvpartnumber($_) for @{$self->order->items_sorted};
......
my ($self, %params) = @_;
my $deletion_allowed = $self->type_data->show_menu("delete");
my $may_edit_create = $::auth->assert($self->type_data->access('edit') || 'DOES_NOT_EXIST', 1);
my $may_edit_create = $::auth->assert($self->type_data->rights('edit') || 'DOES_NOT_EXIST', 1);
for my $bar ($::request->layout->get('actionbar')) {
$bar->add(
......
}
sub nr_key {
return $_[0]->type_data->nr_key;
return $_[0]->type_data->properties("nr_key");
}
sub save_and_redirect_to {
......
}
sub init_type_data {
SL::Controller::DeliveryOrder::TypeData->new($_[0]);
SL::DB::Helper::TypeDataProxy->new('SL::DB::DeliveryOrder', $::form->{type});
}
sub init_valid_types {

Auch abrufbar als: Unified diff