refactor: add UI elements
This commit is contained in:
parent
6bbe47c671
commit
58dc0e52e1
@ -203,32 +203,57 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends e
|
||||
}
|
||||
|
||||
unreconcile_prompt() {
|
||||
// get linked payments
|
||||
let query_args = {
|
||||
query:"erpnext.accounts.doctype.unreconcile_payments.unreconcile_payments.get_linked_payments_for_doc",
|
||||
filters: {
|
||||
doctype: this.frm.doc.doctype,
|
||||
docname: this.frm.doc.name
|
||||
}
|
||||
}
|
||||
|
||||
new frappe.ui.form.MultiSelectDialog({
|
||||
doctype: "Payment Ledger Entry",
|
||||
target: this.cur_frm,
|
||||
setters: { },
|
||||
add_filters_group: 0,
|
||||
date_field: "posting_date",
|
||||
columns: ["voucher_type", "voucher_no", "allocated_amount"],
|
||||
primary_action_label: "Un-Reconcile",
|
||||
title: "Un-Reconcile Payments",
|
||||
get_query() {
|
||||
return query_args;
|
||||
let child_table_fields = [
|
||||
{ label: __("Voucher Type"), fieldname: "voucher_type", fieldtype: "Dynamic Link", options: "DocType", in_list_view: 1, read_only: 1},
|
||||
{ label: __("Voucher No"), fieldname: "voucher_no", fieldtype: "Link", options: "voucher_type", in_list_view: 1, read_only: 1 },
|
||||
{ label: __("Allocated Amount"), fieldname: "allocated_amount", fieldtype: "Float", in_list_view: 1, read_only: 1 },
|
||||
]
|
||||
let unreconcile_dialog_fields = [
|
||||
{
|
||||
label: __('Allocations'),
|
||||
fieldname: 'allocations',
|
||||
fieldtype: 'Table',
|
||||
read_only: 1,
|
||||
fields: child_table_fields,
|
||||
},
|
||||
action(selections) {
|
||||
console.log(selections);
|
||||
];
|
||||
|
||||
// get linked payments
|
||||
frappe.call({
|
||||
"method": "erpnext.accounts.doctype.unreconcile_payments.unreconcile_payments.get_linked_payments_for_doc",
|
||||
"args": {
|
||||
"company": this.frm.doc.company,
|
||||
"doctype": this.frm.doc.doctype,
|
||||
"docname": this.frm.doc.name
|
||||
},
|
||||
callback: function(r) {
|
||||
if (r.message) {
|
||||
// populate child table with allocations
|
||||
unreconcile_dialog_fields[0].data = r.message;
|
||||
unreconcile_dialog_fields[0].get_data = function(){ return r.message};
|
||||
|
||||
let d = new frappe.ui.Dialog({
|
||||
title: 'Un-Reconcile Allocations',
|
||||
fields: unreconcile_dialog_fields,
|
||||
size: 'large',
|
||||
cannot_add_rows: 1,
|
||||
primary_action_label: 'Un-Reconcile',
|
||||
primary_action(values) {
|
||||
|
||||
let selected_allocations = values.allocations.filter(x=>x.__checked);
|
||||
if (selected_allocations.length > 0) {
|
||||
// assuming each row is an individual voucher
|
||||
// pass this to server side method that created unreconcile doc for row
|
||||
} else {
|
||||
frappe.msgprint("No Selection");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
d.show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
make_maintenance_schedule() {
|
||||
|
@ -73,20 +73,25 @@ def doc_has_payments(doctype, docname):
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_linked_payments_for_doc(doctype, txt, searchfield, start, page_len, filters):
|
||||
if filters.get("doctype") and filters.get("docname"):
|
||||
_dt = filters.get("doctype")
|
||||
_dn = filters.get("docname")
|
||||
def get_linked_payments_for_doc(
|
||||
company: str = None, doctype: str = None, docname: str = None
|
||||
) -> list:
|
||||
if company and doctype and docname:
|
||||
_dt = doctype
|
||||
_dn = docname
|
||||
ple = qb.DocType("Payment Ledger Entry")
|
||||
if _dt in ["Sales Invoice", "Purchase Invoice"]:
|
||||
criteria = [(ple.delinked == 0), (ple.against_voucher_no == _dn), (ple.amount < 0)]
|
||||
|
||||
if txt:
|
||||
criteria.append(ple.voucher_no.like(f"%{txt}%"))
|
||||
criteria = [
|
||||
(ple.delinked == 0),
|
||||
(ple.against_voucher_no == _dn),
|
||||
(ple.amount < 0),
|
||||
(ple.company == company),
|
||||
]
|
||||
|
||||
res = (
|
||||
qb.from_(ple)
|
||||
.select(
|
||||
ple.company,
|
||||
ple.voucher_type,
|
||||
ple.voucher_no,
|
||||
Abs(Sum(ple.amount_in_account_currency)).as_("allocated_amount"),
|
||||
@ -108,3 +113,19 @@ def get_linked_payments_for_doc(doctype, txt, searchfield, start, page_len, filt
|
||||
group_by="against_voucher_no",
|
||||
fields=["against_voucher_type", "against_voucher_no", "Sum(amount_in_account_currency)"],
|
||||
)
|
||||
return []
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def create_unreconcile_doc_for_selection(
|
||||
company: str = None, dt: str = None, dn: str = None, selections: list = None
|
||||
):
|
||||
if selections:
|
||||
# assuming each row is a unique voucher
|
||||
for row in selections:
|
||||
unrecon = frappe.new_doc("Unreconcile Payments")
|
||||
unrecon.company = company
|
||||
unrecon.voucher_type = dt
|
||||
unrecon.voucher_type = dn
|
||||
unrecon.add_references()
|
||||
# remove unselected references
|
||||
|
Loading…
x
Reference in New Issue
Block a user