SL::DB::Invoice->new_from: %params nicht mehr direkt an new übergeben, sondern nur...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 24 Feb 2014 09:10:13 +0000 (10:10 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 24 Feb 2014 13:40:02 +0000 (14:40 +0100)
Gründe: Konsistenz mit DeliveryOrder, und Erweiterbarkeit durch
Steuerungsoptionen.

SL/DB/Invoice.pm

index 8c6965f..46ecd9b 100644 (file)
@@ -160,7 +160,7 @@ sub new_from {
     $args{quodate}      = $source->transdate;
   }
 
-  my $invoice = $class->new(%args, %params);
+  my $invoice = $class->new(%args, %{ $params{attributes} || {} });
 
   my @items = map {
     my $source_item      = $_;
@@ -313,7 +313,7 @@ SL::DB::Invoice: Rose model for invoices (table "ar")
 
 =over 4
 
-=item C<new_from $source>
+=item C<new_from $source, %params>
 
 Creates a new C<SL::DB::Invoice> instance and copies as much
 information from C<$source> as possible. At the moment only sales
@@ -323,6 +323,18 @@ The conversion copies order items into invoice items. Dates are copied
 as appropriate, e.g. the C<transdate> field from an order will be
 copied into the invoice's C<orddate> field.
 
+C<%params> can include the following options:
+
+=over 2
+
+=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.
+
+=back
+
 Amounts, prices and taxes are not
 calculated. L<SL::DB::Helper::PriceTaxCalculator::calculate_prices_and_taxes>
 can be used for this.