Doku: POD für Invoice.pm erweitert
authorJan Büren <jan@kivitendo-premium.de>
Tue, 8 Sep 2015 12:05:44 +0000 (14:05 +0200)
committerJan Büren <jan@kivitendo-premium.de>
Tue, 8 Sep 2015 12:05:44 +0000 (14:05 +0200)
- Invoice anstatt Delivery Order bei new_from
- Beispiel-Code für Benutzung von new_from mit parameter attributes
- TODO angelegt, Controller sollten einige Datenfelder mit Hilfe
  von Backend-Funktionen prüfen können - in diesem Fall transdate

SL/DB/Invoice.pm

index 239280b..76531e9 100644 (file)
@@ -426,8 +426,13 @@ falsish value will be skipped.
 =item C<attributes>
 
 An optional hash reference. If it exists then it is passed to C<new>
-allowing the caller to set certain attributes for the new delivery
-order.
+allowing the caller to set certain attributes for the new invoice.
+For example to set a different transdate (default is the current date),
+call the method like this:
+
+   my %params;
+   $params{attributes}{transdate} = '28.08.2015';
+   $invoice = SL::DB::Invoice->new_from($self, %params)->post || die;
 
 =back
 
@@ -489,6 +494,16 @@ See L<SL::DB::Object::basic_info>.
 
 =back
 
+=head1 TODO
+ As explained in the new_from example, it is possible to set transdate to a new value.
+ From a user / programm point of view transdate is more than holy and there should be
+ some validity checker available for controller code. At least the same logic like in
+ Form.pm from ar.pl should be available:
+  # see old stuff ar.pl post
+  #$form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
+  #  if ($form->date_max_future($transdate, \%myconfig));
+  #$form->error($locale->text('Cannot post transaction for a closed period!')) if ($form->date_closed($form->{"transdate"}, \%myconfig));
+
 =head1 AUTHOR
 
 Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>