return $self->js->render($self);
}
- flash_later('info', 'The order has been saved');
+ flash_later('info', $::locale->text('The order has been saved'));
my @redirect_params = (
action => 'edit',
type => $self->type,
$new_attr{sellprice} = $part->sellprice if ! $item->sellprice;
$new_attr{discount} = $cv_discount if ! $item->discount;
+ # add_custom_variables adds cvars to an orderitem with no cvars for saving, but
+ # they cannot be retrieved via custom_variables until the order/orderitem is
+ # saved. Adding empty custom_variables to new orderitem here solves this problem.
+ $new_attr{custom_variables} = [];
+
$item->assign_attributes(%new_attr);
- $item->id(join('_', 'new', Time::HiRes::gettimeofday(), int rand 1000000000000)) if !$item->id;
$self->order->add_items($item);
$self->_recalc();
- my $row_as_html = $self->p->render('order/tabs/_row', ITEM => $item);
+ my $item_id = join('_', 'new', Time::HiRes::gettimeofday(), int rand 1000000000000);
+ my $row_as_html = $self->p->render('order/tabs/_row', ITEM => $item, ID => $item_id);
$self->js
->append('#row_table_id', $row_as_html)
->val('#add_item_sellprice_as_number', '')
->val('#add_item_discount_as_percent', '')
->run('row_table_scroll_down')
- ->run('row_set_keyboard_events_by_id', $item->id)
+ ->run('row_set_keyboard_events_by_id', $item_id)
->focus('#add_item_parts_id_name');
$self->_js_redisplay_amounts_and_taxes;