use SL::DB::TimeRecording;
use SL::DB::TimeRecordingArticle;
use SL::Helper::Flash qw(flash);
+use SL::Helper::Number qw(_round_number _parse_number);
use SL::Helper::UserPreferences::TimeRecording;
use SL::Locale::String qw(t8);
use SL::ReportGenerator;
my %attributes = %{ $::form->{time_recording} || {} };
- if (!$self->use_duration) {
+ if ($self->use_duration) {
+ if ($::form->{duration_h} || $::form->{duration_m}) {
+ $attributes{duration} = _round_number(_parse_number($::form->{duration_h}) * 60 + _parse_number($::form->{duration_m}), 0);
+ }
+
+ } else {
foreach my $type (qw(start end)) {
if ($::form->{$type . '_date'}) {
my $date = DateTime->from_kivitendo($::form->{$type . '_date'});
'VAT ID and/or taxnumber must be given.' => 'UStId und/oder Steuernummer muss angegeben werden.',
'VN' => 'Kred.-Nr.',
'Valid' => 'Gültig',
+ 'Valid are integer values and floating point numbers, e.g. 4.75h = 4 hours and 45 minutes.' => 'Erlaubt sind ganzzahlige Werte und Kommawerte: Beispiel: 4,75h = 4 Stunden und 45 Minuten.',
'Valid from' => 'Gültig ab',
'Valid until' => 'gültig bis',
'Valid/Obsolete' => 'Gültig/ungültig',
'http' => 'http',
'https' => 'https',
'imported' => 'Importiert',
- 'in minutes' => 'in Minuten',
'inactive' => 'inaktiv',
'income' => 'Einnahmen-Überschuß-Rechnung',
'internal error (see details)' => 'Interner Fehler (siehe Details)!',
'list_of_transactions' => 'buchungsliste',
'male' => 'männlich',
'max filesize' => 'maximale Dateigröße',
+ 'min' => 'min',
'missing' => 'Fehlbestand',
'missing file for action import' => 'Es wurde keine Datei zum Hochladen ausgewählt',
'missing_br' => 'Fehl.',
'VAT ID and/or taxnumber must be given.' => '',
'VN' => '',
'Valid' => '',
+ 'Valid are integer values and floating point numbers, e.g. 4.75h = 4 hours and 45 minutes.' => '',
'Valid from' => '',
'Valid until' => '',
'Valid/Obsolete' => '',
'http' => '',
'https' => '',
'imported' => '',
- 'in minutes' => '',
'inactive' => '',
'income' => 'GUV and BWA',
'internal error (see details)' => '',
'list_of_transactions' => '',
'male' => '',
'max filesize' => '',
+ 'min' => '',
'missing' => '',
'missing file for action import' => '',
'missing_br' => 'missing',
</td>
</tr>
<tr>
- <th align="right">[% 'Duration' | $T8 %] ([% 'in minutes' | $T8 %])</th>
+ <th align="right">[% 'Duration' | $T8 %]</th>
<td>
- [% P.input_tag('time_recording.duration', SELF.time_recording.duration, size=11) %]
+ [% P.input_tag('duration_h', SELF.time_recording.duration_as_hours, size=4, class='numeric') %] [% 'h' | $T8 %]<sup>(1)</sup>
+ [% P.input_tag('duration_m', SELF.time_recording.duration_as_minutes, size=4, class='numeric') %] [% 'min' | $T8%]
</td>
</tr>
[%- ELSE %]
</tr>
</table>
+ [%- IF SELF.use_duration %]
+ <p>
+ <sup>(1)</sup>
+ [% 'Valid are integer values and floating point numbers, e.g. 4.75h = 4 hours and 45 minutes.' | $T8 %]
+ </p>
+ [%- END %]
+
</form>