Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c7ad052c

Von Kivitendo Admin vor etwa 1 Jahr hinzugefügt

  • ID c7ad052c0c34c7c791dd9544b08ab7a6a5e6c0c8
  • Vorgänger 4cb05cc1
  • Nachfolger 8423bf27

Disposition Manager - ein paar Änderungen 2 neu

Folgende Sachen habe ich umbenannt:

DispositionsManager > DispositionManager
dispositionsmanager -> disposition_manager
purchase_bucket -> purchase_bucket_item
form arrayrefs: id -> ids, vendor_id -> vendor_ids
SL::DB::MetaSetup
>PurchaseBucketItem: rose foreign key Relationship für parts: parts -> part

Dadurch, daß sich die Dateinamen geändert haben, ist leider die
git-Änderungshistorie ausgehebelt...

Unterschiede anzeigen:

t/controllers/disposition_manager/disposition_manager.t
1 1
use strict;
2
use Test::More;
2
use Test::More tests => 9;
3 3

  
4 4
use lib 't';
5 5
use Support::TestSetup;
......
7 7
use SL::DB::Part;
8 8
use SL::DB::Inventory;
9 9
use SL::DB::MakeModel;
10
use SL::DB::PurchaseBasket;
11
use SL::Controller::DispositionsManager;
10
use SL::DB::PurchaseBasketItem;
11
use SL::Controller::DispositionManager;
12 12
use DateTime;
13 13
use Data::Dumper;
14 14
use SL::Dev::Part qw(new_part);
......
25 25
my $vendor = new_vendor()->save;
26 26

  
27 27
my $part1 = new_part(
28
  partnumber   => 'Testpart 1 rop no stock',
28
  partnumber   => 'TP 1',
29
  description  => 'Testpart 1 rop no stock',
30
  sellprice    => 5,
31
  lastcost     => 3,
29 32
  rop          => 20,
30 33
  warehouse_id => $wh->id,
31 34
  bin_id       => $bin->id,
......
33 36
)->save;
34 37

  
35 38
my $part2 = new_part(
36
  partnumber   => 'Testpart 2 rop with stock',
39
  partnumber   => 'TP 2',
40
  description  => 'Testpart 2 norop',
37 41
  rop          => 60,
38 42
)->save;
39
set_stock(part => $part2, bin_id => $bin->id, qty => 10);
43
set_stock(part => $part2, bin_id => $bin->id, qty => 80);
44

  
45
for my $i (1 .. 10) {
46
  my $part = new_part(
47
    partnumber   => "TPO $i",
48
    description  => "Testpart onhand $i",
49
    rop          => 50,
50
    sellprice    => 5,
51
    lastcost     => 3,
52
    warehouse_id => $wh->id,
53
    bin_id       => $bin->id,
54
    makemodels   => [ _create_makemodel_for_vendor(vendor => $vendor) ],
55
  )->save;
56
  set_stock(part => $part, bin_id => $bin->id, qty => ($i * 10));
57
}
40 58

  
41
my $part3 = new_part(
42
  partnumber   => 'Testpart 3 norop',
43
  rop          => 60,
44
)->save;
45
set_stock(part => $part3, bin_id => $bin->id, qty => 80);
59
my $controller = SL::Controller::DispositionManager->new();
60
my $reorder_parts = $controller->_get_parts;
61
is(scalar @{$reorder_parts}, 6, "found 6 parts where onhand <= rop");
62

  
63
# die; # die here if you want to test making basket manually
64

  
65
note('creating purchase basket items');
66
$::form = Support::TestSetup->create_new_form;
67
$::form->{ids} = [ map { $_->id } @{$reorder_parts} ];
68

  
69
# call action_add_to_purchase_basket while redirecting rendered HTML output
70
my $output;
71
open(my $outputFH, '>', \$output) or die;
72
my $oldFH = select $outputFH;
73
$controller->action_add_to_purchase_basket;
74
select $oldFH;
75
close $outputFH;
76

  
77
is(SL::DB::Manager::PurchaseBasketItem->get_all_count(), 6, "6 items in purchase basket ok");
78

  
79
# die; # die here if you want to test creating purchase orders manually
80

  
81
note('making purchase order from purchase basket items');
82
my $purchase_basket_items = SL::DB::Manager::PurchaseBasketItem->get_all;
83
$::form = Support::TestSetup->create_new_form;
84
$::form->{ids}        = [ map { $_->id       } @{ $purchase_basket_items } ];
85
$::form->{vendor_ids} = [ map { $vendor->id  } @{ $purchase_basket_items } ];
86

  
87
$controller->action_transfer_to_purchase_order;
88

  
89
is(SL::DB::Manager::Order->get_all_count( where => [ SL::DB::Manager::Order->type_filter('purchase_order') ] ), 1, "1 purchase order created ok");
90
is(SL::DB::Manager::PurchaseBasketItem->get_all_count(), 0, "purchase basket empty after purchase order was created");
46 91

  
47
my $controller = SL::Controller::DispositionsManager->new();
48
my $parts = $controller->_get_parts;
92
my $purchase_order = SL::DB::Manager::Order->get_first();
49 93

  
50
is(scalar @{$parts}, 2, "found 2 parts that are below rop");
94
is( scalar @{$purchase_order->items}, 6, "Purchase order has 6 item ok");
95
my $first_item = $purchase_order->items_sorted->[0];
96
is( $first_item->parts_id, $part1->id, "Purchase order: first item is part1");
97
is( $first_item->qty, 1, "Purchase order: first item has qty 1");
98
cmp_ok( $purchase_order->netamount, '==', 12, "Purchase order: netamount ok");
99
is( $first_item->active_price_source, 'makemodel/' . $first_item->part->makemodels->[0]->id, "Purchase order: first item has correct active_price_source");
51 100

  
52 101
done_testing();
53 102
# clear_up();
......
56 105
  my %params = @_;
57 106
  SL::DB::Manager::Inventory->delete_all(all => 1);
58 107
  SL::DB::Manager::Order->delete_all(all => 1);
59
  SL::DB::Manager::PurchaseBasket->delete_all(all => 1);
108
  SL::DB::Manager::PurchaseBasketItem->delete_all(all => 1);
60 109
  SL::DB::Manager::MakeModel->delete_all(all => 1);
61 110
  SL::DB::Manager::Part->delete_all(all => 1);
62 111
  SL::DB::Manager::Vendor->delete_all(all => 1);
......
73 122
  my $mm = SL::DB::MakeModel->new(make          => $vendor->id,
74 123
                                  model         => '',
75 124
                                  min_order_qty => '1',
76
                                  lastcost      => 0,
125
                                  lastcost      => 2,
77 126
                                  sortorder     => 1,
78 127
                                 );
79 128
  $mm->assign_attributes( %params );

Auch abrufbar als: Unified diff