mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-07 15:12:51 +00:00
Merge branch 'version-14-hotfix' into asset_repair_link
This commit is contained in:
@@ -471,6 +471,7 @@ class PaymentReconciliation(Document):
|
|||||||
|
|
||||||
def build_qb_filter_conditions(self, get_invoices=False, get_return_invoices=False):
|
def build_qb_filter_conditions(self, get_invoices=False, get_return_invoices=False):
|
||||||
self.common_filter_conditions.clear()
|
self.common_filter_conditions.clear()
|
||||||
|
self.accounting_dimension_filter_conditions.clear()
|
||||||
self.ple_posting_date_filter.clear()
|
self.ple_posting_date_filter.clear()
|
||||||
ple = qb.DocType("Payment Ledger Entry")
|
ple = qb.DocType("Payment Ledger Entry")
|
||||||
|
|
||||||
|
|||||||
@@ -101,7 +101,6 @@ def execute_repost_payment_ledger(docname):
|
|||||||
|
|
||||||
job_name = "payment_ledger_repost_" + docname
|
job_name = "payment_ledger_repost_" + docname
|
||||||
|
|
||||||
if not frappe.utils.background_jobs.is_job_queued(job_name):
|
|
||||||
frappe.enqueue(
|
frappe.enqueue(
|
||||||
method="erpnext.accounts.doctype.repost_payment_ledger.repost_payment_ledger.start_payment_ledger_repost",
|
method="erpnext.accounts.doctype.repost_payment_ledger.repost_payment_ledger.start_payment_ledger_repost",
|
||||||
docname=docname,
|
docname=docname,
|
||||||
|
|||||||
@@ -439,8 +439,7 @@ def reconcile_against_document(args): # nosemgrep
|
|||||||
# cancel advance entry
|
# cancel advance entry
|
||||||
doc = frappe.get_doc(voucher_type, voucher_no)
|
doc = frappe.get_doc(voucher_type, voucher_no)
|
||||||
frappe.flags.ignore_party_validation = True
|
frappe.flags.ignore_party_validation = True
|
||||||
gl_map = doc.build_gl_map()
|
_delete_pl_entries(voucher_type, voucher_no)
|
||||||
create_payment_ledger_entry(gl_map, cancel=1, adv_adj=1)
|
|
||||||
|
|
||||||
for entry in entries:
|
for entry in entries:
|
||||||
check_if_advance_entry_modified(entry)
|
check_if_advance_entry_modified(entry)
|
||||||
@@ -452,11 +451,23 @@ def reconcile_against_document(args): # nosemgrep
|
|||||||
else:
|
else:
|
||||||
update_reference_in_payment_entry(entry, doc, do_not_save=True)
|
update_reference_in_payment_entry(entry, doc, do_not_save=True)
|
||||||
|
|
||||||
|
if doc.doctype == "Journal Entry":
|
||||||
|
try:
|
||||||
|
doc.validate_total_debit_and_credit()
|
||||||
|
except Exception as validation_exception:
|
||||||
|
raise frappe.ValidationError(_(f"Validation Error for {doc.name}")) from validation_exception
|
||||||
|
|
||||||
doc.save(ignore_permissions=True)
|
doc.save(ignore_permissions=True)
|
||||||
# re-submit advance entry
|
# re-submit advance entry
|
||||||
doc = frappe.get_doc(entry.voucher_type, entry.voucher_no)
|
doc = frappe.get_doc(entry.voucher_type, entry.voucher_no)
|
||||||
gl_map = doc.build_gl_map()
|
gl_map = doc.build_gl_map()
|
||||||
create_payment_ledger_entry(gl_map, cancel=0, adv_adj=1)
|
create_payment_ledger_entry(gl_map, update_outstanding="No", cancel=0, adv_adj=1)
|
||||||
|
|
||||||
|
# Only update outstanding for newly linked vouchers
|
||||||
|
for entry in entries:
|
||||||
|
update_voucher_outstanding(
|
||||||
|
entry.against_voucher_type, entry.against_voucher, entry.account, entry.party_type, entry.party
|
||||||
|
)
|
||||||
|
|
||||||
frappe.flags.ignore_party_validation = False
|
frappe.flags.ignore_party_validation = False
|
||||||
|
|
||||||
|
|||||||
@@ -639,7 +639,6 @@
|
|||||||
"width": "70px"
|
"width": "70px"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"allow_on_submit": 1,
|
|
||||||
"fieldname": "ordered_qty",
|
"fieldname": "ordered_qty",
|
||||||
"fieldtype": "Float",
|
"fieldtype": "Float",
|
||||||
"label": "Ordered Qty",
|
"label": "Ordered Qty",
|
||||||
@@ -866,7 +865,7 @@
|
|||||||
"idx": 1,
|
"idx": 1,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2023-01-12 13:13:28.691585",
|
"modified": "2022-12-25 02:51:10.247569",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Selling",
|
"module": "Selling",
|
||||||
"name": "Sales Order Item",
|
"name": "Sales Order Item",
|
||||||
|
|||||||
@@ -106,7 +106,6 @@ class TestItem(FrappeTestCase):
|
|||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
"reserved_qty": 1,
|
"reserved_qty": 1,
|
||||||
"actual_qty": 5,
|
"actual_qty": 5,
|
||||||
"ordered_qty": 10,
|
|
||||||
"projected_qty": 14,
|
"projected_qty": 14,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
def get_data():
|
def get_data():
|
||||||
return {
|
return {
|
||||||
"fieldname": "pick_list",
|
"fieldname": "pick_list",
|
||||||
|
"internal_links": {
|
||||||
|
"Sales Order": ["locations", "sales_order"],
|
||||||
|
},
|
||||||
"transactions": [
|
"transactions": [
|
||||||
{"items": ["Stock Entry", "Delivery Note"]},
|
{"items": ["Stock Entry", "Sales Order", "Delivery Note"]},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1181,7 +1181,7 @@ def get_projected_qty(item_code, warehouse):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_bin_details(item_code, warehouse, company=None, include_child_warehouses=False):
|
def get_bin_details(item_code, warehouse, company=None, include_child_warehouses=False):
|
||||||
bin_details = {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0, "ordered_qty": 0}
|
bin_details = {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0}
|
||||||
|
|
||||||
if warehouse:
|
if warehouse:
|
||||||
from frappe.query_builder.functions import Coalesce, Sum
|
from frappe.query_builder.functions import Coalesce, Sum
|
||||||
@@ -1197,7 +1197,6 @@ def get_bin_details(item_code, warehouse, company=None, include_child_warehouses
|
|||||||
Coalesce(Sum(bin.projected_qty), 0).as_("projected_qty"),
|
Coalesce(Sum(bin.projected_qty), 0).as_("projected_qty"),
|
||||||
Coalesce(Sum(bin.actual_qty), 0).as_("actual_qty"),
|
Coalesce(Sum(bin.actual_qty), 0).as_("actual_qty"),
|
||||||
Coalesce(Sum(bin.reserved_qty), 0).as_("reserved_qty"),
|
Coalesce(Sum(bin.reserved_qty), 0).as_("reserved_qty"),
|
||||||
Coalesce(Sum(bin.ordered_qty), 0).as_("ordered_qty"),
|
|
||||||
)
|
)
|
||||||
.where((bin.item_code == item_code) & (bin.warehouse.isin(warehouses)))
|
.where((bin.item_code == item_code) & (bin.warehouse.isin(warehouses)))
|
||||||
).run(as_dict=True)[0]
|
).run(as_dict=True)[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user