Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 08d5edc5

Von Tamino Steinert vor mehr als 1 Jahr hinzugefügt

  • ID 08d5edc5190c2c226a82a1db4e4b96ceb2e2f8a3
  • Vorgänger b74c9555
  • Nachfolger 1466e54a

Model::Record: move get_new_reqdate to TypeData

Unterschiede anzeigen:

SL/DB/DeliveryOrder/TypeData.pm
transfer => 'out',
transnumber => 'sdonumber',
},
changes => {
get_new_reqdate => sub {
DateTime->today_local->next_workday(extra_days => 1);
}
},
part_classification_query => [ "used_for_sale" => 1 ],
rights => {
edit => "sales_delivery_order_edit",
......
transfer => 'in',
transnumber => 'pdonumber',
},
changes => {
get_new_reqdate => sub {
DateTime->today_local->next_workday(extra_days => 1);
}
},
part_classification_query => [ "used_for_purchase" => 1 ],
rights => {
edit => "purchase_delivery_order_edit",
......
transfer => 'out',
transnumber => 'sudonumber',
},
changes => {
get_new_reqdate => sub {
DateTime->today_local->next_workday(extra_days => 1);
}
},
part_classification_query => [ "used_for_purchase" => 1 ],
rights => {
edit => "purchase_delivery_order_edit",
......
transfer => 'in',
transnumber => 'rdonumber',
},
changes => {
get_new_reqdate => sub {
DateTime->today_local->next_workday(extra_days => 1);
}
},
part_classification_query => [ "used_for_sale" => 1 ],
rights => {
edit => "sales_delivery_order_edit",
SL/DB/Helper/TypeDataProxy.pm
_via("get3", [ "properties" ], @_);
}
sub changes {
_via("get3", [ "changes" ], @_);
}
sub show_menu {
_via("get3", [ "show_menu" ], @_);
}
SL/DB/Order/TypeData.pm
is_customer => 1,
nr_key => "ordnumber",
},
changes => {
get_new_reqdate => sub {
if ($::instance_conf->get_deliverydate_on) {
return DateTime->today_local->next_workday(
extra_days => $::instance_conf->get_delivery_date_interval());
} else {
return ;
}
},
},
part_classification_query => [ "used_for_sale" => 1 ],
rights => {
edit => "sales_order_edit",
......
is_customer => 0,
nr_key => "ordnumber",
},
changes => {
get_new_reqdate => sub { return; },
},
part_classification_query => [ "used_for_purchase" => 1 ],
rights => {
edit => "purchase_order_edit",
......
is_customer => 1,
nr_key => "quonumber",
},
changes => {
get_new_reqdate => sub {
if ($::instance_conf->get_reqdate_on) {
return DateTime->today_local->next_workday(
extra_days => $::instance_conf->get_reqdate_interval());
} else {
return ;
}
},
},
part_classification_query => [ "used_for_sale" => 1 ],
rights => {
edit => "sales_quotation_edit",
......
is_customer => 0,
nr_key => "quonumber",
},
changes => {
get_new_reqdate => sub { return; },
},
part_classification_query => [ "used_for_purchase" => 1 ],
rights => {
edit => "purchase_quotation_edit",
SL/DB/Reclamation/TypeData.pm
is_customer => 1,
nr_key => "record_number",
},
changes => {
get_new_reqdate => sub { return; }
},
part_classification_query => [ "used_for_sale" => 1 ],
rights => {
edit => "sales_reclamation_edit",
......
is_customer => 0,
nr_key => "record_number",
},
changes => {
get_new_reqdate => sub { return; }
},
part_classification_query => [ "used_for_purchase" => 1 ],
rights => {
edit => "purchase_reclamation_edit",
SL/Model/Record.pm
use SL::DB::Invoice;
use SL::DB::Status;
use SL::DB::ValidityToken;
use SL::DB::Helper::TypeDataProxy;
use SL::Util qw(trim);
use SL::Locale::String qw(t8);
sub update_after_new {
my ($class, $new_record, $subtype, %flags) = @_;
my $type_info = {
# order
sales_quotation => {
get_new_reqdate => sub {
if ($::instance_conf->get_reqdate_on) {
return DateTime->today_local->next_workday(
extra_days => $::instance_conf->get_reqdate_interval());
} else {
return '';
}
},
},
sales_order => {
get_new_reqdate => sub {
if ($::instance_conf->get_deliverydate_on) {
return DateTime->today_local->next_workday(
extra_days => $::instance_conf->get_delivery_date_interval());
} else {
return '';
}
},
},
request_quotation => {
get_new_reqdate => sub { DateTime->today_local->next_workday(extra_days => 1); },
},
purchase_order => {
get_new_reqdate => sub { DateTime->today_local->next_workday(extra_days => 1); },
},
# delivery_order
rma_delivery_order => {
get_new_reqdate => sub { DateTime->today_local->next_workday(extra_days => 1); },
},
sales_delivery_order => {
get_new_reqdate => sub { DateTime->today_local->next_workday(extra_days => 1); },
},
supplier_delivery_order => {
get_new_reqdate => sub { DateTime->today_local->next_workday(extra_days => 1); },
},
purchase_delivery_order => {
get_new_reqdate => sub { DateTime->today_local->next_workday(extra_days => 1); },
},
# reclamation
sales_reclamation => {
get_new_reqdate => sub { return; },
},
purchase_reclamation => {
get_new_reqdate => sub { return; },
},
};
$new_record->transdate(DateTime->now_local());
$new_record->reqdate($type_info->{$subtype}->{get_new_reqdate}->());
# build TypeDataProxy
# TODO: remove when type is set in record and not infered form customer/vendor_id
my $type_data_proxy = SL::DB::Helper::TypeDataProxy->new(ref $new_record, $subtype);
$new_record->reqdate($type_data_proxy->changes('get_new_reqdate'));
# new_record: der neuerstellte objekt
# flags: zusätzliche informationen zu der behanldung (soll )
......
# - number muss überschrieben werden
# - employee auf aktuellen setzen
my $type_info = {
# order
sales_quotation => {
get_new_reqdate => sub {
if ($::instance_conf->get_reqdate_on) {
return DateTime->today_local->next_workday(
extra_days => $::instance_conf->get_reqdate_interval());
} else {
return '';
}
},
},
sales_order => {
get_new_reqdate => sub {
if ($::instance_conf->get_deliverydate_on) {
return DateTime->today_local->next_workday(
extra_days => $::instance_conf->get_delivery_date_interval());
} else {
return '';
}
},
},
request_quotation => {
get_new_reqdate => sub { DateTime->today_local->next_workday(extra_days => 1); },
},
purchase_order => {
get_new_reqdate => sub { DateTime->today_local->next_workday(extra_days => 1); },
},
# delivery_order
rma_delivery_order => {
get_new_reqdate => sub {
DateTime->today_local->next_workday(extra_days => 1);
},
},
sales_delivery_order => {
get_new_reqdate => sub {
DateTime->today_local->next_workday(extra_days => 1);
},
},
supplier_delivery_order => {
get_new_reqdate => sub {
DateTime->today_local->next_workday(extra_days => 1);
},
},
purchase_delivery_order => {
get_new_reqdate => sub {
DateTime->today_local->next_workday(extra_days => 1);
},
},
# reclamation
sales_reclamation => {
get_new_reqdate => sub {
'';
},
},
purchase_reclamation => {
get_new_reqdate => sub {
'';
},
},
};
# changed_record
my %new_attrs;
# Lets assign a new number if the user hasn't changed the previous one.
......
# Set new reqdate unless changed if it is enabled in client config
if ($changed_record->reqdate == $saved_record->reqdate) {
$new_attrs{reqdate} = $type_info->{$saved_record->type}->{get_new_reqdate}->();
$new_attrs{reqdate} = $changed_record->type_data->changes('get_new_reqdate');
}
# Update employee

Auch abrufbar als: Unified diff