Added Employee Custody to Purchase Request
This commit is contained in:
parent
c181e59c46
commit
8514d4d1b8
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
@ -64,4 +64,4 @@ class AccountAssetAsset(models.Model):
|
|||
'activity_type_id': self.env.ref('mail.mail_activity_data_todo').id,
|
||||
'summary': _('The period of %s is finished %s.') % (asset.name, asset.return_date),
|
||||
'date_deadline': asset.return_date,
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -20,11 +20,10 @@ class EmployeeCustody(models.Model):
|
|||
("refuse", _("Refuse"))
|
||||
], default='draft')
|
||||
|
||||
asset_line_ids = fields.One2many('asset.custody.line', 'asset_custody_line',required=True)
|
||||
asset_line_ids = fields.One2many('asset.custody.line', 'asset_custody_line', required=True)
|
||||
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'
|
||||
|
||||
|
|
@ -104,7 +123,7 @@ class Followers(models.Model):
|
|||
if 'res_model' in vals and 'res_id' in vals and 'partner_id' in vals:
|
||||
dups = self.env['mail.followers'].search(
|
||||
[('res_model', '=', vals.get('res_model')), ('res_id', '=', vals.get('res_id')),
|
||||
('partner_id', '=', vals.get('partner_id'))])
|
||||
('partner_id', '=', vals.get('partner_id'))])
|
||||
|
||||
if len(dups):
|
||||
for p in dups:
|
||||
|
|
@ -113,5 +132,3 @@ class Followers(models.Model):
|
|||
res = super(Followers, self).create(vals)
|
||||
|
||||
return res
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue