brotherton-erpnext/erpnext/public/js/controllers/stock_controller.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

150 lines
4.0 KiB
JavaScript
Raw Normal View History

// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt
2013-01-11 13:55:46 +00:00
2014-02-14 10:17:51 +00:00
frappe.provide("erpnext.stock");
2013-01-11 13:55:46 +00:00
2014-02-14 10:17:51 +00:00
erpnext.stock.StockController = class StockController extends frappe.ui.form.Controller {
2014-06-24 13:23:04 +00:00
onload() {
// warehouse query if company
if (this.frm.fields_dict.company) {
this.setup_warehouse_query();
}
}
setup_warehouse_query() {
2015-08-13 06:17:25 +00:00
var me = this;
erpnext.queries.setup_queries(this.frm, "Warehouse", function() {
2014-06-25 07:59:43 +00:00
return erpnext.queries.warehouse(me.frm.doc);
2014-06-24 13:23:04 +00:00
});
}
setup_posting_date_time_check() {
// make posting date default and read only unless explictly checked
frappe.ui.form.on(this.frm.doctype, 'set_posting_date_and_time_read_only', function(frm) {
if(frm.doc.docstatus == 0 && frm.doc.set_posting_time) {
frm.set_df_property('posting_date', 'read_only', 0);
frm.set_df_property('posting_time', 'read_only', 0);
} else {
frm.set_df_property('posting_date', 'read_only', 1);
frm.set_df_property('posting_time', 'read_only', 1);
}
})
frappe.ui.form.on(this.frm.doctype, 'set_posting_time', function(frm) {
frm.trigger('set_posting_date_and_time_read_only');
});
frappe.ui.form.on(this.frm.doctype, 'refresh', function(frm) {
// set default posting date / time
if(frm.doc.docstatus==0) {
if(!frm.doc.posting_date) {
frm.set_value('posting_date', frappe.datetime.nowdate());
}
if(!frm.doc.posting_time) {
frm.set_value('posting_time', frappe.datetime.now_time());
}
frm.trigger('set_posting_date_and_time_read_only');
}
});
}
2013-01-11 13:55:46 +00:00
show_stock_ledger() {
var me = this;
feat: Immutable ledger (#18740) * fix: Reverse GL entry on cancellation of document * fix: Removed set posting time field for multiple docs * fix: Stop future reposting and reverse entry for purchase receipt and delivery note * fix: Change is_cancelled field from select to check * Revert "fix: Removed set posting time field for multiple docs" This reverts commit 81fb808db7da69ab1e58ba226c0cd0b77e5b90c8. * fix: Multiple fixes in GL Entry * fix: Remove future reporting from doctypes * fix: Canceled entry filters in Stock Ledger and General Ledger Report * fix: Remove print statement * fix: Validation for back dated entries * fix: Codacy fixes * fix: Add ignore links to multiple doctypes * fix: Codacy Fixes * fix: Ignore GL Entry and Stock Ledger entry while cancel * fix: Test case fixes * fix: Patch * fix: Codacy * fix: Budget Test Cases * fix: Patch * fix: Patch * fix: Multiple test cases * fix: changes in make_reverse_entry function * fix: Update patch * fix: Test Cases * fix: Test Case fixes * fix: Move patch upward in patches.txt * fix: Budget Test Cases * fix: Test Case and codacy * fix: Patch * fix: Minor label and UX fixes * fix: Move freezing date check * fix: Test Cases * fix: Test cases * fix: Test Cases * fix: Test Case * fix: Remove update_gl_entries_after function * fix: Remove update_gl_entries_after function * fix: Test Cases * fix: Fiscal Year wise backdated entry * fix: Update entries only for current SLE * fix: Remove is_cancelled * fix: Test Cases * fix: Test cases * fix: Test Cases * fix: Uncomment account and stock balance sync logic * fix: Stock balance and Account balance out of sync fixes * fix: Test Cases * fix: Test cases for POS, Stock Reco and Purchase Receipt * fix: Stock Reco tests * fix: Test stock reco precision * fix: Test stock reco for fifo precision * fix: Test stock reco for fifo precision * fix: Stock Entry test case Co-authored-by: Nabin Hait <nabinhait@gmail.com>
2020-04-30 05:08:58 +00:00
if(this.frm.doc.docstatus > 0) {
2014-12-16 11:49:36 +00:00
cur_frm.add_custom_button(__("Stock Ledger"), function() {
2014-02-14 10:17:51 +00:00
frappe.route_options = {
voucher_no: me.frm.doc.name,
from_date: me.frm.doc.posting_date,
to_date: moment(me.frm.doc.modified).format('YYYY-MM-DD'),
company: me.frm.doc.company,
show_cancelled_entries: me.frm.doc.docstatus === 2
};
2014-02-14 10:17:51 +00:00
frappe.set_route("query-report", "Stock Ledger");
}, __("View"));
}
2014-06-24 13:23:04 +00:00
}
2013-10-17 11:31:14 +00:00
show_general_ledger() {
2023-06-04 13:50:28 +00:00
let me = this;
feat: Immutable ledger (#18740) * fix: Reverse GL entry on cancellation of document * fix: Removed set posting time field for multiple docs * fix: Stop future reposting and reverse entry for purchase receipt and delivery note * fix: Change is_cancelled field from select to check * Revert "fix: Removed set posting time field for multiple docs" This reverts commit 81fb808db7da69ab1e58ba226c0cd0b77e5b90c8. * fix: Multiple fixes in GL Entry * fix: Remove future reporting from doctypes * fix: Canceled entry filters in Stock Ledger and General Ledger Report * fix: Remove print statement * fix: Validation for back dated entries * fix: Codacy fixes * fix: Add ignore links to multiple doctypes * fix: Codacy Fixes * fix: Ignore GL Entry and Stock Ledger entry while cancel * fix: Test case fixes * fix: Patch * fix: Codacy * fix: Budget Test Cases * fix: Patch * fix: Patch * fix: Multiple test cases * fix: changes in make_reverse_entry function * fix: Update patch * fix: Test Cases * fix: Test Case fixes * fix: Move patch upward in patches.txt * fix: Budget Test Cases * fix: Test Case and codacy * fix: Patch * fix: Minor label and UX fixes * fix: Move freezing date check * fix: Test Cases * fix: Test cases * fix: Test Cases * fix: Test Case * fix: Remove update_gl_entries_after function * fix: Remove update_gl_entries_after function * fix: Test Cases * fix: Fiscal Year wise backdated entry * fix: Update entries only for current SLE * fix: Remove is_cancelled * fix: Test Cases * fix: Test cases * fix: Test Cases * fix: Uncomment account and stock balance sync logic * fix: Stock balance and Account balance out of sync fixes * fix: Test Cases * fix: Test cases for POS, Stock Reco and Purchase Receipt * fix: Stock Reco tests * fix: Test stock reco precision * fix: Test stock reco for fifo precision * fix: Test stock reco for fifo precision * fix: Stock Entry test case Co-authored-by: Nabin Hait <nabinhait@gmail.com>
2020-04-30 05:08:58 +00:00
if(this.frm.doc.docstatus > 0) {
2014-12-16 11:49:36 +00:00
cur_frm.add_custom_button(__('Accounting Ledger'), function() {
2014-02-14 10:17:51 +00:00
frappe.route_options = {
voucher_no: me.frm.doc.name,
from_date: me.frm.doc.posting_date,
to_date: moment(me.frm.doc.modified).format('YYYY-MM-DD'),
2014-01-03 07:00:24 +00:00
company: me.frm.doc.company,
group_by: "Group by Voucher (Consolidated)",
show_cancelled_entries: me.frm.doc.docstatus === 2
};
2014-02-14 10:17:51 +00:00
frappe.set_route("query-report", "General Ledger");
}, __("View"));
}
2013-01-11 13:55:46 +00:00
}
2023-06-04 13:50:28 +00:00
show_ledger_preview() {
let me = this
if(this.frm.doc.docstatus == 0) {
cur_frm.add_custom_button(__('Accounting Ledger Preview'), function() {
frappe.call({
"method": "erpnext.controllers.stock_controller.show_ledger_preview",
"args": {
"company": me.frm.doc.company,
"doctype": me.frm.doc.doctype,
"docname": me.frm.doc.name
},
"callback": function(response) {
2023-06-21 11:45:46 +00:00
me.make_dialog(response.message);
2023-06-04 13:50:28 +00:00
}
})
}, __("View"));
}
}
2023-06-21 11:45:46 +00:00
make_dialog(data) {
let me = this;
let gl_columns = data.gl_columns;
let gl_data = data.gl_data;
let sl_columns = data.sl_columns;
let sl_data = data.sl_data;
let dialog = new frappe.ui.Dialog({
"size": "extra-large",
"title": __("Ledger Preview"),
"fields": [
{
"fieldtype": "HTML",
"fieldname": "accounting_ledger_preview_html",
"label": __("Accounting Ledger"),
},
{
"fieldtype": "HTML",
"fieldname": "stock_ledger_preview_html",
"label": __("Stock Ledger"),
}
]
});
setTimeout(function() {
me.get_datatable(gl_columns, gl_data, dialog.get_field("accounting_ledger_preview_html").wrapper);
}, 200);
dialog.show();
}
2023-06-12 06:16:51 +00:00
get_datatable(columns, data, wrapper) {
2023-06-04 13:50:28 +00:00
const datatable_options = {
2023-06-12 06:16:51 +00:00
columns: columns,
data: data,
2023-06-04 13:50:28 +00:00
dynamicRowHeight: true,
checkboxColumn: false,
inlineFilters: true,
};
2023-06-12 06:16:51 +00:00
new frappe.DataTable(
wrapper,
2023-06-04 13:50:28 +00:00
datatable_options
);
}
2014-06-24 13:23:04 +00:00
};