Revision 68cfa9b9
Von Bernd Bleßmann vor etwa 1 Jahr hinzugefügt
t/wh/inventory.t | ||
---|---|---|
is(SL::Helper::Inventory::get_stock(part => $part1), "0.00000", 'and consumes...');
|
||
is(SL::Helper::Inventory::get_stock(part => $part2), "0.00000", '..the materials');
|
||
|
||
|
||
# check with own allocations
|
||
set_stock(
|
||
part => $part1,
|
||
qty => 12,
|
||
bin => $bin2,
|
||
);
|
||
set_stock(
|
||
part => $part2,
|
||
qty => 6.34,
|
||
bin => $bin2,
|
||
);
|
||
@alloc1 = SL::Helper::Inventory::allocate(part => $part1, qty => 12);
|
||
@alloc2 = SL::Helper::Inventory::allocate(part => $part2, qty => 6.34);
|
||
|
||
lives_ok {
|
||
SL::Helper::Inventory::produce_assembly(
|
||
part => $assembly_service,
|
||
qty => 1,
|
||
allocations => [ @alloc1, @alloc2 ],
|
||
|
||
# where to put it
|
||
bin => $bin1,
|
||
);
|
||
} 'no exception on produce_assembly with own allocations (no service)';
|
||
|
||
is(SL::Helper::Inventory::get_stock(part => $assembly_service), "2.00000", 'produce with own allocations works');
|
||
is(SL::Helper::Inventory::get_stock(part => $part1), "0.00000", 'and consumes...');
|
||
is(SL::Helper::Inventory::get_stock(part => $part2), "0.00000", '..the materials');
|
||
|
||
# check comments and warehouses
|
||
$::form->{l_comment} = 'Y';
|
||
$::form->{l_warehouse_from} = 'Y';
|
||
... | ... | |
'part_type' => 'assembly',
|
||
'warehouse_to' => 'Warehouse'
|
||
}),
|
||
ignore(), ignore(),
|
||
superhashof({
|
||
'comment' => 'Used for assembly '. $assembly_service->partnumber .' Ein Erzeugnis mit Dienstleistungen',
|
||
'warehouse_from' => 'Warehouse'
|
||
}),
|
||
superhashof({
|
||
'comment' => 'Used for assembly '. $assembly_service->partnumber .' Ein Erzeugnis mit Dienstleistungen',
|
||
'warehouse_from' => 'Warehouse'
|
||
}),
|
||
superhashof({
|
||
'part_type' => 'assembly',
|
||
'warehouse_to' => 'Warehouse'
|
||
}),
|
||
],
|
||
"Comments for assembly with service productions are ok"
|
||
);
|
||
... | ... | |
like $e->errors->[0]->message, qr/can not allocate 1,2 units of service number 1 We really need this service, missing 1,2 units/,
|
||
"producing assembly with services and unstocked service throws correct error message";
|
||
|
||
is(SL::Helper::Inventory::get_stock(part => $assembly_service), "1.00000", 'produce without service does not work');
|
||
is(SL::Helper::Inventory::get_stock(part => $assembly_service), "2.00000", 'produce without service does not work');
|
||
is(SL::Helper::Inventory::get_stock(part => $part1), "12.00000", 'and does not consume...');
|
||
is(SL::Helper::Inventory::get_stock(part => $part2), "6.34000", '..the materials');
|
||
|
||
... | ... | |
bin => $bin1,
|
||
);
|
||
|
||
is(SL::Helper::Inventory::get_stock(part => $assembly_service), "2.00000", 'produce with service does work if services is needed and stocked');
|
||
is(SL::Helper::Inventory::get_stock(part => $assembly_service), "3.00000", 'produce with service does work if services is needed and stocked');
|
||
is(SL::Helper::Inventory::get_stock(part => $part1), "0.00000", 'and does consume...');
|
||
is(SL::Helper::Inventory::get_stock(part => $part2), "0.00000", '..the materials');
|
||
is(SL::Helper::Inventory::get_stock(part => $service1), "0.00000", '..and service');
|
||
|
||
# check with own allocations
|
||
set_stock(
|
||
part => $part1,
|
||
qty => 12,
|
||
bin => $bin2,
|
||
);
|
||
set_stock(
|
||
part => $part2,
|
||
qty => 6.34,
|
||
bin => $bin2,
|
||
);
|
||
is('SL::DB::Part', ref $service1);
|
||
set_stock(
|
||
part => $service1,
|
||
qty => 1.2,
|
||
bin => $bin2,
|
||
);
|
||
|
||
@alloc1 = SL::Helper::Inventory::allocate(part => $part1, qty => 12);
|
||
@alloc2 = SL::Helper::Inventory::allocate(part => $part2, qty => 6.34);
|
||
my @alloc3 = SL::Helper::Inventory::allocate(part => $service1, qty => 1.2);
|
||
|
||
lives_ok {
|
||
SL::Helper::Inventory::produce_assembly(
|
||
part => $assembly_service,
|
||
qty => 1,
|
||
allocations => [ @alloc1, @alloc2, @alloc3 ],
|
||
|
||
# where to put it
|
||
bin => $bin1,
|
||
);
|
||
} 'no exception on produce_assembly with own allocations (with service)';
|
||
|
||
is(SL::Helper::Inventory::get_stock(part => $assembly_service), "4.00000", 'produce with own allocations and service does work if services is needed and stocked');
|
||
is(SL::Helper::Inventory::get_stock(part => $part1), "0.00000", 'and does consume...');
|
||
is(SL::Helper::Inventory::get_stock(part => $part2), "0.00000", '..the materials');
|
||
is(SL::Helper::Inventory::get_stock(part => $service1), "0.00000", '..and service');
|
||
... | ... | |
#use Data::Dumper;
|
||
#diag("hier" . Dumper(@contents));
|
||
cmp_deeply(\@contents,
|
||
[ ignore(), ignore(), ignore(), ignore(), ignore(), ignore(), ignore(), ignore(),
|
||
[ ignore(), ignore(), ignore(), ignore(), ignore(), ignore(), ignore(), ignore(), ignore(), ignore(), ignore(), ignore(), ignore(),
|
||
superhashof({
|
||
'comment' => 'Used for assembly '. $assembly_service->partnumber .' Ein Erzeugnis mit Dienstleistungen',
|
||
'warehouse_from' => 'Warehouse'
|
||
}),
|
||
superhashof({
|
||
'comment' => 'Used for assembly '. $assembly_service->partnumber .' Ein Erzeugnis mit Dienstleistungen',
|
||
'warehouse_from' => 'Warehouse'
|
||
}),
|
||
superhashof({
|
||
'comment' => 'Used for assembly '. $assembly_service->partnumber .' Ein Erzeugnis mit Dienstleistungen',
|
||
'warehouse_from' => 'Warehouse',
|
||
'part_type' => 'service',
|
||
'qty' => '1.20000',
|
||
}),
|
||
superhashof({
|
||
'part_type' => 'assembly',
|
||
'warehouse_to' => 'Warehouse'
|
||
}),
|
||
ignore(), ignore(), ignore(),
|
||
superhashof({
|
||
'comment' => 'Used for assembly '. $assembly_service->partnumber .' Ein Erzeugnis mit Dienstleistungen',
|
||
'warehouse_from' => 'Warehouse'
|
||
}),
|
Auch abrufbar als: Unified diff
t:inventory: Test f. produce_assembly mit Diensleistungen bei eigener Allokierung