Added Employee Custody to Purchase Request

This commit is contained in:
younes 2025-05-06 12:33:56 +01:00
parent c181e59c46
commit 8514d4d1b8
3 changed files with 34 additions and 12 deletions

View File

@ -132,6 +132,11 @@ msgstr "نقل العهدة"
msgid "Assigned"
msgstr "مسند"
#. module: exp_asset_custody
#: model:ir.model.fields.selection,name:exp_asset_custody.selection__account_asset__status__reserved
msgid "Reserved"
msgstr "محجوز"
#. module: exp_asset_custody
#: model:ir.model.fields.selection,name:exp_asset_custody.selection__account_asset_multi_operation__type__assignment
#: model:ir.model.fields.selection,name:exp_asset_custody.selection__account_asset_operation__type__assignment

View File

@ -24,7 +24,7 @@ class AccountAssetAsset(models.Model):
string='Current Employee'
)
status = fields.Selection(
selection_add=[('assigned', 'Assigned'), ('scrap', 'Scrap')]
selection_add=[('reserved', 'Reserved'), ('assigned', 'Assigned'), ('scrap', 'Scrap')]
)
asset_operation_count = fields.Integer(
compute='_asset_operation_count',

View File

@ -24,7 +24,6 @@ class EmployeeCustody(models.Model):
asset_assign_count = fields.Integer(compute='_asset_assign_count', string='Asset Assignment')
asset_release_count = fields.Integer(compute='_asset_release_count', string='Asset Release')
def create_asset_custody(self):
for i in self.asset_line_ids:
data = {
@ -42,7 +41,6 @@ class EmployeeCustody(models.Model):
}
self.env['account.asset.operation'].create(data)
def asset_custody_release(self):
for i in self.asset_line_ids:
data = {
@ -62,28 +60,25 @@ class EmployeeCustody(models.Model):
}
self.env['account.asset.operation'].create(data)
def _asset_assign_count(self):
self.asset_assign_count = len(
self.env['asset.custody.line'].search([('asset_custody_line', '=', self.id)]))
def _asset_release_count(self):
self.asset_release_count = len(
self.env['asset.custody.line'].search([('asset_custody_line', '=', self.id)]))
def approve(self):
if not self.asset_line_ids:
raise exceptions.Warning(_('Please Select an asset'))
self.create_asset_custody()
self.write({'state': 'wait'})
def done(self):
self.asset_custody_release()
self.state = "wait_release"
class EmployeeCustodyLine(models.Model):
_name = 'asset.custody.line'
@ -96,6 +91,30 @@ class EmployeeCustodyLine(models.Model):
asset_id = fields.Many2one('account.asset')
asset_custody_line = fields.Many2one(comodel_name='custom.employee.custody') # Inverse field
@api.model
def create(self, vals):
res = super(EmployeeCustodyLine, self).create(vals)
if res.asset_id and res.asset_id.status in ['new', 'available']:
res.asset_id.write({'status': 'reserved'})
return res
def unlink(self):
asset_ids = self.mapped('asset_id').ids
result = super(EmployeeCustodyLine, self).unlink()
if result and asset_ids:
Asset = self.env['account.asset']
CustodyLine = self.env['asset.custody.line']
for asset_id in asset_ids:
existing_custody = CustodyLine.search([('asset_id', '=', asset_id)], limit=1)
if not existing_custody:
asset = Asset.browse(asset_id)
if asset.exists() and asset.status == 'reserved':
asset.write({'status': 'available'})
return result
class Followers(models.Model):
_inherit = 'mail.followers'
@ -113,5 +132,3 @@ class Followers(models.Model):
res = super(Followers, self).create(vals)
return res