* feat: Moved Document to Payroll Module
* feat: Moved Reports to Payroll Module
* feat: Moved Print fromat With Patch
* feat: Moved Notifiction to Payroll Module and patches
* feat: added dashboard and desk page to Payroll
* feat: Payroll Dashboard
* feat: Module onboarding
* feat: Income tax Deductions Report
* feat: Ecs Checklist Report
* feat: Provident Fund Report
* feat: Professional Fund report and commonified Code
* feat: Total Payments Based On Payment Mode Report
* fix: refactor and added chart Total Payments Based On Payment Mode
* feat: Payroll Settings
* fix: Bank remittance Report
* feat(Payroll based on): Considered unmarked days
* feat: Added Help for condition an formula in Salary structure
* fix: requested changes
* fix: rename report Ecs checklist to salary_payments_via_ecs
* fix: renamed report report/total_payments_based_on_payment_mode
* fix: added role via setup.py for regional report
* feat: added All reports to desk page
* fix: frappe.reload doc in all patches
* fix: codacy
* fix: frappe.reload_doctype for patches
* patch: is_income_tax_component and component_type for salary component
* fix: uncommented code
* test: fixture
* fix: test
* test: test_payment_days_based_on_attendance
unnecessary requirement for project creation as this is a field of the Type select which will be pre-filled. When creating a project of list view it will also bring up this field as it has "reqd": 1. A new projekt will have the status set to open in most cases.
Co-authored-by: Nabin Hait <nabinhait@gmail.com>
Co-authored-by: Himanshu <himanshuwarekar@yahoo.com>
* fix: task validation error when adding tasks to projects
When adding a task to a project, if the project didn't have an Expected End Date the validation would fail.
This is because passing a None value to getdate() returns today's date, rather than being optional as expected.
* update task.py
* feat: create a duplicate project
* fix: allow duplication via form
* feat: fetch old task and link project
* fix: link task with project
* fix: parse json string as python object
* fix: avoid duplicate task based on the project template
* fix: ask user for the new project name
* fix: display a descriptive message on switching to a new route
* fix: override duplicate in menu
* fix: check for duplicate project name after submitting prompt
* fix: set the project template
* fix: minor changes
* fix: function call
* refactor: add a separate button for duplicate
* Update project.js