X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=js%2Fkivi.DeliveryOrder.js;h=00a929450168c0c6d8fa96d058789e385ecd2e18;hb=053d0c377df96e552ae9bc28c1c1bded0fdfacac;hp=1552616e8917be7737164b99292988b1f29ab5d1;hpb=e3a020ca1ef252ed029f85ee87e717bc45a447b7;p=kivitendo-erp.git diff --git a/js/kivi.DeliveryOrder.js b/js/kivi.DeliveryOrder.js index 1552616e8..00a929450 100644 --- a/js/kivi.DeliveryOrder.js +++ b/js/kivi.DeliveryOrder.js @@ -78,6 +78,66 @@ namespace('kivi.DeliveryOrder', function(ns) { }); }; + ns.open_stock_in_out_dialog = function(clicked, in_out) { + var $row = $(clicked).parents("tbody").first(); + var id = $row.find('[name="orderitem_ids[+]"]').val(); + $row.uniqueId(); + + kivi.popup_dialog({ + id: "stock_in_out_dialog", + url: "controller.pl?action=DeliveryOrder/stock_in_out_dialog", + data: { + id: $("#id").val(), + type: $("#type").val(), + parts_id: $row.find("[name$=parts_id]").val(), + unit: $row.find("[name$=unit]").val(), + qty_as_number: $row.find("[name$=qty_as_number]").val(), + stock: $row.find("[name$=stock_info]").val(), + item_id: id, + row: $row.attr("id"), + }, + dialog: { title: kivi.t8('Transfer stock') } + }); + }; + + ns.save_updated_stock = function() { + // stock information is saved in DOM as a yaml dump. + // we don't want to do this in javascript so we do a tiny roundtrip to the backend + + let data = []; + $("#stock-in-out-table tr.listrow").each((i,row) => { + let qty = kivi.parse_amount($(row).find(".data-qty").val()); + + if (qty === 0) return; + + data.push({ + qty: qty, + warehouse_id: $(row).find(".data-warehouse-id").val(), + bin_id: $(row).find(".data-bin-id").val(), + chargenumber: $(row).find(".data-chargenumber").val(), + bestbefore: $(row).find(".data-bestbefore").val(), + unit: $(row).find(".data-unit").val(), + delivery_order_items_stock_id: $(row).find(".data-stock-id").val(), + }); + }); + + let row = $(".data-row").val(); + + $.post("controller.pl", + kivi.serialize({ + action: "DeliveryOrder/update_stock_information", + unit: $("#" + row).find("[name$=unit]").val(), + stock_info: data, + row: row + }), + (data) => { + $("#" + row + " .data-stock-info").val(data.stock_info); + $("#" + row + " .data-stock-qty").text(data.stock_qty) + $("#stock_in_out_dialog").dialog("close"); + } + ); + }; + ns.print = function() { $('#print_options').dialog('close');