feat: Loan management and accounting (#19035)

* fix: Create Loan Management module

* fix: Move loan doctype for hr module to loan management

* fix: Add loan dashboard

* fix: Move loan application form hr module to loan management

* fix: Move Loan Type from hr to loan management

* fix: Move salary slip loan from hr to loan management

* fix: Create loan security pledge doctype

* fix: Create loan security type doctype

* fix: Create Loan security doctype

* fix: Add customer in loan_common.js

* fix: Import patch for loan

* fix: Add security pledging in loan doctype

* fix: Add loan application pledge doctype

* fix: Add logic for security pledgeing in loan

* fix: Add logic for security pledging in loan application

* fix: Rename Loan security doctype to Loan Security Pledge

* fix: Add doctype for loan security

* fix: Fixes in loan and loan application

* fix: Add doctypes for loan repayment

* fix: Fixes in loan and loan application

* fix: Move loan repayment report from HR module to loan management

* fix: Create doctype for loan security price

* fix: Create doctype for loan security shortfall

* fix: Make fields in Loan shortfall readonly

* fix: Make loan type submittable

* fix: Add daily job for loan security revaluation in hooks.py

* fix: Add loan management module

* fix: Doctype for loan disbursement Entry

* fix: GL entry fix for loan disbursement

* fix: Add company currency options in Loan related doctypes

* fix: Changes in Loan Doctypes

* fix: Allow miltiple loan securities in Loan Security Pledge

* fix: Add proposed pledges in Loan Application

* fix: Add test cases for loan

* fix: Interest Accrual Entry for loans

* fix: Remove loan from journal entry

* fix: Update triggers in loan_common.js

* fix: Accrual Entries for loan Interest

* fix: Proposed Pledges for loan application

* fix: Update items in loan management module

* fix: Allow multiple disbursements against a loan

* fix: Add loan security code in loan security master

* fix: Allow multiple securities in a single pledge

* fix: Spelling and label fixes

* fix: Replace date in loan security price with datetime

* fix: Add dashboard to loan master

* fix: Move Repayment Schedule from HR to Loan Management

* fix: Add back jobs for loan accrual entries

* fix: Multiple fixes in loan

* fix: Multiple fixes in loan application

* fix: Loan Reapayment for term loans

* fix: Interest Accural Entries for term loans

* fix: Changes in Loan Doctypes

* fix: Add test case for term loan repayment

* fix: Add custom button to update loan security price and trigger shortfall

* fix: Usability fixes in Loan management

* fix: Multiple usablity and doctype fixes

* fix: Muliple bug and usability fixes in loan

* fix: Test case fixes for loan repayment from Salary

* fix: Codacy fixes

* fix: Test Case fixes

* fix: Minor fix in validate_repayment_method

* fix: Test case and codacy fixes

* fix: Provide consistent naming series to loan doctypes

* fix: Loan Application fix

* fix: Loan Application Dashboard

* fix: Add doctypes to process loan interest accural and loan security price

* fix: Provision to make loan topup

* fix: Pledge and unpledge statuses and doctype for loan securit unpledge

* fix: Multiple fixes in Loan Cycle

* fix: Add missing dashboards to loan doctypes

* fix: Add Loan Manager role to loan doctypes

* fix: Loan Process fixes

* fix: Loan Security Unpledge fixes

* fix: UX, List and dashboards fixes

* fix: Minor fixes

* fix: Minor fixes

* fix: Status on additional loan security

* fix: Codacy fixes

* fix: Multiple fixes in loan

* fix: Rename Process Loan Security Price to Process Loan Security Shortfall

* fix: Loan Repayment and Closure report

* fix: Loan Security Status report and minor fixes

* fix: Multiple UX fixes

* fix: Test Case fixes and UX fixes

* fix: Currency symbol fixes in Salary Slip Loan

* fix: Make loan account details read only

* fix: Changes in loan security price updation

* fix: Sanctioned Loan Amount doctype

* fix: Updates in process loan interest accrual

* fix: Pass loan doc instead of loan name

* fix: Fixes in process loan interest accrual

* fix: Add missing semicolon

* fix: Test case

* fix: Test case

* fix: Sandbox method to get proposed pledges

* fix: Sandbox method

* fix: Nonetype fix in loan sanction limit

* fix: GL entry fixes

* fix: Update maximum loan amount on loan security pledging

* fix: Round  off loan amounts

* fix: Loan Security unpledging

* fix: Interest amount for loan closure

* fix: Due date for loan repayments

* fix: API fixes for loan disbursement method

* fix: Disable quick entry for sanctioned loan amount

* fix: Add misssing translations for validations and codecleanup

* fix: Translation fixes and code cleanup

* fix: Test Cases

* fix: Loan Interest Accrual test case
145 files changed
tree: 6efd8745f99fda9a27a6cc5f6da6259de3e8de8f
  1. .github/
  2. .travis/
  3. erpnext/
  4. .eslintrc
  5. .gitignore
  6. .pylintrc
  7. .snyk
  8. .travis.yml
  9. attributions.md
  10. CODE_OF_CONDUCT.md
  11. license.txt
  12. package.json
  13. README.md
  14. requirements.txt
  15. SECURITY.md
  16. setup.py
  17. sponsors.md
  18. yarn.lock
README.md

Build Status Open Source Helpers Coverage Status

https://erpnext.com

ERPNext as a monolith includes the following areas for managing businesses:

  1. Accounting
  2. Inventory
  3. CRM
  4. Sales
  5. Purchase
  6. HRMS
  7. Project Management
  8. Support
  9. Asset Management
  10. Quality Management
  11. Manufacturing
  12. Website Management
  13. Customize ERPNext
  14. And More

ERPNext requires MariaDB.

ERPNext is built on the Frappe Framework, a full-stack web app framework built with Python & JavaScript.


Full Install

The Easy Way: our install script for bench will install all dependencies (e.g. MariaDB). See https://github.com/frappe/bench for more details.

New passwords will be created for the ERPNext "Administrator" user, the MariaDB root user, and the frappe user (the script displays the passwords and saves them to ~/frappe_passwords.txt).

Virtual Image

You can download a virtual image to run ERPNext in a virtual machine on your local system.

System and user credentials are listed on the download page.


License

GNU/General Public License (see license.txt)

The ERPNext code is licensed as GNU General Public License (v3) and the Documentation is licensed as Creative Commons (CC-BY-SA-3.0) and the copyright is owned by Frappe Technologies Pvt Ltd (Frappe) and Contributors.


Contributing

  1. Issue Guidelines
  2. Report Security Vulnerabilities
  3. Pull Request Requirements
  4. Translations
  5. Chart of Accounts

Logo and Trademark

The brand name ERPNext and the logo are trademarks of Frappe Technologies Pvt. Ltd.

Introduction

Frappe Technologies Pvt. Ltd. (Frappe) owns and oversees the trademarks for the ERPNext name and logos. We have developed this trademark usage policy with the following goals in mind:

  • We’d like to make it easy for anyone to use the ERPNext name or logo for community-oriented efforts that help spread and improve ERPNext.
  • We’d like to make it clear how ERPNext-related businesses and projects can (and cannot) use the ERPNext name and logo.
  • We’d like to make it hard for anyone to use the ERPNext name and logo to unfairly profit from, trick or confuse people who are looking for official ERPNext resources.

Frappe Trademark Usage Policy

Permission from Frappe is required to use the ERPNext name or logo as part of any project, product, service, domain or company name.

We will grant permission to use the ERPNext name and logo for projects that meet the following criteria:

  • The primary purpose of your project is to promote the spread and improvement of the ERPNext software.
  • Your project is non-commercial in nature (it can make money to cover its costs or contribute to non-profit entities, but it cannot be run as a for-profit project or business). Your project neither promotes nor is associated with entities that currently fail to comply with the GPL license under which ERPNext is distributed.
  • If your project meets these criteria, you will be permitted to use the ERPNext name and logo to promote your project in any way you see fit with one exception: Please do not use ERPNext as part of a domain name.

Use of the ERPNext name and logo is additionally allowed in the following situations:

All other ERPNext-related businesses or projects can use the ERPNext name and logo to refer to and explain their services, but they cannot use them as part of a product, project, service, domain, or company name and they cannot use them in any way that suggests an affiliation with or endorsement by ERPNext or Frappe Technologies or the ERPNext open source project. For example, a consulting company can describe its business as “123 Web Services, offering ERPNext consulting for small businesses,” but cannot call its business “The ERPNext Consulting Company.”

Similarly, it’s OK to use the ERPNext logo as part of a page that describes your products or services, but it is not OK to use it as part of your company or product logo or branding itself. Under no circumstances is it permitted to use ERPNext as part of a top-level domain name.

We do not allow the use of the trademark in advertising, including AdSense/AdWords.

Please note that it is not the goal of this policy to limit commercial activity around ERPNext. We encourage ERPNext-based businesses, and we would love to see hundreds of them.

When in doubt about your use of the ERPNext name or logo, please contact Frappe Technologies for clarification.

(inspired by WordPress)