tree f491d224efee623bd66faf4f4c2b272061e7c553
parent c6b98d8de93734a9719dbf1931d303817043ed7d
author Frappe PR Bot <developers@frappe.io> 1650959533 +0000
committer Mergify <37929162+mergify[bot]@users.noreply.github.com> 1652627057 +0000

chore(release): Bumped to Version 13.27.1

## [13.27.1](https://github.com/frappe/erpnext/compare/v13.27.0...v13.27.1) (2022-04-26)

### Bug Fixes

* Add accounting dimensions for round off GL Entry ([dedb90e](https://github.com/frappe/erpnext/commit/dedb90ea72e5d2eb5f213f3aa7887672d4f68078))
* batch_no filtering not working when batch no is also a number in scientific notation ([#30770](https://github.com/frappe/erpnext/issues/30770)) ([#30771](https://github.com/frappe/erpnext/issues/30771)) ([c339305](https://github.com/frappe/erpnext/commit/c339305e9c4c6752ff6b952e6d1827a46d199211))
* Check if accounting dimension exists ([1834671](https://github.com/frappe/erpnext/commit/1834671d59eccaaa4af910523466fc5066becf1f))
* dependent gle reposting (backport [#30726](https://github.com/frappe/erpnext/issues/30726)) ([#30772](https://github.com/frappe/erpnext/issues/30772)) ([a6d0938](https://github.com/frappe/erpnext/commit/a6d093859171d1f987f06467c58de973312ead12))
* Do not validate while creating accounting dimension ([153b41a](https://github.com/frappe/erpnext/commit/153b41a26902082a2cada995d9a9e5afac30d2aa))
* e_commerce_settings.js ([3a5f5d5](https://github.com/frappe/erpnext/commit/3a5f5d5cd069d908fb584b8c2e3dfea362f048c3))
* e_commerce_settings.py ([86c5f4d](https://github.com/frappe/erpnext/commit/86c5f4db85ae2c8273574e67b97b6ccd7b564351))
* First preference to parent cost center rather than round off cost center ([a2d95fc](https://github.com/frappe/erpnext/commit/a2d95fc62b97914d39e70a6819bd30e45d22d875))
* Handle Multiselect field mapping separately ([dc2f694](https://github.com/frappe/erpnext/commit/dc2f6945475e53bb4dfb20edd1d4cf6c2c940671))
* **india:** 401 & 403 client error while generating IRN ([198bdcf](https://github.com/frappe/erpnext/commit/198bdcfdc609e9a6280408f86471cedbc454da90))
* **india:** cess value not considered while validating e-invoice totals ([#30800](https://github.com/frappe/erpnext/issues/30800)) ([f70fca1](https://github.com/frappe/erpnext/commit/f70fca1c9eee27a82af76cf1661145e77604ab43))
* **india:** transporter name is null while generating e-way bill ([#30736](https://github.com/frappe/erpnext/issues/30736)) ([6291b28](https://github.com/frappe/erpnext/commit/6291b28c37f02380001ab68b3a660b2804383ab2))
* linter ([6dddbb9](https://github.com/frappe/erpnext/commit/6dddbb9f27354e57d5acc8cf692e6c2493c8ad7c))
* Loan doctypes in bank reconciliation ([e69c715](https://github.com/frappe/erpnext/commit/e69c71576ddcf9d363ba37bafb0c598ba05a281f))
* Mistyped variable name in patch ([e76220e](https://github.com/frappe/erpnext/commit/e76220e819bceed03f8fc0a5618f583a8c172faf))
* monthly attendance sheet ([#30748](https://github.com/frappe/erpnext/issues/30748)) ([0b4e3f1](https://github.com/frappe/erpnext/commit/0b4e3f1467662b4ad86ac9f101cd95620aaa1c26))
* Must not be able to start Job Card if it is related to Work Order that is not started yet ([#29072](https://github.com/frappe/erpnext/issues/29072)) ([#30755](https://github.com/frappe/erpnext/issues/30755)) ([b656ffa](https://github.com/frappe/erpnext/commit/b656ffa45e2494b0a4e64ad8284a7da85c386899))
* Query filter fields from Website Item instead of Item master ([bed9e09](https://github.com/frappe/erpnext/commit/bed9e09153e7869021e2dcb0949b6e48b65928f9))
* select doctype as payment_document ([44f0b69](https://github.com/frappe/erpnext/commit/44f0b691521c6e7cfe84beb0d52d4fb03268e9a7))
* **Selling,E-Commerce:** Shopping cart quotation without website item. ([#29085](https://github.com/frappe/erpnext/issues/29085)) ([ea0fe5e](https://github.com/frappe/erpnext/commit/ea0fe5e10c5136f9419629cb7b82b265ac177517))
* SO analysis rpt will fetch SO's without Delivery note as well ([f9d89c7](https://github.com/frappe/erpnext/commit/f9d89c7ce6a877602d9a94b1b4496dd1a594db21))
* translation ([#30781](https://github.com/frappe/erpnext/issues/30781)) ([#30783](https://github.com/frappe/erpnext/issues/30783)) ([8335ca6](https://github.com/frappe/erpnext/commit/8335ca63313df7c3d5e02735b2277eb159f55d48))
* Update token to allow updates on protected branch ([baab379](https://github.com/frappe/erpnext/commit/baab3797ca1b151862d4deb388a85a33f3bbcbd3))
* update translation ([#30725](https://github.com/frappe/erpnext/issues/30725)) ([#30776](https://github.com/frappe/erpnext/issues/30776)) ([b585262](https://github.com/frappe/erpnext/commit/b585262842294d89d8b7e96c3cd3d15429b27009))
* Use parent cost center for Sales and Purchase Invoice ([fe9f329](https://github.com/frappe/erpnext/commit/fe9f32946ce9648caef926e3d0227b2d8f8652a4))
* Use right precision for asset value after full schedule ([#30745](https://github.com/frappe/erpnext/issues/30745)) ([269e192](https://github.com/frappe/erpnext/commit/269e1923c9edf144224c3b81584ec626df359d8c))
* Validate field filter wrt to Website Item & re-use validation in Item Group ([34437a8](https://github.com/frappe/erpnext/commit/34437a83df710e77090a21115fcea9c88fea5bc8))

(cherry picked from commit 096dcf0e54dcaed5bf6fd9050e7da565e08fd440)

# Conflicts:
#	erpnext/__init__.py
