fix: allow manual asset receipt mov from nowhere (backport #36093) (#36095)

* fix: allow manual asset receipt mov from nowhere (#36093)

(cherry picked from commit 4aaa1a15d7)

# Conflicts:
#	erpnext/assets/doctype/asset_movement/asset_movement.py

* chore: fix conflict

---------

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
This commit is contained in:
mergify[bot]
2023-07-12 09:39:47 +05:30
committed by GitHub
parent 1d6bc68d87
commit 2993eb5ce9
2 changed files with 12 additions and 22 deletions

View File

@@ -63,7 +63,7 @@ frappe.ui.form.on('Asset Movement', {
fieldnames_to_be_altered = { fieldnames_to_be_altered = {
target_location: { read_only: 0, reqd: 1 }, target_location: { read_only: 0, reqd: 1 },
source_location: { read_only: 1, reqd: 0 }, source_location: { read_only: 1, reqd: 0 },
from_employee: { read_only: 0, reqd: 1 }, from_employee: { read_only: 0, reqd: 0 },
to_employee: { read_only: 1, reqd: 0 } to_employee: { read_only: 1, reqd: 0 }
}; };
} }

View File

@@ -63,30 +63,20 @@ class AssetMovement(Document):
frappe.throw(_("Source and Target Location cannot be same")) frappe.throw(_("Source and Target Location cannot be same"))
if self.purpose == "Receipt": if self.purpose == "Receipt":
# only when asset is bought and first entry is made if not (d.source_location or d.from_employee) and not (d.target_location or d.to_employee):
if not d.source_location and not (d.target_location or d.to_employee):
frappe.throw( frappe.throw(
_("Target Location or To Employee is required while receiving Asset {0}").format(d.asset) _("Target Location or To Employee is required while receiving Asset {0}").format(d.asset)
) )
elif d.source_location: elif d.from_employee and not d.target_location:
# when asset is received from an employee frappe.throw(
if d.target_location and not d.from_employee: _("Target Location is required while receiving Asset {0} from an employee").format(d.asset)
frappe.throw( )
_("From employee is required while receiving Asset {0} to a target location").format( elif d.to_employee and d.target_location:
d.asset frappe.throw(
) _(
) "Asset {0} cannot be received at a location and given to an employee in a single movement"
if d.from_employee and not d.target_location: ).format(d.asset)
frappe.throw( )
_("Target Location is required while receiving Asset {0} from an employee").format(d.asset)
)
if d.to_employee and d.target_location:
frappe.throw(
_(
"Asset {0} cannot be received at a location and \
given to employee in a single movement"
).format(d.asset)
)
def validate_employee(self): def validate_employee(self):
for d in self.assets: for d in self.assets: