$price_src->price(0) if !$price_source->best_price;
}
+ my $discount_src;
+ $discount_src = $price_source->best_discount
+ ? $price_source->best_discount
+ : $price_source->discount_from_source("");
+ $discount_src->discount(0) if !$price_source->best_discount;
$item->sellprice($price_src->price);
$item->active_price_source($price_src);
+ $item->discount($discount_src->discount);
+ $item->active_discount_source($discount_src);
+
+ my $price_editable = $self->order->is_sales ? $::auth->assert('sales_edit_prices', 1) : $::auth->assert('purchase_edit_prices', 1);
$self->js
- ->run('kivi.Order.update_sellprice', $item_id, $item->sellprice_as_number)
+ ->run('kivi.Order.set_price_and_source_text', $item_id, $price_src ->source, $price_src ->source_description, $item->sellprice_as_number, $price_editable)
+ ->run('kivi.Order.set_discount_and_source_text', $item_id, $discount_src->source, $discount_src->source_description, $item->discount_as_percent, $price_editable)
->html('.row_entry:has(#item_' . $item_id . ') [name = "partnumber"] a', $item->part->partnumber)
->val ('.row_entry:has(#item_' . $item_id . ') [name = "order.orderitems[].description"]', $item->description)
->val ('.row_entry:has(#item_' . $item_id . ') [name = "order.orderitems[].longdescription"]', $item->longdescription);
$.post("controller.pl", data, kivi.eval_json_result);
};
- ns.update_price_source = function(item_id, source, descr, price_str, price_editable) {
+ ns.set_price_and_source_text = function(item_id, source, descr, price_str, price_editable) {
var row = $('#item_' + item_id).parents("tbody").first();
var source_elt = $(row).find('[name="order.orderitems[].active_price_source"]');
var button_elt = $(row).find('[name="price_chooser_button"]');
var html_elt = $(row).find('[name="sellprice_text"]');
price_elt.val(price_str);
html_elt.html(price_str);
- ns.recalc_amounts_and_taxes();
}
+ };
+
+ ns.update_price_source = function(item_id, source, descr, price_str, price_editable) {
+ ns.set_price_source_text(item_id, source, descr, price_str, price_editable);
+ if (price_str) ns.recalc_amounts_and_taxes();
kivi.io.close_dialog();
};
- ns.update_discount_source = function(item_id, source, descr, discount_str, price_editable) {
+ ns.set_discount_and_source_text = function(item_id, source, descr, discount_str, price_editable) {
var row = $('#item_' + item_id).parents("tbody").first();
var source_elt = $(row).find('[name="order.orderitems[].active_discount_source"]');
var button_elt = $(row).find('[name="price_chooser_button"]');
var html_elt = $(row).find('[name="discount_text"]');
discount_elt.val(discount_str);
html_elt.html(discount_str);
- ns.recalc_amounts_and_taxes();
}
+ };
+ ns.update_discount_source = function(item_id, source, descr, discount_str, price_editable) {
+ if (discount_str) ns.recalc_amounts_and_taxes();
kivi.io.close_dialog();
};