Added Employee Custody to Purchase Request

This commit is contained in:
younes 2025-05-08 11:53:34 +01:00
parent 443731687b
commit 5a9139c8a8
8 changed files with 66 additions and 6 deletions

View File

@ -16,6 +16,7 @@
'views/report_deliveryslip.xml',
'views/product_template.xml',
'views/account_asset_operation.xml',
'views/account_asset.xml',
'wizards/picking_purchase_request.xml',
'wizards/asset_operation_return_wizard.xml',

View File

@ -380,11 +380,12 @@ msgstr "الكمية المطلوبة للشراء"
#. module: purchase_custom_stock
#: model:ir.model,name:purchase_custom_stock.model_purchase_request
#: model:ir.model.fields,field_description:purchase_custom_stock.field_account_asset__purchase_request_id
#: model:ir.model.fields,field_description:purchase_custom_stock.field_asset_custody_line__purchase_request_id
#: model:ir.model.fields,field_description:purchase_custom_stock.field_asset_operation_return_line__purchase_request_id
#: model:ir.model.fields,field_description:purchase_custom_stock.field_asset_operation_return_wizard__purchase_request_id
msgid "Purchase Request"
msgstr "طلبات الإدارات"
msgstr "طلب شراء"
#. module: purchase_custom_stock
#: model:ir.model.fields.selection,name:purchase_custom_stock.selection__asset_operation_return_line__type__release

View File

@ -6,6 +6,7 @@ from . import product_template
from . import employee_custody
from . import account_asset_operation
from . import refuse_reason
from . import account_asset

View File

@ -0,0 +1,8 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api, _
class AccountAssetAsset(models.Model):
_inherit = 'account.asset'
purchase_request_id = fields.Many2one('purchase.request', string="Purchase Request", readonly=True, copy=False)

View File

@ -1,8 +1,47 @@
# -*- coding: utf-8 -*-
from odoo import models, fields, api, _, exceptions
from odoo.exceptions import UserError, ValidationError, Warning
class AccountAssetOperation(models.Model):
_inherit = 'account.asset.operation'
purchase_request_id = fields.Many2one(comodel_name='purchase.request',string="Source Document")
purchase_request_id = fields.Many2one(comodel_name='purchase.request', string="Source Document")
@api.model
def create(self, vals):
asset_id = vals.get('asset_id')
operation_type = vals.get('type')
if asset_id and operation_type == 'release':
existing_releases = self.search([
('asset_id', '=', asset_id),
('type', '=', 'release'),
('state', 'not in', ['done', 'cancel'])
])
if existing_releases:
raise ValidationError(_('An asset release operation already exists for this asset.'))
if not vals.get('purchase_request_id') and asset_id:
asset = self.env['account.asset'].browse(asset_id)
if asset.purchase_request_id:
vals['purchase_request_id'] = asset.purchase_request_id.id
return super(AccountAssetOperation, self).create(vals)
def write(self, vals):
res = super(AccountAssetOperation, self).write(vals)
if vals.get('state') == 'done':
for operation in self:
if operation.type == 'assignment' and operation.asset_id and operation.purchase_request_id:
operation.asset_id.write({
'purchase_request_id': operation.purchase_request_id.id,
})
elif operation.type == 'release' and operation.asset_id:
if operation.purchase_request_id and operation.asset_id.purchase_request_id == operation.purchase_request_id:
operation.asset_id.write({
'purchase_request_id': False,
})
return res

View File

@ -3,3 +3,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
model_convert_picking_wizard_user,picking_wizard,model_purchase_request_picking_wizard,base.group_user,1,1,1,1
asset_operation_return_wizard,asset_operation_return_wizard,model_asset_operation_return_wizard,base.group_user,1,1,1,1
asset_operation_return_line,asset_operation_return_line,model_asset_operation_return_line,base.group_user,1,1,1,1
account_asset_create_purchase_request,account_asset_create_purchase_request,model_account_asset,purchase_requisition_custom.create_purchase_request,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
3 asset_operation_return_wizard asset_operation_return_wizard model_asset_operation_return_wizard base.group_user 1 1 1 1
4 asset_operation_return_line asset_operation_return_line model_asset_operation_return_line base.group_user 1 1 1 1
5 account_asset_create_purchase_request account_asset_create_purchase_request model_account_asset purchase_requisition_custom.create_purchase_request 1 0 0 0
6

View File

@ -0,0 +1,13 @@
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<record id="view_account_asset_inherit_form" model="ir.ui.view">
<field name="name">account.asset.form</field>
<field name="model">account.asset</field>
<field name="inherit_id" ref="exp_asset_base.view_account_asset_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='product_id']" position="before">
<field name="purchase_request_id"/>
</xpath>
</field>
</record>
</odoo>

View File

@ -11,16 +11,12 @@
</group>
<field name="operation_ids" create="0" edit="0">
<tree create="0" edit="0">
<field name="name"/>
<field name="asset_id"/>
<field name="user_id"/>
<field name="date"/>
<field name="type"/>
<field name="custody_type"/>
<field name="custody_period"/>
<field name="current_employee_id"/>
<field name="current_department_id"/>
<field name="state"/>
<field name="purchase_request_id" invisible="1"/>
</tree>
<form create="0" edit="0">