class="recalc") %]
</td>
<td>
- [%- SET EDIT_PRICES = 1 %]
- [%- IF EDIT_PRICES %]
- [%- L.button_tag("price_chooser_item_row(this)", ITEM.active_price_source.source_description, name = "price_chooser_button") %]
- [%- END %]
+ [%- L.button_tag("price_chooser_item_row(this)", ITEM.active_price_source.source_description, name = "price_chooser_button") %]
</td>
<td>
[%- L.hidden_tag("order.orderitems[].active_price_source", ITEM.active_price_source.source) %]
- [%- IF EDIT_PRICES %]
+ [%- SET EDIT_PRICE = (AUTH.assert('edit_prices', 1) && ITEM.active_price_source.source == '') %]
+ <div name="editable_price" [%- IF !EDIT_PRICE %]style="display:none"[%- END %]>
[%- L.input_tag("order.orderitems[].sellprice_as_number",
ITEM.sellprice_as_number,
size = 10,
style='text-align:right',
+ disabled=(EDIT_PRICE? '' : 1),
class="recalc") %]
- [%- ELSE %]
- [%- ITEM.sellprice_as_number %]
- [%- L.hidden_tag("order.orderitems[].sellprice_as_number", ITEM.sellprice_as_number) %]
- [%- END %]
+ </div>
+ <div name="not_editable_price" [%- IF EDIT_PRICE %]style="display:none"[%- END %]>
+ [%- L.div_tag(ITEM.sellprice_as_number, name="sellprice_text", style='text-align:right') %]
+ [%- L.hidden_tag("order.orderitems[].sellprice_as_number",
+ ITEM.sellprice_as_number,
+ disabled=(EDIT_PRICE? 1 : '')) %]
+ </div>
</td>
<td>
[%- L.hidden_tag("order.orderitems[].active_discount_source", ITEM.active_discount_source.source) %]
- [%- L.input_tag("order.orderitems[].discount_as_percent",
- ITEM.discount_as_percent,
- size = 5,
- style='text-align:right',
- class="recalc") %]
+ [%- SET EDIT_DISCOUNT = (AUTH.assert('edit_prices', 1) && ITEM.active_discount_source.source == '') %]
+ <div name="editable_discount" [%- IF !EDIT_DISCOUNT %]style="display:none"[%- END %]>
+ [%- L.input_tag("order.orderitems[].discount_as_percent",
+ ITEM.discount_as_percent,
+ size = 5,
+ style='text-align:right',
+ disabled=(EDIT_DISCOUNT? '' : 1),
+ class="recalc") %]
+ </div>
+ <div name="not_editable_discount" [%- IF EDIT_DISCOUNT %]style="display:none"[%- END %]>
+ [%- L.div_tag(ITEM.discount_as_percent, name="discount_text", style='text-align:right') %]
+ [%- L.hidden_tag("order.orderitems[].discount_as_percent",
+ ITEM.discount_as_percent,
+ disabled=(EDIT_DISCOUNT? 1 : '')) %]
+ </div>
</td>
<td align="right">
[%- L.div_tag(LxERP.format_amount(ITEM.linetotal, 2, 0), name="linetotal") %]
function update_price_source(item_id, source, descr, price_str) {
var row = $('#item_' + item_id).parents("tbody").first();
var source_elt = $(row).find('[name="order.orderitems[].active_price_source"]');
- var price_elt = $(row).find('[name="order.orderitems[].sellprice_as_number"]');
var button_elt = $(row).find('[name="price_chooser_button"]');
button_elt.val(descr);
source_elt.val(source);
- if (price_str) price_elt.val(price_str);
- recalc_amounts_and_taxes();
+ var editable_div_elt = $(row).find('[name="editable_price"]');
+ var not_editable_div_elt = $(row).find('[name="not_editable_price"]');
+ if ([%- AUTH.assert('edit_prices', 1) %] == 1 && source == '') {
+ // editable
+ $(editable_div_elt).show();
+ $(not_editable_div_elt).hide();
+ $(editable_div_elt).find(':input').prop("disabled", false);
+ $(not_editable_div_elt).find(':input').prop("disabled", true);
+ } else {
+ // not editable
+ $(editable_div_elt).hide();
+ $(not_editable_div_elt).show();
+ $(editable_div_elt).find(':input').prop("disabled", true);
+ $(not_editable_div_elt).find(':input').prop("disabled", false);
+ }
+
+ if (price_str) {
+ var price_elt = $(row).find('[name="order.orderitems[].sellprice_as_number"]');
+ var html_elt = $(row).find('[name="sellprice_text"]');
+ price_elt.val(price_str);
+ html_elt.html(price_str);
+ recalc_amounts_and_taxes();
+ }
+
kivi.io.close_dialog();
}
function update_discount_source(item_id, source, discount_str) {
var row = $('#item_' + item_id).parents("tbody").first();
- var source_elt = $(row).find('[name="order.orderitems[].active_discount_source"]');
- var discount_elt = $(row).find('[name="order.orderitems[].discount_as_percent"]');
+ var source_elt = $(row).find('[name="order.orderitems[].active_discount_source"]');
source_elt.val(source);
- if (discount_str) discount_elt.val(discount_str);
- recalc_amounts_and_taxes();
+ var editable_div_elt = $(row).find('[name="editable_discount"]');
+ var not_editable_div_elt = $(row).find('[name="not_editable_discount"]');
+ if ([%- AUTH.assert('edit_prices', 1) %] == 1 && source == '') {
+ // editable
+ $(editable_div_elt).show();
+ $(not_editable_div_elt).hide();
+ $(editable_div_elt).find(':input').prop("disabled", false);
+ $(not_editable_div_elt).find(':input').prop("disabled", true);
+ } else {
+ // not editable
+ $(editable_div_elt).hide();
+ $(not_editable_div_elt).show();
+ $(editable_div_elt).find(':input').prop("disabled", true);
+ $(not_editable_div_elt).find(':input').prop("disabled", false);
+ }
+
+ if (discount_str) {
+ var discount_elt = $(row).find('[name="order.orderitems[].discount_as_percent"]');
+ var html_elt = $(row).find('[name="discount_text"]');
+ discount_elt.val(discount_str);
+ html_elt.html(discount_str);
+ recalc_amounts_and_taxes();
+ }
+
+ kivi.io.close_dialog();
}
function recalc_amounts_and_taxes() {