Merge pull request #37686 from s-aga-r/FIX-37423
feat: allow return of components for SCO that don't have SCR created
This commit is contained in:
commit
74b6bfb9eb
@ -1020,14 +1020,34 @@ class StockEntry(StockController):
|
||||
& (se.docstatus == 1)
|
||||
& (se_detail.item_code == se_item.item_code)
|
||||
& (
|
||||
(se.purchase_order == self.purchase_order)
|
||||
((se.purchase_order == self.purchase_order) & (se_detail.po_detail == se_item.po_detail))
|
||||
if self.subcontract_data.order_doctype == "Purchase Order"
|
||||
else (se.subcontracting_order == self.subcontracting_order)
|
||||
else (
|
||||
(se.subcontracting_order == self.subcontracting_order)
|
||||
& (se_detail.sco_rm_detail == se_item.sco_rm_detail)
|
||||
)
|
||||
)
|
||||
)
|
||||
).run()[0][0]
|
||||
).run()[0][0] or 0
|
||||
|
||||
if flt(total_supplied, precision) > flt(total_allowed, precision):
|
||||
total_returned = 0
|
||||
if self.subcontract_data.order_doctype == "Subcontracting Order":
|
||||
total_returned = (
|
||||
frappe.qb.from_(se)
|
||||
.inner_join(se_detail)
|
||||
.on(se.name == se_detail.parent)
|
||||
.select(Sum(se_detail.transfer_qty))
|
||||
.where(
|
||||
(se.purpose == "Material Transfer")
|
||||
& (se.docstatus == 1)
|
||||
& (se.is_return == 1)
|
||||
& (se_detail.item_code == se_item.item_code)
|
||||
& (se_detail.sco_rm_detail == se_item.sco_rm_detail)
|
||||
& (se.subcontracting_order == self.subcontracting_order)
|
||||
)
|
||||
).run()[0][0] or 0
|
||||
|
||||
if flt(total_supplied - total_returned, precision) > flt(total_allowed, precision):
|
||||
frappe.throw(
|
||||
_("Row {0}# Item {1} cannot be transferred more than {2} against {3} {4}").format(
|
||||
se_item.idx,
|
||||
|
@ -107,7 +107,7 @@ frappe.ui.form.on('Subcontracting Order', {
|
||||
get_materials_from_supplier: function (frm) {
|
||||
let sco_rm_details = [];
|
||||
|
||||
if (frm.doc.status != "Closed" && frm.doc.supplied_items && frm.doc.per_received > 0) {
|
||||
if (frm.doc.status != "Closed" && frm.doc.supplied_items) {
|
||||
frm.doc.supplied_items.forEach(d => {
|
||||
if (d.total_supplied_qty > 0 && d.total_supplied_qty != d.consumed_qty) {
|
||||
sco_rm_details.push(d.name);
|
||||
@ -193,7 +193,7 @@ erpnext.buying.SubcontractingOrderController = class SubcontractingOrderControll
|
||||
}
|
||||
|
||||
has_unsupplied_items() {
|
||||
return this.frm.doc['supplied_items'].some(item => item.required_qty > item.supplied_qty);
|
||||
return this.frm.doc['supplied_items'].some(item => item.required_qty > (item.supplied_qty - item.returned_qty));
|
||||
}
|
||||
|
||||
make_subcontracting_receipt() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user