Delete old asset doctypes from Accounts module and minor changes (#11766)

This commit is contained in:
KanchanChauhan
2017-11-29 16:03:00 +05:30
committed by Nabin Hait
parent 29390d3cb7
commit 2d1cbd0b2e
13 changed files with 144 additions and 56 deletions

View File

@@ -185,7 +185,39 @@
"label": "Asset Owner",
"length": 0,
"no_copy": 0,
"options": "Company\nSupplier\nCustomer",
"options": "\nCompany\nSupplier\nCustomer",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "eval:doc.asset_owner == \"Company\"",
"fieldname": "asset_owner_company",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Asset Owner Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -1189,7 +1221,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-11-21 04:45:24.039059",
"modified": "2017-11-28 07:10:24.760982",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset",

View File

@@ -246,6 +246,7 @@ class TestAsset(unittest.TestCase):
self.assertEqual(gle, expected_gle)
si.cancel()
frappe.delete_doc("Sales Invoice", si.name)
self.assertEqual(frappe.db.get_value("Asset", "Macbook Pro 1", "status"), "Partially Depreciated")
@@ -293,7 +294,8 @@ def create_asset():
"next_depreciation_date": "2020-12-31",
"gross_purchase_amount": 100000,
"expected_value_after_useful_life": 10000,
"warehouse": "_Test Warehouse - _TC"
"warehouse": "_Test Warehouse - _TC",
"asset_owner": "Company"
})
try:
asset.save()

View File

