Files
schuetz3-erpnext/erpnext/accounts/report/accounts_payable/accounts_payable.js
2024-03-10 19:45:40 +05:30

196 lines
4.3 KiB
JavaScript

// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt
frappe.query_reports["Accounts Payable"] = {
filters: [
{
fieldname: "company",
label: __("Company"),
fieldtype: "Link",
options: "Company",
reqd: 1,
default: frappe.defaults.get_user_default("Company"),
},
{
fieldname: "report_date",
label: __("Posting Date"),
fieldtype: "Date",
default: frappe.datetime.get_today(),
},
{
fieldname: "finance_book",
label: __("Finance Book"),
fieldtype: "Link",
options: "Finance Book",
},
{
fieldname: "cost_center",
label: __("Cost Center"),
fieldtype: "Link",
options: "Cost Center",
get_query: () => {
var company = frappe.query_report.get_filter_value("company");
return {
filters: {
company: company,
},
};
},
},
{
fieldname: "party_account",
label: __("Payable Account"),
fieldtype: "Link",
options: "Account",
get_query: () => {
var company = frappe.query_report.get_filter_value("company");
return {
filters: {
company: company,
account_type: "Payable",
is_group: 0,
},
};
},
},
{
fieldname: "ageing_based_on",
label: __("Ageing Based On"),
fieldtype: "Select",
options: "Posting Date\nDue Date\nSupplier Invoice Date",
default: "Due Date",
},
{
fieldname: "range1",
label: __("Ageing Range 1"),
fieldtype: "Int",
default: "30",
reqd: 1,
},
{
fieldname: "range2",
label: __("Ageing Range 2"),
fieldtype: "Int",
default: "60",
reqd: 1,
},
{
fieldname: "range3",
label: __("Ageing Range 3"),
fieldtype: "Int",
default: "90",
reqd: 1,
},
{
fieldname: "range4",
label: __("Ageing Range 4"),
fieldtype: "Int",
default: "120",
reqd: 1,
},
{
fieldname: "payment_terms_template",
label: __("Payment Terms Template"),
fieldtype: "Link",
options: "Payment Terms Template",
},
{
fieldname: "party_type",
label: __("Party Type"),
fieldtype: "Autocomplete",
options: get_party_type_options(),
on_change: function () {
frappe.query_report.set_filter_value("party", "");
frappe.query_report.toggle_filter_display(
"supplier_group",
frappe.query_report.get_filter_value("party_type") !== "Supplier"
);
},
},
{
fieldname: "party",
label: __("Party"),
fieldtype: "MultiSelectList",
get_data: function (txt) {
if (!frappe.query_report.filters) return;
let party_type = frappe.query_report.get_filter_value("party_type");
if (!party_type) return;
return frappe.db.get_link_options(party_type, txt);
},
},
{
fieldname: "supplier_group",
label: __("Supplier Group"),
fieldtype: "Link",
options: "Supplier Group",
hidden: 1,
},
{
fieldname: "group_by_party",
label: __("Group By Supplier"),
fieldtype: "Check",
},
{
fieldname: "based_on_payment_terms",
label: __("Based On Payment Terms"),
fieldtype: "Check",
},
{
fieldname: "show_remarks",
label: __("Show Remarks"),
fieldtype: "Check",
},
{
fieldname: "show_future_payments",
label: __("Show Future Payments"),
fieldtype: "Check",
},
{
fieldname: "in_party_currency",
label: __("In Party Currency"),
fieldtype: "Check",
},
{
fieldname: "for_revaluation_journals",
label: __("Revaluation Journals"),
fieldtype: "Check",
},
{
fieldname: "ignore_accounts",
label: __("Group by Voucher"),
fieldtype: "Check",
},
],
formatter: function (value, row, column, data, default_formatter) {
value = default_formatter(value, row, column, data);
if (data && data.bold) {
value = value.bold();
}
return value;
},
onload: function (report) {
report.page.add_inner_button(__("Accounts Payable Summary"), function () {
var filters = report.get_values();
frappe.set_route("query-report", "Accounts Payable Summary", { company: filters.company });
});
},
};
erpnext.utils.add_dimensions("Accounts Payable", 9);
function get_party_type_options() {
let options = [];
frappe.db
.get_list("Party Type", { filters: { account_type: "Payable" }, fields: ["name"] })
.then((res) => {
res.forEach((party_type) => {
options.push(party_type.name);
});
});
return options;
}