Fixed asset refactor (#19369)

* refactor: Asset Movement with multiple assets using table

* refactor: Create Asset Movement from Asset List & Linking PR/PI with Asset

* feat: Auto create asset on Purchase checkbox

* refactor: LCV for asset created via PR/PI

* refactor: get asset category accounts from item master

* refactor: Purchase Receipt for asset purchasing

* refactor: Purchase Invoice for asset purchasing

* fix: post-refactor delete fixes

* refactor: moved asset validation from pr/pi on asset submission

* fix: Asset Category should be defined for auto purchasing assets

* fix: undo serial_no_update removal (for non asset item) from LCV

* fix: remove duplicate calls from item.js

* fix: args position of all occurrence of get_asset_category_account()

* fix: test cases

* fix: landed cost voucher validations

* refactor: test case for auto creation of asset

* fix: removed invalid assertions

* fix: patch errors on travis

* fix: codacy fixes

* fix: PI Items not fetching details from item

* fix: asset movement from list view having default purpose 'Receipt'

* chore: msgprint for selecting item code first while creating asset manually

* fix: alert messages

* minor: asset movement fixes

* fix: lcv was made against submitted assets

* minor: ux fixes

* refac: move specific asset validation to SINV

* chore: remove make_purchase_invoice from asset form
* make asset movement on asset submission
* add PR & PI queries based on item code

* refac: not allow last movement cancellation
* move asset movement creation on asset submission
* asset movement naming series
* add tests

* fix: code review changes

* chore: remove unecessary asset movement updation

* refac: setting latest location while making asset movements
* Added extra validations

* fix: form dashboard make lcv button

* fix: auto asset movement creation validation

* fix: allow lcv against other items after removing submitted assets

* chore: remove unwanted condition

* fix: mismatch debit credit on  purchase of asset with valuation tax

* chore: toggle required field based on movement type

* chore: fix lcv error message

* fix: travis failing

* fix: travis failing test

* fix: wrong conditions after merge

* fix: cannot cancel assets

* fix: travis failing* fix change in deletion of assets

* fix: codacy

* fix: process cancellation of assets

* refac: cancellation of pr only deletes auto created assets

* fix: incorrect query
This commit is contained in:
Saqib
2019-11-18 11:46:55 +05:30
committed by Nabin Hait
parent 6424416886
commit d995609ffa
34 changed files with 2817 additions and 2817 deletions

View File

@@ -718,48 +718,6 @@ class AccountsController(TransactionBase):
# at quotation / sales order level and we shouldn't stop someone
# from creating a sales invoice if sales order is already created
def validate_fixed_asset(self):
for d in self.get("items"):
if d.is_fixed_asset:
# if d.qty > 1:
# frappe.throw(_("Row #{0}: Qty must be 1, as item is a fixed asset. Please use separate row for multiple qty.").format(d.idx))
if d.meta.get_field("asset") and d.asset:
asset = frappe.get_doc("Asset", d.asset)
if asset.company != self.company:
frappe.throw(_("Row #{0}: Asset {1} does not belong to company {2}")
.format(d.idx, d.asset, self.company))
elif asset.item_code != d.item_code:
frappe.throw(_("Row #{0}: Asset {1} does not linked to Item {2}")
.format(d.idx, d.asset, d.item_code))
# elif asset.docstatus != 1:
# frappe.throw(_("Row #{0}: Asset {1} must be submitted").format(d.idx, d.asset))
elif self.doctype == "Purchase Invoice":
# if asset.status != "Submitted":
# frappe.throw(_("Row #{0}: Asset {1} is already {2}")
# .format(d.idx, d.asset, asset.status))
if getdate(asset.purchase_date) != getdate(self.posting_date):
frappe.throw(
_("Row #{0}: Posting Date must be same as purchase date {1} of asset {2}").format(d.idx,
asset.purchase_date,
d.asset))
elif asset.is_existing_asset:
frappe.throw(
_("Row #{0}: Purchase Invoice cannot be made against an existing asset {1}").format(
d.idx, d.asset))
elif self.docstatus == "Sales Invoice" and self.docstatus == 1:
if self.update_stock:
frappe.throw(_("'Update Stock' cannot be checked for fixed asset sale"))
elif asset.status in ("Scrapped", "Cancelled", "Sold"):
frappe.throw(_("Row #{0}: Asset {1} cannot be submitted, it is already {2}")
.format(d.idx, d.asset, asset.status))
def delink_advance_entries(self, linked_doc_name):
total_allocated_amount = 0
for adv in self.advances: