mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 00:44:45 +00:00
refactor: (ux) Accepted/Rejected/Received Qty UX
(cherry picked from commit 5fb5a757cf)
# Conflicts:
# erpnext/public/js/controllers/buying.js
This commit is contained in:
@@ -361,17 +361,12 @@ class BuyingController(StockController, Subcontracting):
|
|||||||
def validate_accepted_rejected_qty(self):
|
def validate_accepted_rejected_qty(self):
|
||||||
for d in self.get("items"):
|
for d in self.get("items"):
|
||||||
self.validate_negative_quantity(d, ["received_qty","qty", "rejected_qty"])
|
self.validate_negative_quantity(d, ["received_qty","qty", "rejected_qty"])
|
||||||
if not flt(d.received_qty) and flt(d.qty):
|
|
||||||
d.received_qty = flt(d.qty) - flt(d.rejected_qty)
|
|
||||||
|
|
||||||
elif not flt(d.qty) and flt(d.rejected_qty):
|
if not flt(d.received_qty) and (flt(d.qty) or flt(d.rejected_qty)):
|
||||||
d.qty = flt(d.received_qty) - flt(d.rejected_qty)
|
d.received_qty = flt(d.qty) + flt(d.rejected_qty)
|
||||||
|
|
||||||
elif not flt(d.rejected_qty):
|
|
||||||
d.rejected_qty = flt(d.received_qty) - flt(d.qty)
|
|
||||||
|
|
||||||
val = flt(d.qty) + flt(d.rejected_qty)
|
|
||||||
# Check Received Qty = Accepted Qty + Rejected Qty
|
# Check Received Qty = Accepted Qty + Rejected Qty
|
||||||
|
val = flt(d.qty) + flt(d.rejected_qty)
|
||||||
if (flt(val, d.precision("received_qty")) != flt(d.received_qty, d.precision("received_qty"))):
|
if (flt(val, d.precision("received_qty")) != flt(d.received_qty, d.precision("received_qty"))):
|
||||||
frappe.throw(_("Accepted + Rejected Qty must be equal to Received quantity for Item {0}").format(d.item_code))
|
frappe.throw(_("Accepted + Rejected Qty must be equal to Received quantity for Item {0}").format(d.item_code))
|
||||||
|
|
||||||
|
|||||||
@@ -164,24 +164,19 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({
|
|||||||
this.price_list_rate(doc, cdt, cdn);
|
this.price_list_rate(doc, cdt, cdn);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
qty: function(doc, cdt, cdn) {
|
qty: function(doc, cdt, cdn) {
|
||||||
var item = frappe.get_doc(cdt, cdn);
|
var item = frappe.get_doc(cdt, cdn);
|
||||||
|
=======
|
||||||
|
qty(doc, cdt, cdn) {
|
||||||
|
>>>>>>> 5fb5a757cf (refactor: (ux) Accepted/Rejected/Received Qty UX)
|
||||||
if ((doc.doctype == "Purchase Receipt") || (doc.doctype == "Purchase Invoice" && (doc.update_stock || doc.is_return))) {
|
if ((doc.doctype == "Purchase Receipt") || (doc.doctype == "Purchase Invoice" && (doc.update_stock || doc.is_return))) {
|
||||||
frappe.model.round_floats_in(item, ["qty", "received_qty"]);
|
this.calculate_received_qty(doc, cdt, cdn)
|
||||||
|
|
||||||
if(!doc.is_return && this.validate_negative_quantity(cdt, cdn, item, ["qty", "received_qty"])){ return }
|
|
||||||
|
|
||||||
if(!item.rejected_qty && item.qty) {
|
|
||||||
item.received_qty = item.qty;
|
|
||||||
}
|
|
||||||
|
|
||||||
frappe.model.round_floats_in(item, ["qty", "received_qty"]);
|
|
||||||
item.rejected_qty = flt(item.received_qty - item.qty, precision("rejected_qty", item));
|
|
||||||
item.received_stock_qty = flt(item.conversion_factor, precision("conversion_factor", item)) * flt(item.received_qty);
|
|
||||||
}
|
}
|
||||||
this._super(doc, cdt, cdn);
|
this._super(doc, cdt, cdn);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
batch_no: function(doc, cdt, cdn) {
|
batch_no: function(doc, cdt, cdn) {
|
||||||
this._super(doc, cdt, cdn);
|
this._super(doc, cdt, cdn);
|
||||||
},
|
},
|
||||||
@@ -195,14 +190,34 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
calculate_accepted_qty: function(doc, cdt, cdn){
|
calculate_accepted_qty: function(doc, cdt, cdn){
|
||||||
|
=======
|
||||||
|
rejected_qty(doc, cdt, cdn) {
|
||||||
|
this.calculate_received_qty(doc, cdt, cdn)
|
||||||
|
}
|
||||||
|
|
||||||
|
calculate_received_qty(doc, cdt, cdn){
|
||||||
|
>>>>>>> 5fb5a757cf (refactor: (ux) Accepted/Rejected/Received Qty UX)
|
||||||
var item = frappe.get_doc(cdt, cdn);
|
var item = frappe.get_doc(cdt, cdn);
|
||||||
frappe.model.round_floats_in(item, ["received_qty", "rejected_qty"]);
|
frappe.model.round_floats_in(item, ["qty", "rejected_qty"]);
|
||||||
|
|
||||||
if(!doc.is_return && this.validate_negative_quantity(cdt, cdn, item, ["received_qty", "rejected_qty"])){ return }
|
if(!doc.is_return && this.validate_negative_quantity(cdt, cdn, item, ["qty", "rejected_qty"])){ return }
|
||||||
|
|
||||||
|
let received_qty = flt(item.qty + item.rejected_qty, precision("received_qty", item));
|
||||||
|
let received_stock_qty = flt(item.conversion_factor, precision("conversion_factor", item)) * flt(received_qty);
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
item.qty = flt(item.received_qty - item.rejected_qty, precision("qty", item));
|
item.qty = flt(item.received_qty - item.rejected_qty, precision("qty", item));
|
||||||
this.qty(doc, cdt, cdn);
|
this.qty(doc, cdt, cdn);
|
||||||
},
|
},
|
||||||
|
=======
|
||||||
|
frappe.model.set_value(cdt, cdn, "received_qty", received_qty);
|
||||||
|
frappe.model.set_value(cdt, cdn, "received_stock_qty", received_stock_qty);
|
||||||
|
}
|
||||||
|
|
||||||
|
batch_no(doc, cdt, cdn) {
|
||||||
|
super.batch_no(doc, cdt, cdn);
|
||||||
|
}
|
||||||
|
>>>>>>> 5fb5a757cf (refactor: (ux) Accepted/Rejected/Received Qty UX)
|
||||||
|
|
||||||
validate_negative_quantity: function(cdt, cdn, item, fieldnames){
|
validate_negative_quantity: function(cdt, cdn, item, fieldnames){
|
||||||
if(!item || !fieldnames) { return }
|
if(!item || !fieldnames) { return }
|
||||||
|
|||||||
@@ -197,6 +197,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bold": 1,
|
"bold": 1,
|
||||||
|
"default": "0",
|
||||||
"fieldname": "received_qty",
|
"fieldname": "received_qty",
|
||||||
"fieldtype": "Float",
|
"fieldtype": "Float",
|
||||||
"label": "Received Quantity",
|
"label": "Received Quantity",
|
||||||
@@ -204,6 +205,7 @@
|
|||||||
"oldfieldtype": "Currency",
|
"oldfieldtype": "Currency",
|
||||||
"print_hide": 1,
|
"print_hide": 1,
|
||||||
"print_width": "100px",
|
"print_width": "100px",
|
||||||
|
"read_only": 1,
|
||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
"width": "100px"
|
"width": "100px"
|
||||||
},
|
},
|
||||||
@@ -543,6 +545,7 @@
|
|||||||
"fieldname": "stock_qty",
|
"fieldname": "stock_qty",
|
||||||
"fieldtype": "Float",
|
"fieldtype": "Float",
|
||||||
"label": "Accepted Qty in Stock UOM",
|
"label": "Accepted Qty in Stock UOM",
|
||||||
|
"no_copy": 1,
|
||||||
"oldfieldname": "stock_qty",
|
"oldfieldname": "stock_qty",
|
||||||
"oldfieldtype": "Currency",
|
"oldfieldtype": "Currency",
|
||||||
"print_hide": 1,
|
"print_hide": 1,
|
||||||
@@ -882,7 +885,9 @@
|
|||||||
"fieldname": "received_stock_qty",
|
"fieldname": "received_stock_qty",
|
||||||
"fieldtype": "Float",
|
"fieldtype": "Float",
|
||||||
"label": "Received Qty in Stock UOM",
|
"label": "Received Qty in Stock UOM",
|
||||||
"print_hide": 1
|
"no_copy": 1,
|
||||||
|
"print_hide": 1,
|
||||||
|
"read_only": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"depends_on": "eval: doc.uom != doc.stock_uom",
|
"depends_on": "eval: doc.uom != doc.stock_uom",
|
||||||
@@ -969,10 +974,11 @@
|
|||||||
"idx": 1,
|
"idx": 1,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2021-09-01 16:02:40.338597",
|
"modified": "2021-11-03 17:56:53.916921",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Stock",
|
"module": "Stock",
|
||||||
"name": "Purchase Receipt Item",
|
"name": "Purchase Receipt Item",
|
||||||
|
"naming_rule": "Random",
|
||||||
"owner": "Administrator",
|
"owner": "Administrator",
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
"quick_entry": 1,
|
"quick_entry": 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user