@@ -3,13 +3,15 @@
frappe.ui.form.on('Asset Maintenance', {
setup: (frm) => {
frm.fields_dict["asset_maintenance_tasks"].grid.get_field("assign_to").get_query = function(){
frm.set_query("assign_to", "asset_maintenance_tasks", function(doc) {
return {
query: "erpnext.assets.doctype.asset_maintenance.asset_maintenance.get_team_members",
filters: {
parent: frm.doc.maintenance_team
maintenance_team: doc.maintenance_team
}
};
},
});
frm.set_indicator_formatter('maintenance_status',
function(doc) {
let indicator = 'blue';

View File

@@ -420,7 +420,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-11-21 04:42:54.893169",
"modified": "2017-11-29 04:42:54.893169",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Maintenance",

View File

@@ -16,26 +16,43 @@ class AssetMaintenance(Document):
throw(_("Start date should be less than end date for task {0}").format(task.maintenance_task))
if getdate(task.next_due_date) < getdate(nowdate()):
task.maintenance_status = "Overdue"
if not self.get("__islocal"):
if not task.assign_to:
task.assign_to = self.maintenance_manager
if task.assign_to:
self.assign_tasks(task)
def on_update(self):
self.sync_maintenance_tasks()
def after_insert(self):
for task in self.get('asset_maintenance_tasks'):
self.assign_tasks(task)
def assign_tasks(self, task):
team_member = frappe.get_doc('User', task.assign_to).email
args = {
'doctype' : self.doctype,
'assign_to' : team_member,
'name' : self.name,
'description' : task.maintenance_task,
'date' : task.next_due_date
}
if not frappe.db.sql("""select owner from `tabToDo`
where reference_type=%(doctype)s and reference_name=%(name)s and status="Open"
and owner=%(assign_to)s""", args):
assign_to.add(args)
if not task.assign_to:
task.db_set("assign_to", self.maintenance_manager)
task.db_set("assign_to_name", self.maintenance_manager_name)
if task.assign_to:
team_member = frappe.get_doc('User', task.assign_to).email
args = {
'doctype' : self.doctype,
'assign_to' : team_member,
'name' : self.name,
'description' : task.maintenance_task,
'date' : task.next_due_date
}
if not frappe.db.sql("""select owner from `tabToDo`
where reference_type=%(doctype)s and reference_name=%(name)s and status="Open"
and owner=%(assign_to)s""", args):
assign_to.add(args)
def sync_maintenance_tasks(self):
tasks_names = []
for task in self.get('asset_maintenance_tasks'):
tasks_names.append(task.name)
update_maintenance_log(asset_maintenance = self.name, item_code = self.item_code, item_name = self.item_name, task = task)
asset_maintenance_logs = frappe.get_all("Asset Maintenance Log", fields=["name"], filters = {"asset_maintenance": self.name,
"task": ("not in", tasks_names)})
if asset_maintenance_logs:
for asset_maintenance_log in asset_maintenance_logs:
maintenance_log = frappe.get_doc('Asset Maintenance Log', asset_maintenance_log.name)
maintenance_log.db_set('maintenance_status', 'Cancelled')
@frappe.whitelist()
def calculate_next_due_date(periodicity, start_date = None, end_date = None, last_completion_date = None, next_due_date = None):
@@ -44,7 +61,6 @@ def calculate_next_due_date(periodicity, start_date = None, end_date = None, las
if last_completion_date and (last_completion_date > start_date or not start_date):
start_date = last_completion_date
if periodicity == 'Daily':
next_due_date = add_days(start_date, 1)
if periodicity == 'Weekly':
@@ -61,11 +77,44 @@ def calculate_next_due_date(periodicity, start_date = None, end_date = None, las
next_due_date = ""
return next_due_date
def update_maintenance_log(asset_maintenance, item_code, item_name, task):
asset_maintenance_log = frappe.get_value("Asset Maintenance Log", {"asset_maintenance": asset_maintenance,
"task": task.maintenance_task, "maintenance_status": ('in',['Planned','Overdue'])})
if not asset_maintenance_log:
asset_maintenance_log = frappe.get_doc({
"doctype": "Asset Maintenance Log",
"asset_maintenance": asset_maintenance,
"asset_name": asset_maintenance,
"item_code": item_code,
"item_name": item_name,
"task": task.maintenance_task,
"has_certificate": task.certificate_required,
"description": task.description,
"assign_to_name": task.assign_to_name,
"periodicity": str(task.periodicity),
"maintenance_type": task.maintenance_type,
"due_date": task.next_due_date
})
asset_maintenance_log.insert()
else:
maintenance_log = frappe.get_doc('Asset Maintenance Log', asset_maintenance_log)
maintenance_log.assign_to_name = task.assign_to_name
maintenance_log.has_certificate = task.certificate_required
maintenance_log.description = task.description
maintenance_log.periodicity = str(task.periodicity)
maintenance_log.maintenance_type = task.maintenance_type
maintenance_log.due_date = task.next_due_date
maintenance_log.save()
@frappe.whitelist()
def get_team_members(doctype, txt, searchfield, start, page_len, filters):
return frappe.db.get_values('Maintenance Team Member', {'parent':filters.get("maintenance_team")})
@frappe.whitelist()
def get_maintenance_log(asset_name):
return frappe.db.sql("""
select maintenance_status, count(asset_name) as count, asset_name
from `tabAsset Maintenance Log`
where asset_name=%s group by maintenance_status""",
(asset_name), as_dict=1)
(asset_name), as_dict=1)

View File

@@ -67,7 +67,8 @@ def create_asset():
"warehouse": "_Test Warehouse - _TC",
"company": "_Test Company",
"purchase_date": nowdate(),
"maintenance_required": 1
"maintenance_required": 1,
"asset_owner": "Company"
}).insert()
def create_maintenance_team():

View File

@@ -458,7 +458,7 @@
"label": "Maintenance Status",
"length": 0,
"no_copy": 0,
"options": "Pending\nCompleted\nCancelled\nOverdue",
"options": "Planned\nCompleted\nCancelled\nOverdue",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -723,7 +723,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-10-29 08:38:55.707903",
"modified": "2017-11-28 13:15:01.689318",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Maintenance Log",

View File

@@ -11,14 +11,14 @@ from erpnext.assets.doctype.asset_maintenance.asset_maintenance import calculate
class AssetMaintenanceLog(Document):
def validate(self):
# if getdate(self.due_date) > getdate(nowdate()):
# self.maintenance_status = "Overdue"
if getdate(self.due_date) < getdate(nowdate()):
self.maintenance_status = "Overdue"
if self.maintenance_status == "Completed" and not self.completion_date:
frappe.throw(_("Please select Completion Date for Completed Asset Maintenance Log"))
# if self.maintenance_status != "Completed" and self.completion_date:
# frappe.throw(_("Please select Maintenance Status as Completed or remove Completion Date"))
if self.maintenance_status != "Completed" and self.completion_date:
frappe.throw(_("Please select Maintenance Status as Completed or remove Completion Date"))
def on_submit(self):
if self.maintenance_status not in ['Completed', 'Cancelled']:
@@ -37,7 +37,8 @@ class AssetMaintenanceLog(Document):
if self.maintenance_status == "Cancelled":
asset_maintenance_doc.maintenance_status = "Cancelled"
asset_maintenance_doc.save()
asset_maintenance_doc = frappe.get_doc('Asset Maintenance', self.asset_maintenance)
asset_maintenance_doc.save()
@frappe.whitelist()
def get_maintenance_tasks(doctype, txt, searchfield, start, page_len, filters):

View File

@@ -363,7 +363,7 @@
"label": "Assign To",
"length": 0,
"no_copy": 0,
"options": "Maintenance Team Member",
"options": "User",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -625,7 +625,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2017-10-25 21:51:38.931436",
"modified": "2017-11-28 12:22:34.151430",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Maintenance Task",

View File

@@ -18,7 +18,7 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"columns": 1,
"fieldname": "asset_name",
"fieldtype": "Link",
"hidden": 0,
@@ -200,7 +200,7 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"columns": 1,
"fieldname": "failure_date",
"fieldtype": "Datetime",
"hidden": 0,
@@ -208,7 +208,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Failure Date",
"length": 0,
@@ -361,7 +361,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Repair Status",
"length": 0,
@@ -541,7 +541,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Downtime",
"length": 0,
@@ -658,7 +658,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-10-24 16:55:03.424503",
"modified": "2017-11-29 00:49:11.172141",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Repair",

View File

@@ -0,0 +1,13 @@
frappe.listview_settings['Asset Repair'] = {
add_fields: ["repair_status"],
get_indicator: function(doc) {
if(doc.repair_status=="Pending") {
return [__("Pending"), "orange"];
} else if(doc.repair_status=="Completed") {
return [__("Completed"), "green"];
} else if(doc.repair_status=="Cancelled") {
return [__("Cancelled"), "red"];
}
}
};