fix: merge conflict
This commit is contained in:
@@ -74,9 +74,18 @@ erpnext.SerialNoBatchSelector = class SerialNoBatchSelector {
|
||||
fieldname: 'qty',
|
||||
fieldtype:'Float',
|
||||
read_only: me.has_batch && !me.has_serial_no,
|
||||
label: __(me.has_batch && !me.has_serial_no ? 'Total Qty' : 'Qty'),
|
||||
label: __(me.has_batch && !me.has_serial_no ? 'Selected Qty' : 'Qty'),
|
||||
default: flt(me.item.stock_qty),
|
||||
},
|
||||
...get_pending_qty_fields(me),
|
||||
{
|
||||
fieldname: 'uom',
|
||||
read_only: 1,
|
||||
fieldtype: 'Link',
|
||||
options: 'UOM',
|
||||
label: __('UOM'),
|
||||
default: me.item.uom
|
||||
},
|
||||
{
|
||||
fieldname: 'auto_fetch_button',
|
||||
fieldtype:'Button',
|
||||
@@ -173,6 +182,7 @@ erpnext.SerialNoBatchSelector = class SerialNoBatchSelector {
|
||||
|
||||
if (this.has_batch && !this.has_serial_no) {
|
||||
this.update_total_qty();
|
||||
this.update_pending_qtys();
|
||||
}
|
||||
|
||||
this.dialog.show();
|
||||
@@ -314,7 +324,23 @@ erpnext.SerialNoBatchSelector = class SerialNoBatchSelector {
|
||||
qty_field.set_input(total_qty);
|
||||
}
|
||||
|
||||
get_batch_fields() {
|
||||
update_pending_qtys: function() {
|
||||
const pending_qty_field = this.dialog.fields_dict.pending_qty;
|
||||
const total_selected_qty_field = this.dialog.fields_dict.total_selected_qty;
|
||||
|
||||
if (!pending_qty_field || !total_selected_qty_field) return;
|
||||
|
||||
const me = this;
|
||||
const required_qty = this.dialog.fields_dict.required_qty.value;
|
||||
const selected_qty = this.dialog.fields_dict.qty.value;
|
||||
const total_selected_qty = selected_qty + calc_total_selected_qty(me);
|
||||
const pending_qty = required_qty - total_selected_qty;
|
||||
|
||||
pending_qty_field.set_input(pending_qty);
|
||||
total_selected_qty_field.set_input(total_selected_qty);
|
||||
}
|
||||
|
||||
get_batch_fields: function() {
|
||||
var me = this;
|
||||
|
||||
return [
|
||||
@@ -415,6 +441,7 @@ erpnext.SerialNoBatchSelector = class SerialNoBatchSelector {
|
||||
}
|
||||
|
||||
me.update_total_qty();
|
||||
me.update_pending_qtys();
|
||||
}
|
||||
},
|
||||
],
|
||||
@@ -510,4 +537,61 @@ erpnext.SerialNoBatchSelector = class SerialNoBatchSelector {
|
||||
}
|
||||
];
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
function get_pending_qty_fields(me) {
|
||||
if (!check_can_calculate_pending_qty(me)) return [];
|
||||
const { frm: { doc: { fg_completed_qty }}, item: { item_code, stock_qty }} = me;
|
||||
const { qty_consumed_per_unit } = erpnext.stock.bom.items[item_code];
|
||||
|
||||
const total_selected_qty = calc_total_selected_qty(me);
|
||||
const required_qty = flt(fg_completed_qty) * flt(qty_consumed_per_unit);
|
||||
const pending_qty = required_qty - (flt(stock_qty) + total_selected_qty);
|
||||
|
||||
const pending_qty_fields = [
|
||||
{ fieldtype: 'Section Break', label: __('Pending Quantity') },
|
||||
{
|
||||
fieldname: 'required_qty',
|
||||
read_only: 1,
|
||||
fieldtype: 'Float',
|
||||
label: __('Required Qty'),
|
||||
default: required_qty
|
||||
},
|
||||
{ fieldtype: 'Column Break' },
|
||||
{
|
||||
fieldname: 'total_selected_qty',
|
||||
read_only: 1,
|
||||
fieldtype: 'Float',
|
||||
label: __('Total Selected Qty'),
|
||||
default: total_selected_qty
|
||||
},
|
||||
{ fieldtype: 'Column Break' },
|
||||
{
|
||||
fieldname: 'pending_qty',
|
||||
read_only: 1,
|
||||
fieldtype: 'Float',
|
||||
label: __('Pending Qty'),
|
||||
default: pending_qty
|
||||
},
|
||||
];
|
||||
return pending_qty_fields;
|
||||
}
|
||||
|
||||
function calc_total_selected_qty(me) {
|
||||
const { frm: { doc: { items }}, item: { name, item_code }} = me;
|
||||
const totalSelectedQty = items
|
||||
.filter( item => ( item.name !== name ) && ( item.item_code === item_code ) )
|
||||
.map( item => flt(item.qty) )
|
||||
.reduce( (i, j) => i + j, 0);
|
||||
return totalSelectedQty;
|
||||
}
|
||||
|
||||
function check_can_calculate_pending_qty(me) {
|
||||
const { frm: { doc }, item } = me;
|
||||
const docChecks = doc.bom_no
|
||||
&& doc.fg_completed_qty
|
||||
&& erpnext.stock.bom
|
||||
&& erpnext.stock.bom.name === doc.bom_no;
|
||||
const itemChecks = !!item;
|
||||
return docChecks && itemChecks;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user