fix(pos): edge case while closing pos (#31748)
* fix(pos): edge case while closing pos * fix: linter * fix: setting posting_time in pos invoice merge log
This commit is contained in:
parent
aafb735283
commit
756fe4b375
@ -36,6 +36,15 @@ frappe.ui.form.on('POS Closing Entry', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
set_html_data(frm);
|
set_html_data(frm);
|
||||||
|
|
||||||
|
if (frm.doc.docstatus == 1) {
|
||||||
|
if (!frm.doc.posting_date) {
|
||||||
|
frm.set_value("posting_date", frappe.datetime.nowdate());
|
||||||
|
}
|
||||||
|
if (!frm.doc.posting_time) {
|
||||||
|
frm.set_value("posting_time", frappe.datetime.now_time());
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
refresh: function(frm) {
|
refresh: function(frm) {
|
||||||
|
|||||||
@ -11,6 +11,7 @@
|
|||||||
"period_end_date",
|
"period_end_date",
|
||||||
"column_break_3",
|
"column_break_3",
|
||||||
"posting_date",
|
"posting_date",
|
||||||
|
"posting_time",
|
||||||
"pos_opening_entry",
|
"pos_opening_entry",
|
||||||
"status",
|
"status",
|
||||||
"section_break_5",
|
"section_break_5",
|
||||||
@ -51,7 +52,6 @@
|
|||||||
"fieldtype": "Datetime",
|
"fieldtype": "Datetime",
|
||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"label": "Period End Date",
|
"label": "Period End Date",
|
||||||
"read_only": 1,
|
|
||||||
"reqd": 1
|
"reqd": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -219,6 +219,13 @@
|
|||||||
"fieldtype": "Small Text",
|
"fieldtype": "Small Text",
|
||||||
"label": "Error",
|
"label": "Error",
|
||||||
"read_only": 1
|
"read_only": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "posting_time",
|
||||||
|
"fieldtype": "Time",
|
||||||
|
"label": "Posting Time",
|
||||||
|
"no_copy": 1,
|
||||||
|
"reqd": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
@ -228,10 +235,11 @@
|
|||||||
"link_fieldname": "pos_closing_entry"
|
"link_fieldname": "pos_closing_entry"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"modified": "2021-10-20 16:19:25.340565",
|
"modified": "2022-08-01 11:37:14.991228",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "POS Closing Entry",
|
"name": "POS Closing Entry",
|
||||||
|
"naming_rule": "Expression (old style)",
|
||||||
"owner": "Administrator",
|
"owner": "Administrator",
|
||||||
"permissions": [
|
"permissions": [
|
||||||
{
|
{
|
||||||
@ -278,5 +286,6 @@
|
|||||||
],
|
],
|
||||||
"sort_field": "modified",
|
"sort_field": "modified",
|
||||||
"sort_order": "DESC",
|
"sort_order": "DESC",
|
||||||
|
"states": [],
|
||||||
"track_changes": 1
|
"track_changes": 1
|
||||||
}
|
}
|
||||||
@ -15,6 +15,9 @@ from erpnext.controllers.status_updater import StatusUpdater
|
|||||||
|
|
||||||
class POSClosingEntry(StatusUpdater):
|
class POSClosingEntry(StatusUpdater):
|
||||||
def validate(self):
|
def validate(self):
|
||||||
|
self.posting_date = self.posting_date or frappe.utils.nowdate()
|
||||||
|
self.posting_time = self.posting_time or frappe.utils.nowtime()
|
||||||
|
|
||||||
if frappe.db.get_value("POS Opening Entry", self.pos_opening_entry, "status") != "Open":
|
if frappe.db.get_value("POS Opening Entry", self.pos_opening_entry, "status") != "Open":
|
||||||
frappe.throw(_("Selected POS Opening Entry should be open."), title=_("Invalid Opening Entry"))
|
frappe.throw(_("Selected POS Opening Entry should be open."), title=_("Invalid Opening Entry"))
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
"engine": "InnoDB",
|
"engine": "InnoDB",
|
||||||
"field_order": [
|
"field_order": [
|
||||||
"posting_date",
|
"posting_date",
|
||||||
|
"posting_time",
|
||||||
"merge_invoices_based_on",
|
"merge_invoices_based_on",
|
||||||
"column_break_3",
|
"column_break_3",
|
||||||
"pos_closing_entry",
|
"pos_closing_entry",
|
||||||
@ -105,12 +106,19 @@
|
|||||||
"label": "Customer Group",
|
"label": "Customer Group",
|
||||||
"mandatory_depends_on": "eval:doc.merge_invoices_based_on == 'Customer Group'",
|
"mandatory_depends_on": "eval:doc.merge_invoices_based_on == 'Customer Group'",
|
||||||
"options": "Customer Group"
|
"options": "Customer Group"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "posting_time",
|
||||||
|
"fieldtype": "Time",
|
||||||
|
"label": "Posting Time",
|
||||||
|
"no_copy": 1,
|
||||||
|
"reqd": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2021-09-14 11:17:19.001142",
|
"modified": "2022-08-01 11:36:42.456429",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "POS Invoice Merge Log",
|
"name": "POS Invoice Merge Log",
|
||||||
@ -173,5 +181,6 @@
|
|||||||
],
|
],
|
||||||
"sort_field": "modified",
|
"sort_field": "modified",
|
||||||
"sort_order": "DESC",
|
"sort_order": "DESC",
|
||||||
|
"states": [],
|
||||||
"track_changes": 1
|
"track_changes": 1
|
||||||
}
|
}
|
||||||
@ -9,7 +9,7 @@ from frappe import _
|
|||||||
from frappe.core.page.background_jobs.background_jobs import get_info
|
from frappe.core.page.background_jobs.background_jobs import get_info
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.model.mapper import map_child_doc, map_doc
|
from frappe.model.mapper import map_child_doc, map_doc
|
||||||
from frappe.utils import cint, flt, getdate, nowdate
|
from frappe.utils import cint, flt, get_time, getdate, nowdate, nowtime
|
||||||
from frappe.utils.background_jobs import enqueue
|
from frappe.utils.background_jobs import enqueue
|
||||||
from frappe.utils.scheduler import is_scheduler_inactive
|
from frappe.utils.scheduler import is_scheduler_inactive
|
||||||
|
|
||||||
@ -99,6 +99,7 @@ class POSInvoiceMergeLog(Document):
|
|||||||
sales_invoice.is_consolidated = 1
|
sales_invoice.is_consolidated = 1
|
||||||
sales_invoice.set_posting_time = 1
|
sales_invoice.set_posting_time = 1
|
||||||
sales_invoice.posting_date = getdate(self.posting_date)
|
sales_invoice.posting_date = getdate(self.posting_date)
|
||||||
|
sales_invoice.posting_time = get_time(self.posting_time)
|
||||||
sales_invoice.save()
|
sales_invoice.save()
|
||||||
sales_invoice.submit()
|
sales_invoice.submit()
|
||||||
|
|
||||||
@ -115,6 +116,7 @@ class POSInvoiceMergeLog(Document):
|
|||||||
credit_note.is_consolidated = 1
|
credit_note.is_consolidated = 1
|
||||||
credit_note.set_posting_time = 1
|
credit_note.set_posting_time = 1
|
||||||
credit_note.posting_date = getdate(self.posting_date)
|
credit_note.posting_date = getdate(self.posting_date)
|
||||||
|
credit_note.posting_time = get_time(self.posting_time)
|
||||||
# TODO: return could be against multiple sales invoice which could also have been consolidated?
|
# TODO: return could be against multiple sales invoice which could also have been consolidated?
|
||||||
# credit_note.return_against = self.consolidated_invoice
|
# credit_note.return_against = self.consolidated_invoice
|
||||||
credit_note.save()
|
credit_note.save()
|
||||||
@ -402,6 +404,9 @@ def create_merge_logs(invoice_by_customer, closing_entry=None):
|
|||||||
merge_log.posting_date = (
|
merge_log.posting_date = (
|
||||||
getdate(closing_entry.get("posting_date")) if closing_entry else nowdate()
|
getdate(closing_entry.get("posting_date")) if closing_entry else nowdate()
|
||||||
)
|
)
|
||||||
|
merge_log.posting_time = (
|
||||||
|
get_time(closing_entry.get("posting_time")) if closing_entry else nowtime()
|
||||||
|
)
|
||||||
merge_log.customer = customer
|
merge_log.customer = customer
|
||||||
merge_log.pos_closing_entry = closing_entry.get("name") if closing_entry else None
|
merge_log.pos_closing_entry = closing_entry.get("name") if closing_entry else None
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user