mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 17:04:47 +00:00
* fix: update status on cancelling visit
* test: updated test for cancelling visits
(cherry picked from commit 11c9a5a79f)
Co-authored-by: Noah Jacob <noahjacobkurian@gmail.com>
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
|
from frappe.utils import format_date
|
||||||
from frappe.utils.data import add_days, formatdate, today
|
from frappe.utils.data import add_days, formatdate, today
|
||||||
|
|
||||||
from erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule import (
|
from erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule import (
|
||||||
@@ -82,6 +83,13 @@ class TestMaintenanceSchedule(unittest.TestCase):
|
|||||||
|
|
||||||
#checks if visit status is back updated in schedule
|
#checks if visit status is back updated in schedule
|
||||||
self.assertTrue(ms.schedules[1].completion_status, "Partially Completed")
|
self.assertTrue(ms.schedules[1].completion_status, "Partially Completed")
|
||||||
|
self.assertEqual(format_date(visit.mntc_date), format_date(ms.schedules[1].actual_date))
|
||||||
|
|
||||||
|
#checks if visit status is updated on cancel
|
||||||
|
visit.cancel()
|
||||||
|
ms.reload()
|
||||||
|
self.assertTrue(ms.schedules[1].completion_status, "Pending")
|
||||||
|
self.assertEqual(ms.schedules[1].actual_date, None)
|
||||||
|
|
||||||
def test_serial_no_filters(self):
|
def test_serial_no_filters(self):
|
||||||
# Without serial no. set in schedule -> returns None
|
# Without serial no. set in schedule -> returns None
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.utils import get_datetime
|
from frappe.utils import format_date, get_datetime
|
||||||
|
|
||||||
from erpnext.utilities.transaction_base import TransactionBase
|
from erpnext.utilities.transaction_base import TransactionBase
|
||||||
|
|
||||||
@@ -28,20 +28,24 @@ class MaintenanceVisit(TransactionBase):
|
|||||||
if item_ref:
|
if item_ref:
|
||||||
start_date, end_date = frappe.db.get_value('Maintenance Schedule Item', item_ref, ['start_date', 'end_date'])
|
start_date, end_date = frappe.db.get_value('Maintenance Schedule Item', item_ref, ['start_date', 'end_date'])
|
||||||
if get_datetime(self.mntc_date) < get_datetime(start_date) or get_datetime(self.mntc_date) > get_datetime(end_date):
|
if get_datetime(self.mntc_date) < get_datetime(start_date) or get_datetime(self.mntc_date) > get_datetime(end_date):
|
||||||
frappe.throw(_("Date must be between {0} and {1}").format(start_date, end_date))
|
frappe.throw(_("Date must be between {0} and {1}")
|
||||||
|
.format(format_date(start_date), format_date(end_date)))
|
||||||
|
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_serial_no()
|
self.validate_serial_no()
|
||||||
self.validate_maintenance_date()
|
self.validate_maintenance_date()
|
||||||
self.validate_purpose_table()
|
self.validate_purpose_table()
|
||||||
|
|
||||||
def update_completion_status(self):
|
def update_status_and_actual_date(self, cancel=False):
|
||||||
|
status = "Pending"
|
||||||
|
actual_date = None
|
||||||
|
if not cancel:
|
||||||
|
status = self.completion_status
|
||||||
|
actual_date = self.mntc_date
|
||||||
if self.maintenance_schedule_detail:
|
if self.maintenance_schedule_detail:
|
||||||
frappe.db.set_value('Maintenance Schedule Detail', self.maintenance_schedule_detail, 'completion_status', self.completion_status)
|
frappe.db.set_value('Maintenance Schedule Detail', self.maintenance_schedule_detail, 'completion_status', status)
|
||||||
|
frappe.db.set_value('Maintenance Schedule Detail', self.maintenance_schedule_detail, 'actual_date', actual_date)
|
||||||
def update_actual_date(self):
|
|
||||||
if self.maintenance_schedule_detail:
|
|
||||||
frappe.db.set_value('Maintenance Schedule Detail', self.maintenance_schedule_detail, 'actual_date', self.mntc_date)
|
|
||||||
|
|
||||||
def update_customer_issue(self, flag):
|
def update_customer_issue(self, flag):
|
||||||
if not self.maintenance_schedule:
|
if not self.maintenance_schedule:
|
||||||
@@ -102,12 +106,12 @@ class MaintenanceVisit(TransactionBase):
|
|||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
self.update_customer_issue(1)
|
self.update_customer_issue(1)
|
||||||
frappe.db.set(self, 'status', 'Submitted')
|
frappe.db.set(self, 'status', 'Submitted')
|
||||||
self.update_completion_status()
|
self.update_status_and_actual_date()
|
||||||
self.update_actual_date()
|
|
||||||
|
|
||||||
def on_cancel(self):
|
def on_cancel(self):
|
||||||
self.check_if_last_visit()
|
self.check_if_last_visit()
|
||||||
frappe.db.set(self, 'status', 'Cancelled')
|
frappe.db.set(self, 'status', 'Cancelled')
|
||||||
|
self.update_status_and_actual_date(cancel=True)
|
||||||
|
|
||||||
def on_update(self):
|
def on_update(self):
|
||||||
pass
|
pass
|
||||||
|
|||||||
Reference in New Issue
Block a user