}
if ($rest_qty > 0) {
die SL::X::Inventory::Allocation->new(
- error => 'not enough to allocate',
- msg => t8("can not allocate #1 units of #2, missing #3 units", _format_number($qty), $part->displayable_name, _format_number($rest_qty)),
+ code => 'not enough to allocate',
+ message => t8("can not allocate #1 units of #2, missing #3 units", _format_number($qty), $part->displayable_name, _format_number($rest_qty)),
);
} else {
if ($params{constraints}) {
if ('CODE' eq ref $constraints) {
if (!$constraints->(@$allocations)) {
die SL::X::Inventory::Allocation->new(
- error => 'allocation constraints failure',
- msg => t8("Allocations didn't pass constraints"),
+ code => 'allocation constraints failure',
+ message => t8("Allocations didn't pass constraints"),
);
}
} else {
SL::DB::Bin->load_cached($_->bin_id)->full_description,
_format_number($_->qty), _format_number($needed), $_->chargenumber ? $_->chargenumber : '--') for @allocs;
die SL::X::Inventory::Allocation->new(
- error => 'allocation constraints failure',
- msg => $err,
+ code => 'allocation constraints failure',
+ message => $err,
);
}
}
$allocations_by_part{ $assembly->parts_id } -= $assembly->qty * $qty;
}
- die "allocations are insufficient for production" if any { $_ < 0 } values %allocations_by_part;
+ die SL::X::Inventory::Allocation->new(
+ code => "allocations are insufficient for production",
+ message => t8('can not allocate enough resources for production'),
+ ) if any { $_ < 0 } values %allocations_by_part;
}
my @transfers;
use SL::X::Base;
+
+# note! the default fields "message", "error" and "show_trace" are created by
+# Exception::Class if message or error are given, they are used for
+# stringification, so don't use them in error_templates
+#
use Exception::Class (
'SL::X::FormError' => {
isa => 'SL::X::Base',
},
'SL::X::Inventory' => {
isa => 'SL::X::Base',
- fields => [ qw(msg error) ],
- defaults => { error_template => [ '%s: %s', qw(msg) ] },
+ fields => [ qw(code) ],
},
'SL::X::Inventory::Allocation' => {
isa => 'SL::X::Base',
- fields => [ qw(msg error) ],
- defaults => { error_template => [ '%s: %s', qw(msg) ] },
+ fields => [ qw(code) ],
},
);