Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions rmax_custom/fixtures/property_setter.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,36 @@
[
{
"default_value": null,
"doc_type": "Material Request",
"docstatus": 0,
"doctype": "Property Setter",
"doctype_or_field": "DocField",
"field_name": "material_request_type",
"is_system_generated": 0,
"modified": "2026-04-06 18:01:32.807738",
"module": null,
"name": "Material Request-material_request_type-default",
"property": "default",
"property_type": "Text",
"row_name": null,
"value": "Material Transfer"
},
{
"default_value": null,
"doc_type": "Landed Cost Item",
"docstatus": 0,
"doctype": "Property Setter",
"doctype_or_field": "DocField",
"field_name": "qty",
"is_system_generated": 0,
"modified": "2026-03-14 15:18:50.370102",
"module": null,
"name": "Landed Cost Item-qty-columns",
"property": "columns",
"property_type": "Int",
"row_name": null,
"value": "1"
},
{
"default_value": null,
"doc_type": "Material Request",
Expand Down
18 changes: 5 additions & 13 deletions rmax_custom/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"/assets/rmax_custom/js/create_customer.js",
"/assets/rmax_custom/js/create_multiple_supplier.js",
"/assets/rmax_custom/js/materiel_request.js"

]


Expand Down Expand Up @@ -289,18 +290,6 @@
]
]
},
{
"dt": "Property Setter",
"filters": [
[
"name",
"in",
[
"Landed Cost Item-qty-columns",
]
]
]
},
{
"dt": "Property Setter",
"filters": [
Expand All @@ -313,7 +302,10 @@
"Material Request Item-schedule_date-reqd",
"Material Request Item-schedule_date-hidden",
"Material Request Item-schedule_date-default",
"Material Request-schedule_date-hidden"
"Material Request-schedule_date-hidden",
"Landed Cost Item-qty-columns",
"Material Request-material_request_type-default"

]
]
]
Expand Down
28 changes: 22 additions & 6 deletions rmax_custom/public/js/materiel_request.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,29 @@ frappe.ui.form.on('Material Request', {
if (frm.is_new()) {
set_default_target(frm);
}
},
frm.set_query('set_warehouse', function() {
return {
ignore_user_permissions: 1,
filters: {
name: frm.doc.set_warehouse
}
};
});
frm.set_query('set_from_warehouse', function() {
return {
ignore_user_permissions: 1,
filters: {
company: frm.doc.company,
name: ["!=", frm.doc.set_warehouse]

}
};
})

},
material_request_type: function(frm) {
set_default_target(frm);
}

},
});

function set_default_target(frm) {
Expand All @@ -26,9 +43,7 @@ function set_default_target(frm) {
},
callback: function(r) {
if (r.message && r.message.length > 0 && r.message[0].for_value) {

let default_wh = r.message[0].for_value;

frm.set_value('set_warehouse', default_wh).then(() => {
frm.refresh_field('set_warehouse');
});
Expand All @@ -38,4 +53,5 @@ function set_default_target(frm) {
});

}
}
}

58 changes: 32 additions & 26 deletions rmax_custom/rmax_custom/doctype/stock_transfer/stock_transfer.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,41 @@ frappe.ui.form.on('Stock Transfer', {
return {
ignore_user_permissions: 1,
filters: {
<<<<<<< HEAD
company: frm.doc.company
=======
name: frm.doc.set_source_warehouse
>>>>>>> 6c629b7 (feat: stock transfer implementation)
}
};
});
frm.set_query('set_target_warehouse', function() {
return {
ignore_user_permissions: 1,
filters: {
<<<<<<< HEAD
company: frm.doc.company
=======
company: frm.doc.company,
name: ["!=", frm.doc.set_source_warehouse]

>>>>>>> 6c629b7 (feat: stock transfer implementation)
}
};
});
},

refresh: function(frm) {
if (frm.doc.__islocal && !frm.doc.__source_fixed) {
setTimeout(() => {
frm.set_value('set_source_warehouse', '');
frm.set_value('set_target_warehouse', '');
frm.doc.__source_fixed = true;

}, 200);
}
},
before_save: function(frm) {

if (frm.doc.set_source_warehouse) {
if (frm.doc.set_target_warehouse) {

frappe.call({
method: "frappe.client.get_list",
Expand All @@ -46,7 +55,7 @@ frappe.ui.form.on('Stock Transfer', {
filters: {
user: frappe.session.user,
allow: "Warehouse",
for_value: frm.doc.set_source_warehouse
for_value: frm.doc.set_target_warehouse
},
fields: ["name"]
},
Expand All @@ -62,7 +71,7 @@ frappe.ui.form.on('Stock Transfer', {
doctype: "User Permission",
user: frappe.session.user,
allow: "Warehouse",
for_value: frm.doc.set_source_warehouse
for_value: frm.doc.set_target_warehouse
}
}
});
Expand All @@ -75,33 +84,30 @@ frappe.ui.form.on('Stock Transfer', {

});


function set_default_target(frm) {

if (!frm.doc.set_target_warehouse) {

frappe.call({
method: "frappe.client.get_list",
args: {
doctype: "User Permission",
filters: {
user: frappe.session.user,
allow: "Warehouse",
is_default: 1
},
fields: ["for_value"],
limit: 1
frappe.call({
method: "frappe.client.get_list",
args: {
doctype: "User Permission",
filters: {
user: frappe.session.user,
allow: "Warehouse",
is_default: 1
},
callback: function(r) {
fields: ["for_value"],
limit: 1
},
callback: function(r) {

if (r.message && r.message.length > 0) {
let default_wh = r.message[0].for_value;
frm.set_value('set_target_warehouse', default_wh);
if (r.message && r.message.length > 0) {
let default_wh = r.message[0].for_value;
if (!frm.doc.set_source_warehouse) {
frm.set_value('set_source_warehouse', default_wh);
}

}
});
}
}
});
}

frappe.ui.form.on('Stock Transfer Item', {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,8 @@ def create_stock_entry(self):
"""Create Stock Entry for Material Transfer"""
if not self.set_target_warehouse:
frappe.throw("Target Warehouse is required")

if not self.set_source_warehouse:
frappe.throw("Source Warehouse is required")

if not self.items:
frappe.throw("No items found")
se = frappe.new_doc("Stock Entry")
Expand All @@ -43,18 +41,17 @@ def create_stock_entry(self):
"s_warehouse": self.set_source_warehouse,
"t_warehouse": self.set_target_warehouse
})

se.insert()
self.stock_entry = se.name
self.stock_entry_created = 1

se.submit()
frappe.msgprint(
f'Stock Entry Created: <a href="/app/stock-entry/{se.name}">{se.name}</a>',
alert=True,
indicator='green'
)



@frappe.whitelist()
def get_item_uom_conversion(item_code, uom):
Expand Down
Loading