Merge branch 'hotfix' into fix_by_voucher_order
This commit is contained in:
@@ -5,7 +5,7 @@ import frappe
|
|||||||
from erpnext.hooks import regional_overrides
|
from erpnext.hooks import regional_overrides
|
||||||
from frappe.utils import getdate
|
from frappe.utils import getdate
|
||||||
|
|
||||||
__version__ = '11.1.35'
|
__version__ = '11.1.36'
|
||||||
|
|
||||||
def get_default_company(user=None):
|
def get_default_company(user=None):
|
||||||
'''Get default company for user'''
|
'''Get default company for user'''
|
||||||
|
|||||||
@@ -122,11 +122,42 @@
|
|||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"columns": 0,
|
"columns": 0,
|
||||||
"default": "1",
|
|
||||||
"depends_on": "eval:doc.type == \"Earning\"",
|
|
||||||
"fetch_if_empty": 0,
|
"fetch_if_empty": 0,
|
||||||
"fieldname": "is_tax_applicable",
|
"fieldname": "description",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Small Text",
|
||||||
|
"hidden": 0,
|
||||||
|
"ignore_user_permissions": 0,
|
||||||
|
"ignore_xss_filter": 0,
|
||||||
|
"in_filter": 0,
|
||||||
|
"in_global_search": 0,
|
||||||
|
"in_list_view": 1,
|
||||||
|
"in_standard_filter": 0,
|
||||||
|
"label": "Description",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"remember_last_selected_value": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
|
"unique": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"allow_bulk_edit": 0,
|
||||||
|
"allow_in_quick_entry": 0,
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"columns": 0,
|
||||||
|
"fetch_if_empty": 0,
|
||||||
|
"fieldname": "column_break_4",
|
||||||
|
"fieldtype": "Column Break",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"ignore_xss_filter": 0,
|
"ignore_xss_filter": 0,
|
||||||
@@ -134,7 +165,6 @@
|
|||||||
"in_global_search": 0,
|
"in_global_search": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"in_standard_filter": 0,
|
"in_standard_filter": 0,
|
||||||
"label": "Is Tax Applicable",
|
|
||||||
"length": 0,
|
"length": 0,
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
@@ -225,8 +255,10 @@
|
|||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"columns": 0,
|
"columns": 0,
|
||||||
|
"default": "1",
|
||||||
|
"depends_on": "eval:doc.type == \"Earning\"",
|
||||||
"fetch_if_empty": 0,
|
"fetch_if_empty": 0,
|
||||||
"fieldname": "do_not_include_in_total",
|
"fieldname": "is_tax_applicable",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
@@ -235,7 +267,7 @@
|
|||||||
"in_global_search": 0,
|
"in_global_search": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"in_standard_filter": 0,
|
"in_standard_filter": 0,
|
||||||
"label": "Do not include in total",
|
"label": "Is Tax Applicable",
|
||||||
"length": 0,
|
"length": 0,
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
@@ -258,6 +290,7 @@
|
|||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"columns": 0,
|
"columns": 0,
|
||||||
|
"depends_on": "is_tax_applicable",
|
||||||
"fetch_if_empty": 0,
|
"fetch_if_empty": 0,
|
||||||
"fieldname": "deduct_full_tax_on_selected_payroll_date",
|
"fieldname": "deduct_full_tax_on_selected_payroll_date",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
@@ -292,39 +325,7 @@
|
|||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"columns": 0,
|
"columns": 0,
|
||||||
"fetch_if_empty": 0,
|
"fetch_if_empty": 0,
|
||||||
"fieldname": "column_break_4",
|
"fieldname": "round_to_the_nearest_integer",
|
||||||
"fieldtype": "Column Break",
|
|
||||||
"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,
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"translatable": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_in_quick_entry": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fetch_if_empty": 0,
|
|
||||||
"fieldname": "disabled",
|
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
@@ -333,40 +334,7 @@
|
|||||||
"in_global_search": 0,
|
"in_global_search": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"in_standard_filter": 0,
|
"in_standard_filter": 0,
|
||||||
"label": "Disabled",
|
"label": "Round to the Nearest Integer",
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"translatable": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_in_quick_entry": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fetch_if_empty": 0,
|
|
||||||
"fieldname": "description",
|
|
||||||
"fieldtype": "Small Text",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Description",
|
|
||||||
"length": 0,
|
"length": 0,
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
@@ -416,6 +384,72 @@
|
|||||||
"translatable": 0,
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"allow_bulk_edit": 0,
|
||||||
|
"allow_in_quick_entry": 0,
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"columns": 0,
|
||||||
|
"fetch_if_empty": 0,
|
||||||
|
"fieldname": "do_not_include_in_total",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"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": "Do Not Include in Total",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"remember_last_selected_value": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
|
"unique": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"allow_bulk_edit": 0,
|
||||||
|
"allow_in_quick_entry": 0,
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"columns": 0,
|
||||||
|
"fetch_if_empty": 0,
|
||||||
|
"fieldname": "disabled",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"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": "Disabled",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"remember_last_selected_value": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
|
"unique": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"allow_bulk_edit": 0,
|
||||||
"allow_in_quick_entry": 0,
|
"allow_in_quick_entry": 0,
|
||||||
@@ -854,6 +888,40 @@
|
|||||||
"translatable": 0,
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"allow_bulk_edit": 0,
|
||||||
|
"allow_in_quick_entry": 0,
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"columns": 0,
|
||||||
|
"depends_on": "eval:doc.amount_based_on_formula!==1",
|
||||||
|
"fetch_if_empty": 0,
|
||||||
|
"fieldname": "amount",
|
||||||
|
"fieldtype": "Currency",
|
||||||
|
"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": "Amount",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"remember_last_selected_value": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"translatable": 0,
|
||||||
|
"unique": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"allow_bulk_edit": 0,
|
||||||
"allow_in_quick_entry": 0,
|
"allow_in_quick_entry": 0,
|
||||||
@@ -895,7 +963,7 @@
|
|||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"columns": 0,
|
"columns": 0,
|
||||||
"depends_on": "eval:doc.amount_based_on_formula!==0",
|
"depends_on": "amount_based_on_formula",
|
||||||
"fetch_if_empty": 0,
|
"fetch_if_empty": 0,
|
||||||
"fieldname": "formula",
|
"fieldname": "formula",
|
||||||
"fieldtype": "Code",
|
"fieldtype": "Code",
|
||||||
@@ -922,40 +990,6 @@
|
|||||||
"translatable": 0,
|
"translatable": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"allow_bulk_edit": 0,
|
|
||||||
"allow_in_quick_entry": 0,
|
|
||||||
"allow_on_submit": 0,
|
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"depends_on": "eval:doc.amount_based_on_formula!==1",
|
|
||||||
"fetch_if_empty": 0,
|
|
||||||
"fieldname": "amount",
|
|
||||||
"fieldtype": "Currency",
|
|
||||||
"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": "Amount",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"translatable": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"allow_bulk_edit": 0,
|
||||||
"allow_in_quick_entry": 0,
|
"allow_in_quick_entry": 0,
|
||||||
@@ -1034,7 +1068,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2019-05-13 12:55:55.424370",
|
"modified": "2019-06-05 11:19:15.926608",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "HR",
|
"module": "HR",
|
||||||
"name": "Salary Component",
|
"name": "Salary Component",
|
||||||
|
|||||||
@@ -616,6 +616,10 @@ class SalarySlip(TransactionBase):
|
|||||||
elif not row.amount:
|
elif not row.amount:
|
||||||
amount = row.default_amount + row.additional_amount
|
amount = row.default_amount + row.additional_amount
|
||||||
|
|
||||||
|
# apply rounding
|
||||||
|
if frappe.get_cached_value("Salary Component", row.salary_component, "round_to_the_nearest_integer"):
|
||||||
|
amount, additional_amount = rounded(amount), rounded(additional_amount)
|
||||||
|
|
||||||
return amount, additional_amount
|
return amount, additional_amount
|
||||||
|
|
||||||
def calculate_unclaimed_taxable_benefits(self, payroll_period):
|
def calculate_unclaimed_taxable_benefits(self, payroll_period):
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ class TestSalarySlip(unittest.TestCase):
|
|||||||
tax_paid = get_tax_paid_in_period(employee)
|
tax_paid = get_tax_paid_in_period(employee)
|
||||||
|
|
||||||
# total taxable income 586000, 250000 @ 5%, 86000 @ 20% ie. 12500 + 17200
|
# total taxable income 586000, 250000 @ 5%, 86000 @ 20% ie. 12500 + 17200
|
||||||
annual_tax = 113567.79
|
annual_tax = 113568
|
||||||
try:
|
try:
|
||||||
self.assertEqual(tax_paid, annual_tax)
|
self.assertEqual(tax_paid, annual_tax)
|
||||||
except AssertionError:
|
except AssertionError:
|
||||||
@@ -250,7 +250,7 @@ class TestSalarySlip(unittest.TestCase):
|
|||||||
|
|
||||||
# total taxable income 416000, 166000 @ 5% ie. 8300
|
# total taxable income 416000, 166000 @ 5% ie. 8300
|
||||||
try:
|
try:
|
||||||
self.assertEqual(tax_paid, 88607.79)
|
self.assertEqual(tax_paid, 88608)
|
||||||
except AssertionError:
|
except AssertionError:
|
||||||
print("\nSalary Slip - Tax calculation failed on following case\n", data, "\n")
|
print("\nSalary Slip - Tax calculation failed on following case\n", data, "\n")
|
||||||
raise
|
raise
|
||||||
@@ -265,7 +265,7 @@ class TestSalarySlip(unittest.TestCase):
|
|||||||
# total taxable income 566000, 250000 @ 5%, 66000 @ 20%, 12500 + 13200
|
# total taxable income 566000, 250000 @ 5%, 66000 @ 20%, 12500 + 13200
|
||||||
tax_paid = get_tax_paid_in_period(employee)
|
tax_paid = get_tax_paid_in_period(employee)
|
||||||
try:
|
try:
|
||||||
self.assertEqual(tax_paid, 121211.48)
|
self.assertEqual(tax_paid, 121211)
|
||||||
except AssertionError:
|
except AssertionError:
|
||||||
print("\nSalary Slip - Tax calculation failed on following case\n", data, "\n")
|
print("\nSalary Slip - Tax calculation failed on following case\n", data, "\n")
|
||||||
raise
|
raise
|
||||||
@@ -443,7 +443,8 @@ def make_deduction_salary_component(setup=False, test_tax=False):
|
|||||||
"type": "Deduction",
|
"type": "Deduction",
|
||||||
"amount_based_on_formula": 1,
|
"amount_based_on_formula": 1,
|
||||||
"depends_on_payment_days": 0,
|
"depends_on_payment_days": 0,
|
||||||
"variable_based_on_taxable_salary": 1
|
"variable_based_on_taxable_salary": 1,
|
||||||
|
"round_to_the_nearest_integer": 1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
if not test_tax:
|
if not test_tax:
|
||||||
@@ -453,7 +454,8 @@ def make_deduction_salary_component(setup=False, test_tax=False):
|
|||||||
"condition": 'employment_type=="Intern"',
|
"condition": 'employment_type=="Intern"',
|
||||||
"formula": 'base*.1',
|
"formula": 'base*.1',
|
||||||
"type": "Deduction",
|
"type": "Deduction",
|
||||||
"amount_based_on_formula": 1
|
"amount_based_on_formula": 1,
|
||||||
|
"round_to_the_nearest_integer": 1
|
||||||
})
|
})
|
||||||
if setup or test_tax:
|
if setup or test_tax:
|
||||||
make_salary_component(data, test_tax)
|
make_salary_component(data, test_tax)
|
||||||
|
|||||||
@@ -601,3 +601,4 @@ execute:frappe.delete_doc("Report", "Inactive Items")
|
|||||||
erpnext.patches.v11_1.delete_scheduling_tool
|
erpnext.patches.v11_1.delete_scheduling_tool
|
||||||
erpnext.patches.v11_1.update_bank_transaction_status
|
erpnext.patches.v11_1.update_bank_transaction_status
|
||||||
erpnext.patches.v11_1.renamed_delayed_item_report
|
erpnext.patches.v11_1.renamed_delayed_item_report
|
||||||
|
erpnext.patches.v11_1.set_missing_opportunity_from
|
||||||
17
erpnext/patches/v11_1/set_missing_opportunity_from.py
Normal file
17
erpnext/patches/v11_1/set_missing_opportunity_from.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
from __future__ import unicode_literals
|
||||||
|
import frappe
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
|
||||||
|
frappe.reload_doctype("Opportunity")
|
||||||
|
if frappe.db.has_column("Opportunity", "enquiry_from"):
|
||||||
|
frappe.db.sql(""" UPDATE `tabOpportunity` set opportunity_from = enquiry_from
|
||||||
|
where ifnull(opportunity_from, '') = '' and ifnull(enquiry_from, '') != ''""")
|
||||||
|
|
||||||
|
if frappe.db.has_column("Opportunity", "lead") and frappe.db.has_column("Opportunity", "enquiry_from"):
|
||||||
|
frappe.db.sql(""" UPDATE `tabOpportunity` set party_name = lead
|
||||||
|
where enquiry_from = 'Lead' and ifnull(party_name, '') = '' and ifnull(lead, '') != ''""")
|
||||||
|
|
||||||
|
if frappe.db.has_column("Opportunity", "customer") and frappe.db.has_column("Opportunity", "enquiry_from"):
|
||||||
|
frappe.db.sql(""" UPDATE `tabOpportunity` set party_name = customer
|
||||||
|
where enquiry_from = 'Customer' and ifnull(party_name, '') = '' and ifnull(customer, '') != ''""")
|
||||||
@@ -19,43 +19,38 @@ frappe.ui.form.on("Task", {
|
|||||||
},
|
},
|
||||||
|
|
||||||
refresh: function(frm) {
|
refresh: function(frm) {
|
||||||
frm.fields_dict['parent_task'].get_query = function() {
|
frm.fields_dict['parent_task'].get_query = function () {
|
||||||
return {
|
return {
|
||||||
filters: {
|
filters: {
|
||||||
"is_group": 1,
|
"is_group": 1,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!frm.is_group){
|
|
||||||
var doc = frm.doc;
|
|
||||||
if(doc.__islocal) {
|
|
||||||
if(!frm.doc.exp_end_date) {
|
|
||||||
frm.set_value("exp_end_date", frappe.datetime.add_days(new Date(), 7));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!doc.__islocal) {
|
if (!frm.doc.is_group) {
|
||||||
if(frappe.model.can_read("Timesheet")) {
|
if (!frm.is_new()) {
|
||||||
frm.add_custom_button(__("Timesheet"), function() {
|
if (frappe.model.can_read("Timesheet")) {
|
||||||
frappe.route_options = {"project": doc.project, "task": doc.name}
|
frm.add_custom_button(__("Timesheet"), () => {
|
||||||
|
frappe.route_options = { "project": frm.doc.project, "task": frm.doc.name }
|
||||||
frappe.set_route("List", "Timesheet");
|
frappe.set_route("List", "Timesheet");
|
||||||
}, __("View"), true);
|
}, __("View"), true);
|
||||||
}
|
}
|
||||||
if(frappe.model.can_read("Expense Claim")) {
|
|
||||||
frm.add_custom_button(__("Expense Claims"), function() {
|
if (frappe.model.can_read("Expense Claim")) {
|
||||||
frappe.route_options = {"project": doc.project, "task": doc.name}
|
frm.add_custom_button(__("Expense Claims"), () => {
|
||||||
|
frappe.route_options = { "project": frm.doc.project, "task": frm.doc.name }
|
||||||
frappe.set_route("List", "Expense Claim");
|
frappe.set_route("List", "Expense Claim");
|
||||||
}, __("View"), true);
|
}, __("View"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(frm.perm[0].write) {
|
if (frm.perm[0].write) {
|
||||||
if(frm.doc.status!=="Closed" && frm.doc.status!=="Cancelled") {
|
if (!["Closed", "Cancelled"].includes(frm.doc.status)) {
|
||||||
frm.add_custom_button(__("Close"), function() {
|
frm.add_custom_button(__("Close"), () => {
|
||||||
frm.set_value("status", "Closed");
|
frm.set_value("status", "Closed");
|
||||||
frm.save();
|
frm.save();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
frm.add_custom_button(__("Reopen"), function() {
|
frm.add_custom_button(__("Reopen"), () => {
|
||||||
frm.set_value("status", "Open");
|
frm.set_value("status", "Open");
|
||||||
frm.save();
|
frm.save();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -118,7 +118,7 @@
|
|||||||
<DatiGenerali>
|
<DatiGenerali>
|
||||||
<DatiGeneraliDocumento>
|
<DatiGeneraliDocumento>
|
||||||
<TipoDocumento>{{ doc.type_of_document }}</TipoDocumento>
|
<TipoDocumento>{{ doc.type_of_document }}</TipoDocumento>
|
||||||
<Divisa>EUR</Divisa>
|
<Divisa>{{ doc.currency }}</Divisa>
|
||||||
<Data>{{ doc.posting_date }}</Data>
|
<Data>{{ doc.posting_date }}</Data>
|
||||||
<Numero>{{ doc.unamended_name }}</Numero>
|
<Numero>{{ doc.unamended_name }}</Numero>
|
||||||
{%- if doc.stamp_duty %}
|
{%- if doc.stamp_duty %}
|
||||||
|
|||||||
Reference in New Issue
Block a user