Added the ability to select a company as a party type, and little changes

This commit is contained in:
Awey01 2024-09-18 14:28:43 +00:00
parent 5a1b2e6c06
commit e272094f74
3 changed files with 62 additions and 0 deletions

View File

@ -0,0 +1,11 @@
import frappe
def add_company_to_party_account_types(bootinfo):
# Проверяем, существует ли объект party_account_types в bootinfo
if "party_account_types" in bootinfo:
# Если "Company" еще нет в списке, добавляем его
if "Company" not in bootinfo["party_account_types"]:
bootinfo["party_account_types"]["Company"] = "Company"
else:
# Инициализируем party_account_types, если его нет
bootinfo["party_account_types"] = {"Company": "Company"}

View File

View File

@ -0,0 +1,51 @@
frappe.ui.form.on('Payment Entry', {
onload: function(frm) {
// Изменяем фильтр для поля Party Type, добавляя "Company"
frm.set_query("party_type", function () {
return {
filters: {
name: ["in", Object.keys(frappe.boot.party_account_types).concat("Company")]
}
};
});
// Фильтр для поля "Party Bank Account" в зависимости от типа Party Type
frm.set_query("party_bank_account", function() {
if (frm.doc.party_type === "Company") {
// Если Party Type = Company, применяем фильтр Is Company Account = Yes
return {
filters: {
is_company_account: 1, // 1 означает "Yes"
company: frm.doc.company
}
};
} else {
// Оригинальный фильтр для других типов Party Type
return {
filters: {
is_company_account: 0, // 0 означает "No"
party_type: frm.doc.party_type,
party: frm.doc.party
}
};
}
});
// Фильтр для поля "Account Paid To" только если Party Type = Company
frm.set_query("paid_to", function() {
if (frm.doc.party_type === "Company") {
// Устанавливаем фильтр для "Account Type in Cash, Bank" только если Party Type = Company
return {
filters: {
account_type: ["in", ["Bank", "Cash"]],
is_group: 0, // 0 означает "No"
company: frm.doc.company // Фильтрация по компании
}
};
} else {
// В других случаях оставляем стандартный фильтр или пустой фильтр
return {};
}
});
}
});