Merge pull request #35365 from rohitwaghchaure/create-reposting-entries-from-report
feat: provision to make reposting entries from Stock and Account Value Comparison Report
This commit is contained in:
commit
44cd76bb48
@ -33,5 +33,40 @@ frappe.query_reports["Stock and Account Value Comparison"] = {
|
|||||||
"fieldtype": "Date",
|
"fieldtype": "Date",
|
||||||
"default": frappe.datetime.get_today(),
|
"default": frappe.datetime.get_today(),
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
|
|
||||||
|
get_datatable_options(options) {
|
||||||
|
return Object.assign(options, {
|
||||||
|
checkboxColumn: true,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
onload(report) {
|
||||||
|
report.page.add_inner_button(__("Create Reposting Entries"), function() {
|
||||||
|
let message = `<div>
|
||||||
|
<p>
|
||||||
|
Reposting Entries will change the value of
|
||||||
|
accounts Stock In Hand, and Stock Expenses
|
||||||
|
in the Trial Balance report and will also change
|
||||||
|
the Balance Value in the Stock Balance report.
|
||||||
|
</p>
|
||||||
|
<p>Are you sure you want to create Reposting Entries?</p>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
frappe.confirm(__(message), () => {
|
||||||
|
let indexes = frappe.query_report.datatable.rowmanager.getCheckedRows();
|
||||||
|
let selected_rows = indexes.map(i => frappe.query_report.data[i]);
|
||||||
|
|
||||||
|
frappe.call({
|
||||||
|
method: "erpnext.stock.report.stock_and_account_value_comparison.stock_and_account_value_comparison.create_reposting_entries",
|
||||||
|
args: {
|
||||||
|
rows: selected_rows,
|
||||||
|
company: frappe.query_report.get_filter_values().company
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
from frappe.utils import get_link_to_form, parse_json
|
||||||
|
|
||||||
import erpnext
|
import erpnext
|
||||||
from erpnext.accounts.utils import get_currency_precision, get_stock_accounts
|
from erpnext.accounts.utils import get_currency_precision, get_stock_accounts
|
||||||
@ -134,3 +135,35 @@ def get_columns(filters):
|
|||||||
"width": "120",
|
"width": "120",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def create_reposting_entries(rows, company):
|
||||||
|
if isinstance(rows, str):
|
||||||
|
rows = parse_json(rows)
|
||||||
|
|
||||||
|
entries = []
|
||||||
|
for row in rows:
|
||||||
|
row = frappe._dict(row)
|
||||||
|
|
||||||
|
try:
|
||||||
|
doc = frappe.get_doc(
|
||||||
|
{
|
||||||
|
"doctype": "Repost Item Valuation",
|
||||||
|
"based_on": "Transaction",
|
||||||
|
"status": "Queued",
|
||||||
|
"voucher_type": row.voucher_type,
|
||||||
|
"voucher_no": row.voucher_no,
|
||||||
|
"posting_date": row.posting_date,
|
||||||
|
"company": company,
|
||||||
|
"allow_nagative_stock": 1,
|
||||||
|
}
|
||||||
|
).submit()
|
||||||
|
|
||||||
|
entries.append(get_link_to_form("Repost Item Valuation", doc.name))
|
||||||
|
except frappe.DuplicateEntryError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if entries:
|
||||||
|
entries = ", ".join(entries)
|
||||||
|
frappe.msgprint(_(f"Reposting entries created: {entries}"))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user