Auftrags-Controller: PriceSources: Preis und Rabatt-Feld readonly, wenn nicht frei
[kivitendo-erp.git] / templates / webpages / order / tabs / basic_data.html
index 613c8b3..c67ed37 100644 (file)
@@ -283,26 +283,69 @@ function price_chooser_item_row(clicked) {
 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() {