Merge branch 'develop' into fix_indentation
This commit is contained in:
commit
c1930fa64d
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,6 @@
|
||||
import frappe
|
||||
import requests
|
||||
from frappe import _
|
||||
|
||||
# api/method/erpnext.erpnext_integrations.exotel_integration.handle_incoming_call
|
||||
# api/method/erpnext.erpnext_integrations.exotel_integration.handle_end_call
|
||||
@ -7,19 +8,24 @@ import requests
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
def handle_incoming_call(**kwargs):
|
||||
exotel_settings = get_exotel_settings()
|
||||
if not exotel_settings.enabled: return
|
||||
try:
|
||||
exotel_settings = get_exotel_settings()
|
||||
if not exotel_settings.enabled: return
|
||||
|
||||
call_payload = kwargs
|
||||
status = call_payload.get('Status')
|
||||
if status == 'free':
|
||||
return
|
||||
call_payload = kwargs
|
||||
status = call_payload.get('Status')
|
||||
if status == 'free':
|
||||
return
|
||||
|
||||
call_log = get_call_log(call_payload)
|
||||
if not call_log:
|
||||
create_call_log(call_payload)
|
||||
else:
|
||||
update_call_log(call_payload, call_log=call_log)
|
||||
call_log = get_call_log(call_payload)
|
||||
if not call_log:
|
||||
create_call_log(call_payload)
|
||||
else:
|
||||
update_call_log(call_payload, call_log=call_log)
|
||||
except Exception as e:
|
||||
frappe.db.rollback()
|
||||
frappe.log_error(title=_('Error in Exotel incoming call'))
|
||||
frappe.db.commit()
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
def handle_end_call(**kwargs):
|
||||
@ -101,4 +107,4 @@ def get_exotel_endpoint(action):
|
||||
api_token=settings.api_token,
|
||||
sid=settings.account_sid,
|
||||
action=action
|
||||
)
|
||||
)
|
||||
|
@ -635,3 +635,4 @@ erpnext.patches.v12_0.remove_bank_remittance_custom_fields
|
||||
erpnext.patches.v12_0.generate_leave_ledger_entries
|
||||
erpnext.patches.v12_0.move_credit_limit_to_customer_credit_limit
|
||||
erpnext.patches.v12_0.add_variant_of_in_item_attribute_table
|
||||
erpnext.patches.v12_0.create_default_energy_point_rules
|
||||
|
@ -0,0 +1,6 @@
|
||||
import frappe
|
||||
from erpnext.setup.install import create_default_energy_point_rules
|
||||
|
||||
def execute():
|
||||
frappe.reload_doc('social', 'doctype', 'energy_point_rule')
|
||||
create_default_energy_point_rules()
|
@ -1,381 +1,391 @@
|
||||
{
|
||||
"allow_import": 1,
|
||||
"autoname": "TASK-.YYYY.-.#####",
|
||||
"creation": "2013-01-29 19:25:50",
|
||||
"doctype": "DocType",
|
||||
"document_type": "Setup",
|
||||
"field_order": [
|
||||
"subject",
|
||||
"project",
|
||||
"issue",
|
||||
"type",
|
||||
"is_group",
|
||||
"column_break0",
|
||||
"status",
|
||||
"priority",
|
||||
"task_weight",
|
||||
"color",
|
||||
"parent_task",
|
||||
"sb_timeline",
|
||||
"exp_start_date",
|
||||
"expected_time",
|
||||
"column_break_11",
|
||||
"exp_end_date",
|
||||
"progress",
|
||||
"is_milestone",
|
||||
"sb_details",
|
||||
"description",
|
||||
"sb_depends_on",
|
||||
"depends_on",
|
||||
"depends_on_tasks",
|
||||
"sb_actual",
|
||||
"act_start_date",
|
||||
"actual_time",
|
||||
"column_break_15",
|
||||
"act_end_date",
|
||||
"sb_costing",
|
||||
"total_costing_amount",
|
||||
"total_expense_claim",
|
||||
"column_break_20",
|
||||
"total_billing_amount",
|
||||
"sb_more_info",
|
||||
"review_date",
|
||||
"closing_date",
|
||||
"column_break_22",
|
||||
"department",
|
||||
"company",
|
||||
"lft",
|
||||
"rgt",
|
||||
"old_parent"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "subject",
|
||||
"fieldtype": "Data",
|
||||
"in_global_search": 1,
|
||||
"label": "Subject",
|
||||
"reqd": 1,
|
||||
"search_index": 1,
|
||||
"in_standard_filter": 1
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"fieldname": "project",
|
||||
"fieldtype": "Link",
|
||||
"in_global_search": 1,
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Project",
|
||||
"oldfieldname": "project",
|
||||
"oldfieldtype": "Link",
|
||||
"options": "Project",
|
||||
"remember_last_selected_value": 1,
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "issue",
|
||||
"fieldtype": "Link",
|
||||
"label": "Issue",
|
||||
"options": "Issue"
|
||||
},
|
||||
{
|
||||
"fieldname": "type",
|
||||
"fieldtype": "Link",
|
||||
"label": "Type",
|
||||
"options": "Task Type"
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"default": "0",
|
||||
"fieldname": "is_group",
|
||||
"fieldtype": "Check",
|
||||
"in_list_view": 1,
|
||||
"label": "Is Group"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break0",
|
||||
"fieldtype": "Column Break",
|
||||
"oldfieldtype": "Column Break",
|
||||
"print_width": "50%",
|
||||
"width": "50%"
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"fieldname": "status",
|
||||
"fieldtype": "Select",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Status",
|
||||
"no_copy": 1,
|
||||
"oldfieldname": "status",
|
||||
"oldfieldtype": "Select",
|
||||
"options": "Open\nWorking\nPending Review\nOverdue\nCompleted\nCancelled"
|
||||
},
|
||||
{
|
||||
"fieldname": "priority",
|
||||
"fieldtype": "Select",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Priority",
|
||||
"oldfieldname": "priority",
|
||||
"oldfieldtype": "Select",
|
||||
"options": "Low\nMedium\nHigh\nUrgent",
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "color",
|
||||
"fieldtype": "Color",
|
||||
"label": "Color"
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"fieldname": "parent_task",
|
||||
"fieldtype": "Link",
|
||||
"ignore_user_permissions": 1,
|
||||
"label": "Parent Task",
|
||||
"options": "Task",
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"collapsible": 1,
|
||||
"collapsible_depends_on": "eval:doc.__islocal",
|
||||
"fieldname": "sb_timeline",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Timeline"
|
||||
},
|
||||
{
|
||||
"fieldname": "exp_start_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Expected Start Date",
|
||||
"oldfieldname": "exp_start_date",
|
||||
"oldfieldtype": "Date"
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"fieldname": "expected_time",
|
||||
"fieldtype": "Float",
|
||||
"label": "Expected Time (in hours)",
|
||||
"oldfieldname": "exp_total_hrs",
|
||||
"oldfieldtype": "Data"
|
||||
},
|
||||
{
|
||||
"fetch_from": "type.weight",
|
||||
"fieldname": "task_weight",
|
||||
"fieldtype": "Float",
|
||||
"label": "Weight"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_11",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"fieldname": "exp_end_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Expected End Date",
|
||||
"oldfieldname": "exp_end_date",
|
||||
"oldfieldtype": "Date",
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "progress",
|
||||
"fieldtype": "Percent",
|
||||
"label": "% Progress"
|
||||
},
|
||||
{
|
||||
"fieldname": "is_milestone",
|
||||
"fieldtype": "Check",
|
||||
"in_list_view": 1,
|
||||
"label": "Is Milestone"
|
||||
},
|
||||
{
|
||||
"fieldname": "sb_details",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Details",
|
||||
"oldfieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "description",
|
||||
"fieldtype": "Text Editor",
|
||||
"in_preview": 1,
|
||||
"label": "Task Description",
|
||||
"oldfieldname": "description",
|
||||
"oldfieldtype": "Text Editor",
|
||||
"print_width": "300px",
|
||||
"width": "300px"
|
||||
},
|
||||
{
|
||||
"fieldname": "sb_depends_on",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Dependencies",
|
||||
"oldfieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "depends_on",
|
||||
"fieldtype": "Table",
|
||||
"label": "Dependent Tasks",
|
||||
"options": "Task Depends On"
|
||||
},
|
||||
{
|
||||
"fieldname": "depends_on_tasks",
|
||||
"fieldtype": "Code",
|
||||
"hidden": 1,
|
||||
"label": "Depends on Tasks",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "sb_actual",
|
||||
"fieldtype": "Section Break",
|
||||
"oldfieldtype": "Column Break",
|
||||
"print_width": "50%",
|
||||
"width": "50%"
|
||||
},
|
||||
{
|
||||
"fieldname": "act_start_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Actual Start Date (via Time Sheet)",
|
||||
"oldfieldname": "act_start_date",
|
||||
"oldfieldtype": "Date",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "actual_time",
|
||||
"fieldtype": "Float",
|
||||
"label": "Actual Time (in hours)",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_15",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "act_end_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Actual End Date (via Time Sheet)",
|
||||
"oldfieldname": "act_end_date",
|
||||
"oldfieldtype": "Date",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"collapsible": 1,
|
||||
"fieldname": "sb_costing",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Costing"
|
||||
},
|
||||
{
|
||||
"fieldname": "total_costing_amount",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Total Costing Amount (via Time Sheet)",
|
||||
"oldfieldname": "actual_budget",
|
||||
"oldfieldtype": "Currency",
|
||||
"options": "Company:company:default_currency",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "total_expense_claim",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Total Expense Claim (via Expense Claim)",
|
||||
"options": "Company:company:default_currency",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_20",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "total_billing_amount",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Total Billing Amount (via Time Sheet)",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"collapsible": 1,
|
||||
"fieldname": "sb_more_info",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "More Info"
|
||||
},
|
||||
{
|
||||
"depends_on": "eval:doc.status == \"Closed\" || doc.status == \"Pending Review\"",
|
||||
"fieldname": "review_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Review Date",
|
||||
"oldfieldname": "review_date",
|
||||
"oldfieldtype": "Date"
|
||||
},
|
||||
{
|
||||
"depends_on": "eval:doc.status == \"Closed\"",
|
||||
"fieldname": "closing_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Closing Date",
|
||||
"oldfieldname": "closing_date",
|
||||
"oldfieldtype": "Date"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_22",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "department",
|
||||
"fieldtype": "Link",
|
||||
"label": "Department",
|
||||
"options": "Department"
|
||||
},
|
||||
{
|
||||
"fieldname": "company",
|
||||
"fieldtype": "Link",
|
||||
"label": "Company",
|
||||
"options": "Company",
|
||||
"remember_last_selected_value": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "lft",
|
||||
"fieldtype": "Int",
|
||||
"hidden": 1,
|
||||
"label": "lft",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "rgt",
|
||||
"fieldtype": "Int",
|
||||
"hidden": 1,
|
||||
"label": "rgt",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "old_parent",
|
||||
"fieldtype": "Data",
|
||||
"hidden": 1,
|
||||
"ignore_user_permissions": 1,
|
||||
"label": "Old Parent",
|
||||
"read_only": 1
|
||||
}
|
||||
],
|
||||
"icon": "fa fa-check",
|
||||
"idx": 1,
|
||||
"max_attachments": 5,
|
||||
"modified": "2019-06-19 09:51:15.599416",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Projects",
|
||||
"name": "Task",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Projects User",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"search_fields": "subject",
|
||||
"show_name_in_global_search": 1,
|
||||
"show_preview_popup": 1,
|
||||
"sort_order": "DESC",
|
||||
"timeline_field": "project",
|
||||
"title_field": "subject",
|
||||
"track_seen": 1
|
||||
}
|
||||
"allow_import": 1,
|
||||
"autoname": "TASK-.YYYY.-.#####",
|
||||
"creation": "2013-01-29 19:25:50",
|
||||
"doctype": "DocType",
|
||||
"document_type": "Setup",
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"subject",
|
||||
"project",
|
||||
"issue",
|
||||
"type",
|
||||
"is_group",
|
||||
"column_break0",
|
||||
"status",
|
||||
"priority",
|
||||
"task_weight",
|
||||
"completed_by",
|
||||
"color",
|
||||
"parent_task",
|
||||
"sb_timeline",
|
||||
"exp_start_date",
|
||||
"expected_time",
|
||||
"column_break_11",
|
||||
"exp_end_date",
|
||||
"progress",
|
||||
"is_milestone",
|
||||
"sb_details",
|
||||
"description",
|
||||
"sb_depends_on",
|
||||
"depends_on",
|
||||
"depends_on_tasks",
|
||||
"sb_actual",
|
||||
"act_start_date",
|
||||
"actual_time",
|
||||
"column_break_15",
|
||||
"act_end_date",
|
||||
"sb_costing",
|
||||
"total_costing_amount",
|
||||
"total_expense_claim",
|
||||
"column_break_20",
|
||||
"total_billing_amount",
|
||||
"sb_more_info",
|
||||
"review_date",
|
||||
"closing_date",
|
||||
"column_break_22",
|
||||
"department",
|
||||
"company",
|
||||
"lft",
|
||||
"rgt",
|
||||
"old_parent"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
"fieldname": "subject",
|
||||
"fieldtype": "Data",
|
||||
"in_global_search": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Subject",
|
||||
"reqd": 1,
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"fieldname": "project",
|
||||
"fieldtype": "Link",
|
||||
"in_global_search": 1,
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Project",
|
||||
"oldfieldname": "project",
|
||||
"oldfieldtype": "Link",
|
||||
"options": "Project",
|
||||
"remember_last_selected_value": 1,
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "issue",
|
||||
"fieldtype": "Link",
|
||||
"label": "Issue",
|
||||
"options": "Issue"
|
||||
},
|
||||
{
|
||||
"fieldname": "type",
|
||||
"fieldtype": "Link",
|
||||
"label": "Type",
|
||||
"options": "Task Type"
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"default": "0",
|
||||
"fieldname": "is_group",
|
||||
"fieldtype": "Check",
|
||||
"in_list_view": 1,
|
||||
"label": "Is Group"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break0",
|
||||
"fieldtype": "Column Break",
|
||||
"oldfieldtype": "Column Break",
|
||||
"print_width": "50%",
|
||||
"width": "50%"
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"fieldname": "status",
|
||||
"fieldtype": "Select",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Status",
|
||||
"no_copy": 1,
|
||||
"oldfieldname": "status",
|
||||
"oldfieldtype": "Select",
|
||||
"options": "Open\nWorking\nPending Review\nOverdue\nCompleted\nCancelled"
|
||||
},
|
||||
{
|
||||
"fieldname": "priority",
|
||||
"fieldtype": "Select",
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 1,
|
||||
"label": "Priority",
|
||||
"oldfieldname": "priority",
|
||||
"oldfieldtype": "Select",
|
||||
"options": "Low\nMedium\nHigh\nUrgent",
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "color",
|
||||
"fieldtype": "Color",
|
||||
"label": "Color"
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"fieldname": "parent_task",
|
||||
"fieldtype": "Link",
|
||||
"ignore_user_permissions": 1,
|
||||
"label": "Parent Task",
|
||||
"options": "Task",
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"collapsible": 1,
|
||||
"collapsible_depends_on": "eval:doc.__islocal",
|
||||
"fieldname": "sb_timeline",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Timeline"
|
||||
},
|
||||
{
|
||||
"fieldname": "exp_start_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Expected Start Date",
|
||||
"oldfieldname": "exp_start_date",
|
||||
"oldfieldtype": "Date"
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"fieldname": "expected_time",
|
||||
"fieldtype": "Float",
|
||||
"label": "Expected Time (in hours)",
|
||||
"oldfieldname": "exp_total_hrs",
|
||||
"oldfieldtype": "Data"
|
||||
},
|
||||
{
|
||||
"fetch_from": "type.weight",
|
||||
"fieldname": "task_weight",
|
||||
"fieldtype": "Float",
|
||||
"label": "Weight"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_11",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"bold": 1,
|
||||
"fieldname": "exp_end_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Expected End Date",
|
||||
"oldfieldname": "exp_end_date",
|
||||
"oldfieldtype": "Date",
|
||||
"search_index": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "progress",
|
||||
"fieldtype": "Percent",
|
||||
"label": "% Progress"
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"fieldname": "is_milestone",
|
||||
"fieldtype": "Check",
|
||||
"in_list_view": 1,
|
||||
"label": "Is Milestone"
|
||||
},
|
||||
{
|
||||
"fieldname": "sb_details",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Details",
|
||||
"oldfieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "description",
|
||||
"fieldtype": "Text Editor",
|
||||
"in_preview": 1,
|
||||
"label": "Task Description",
|
||||
"oldfieldname": "description",
|
||||
"oldfieldtype": "Text Editor",
|
||||
"print_width": "300px",
|
||||
"width": "300px"
|
||||
},
|
||||
{
|
||||
"fieldname": "sb_depends_on",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Dependencies",
|
||||
"oldfieldtype": "Section Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "depends_on",
|
||||
"fieldtype": "Table",
|
||||
"label": "Dependent Tasks",
|
||||
"options": "Task Depends On"
|
||||
},
|
||||
{
|
||||
"fieldname": "depends_on_tasks",
|
||||
"fieldtype": "Code",
|
||||
"hidden": 1,
|
||||
"label": "Depends on Tasks",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "sb_actual",
|
||||
"fieldtype": "Section Break",
|
||||
"oldfieldtype": "Column Break",
|
||||
"print_width": "50%",
|
||||
"width": "50%"
|
||||
},
|
||||
{
|
||||
"fieldname": "act_start_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Actual Start Date (via Time Sheet)",
|
||||
"oldfieldname": "act_start_date",
|
||||
"oldfieldtype": "Date",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "actual_time",
|
||||
"fieldtype": "Float",
|
||||
"label": "Actual Time (in hours)",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_15",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "act_end_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Actual End Date (via Time Sheet)",
|
||||
"oldfieldname": "act_end_date",
|
||||
"oldfieldtype": "Date",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"collapsible": 1,
|
||||
"fieldname": "sb_costing",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Costing"
|
||||
},
|
||||
{
|
||||
"fieldname": "total_costing_amount",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Total Costing Amount (via Time Sheet)",
|
||||
"oldfieldname": "actual_budget",
|
||||
"oldfieldtype": "Currency",
|
||||
"options": "Company:company:default_currency",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "total_expense_claim",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Total Expense Claim (via Expense Claim)",
|
||||
"options": "Company:company:default_currency",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_20",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "total_billing_amount",
|
||||
"fieldtype": "Currency",
|
||||
"label": "Total Billing Amount (via Time Sheet)",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"collapsible": 1,
|
||||
"fieldname": "sb_more_info",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "More Info"
|
||||
},
|
||||
{
|
||||
"depends_on": "eval:doc.status == \"Closed\" || doc.status == \"Pending Review\"",
|
||||
"fieldname": "review_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Review Date",
|
||||
"oldfieldname": "review_date",
|
||||
"oldfieldtype": "Date"
|
||||
},
|
||||
{
|
||||
"depends_on": "eval:doc.status == \"Closed\"",
|
||||
"fieldname": "closing_date",
|
||||
"fieldtype": "Date",
|
||||
"label": "Closing Date",
|
||||
"oldfieldname": "closing_date",
|
||||
"oldfieldtype": "Date"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_22",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "department",
|
||||
"fieldtype": "Link",
|
||||
"label": "Department",
|
||||
"options": "Department"
|
||||
},
|
||||
{
|
||||
"fieldname": "company",
|
||||
"fieldtype": "Link",
|
||||
"label": "Company",
|
||||
"options": "Company",
|
||||
"remember_last_selected_value": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "lft",
|
||||
"fieldtype": "Int",
|
||||
"hidden": 1,
|
||||
"label": "lft",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "rgt",
|
||||
"fieldtype": "Int",
|
||||
"hidden": 1,
|
||||
"label": "rgt",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "old_parent",
|
||||
"fieldtype": "Data",
|
||||
"hidden": 1,
|
||||
"ignore_user_permissions": 1,
|
||||
"label": "Old Parent",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "completed_by",
|
||||
"fieldtype": "Link",
|
||||
"label": "Completed By",
|
||||
"options": "User"
|
||||
}
|
||||
],
|
||||
"icon": "fa fa-check",
|
||||
"idx": 1,
|
||||
"max_attachments": 5,
|
||||
"modified": "2019-09-10 13:46:24.631754",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Projects",
|
||||
"name": "Task",
|
||||
"owner": "Administrator",
|
||||
"permissions": [
|
||||
{
|
||||
"create": 1,
|
||||
"delete": 1,
|
||||
"email": 1,
|
||||
"print": 1,
|
||||
"read": 1,
|
||||
"report": 1,
|
||||
"role": "Projects User",
|
||||
"share": 1,
|
||||
"write": 1
|
||||
}
|
||||
],
|
||||
"search_fields": "subject",
|
||||
"show_name_in_global_search": 1,
|
||||
"show_preview_popup": 1,
|
||||
"sort_field": "modified",
|
||||
"sort_order": "DESC",
|
||||
"timeline_field": "project",
|
||||
"title_field": "subject",
|
||||
"track_seen": 1
|
||||
}
|
58
erpnext/setup/default_energy_point_rules.py
Normal file
58
erpnext/setup/default_energy_point_rules.py
Normal file
@ -0,0 +1,58 @@
|
||||
from __future__ import unicode_literals
|
||||
from frappe import _
|
||||
|
||||
doctype_rule_map = {
|
||||
'Item': {
|
||||
'points': 5,
|
||||
'for_doc_event': 'New'
|
||||
},
|
||||
'Customer': {
|
||||
'points': 5,
|
||||
'for_doc_event': 'New'
|
||||
},
|
||||
'Supplier': {
|
||||
'points': 5,
|
||||
'for_doc_event': 'New'
|
||||
},
|
||||
'Lead': {
|
||||
'points': 2,
|
||||
'for_doc_event': 'New'
|
||||
},
|
||||
'Opportunity': {
|
||||
'points': 10,
|
||||
'for_doc_event': 'Custom',
|
||||
'condition': 'doc.status=="Converted"',
|
||||
'rule_name': _('On Converting Opportunity'),
|
||||
'user_field': 'converted_by'
|
||||
},
|
||||
'Sales Order': {
|
||||
'points': 10,
|
||||
'for_doc_event': 'Submit',
|
||||
'rule_name': _('On Sales Order Submission'),
|
||||
'user_field': 'modified_by'
|
||||
},
|
||||
'Purchase Order': {
|
||||
'points': 10,
|
||||
'for_doc_event': 'Submit',
|
||||
'rule_name': _('On Purchase Order Submission'),
|
||||
'user_field': 'modified_by'
|
||||
},
|
||||
'Task': {
|
||||
'points': 5,
|
||||
'condition': 'doc.status == "Completed"',
|
||||
'rule_name': _('On Task Completion'),
|
||||
'user_field': 'completed_by'
|
||||
}
|
||||
}
|
||||
|
||||
def get_default_energy_point_rules():
|
||||
return [{
|
||||
'doctype': 'Energy Point Rule',
|
||||
'reference_doctype': doctype,
|
||||
'for_doc_event': rule.get('for_doc_event') or 'Custom',
|
||||
'condition': rule.get('condition'),
|
||||
'rule_name': rule.get('rule_name') or _('On {0} Creation').format(doctype),
|
||||
'points': rule.get('points'),
|
||||
'user_field': rule.get('user_field') or 'owner'
|
||||
} for doctype, rule in doctype_rule_map.items()]
|
||||
|
@ -2,26 +2,26 @@ from __future__ import unicode_literals
|
||||
from frappe import _
|
||||
|
||||
doctype_list = [
|
||||
'Purchase Receipt',
|
||||
'Purchase Invoice',
|
||||
'Quotation',
|
||||
'Sales Order',
|
||||
'Delivery Note',
|
||||
'Sales Invoice'
|
||||
'Purchase Receipt',
|
||||
'Purchase Invoice',
|
||||
'Quotation',
|
||||
'Sales Order',
|
||||
'Delivery Note',
|
||||
'Sales Invoice'
|
||||
]
|
||||
|
||||
def get_message(doctype):
|
||||
return _("{0} has been submitted successfully".format(_(doctype)))
|
||||
return _("{0} has been submitted successfully").format(_(doctype))
|
||||
|
||||
def get_first_success_message(doctype):
|
||||
return _("{0} has been submitted successfully".format(_(doctype)))
|
||||
return get_message(doctype)
|
||||
|
||||
def get_default_success_action():
|
||||
return [{
|
||||
'doctype': 'Success Action',
|
||||
'ref_doctype': doctype,
|
||||
'message': get_message(doctype),
|
||||
'first_success_message': get_first_success_message(doctype),
|
||||
'next_actions': 'new\nprint\nemail'
|
||||
} for doctype in doctype_list]
|
||||
return [{
|
||||
'doctype': 'Success Action',
|
||||
'ref_doctype': doctype,
|
||||
'message': get_message(doctype),
|
||||
'first_success_message': get_first_success_message(doctype),
|
||||
'next_actions': 'new\nprint\nemail'
|
||||
} for doctype in doctype_list]
|
||||
|
||||
|
@ -9,6 +9,7 @@ from .default_success_action import get_default_success_action
|
||||
from frappe import _
|
||||
from frappe.desk.page.setup_wizard.setup_wizard import add_all_roles_to
|
||||
from frappe.custom.doctype.custom_field.custom_field import create_custom_field
|
||||
from erpnext.setup.default_energy_point_rules import get_default_energy_point_rules
|
||||
|
||||
default_mail_footer = """<div style="padding: 7px; text-align: right; color: #888"><small>Sent via
|
||||
<a style="color: #888" href="http://erpnext.org">ERPNext</a></div>"""
|
||||
@ -22,6 +23,7 @@ def after_install():
|
||||
add_all_roles_to("Administrator")
|
||||
create_default_cash_flow_mapper_templates()
|
||||
create_default_success_action()
|
||||
create_default_energy_point_rules()
|
||||
add_company_to_session_defaults()
|
||||
frappe.db.commit()
|
||||
|
||||
@ -86,6 +88,17 @@ def create_default_success_action():
|
||||
doc = frappe.get_doc(success_action)
|
||||
doc.insert(ignore_permissions=True)
|
||||
|
||||
def create_default_energy_point_rules():
|
||||
|
||||
for rule in get_default_energy_point_rules():
|
||||
# check if any rule for ref. doctype exists
|
||||
rule_exists = frappe.db.exists('Energy Point Rule', {
|
||||
'reference_doctype': rule.get('reference_doctype')
|
||||
})
|
||||
if rule_exists: continue
|
||||
doc = frappe.get_doc(rule)
|
||||
doc.insert(ignore_permissions=True)
|
||||
|
||||
def add_company_to_session_defaults():
|
||||
settings = frappe.get_single("Session Default Settings")
|
||||
settings.append("session_defaults", {
|
||||
|
Loading…
Reference in New Issue
Block a user