- my @parts;
- my $part1 = SL::Dev::Part::create_part(partnumber => 'sp1',
- description => 'Testpart assortment',
- )->save;
- push(@parts, $part1);
-
- my $number_of_parts = delete $params{number_of_parts} || 3;
-
- for my $i ( 2 .. $number_of_parts ) {
- my $part = $parts[0]->clone_and_reset;
- $part->partnumber( $part->partnumber . " " . $i );
- $part->description( $part->description . " " . $i );
- $part->save;
- push(@parts, $part);
+ my $assortment_items = [];
+ if ( $params{assortment_items} ) {
+ $assortment_items = $params{assortment_items};
+ } else {
+ # no assortment items were passed, create a part, clone it several times
+ # and add to assortment as assortment_items
+ my @parts;
+ my $part1 = SL::Dev::Part::create_part(partnumber => 'sp1',
+ description => 'Testpart assortment',
+ )->save;
+ push(@parts, $part1);
+
+ my $number_of_parts = delete $params{number_of_parts} || 3;
+
+ for my $i ( 2 .. $number_of_parts ) {
+ my $part = $parts[0]->clone_and_reset;
+ $part->partnumber( ($part->partnumber // '') . " " . $i );
+ $part->description( ($part->description // '') . " " . $i );
+ $part->save;
+ push(@parts, $part);
+ }
+ my $position = 0;
+ foreach my $part ( @parts ) {
+ push( @{$assortment_items}, SL::DB::AssortmentItem->new(parts_id => $part->id,
+ qty => 1,
+ position => $position++,
+ charge => 1,
+ unit => $part->unit,
+ ));
+ }