Unable to set qty in stock entry from purchase receipt

Hi all,

I have a very strange behaviour when trying to set the item qty from a custom script on the stock entry.

The script should extend the “get items from” on the Stock Entry to read items from the Purchase Receipt.

This is the script:

frappe.ui.form.on("Stock Entry", {
  refresh: function(frm) {
    frm.add_custom_button( __("Purchase Receipt"),  function() {
    }, __("Get items from"));
    /*frm.add_custom_button( __("Set qty"),  function() {

function show_purchase_receipt_dialog(frm) {
  var d = new frappe.ui.Dialog({
    'fields': [
        {'fieldname': 'ht', 'fieldtype': 'HTML'},
        {'fieldname': 'purchase_receipt', 'fieldtype': 'Link', 'options': 'Purchase Receipt'}
    primary_action: function(){
        // get values
        var data = d.get_values();
        // hide form
        // load values
        load_items_from_purchase_receipt(frm, data.purchase_receipt);
    primary_action_label: __('Get items')
  d.fields_dict.ht.$wrapper.html( __('Select the purchase receipt that you want to get items from'));

function load_items_from_purchase_receipt(frm, purchase_receipt) {
 	doctype:"Purchase Receipt Item",
 	filters: [
 	    ["parent","=", purchase_receipt]
        fields: ["item_code", "qty", "uom"],
        parent: "Purchase Receipt",
        order_by: "idx"
    callback: function(response) {
      if (response.message) {
        // remove first row
        response.message.forEach(function(item) {
          var child = cur_frm.add_child('items');
          frappe.model.set_value(child.doctype, child.name, 'item_code', item.item_code);
          frappe.model.set_value(child.doctype, child.name, 'uom', item.uom);
          frappe.model.set_value(child.doctype, child.name, 'qty', item.qty);

function set_qty(frm) {
   frm.doc.items.forEach(function(item) {
          frappe.model.set_value(item.doctype, item.name, "qty", 1);

Everything works, except that the qty will not be written along with uom and item_code. I can write it by a separate button, however, this function does not work when executed right after the automatic loading.

Any ideas qhy this fails?