Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 0d42912b

Von Jan Büren vor etwa 4 Jahren hinzugefügt

  • ID 0d42912b210313b779d694aee65c9241a14ca8d3
  • Vorgänger 73cff733
  • Nachfolger 28cc69e2

CTR Mehr Benutzerparameter aus dem POD erlauben und prüfen

- Init rounding and link_project defaults
- Check for valid user param names
- Add params to each source entry for DO->new_from_time_recording
- some TODOS

Unterschiede anzeigen:

SL/BackgroundJob/ConvertTimeRecordings.pm
use SL::Locale::String qw(t8);
use Carp;
use DateTime;
use Try::Tiny;
sub create_job {
$_[0]->create_standard_job('7 3 1 * *'); # every first day of month at 03:07
}
use Rose::Object::MakeMethods::Generic (
'scalar --get_set_init' => [ qw(rounding link_project) ],
);
# valid parameters -> better as class members with rose generic set/get
my %params = (
fromdate => '',
todate => '',
customernumbers => '',
part_id => '',
rounding => 1,
link_project => 0,
project_id => '',
);
#
# If job does not throw an error,
......
$data = $db_obj->data_as_hash if $db_obj;
$self->{$_} = [] for qw(job_errors);
# check user input param names
foreach my $param (keys %{ $data }) {
croak "Not a valid key: $param" unless $params{$param};
}
# TODO check user input param values - (defaults are assigned later)
# 1- If there are any customer numbers check if they refer to valid customers
# otherwise croak and do nothing
# 2 .. n Same applies for other params if used at all (rounding -> 0|1 link_project -> 0|1)
# from/to date from data. Defaults to begining and end of last month.
# TODO get/set see above
my $from_date;
my $to_date;
# handle errors with a catch handler
......
or => [booked => 0, booked => undef],
%customer_where],
with_objects => ['customer']);
# no time recordings at all ? -> better exit here before iterating a empty hash
# return undef or message unless ref $time_recordings->[0] eq SL::DB::Manager::TimeRecording;
my %time_recordings_by_customer_id;
push @{ $time_recordings_by_customer_id{$_->customer_id} }, $_ for @$time_recordings;
# push @{ $time_recordings_by_customer_id{$_->customer_id} }, $_ for @$time_recordings;
# loop over all entries and add default or user defined params:
for my $source_entry (@$time_recordings) {
# set user defaults for processing
$source_entry->{$_} = $self->$_ for qw(rounding link_project);
foreach (qw(project_id parts_id)) {
$source_entry->{$_} = $self->{$_} if length ($self->{$_});
}
push @{ $time_recordings_by_customer_id{$source_entry->customer_id} }, $source_entry;
}
my @donumbers;
foreach my $customer_id (keys %time_recordings_by_customer_id) {
my $do;
......
return $msg;
}
# inits
sub init_rounding {
1
}
sub init_link_project {
0
}
1;
# possible data

Auch abrufbar als: Unified diff