Auto-commit: Changes from 2025-11-26 16:25:47

This commit is contained in:
maltayyar2 2025-11-26 16:25:47 +03:00
parent 92bc655975
commit 4a1b23177f
7 changed files with 196 additions and 2726 deletions

View File

@ -54,12 +54,12 @@
<xpath expr="//field[@name='use_analytic']" position="attributes">
<attribute name="attrs">{'readonly':[('state','!=','draft')]}</attribute>
</xpath>
<xpath expr="//group[@name='other_details_group']" position="after">
<xpath expr="//group[@name='purchase_details_group']" position="after">
<group string="Warehouse Management" name="warehouse_management_group">
<field name="view_location_id" invisible="1"/>
<field name="edit_locations" invisible="1"/>
<field name="show_emp_button" invisible="1"/>
<field name="show_approve_warehouse" invisible="0"/>
<field name="show_approve_warehouse" invisible="1"/>
<field name="has_asset_product_line" invisible="1"/>
<field name="show_asset_release_button" invisible="1"/>
<field name="all_assets_released" invisible="1"/>

View File

@ -97,7 +97,7 @@ msgstr "أيقونة نوع النشاط"
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__date_end
msgid "Agreement Deadline"
msgstr "الموعد النهائي لاستقبال عروض الاسعار"
msgstr "الموعد النهائي"
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__name
@ -181,8 +181,13 @@ msgstr "هل أنت متأكد من المتابعة بالإجراء؟"
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_order__attach_no
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__attach_no
msgid "Attach No"
msgstr ""
msgid "Documents"
msgstr "المرفقات"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_requisition_custom_form_view
msgid "Documents"
msgstr "المرفقات"
#. module: purchase_requisition_custom
#: model:ir.model,name:purchase_requisition_custom.model_ir_attachment
@ -747,7 +752,7 @@ msgstr "انتهاء صلاحية المستند"
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_order_custom_form_view
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_requisition_custom_form_view
msgid "Documents"
msgstr ""
msgstr "المرفقات"
#. module: purchase_requisition_custom
#: model:ir.model.fields.selection,name:purchase_requisition_custom.selection__change_purchase_user_state__state__done
@ -1017,7 +1022,7 @@ msgstr "الأصناف/الخدمات"
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_request__product_category_ids
msgid "Items Categories"
msgstr "تصنيف الاصناف"
msgstr "تصنيف الاصناف (تلقائى)"
#. module: purchase_requisition_custom
#: model:ir.model,name:purchase_requisition_custom.model_account_move
@ -1278,8 +1283,8 @@ msgstr "لا توجد تكلفة شراء لهذا الاجراء"
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__min_approve
msgid "No. of Selections"
msgstr "عدد الاختيارات"
msgid "Minimum Approvals Required"
msgstr "أقل موافقات"
#. module: purchase_requisition_custom
#: code:addons/odoo14/custom/STANDARD_MODULES/test/odex25_purchase/odex25_purchase/purchase_requisition_custom/models/purchase_requisition_custom.py:0
@ -1294,10 +1299,14 @@ msgid "No. of Votes"
msgstr "عدد الاختيارات"
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__actual_vote
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__min_vote
msgid "No. of Vots"
msgstr "عدد الاختيارات/التصويت"
msgid "Minimum Votes Required"
msgstr "أقل أصوات"
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__actual_vote
msgid "Actual Votes"
msgstr "الأصوات الفعلية"
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_request__note
@ -1643,7 +1652,7 @@ msgstr "عقود الشراء"
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_order__purchase_cost
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__purchase_cost
msgid "Purchase Cost"
msgstr "تكلفة الشراء"
msgstr "مركز تكلفة الشراء"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_requisition_custom_setting
@ -1754,7 +1763,7 @@ msgstr ""
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_request_line__uom_id
msgid "Purchase Unit of Measure"
msgstr ""
msgstr "وحدة القياس للشراء"
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_res_company__purchase_budget
@ -1782,7 +1791,7 @@ msgstr " اعادة الى مسودة"
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_request__purchase_purpose
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_requisition__purpose
msgid "Purpose"
msgstr "مبررات طلب الشراء (الغرض)"
msgstr "مبررات/الغرض"
#. module: purchase_requisition_custom
#: model:ir.model.fields.selection,name:purchase_requisition_custom.selection__change_purchase_user_state__state__quality
@ -2417,7 +2426,7 @@ msgstr ""
#. module: purchase_requisition_custom
#: model:ir.model.fields,field_description:purchase_requisition_custom.field_purchase_request__partner_id
msgid "Vendor"
msgstr "المورد/مقدم الخدمة (المقترح)"
msgstr "المورد (المقترح)"
#. module: purchase_requisition_custom
#: model:ir.actions.act_window,name:purchase_requisition_custom.vendor_types_action
@ -2998,8 +3007,8 @@ msgstr "الحساب التحليلي لتتبع الموازنة"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_request_form
msgid "Other Details"
msgstr "تفاصيل أخرى"
msgid "Purchase Details"
msgstr "إدارة المشتريات"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_request_form
@ -3126,6 +3135,31 @@ msgstr "بدون طلب متأخر"
msgid "Request Lines"
msgstr "بنود الطلب"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_requisition_custom_form_view
msgid "Basic Information"
msgstr "المعلومات الأساسية"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_requisition_custom_form_view
msgid "Classification/Purpose"
msgstr "التصنيف والغرض"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_requisition_custom_form_view
msgid "Vendor/Dates"
msgstr "المورد والتواريخ"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_requisition_custom_form_view
msgid "Committee Settings"
msgstr "إعدادات اللجنة"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_requisition_custom_form_view
msgid "Reset To Draft"
msgstr "إرجاع إلى مسودة"
#. module: purchase_requisition_custom
#: model_terms:ir.ui.view,arch_db:purchase_requisition_custom.purchase_request_search
msgid "Year"

File diff suppressed because it is too large Load Diff

View File

@ -105,7 +105,7 @@ class PurchaseOrderCustom(models.Model):
return data
attach_no = fields.Integer(compute='get_attachments')
attach_no = fields.Integer(compute='get_attachments', string='Documents')
res_id = fields.Integer()
res_model = fields.Char()

View File

@ -49,7 +49,7 @@ class PurchaseRequisitionCustom(models.Model):
_inherit = 'purchase.requisition'
# committee type
attach_no = fields.Integer(compute='get_attachments')
attach_no = fields.Integer(compute='get_attachments', string='Documents')
res_id = fields.Integer()
res_model = fields.Char()
@ -101,9 +101,9 @@ class PurchaseRequisitionCustom(models.Model):
purchase_commitee = fields.Boolean('Purchase Commitee?')
committe_head = fields.Many2one('res.users', 'Committe Head')
committe_members = fields.Many2many('res.users', string='Purchase Committee')
min_approve = fields.Integer('No. of Selections')
min_vote = fields.Integer('No. of Vots')
actual_vote = fields.Integer('No. of Vots')
min_approve = fields.Integer('Minimum Approvals Required')
min_vote = fields.Integer('Minimum Votes Required')
actual_vote = fields.Integer('Actual Votes')
request_id = fields.Many2one('purchase.request', 'Request Ref.', copy=False)
purchase_cost = fields.Selection(
[('department', 'Department'), ('default', 'Default Cost Center'), ('product_line', 'Product Line'),

View File

@ -41,7 +41,8 @@
groups="purchase.group_purchase_manager" states="waiting"
icon="fa-check-circle"/>
<button name="action_draft" type="object" string="Reset To Draft" class="btn-secondary"
<button name="action_draft" type="object" string="Reset To Draft" class="btn"
style="background-color: #6c757d; color: white; border-color: #6c757d;"
states="refuse" groups="purchase_requisition_custom.group_purchase_set_to_draft"
icon="fa-undo"/>
@ -68,33 +69,42 @@
</h1>
</div>
<group>
<group string="Request Information">
<field name="date" readonly="1" widget="date"/>
<field name="by_purchase" groups="purchase.group_purchase_user"/>
<field name="employee_id" attrs="{'readonly':[('by_purchase' , '=' , False)]}" required="1"
options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}"/>
<field name="department_id" force_save="1"
attrs="{'readonly' : ['|',('state' , '!=' , 'draft'),('by_purchase' , '!=' , True)] , 'required' : [('by_purchase' , '=' , True)]}"
readonly="1" context="{'show_department_short': True}"/>
<field name="branch_id" readonly="1" context="{'show_branch_short': True}"/>
</group>
<group string="Request Details">
<field name="product_category_ids" widget="many2many_tags"/>
<field name="purchase_purpose" required="1"
attrs="{'readonly':[('state' , '!=' , 'draft')]}"
placeholder="Enter purchase request justifications..."/>
placeholder="Enter purchase request justifications..."
help="الغرض من طلب الشراء والسبب وراء الحاجة للأصناف المطلوبة"/>
<field name="product_category_ids" widget="many2many_tags"
help="تصنيفات الأصناف المطلوبة في طلب الشراء (يحدث تلقائياً بناءا على الأصناف المختارة)"/>
<field name="use_analytic"
help="تفعيل استخدام حساب تحليلي محدد بدلاً من الحساب الافتراضي للقسم"/>
<field name="account_analytic_id"
options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}"
attrs="{'invisible':[('use_analytic' , '=' , False)],'required':[('use_analytic' , '=' , True)],'readonly':[('state' , '!=' , 'draft')]}"
help="الحساب التحليلي المستخدم لتتبع الميزانية والمصروفات"/>
<field name="type_id" invisible="1"/>
</group>
<group string="Request Information">
<field name="date" readonly="1" widget="date" help="تاريخ إنشاء طلب الشراء"/>
<field name="employee_id" attrs="{'readonly':[('by_purchase' , '=' , False)]}" required="1"
options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}"
help="الموظف الذي قام بإنشاء طلب الشراء"/>
<field name="department_id" force_save="1"
attrs="{'readonly' : ['|',('state' , '!=' , 'draft'),('by_purchase' , '!=' , True)] , 'required' : [('by_purchase' , '=' , True)]}"
readonly="1" context="{'show_department_short': True}"
help="القسم التابع له الموظف أو القسم المطلوب الشراء له"/>
<field name="branch_id" readonly="1" context="{'show_branch_short': True}"
help="الفرع التابع له القسم"/>
</group>
<group string="Purchase Details" name="purchase_details_group">
<field name="by_purchase" groups="purchase.group_purchase_user" help="تحديد ما إذا كان الطلب تم إنشاؤه من قبل قسم المشتريات"/>
<field name="partner_id"
domain="[('supplier_rank','>', 0)]"
options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}"
attrs="{'readonly':['|',('edit_partner_id' , '=' , False),('state' , '!=' , 'waiting')]}"
help="Suggested vendor for this purchase request"/>
</group>
<group string="Other Details" name="other_details_group">
<field name="use_analytic"/>
<field name="account_analytic_id"
options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}"
attrs="{'invisible':[('use_analytic' , '=' , False)],'required':[('use_analytic' , '=' , True)],'readonly':[('state' , '!=' , 'draft')]}"
help="Analytic account for budget tracking"/>
help="المورد المقترح لطلب الشراء (اختياري)"/>
</group>
<field name="picking_type_id" invisible="1"/>
<field name="purchase_create" invisible="1"/>
@ -109,14 +119,18 @@
domain="[('purchase_ok', '=', True)]"
options="{'no_create' : True , 'no_edit' : True ,'no_open' : True}"
optional="show"
required="1"/>
required="1"
help="الصنف أو الخدمة المطلوبة للشراء"/>
<field name="uom_id"/>
<field name="description"/>
<field name="uom_id"
help="وحدة القياس للصنف"/>
<field name="description"
help="وصف تفصيلي للصنف المطلوب (اختياري)"/>
<field name="qty"
attrs="{'column_required':[('parent.state' , '!=' , 'draft')]}"
optional="show"/>
optional="show"
help="الكمية المطلوبة من الصنف"/>
<!-- <field name="price_unit" attrs="{'column_required':[('parent.state' , '!=', 'draft')]}" optional="show"/>-->
<!-- <field name="sum_total" force_save="1" sum="Total amount" optional="show"/>-->
<field name="account_id" invisible="1"/>
@ -124,7 +138,8 @@
</field>
</page>
<page string="Note" icon="fa-sticky-note-o">
<field name="note" placeholder="Enter additional notes..."/>
<field name="note" placeholder="Enter additional notes..."
help="ملاحظات إضافية أو تفاصيل إضافية حول طلب الشراء"/>
</page>
</notebook>
</sheet>

View File

@ -192,11 +192,11 @@
groups="purchase_requisition_custom.group_select_recommended_offer"
confirm="Are you sure you want to process ?"
attrs="{'invisible':['|',
('recommendation_order','=', True),('purchase_commitee', '=', False)]}" string="Recommended"/>
('recommendation_order','=', True),('purchase_commitee', '=', False)]}" string="Recommended" class="btn-success" icon="fa-star"/>
<button type="object" name="action_unsign"
groups="purchase_requisition_custom.group_unsign_purchase_order" string="UnSign"
states="sign"/>
states="sign" class="btn-warning" icon="fa-eraser"/>
<button type="object" name="budget_resend" string="Resend To Budget Check" class="btn-info"
states="budget_rejected" icon="fa-refresh"/>
<button type="object" name="action_budget" string="Send To Budget Check" class="btn-primary"
@ -388,7 +388,7 @@
<button type="object" groups="purchase_requisition_custom.group_quotation_purchase_requisition"
name="action_quotation" string="Quotation"
attrs="{'invisible':['&amp;','|',('state','!=','accept'),('type','!=','project'),'|',('state','not in',('in_progress', 'ongoing','rejected_by_committee')),('type','!=','operational')]}"
class="btn-primary"/>
class="btn-primary" icon="fa-file-text-o"/>
<button type="object" groups="purchase.group_purchase_user" name="action_budget"
string="Send To Budget" attrs="{'invisible':['|', ('state','!=', 'purchase_manager'),('is_purchase_budget','=',False)]}"
class="btn-primary" icon="fa-send"/>
@ -399,12 +399,12 @@
class="btn-warning" icon="fa-forward"/>
<button type="object" groups="purchase_requisition_custom.group_approve_purchase_requisition"
name="action_approve" string="Approve" states="checked" class="btn-primary"/>
name="action_approve" string="Approve" states="checked" class="btn-primary" icon="fa-check-circle"/>
<button type="object" groups="purchase_requisition_custom.purchase_requisition_second_approve"
name="second_approval" string="Approve" states="second_approve" class="btn-primary"/>
name="second_approval" string="Approve" states="second_approve" class="btn-primary" icon="fa-check-circle"/>
<button type="object" groups="purchase_requisition_custom.purchase_requisition_third_approve"
name="third_approve" string="Approve" states="third_approve" class="btn-primary"/>
name="third_approve" string="Approve" states="third_approve" class="btn-primary" icon="fa-check-circle"/>
<button name="to_committee" class="btn-info"
attrs="{'invisible' : ['|','|',('order_count','=', 0),('purchase_commitee','=',False),'&amp;',('purchase_commitee','=',True),('sent_to_commitee','=', True)]}"
@ -422,7 +422,7 @@
<xpath expr="/form/header/button[@name='action_done']" position="replace">
<button type="object" name="action_done"
groups="purchase_requisition_custom.group_done_purchase_requisition" string="Done"
states="open,ongoing" class="btn-primary"/>
states="open,ongoing" class="btn-primary" icon="fa-check-circle"/>
</xpath>
<xpath expr="/form/header/button[@type='action'][1]" position="attributes">
<attribute name="invisible">1</attribute>
@ -451,15 +451,17 @@
<xpath expr="/form/header/button[@name='action_in_progress']" position="replace">
<button name="action_in_progress"
groups="purchase_requisition_custom.group_confirm_purchase_requisition" states="draft"
string="Confirm" type="object" class="btn-primary"/>
string="Confirm" type="object" class="btn-primary" icon="fa-play-circle"/>
</xpath>
<xpath expr="/form/header/button[@name='action_cancel']" position="replace">
<button name="action_cancel" groups="purchase_requisition_custom.group_cancel_purchase_requisition"
states="draft,in_progress,ongoing,checked,purchase_manager,rejected_by_committee"
string="Cancel" type="object"/>
string="Cancel" type="object" class="btn-danger" icon="fa-times-circle"/>
</xpath>
<xpath expr="/form/header/button[@name='action_draft']" position="attributes">
<attribute name="attrs">{'invisible':[('state','!=','cancel')]}</attribute>
<xpath expr="/form/header/button[@name='action_draft']" position="replace">
<button name="action_draft" states="cancel" string="Reset To Draft" type="object" class="btn" icon="fa-undo"
style="background-color: #6c757d; color: white; border-color: #6c757d;"
attrs="{'invisible':[('state','!=','cancel')]}"/>
</xpath>
<xpath expr="/form/header/button[@name='action_open']" position="attributes">
<attribute name="invisible">1</attribute>
@ -477,28 +479,6 @@
<!-- <field name="agreement_date" attrs="{'readonly': [('state','!=', 'draft')]}"/>-->
<!-- <field name="city" attrs="{'readonly': [('state','!=', 'draft')]}"/>-->
</xpath>
<xpath expr="//field[@name='user_id']" position="after">
<field name="check_request" invisible="1"/>
<field name="category_ids" required="1"
attrs="{'readonly':['|',('state','in',('cancel','checked','done','waiting')),('check_request','=',True)]}"
widget="many2many_tags"/>
<field name="purchase_cost" required="1"
attrs="{'readonly':[('state','in',('cancel','checked','done','waiting'))]}"/>
<field name="department_id" attrs="{'required':[('purchase_cost','=', 'department')], 'invisible':[('purchase_cost','=', 'product_line')],
'readonly':['|',('state','in',('cancel','checked','done','waiting')),('check_request','=',True)]}" context="{'show_department_short': True}"/>
<field name="purpose" required="1"
attrs="{'readonly':['|',('state','in',('cancel','checked','done','waiting')),('check_request','=',True)]}"/>
<field name="type" required="1"
attrs="{'readonly':[('state','in',('cancel','checked','done','waiting'))]}"/>
<field name="project_id"
attrs="{'invisible':[('type','!=', 'project')], 'required':[('type','=', 'project')], 'readonly':[('state' , '!=' , 'draft')]}"/>
<field name="request_id" readonly="1"/>
<field name="type_exclusive" invisible="1"/>
</xpath>
<xpath expr="//field[@name='vendor_id']" position="attributes">
<attribute name="attrs">{
'readonly': [('state','in',('cancel','checked','done','waiting'))],
@ -531,20 +511,6 @@
{'readonly':['|',('category_ids','=',False),('state','in',('cancel','done','waiting','checked'))]}
</attribute>
</xpath>
<xpath expr="//field[@name='company_id']" position="after">
<field name="is_purchase_budget" invisible="1"/>
<field name="purchase_commitee"/>
<field name="committee_type_id" attrs="{'invisible' : [('purchase_commitee' , '!=' , True)]}"
domain="[('type_cat', '=', category_ids)]"/>
<field name="committe_head"
attrs="{'invisible' : [('purchase_commitee' , '!=' , True)], 'required' : [('purchase_commitee' , '=' , True)]}"/>
<field name="min_approve"
attrs="{'invisible' : [('purchase_commitee' , '!=' , True)] , 'required' : [('purchase_commitee' , '=' , True)]}"/>
<field name="min_vote"
attrs="{'invisible' : [('purchase_commitee' , '!=' , True)] , 'required' : [('purchase_commitee' , '=' , True)]}"/>
</xpath>
<xpath expr="//page[last()]" position="after">
<page string="Purchase Committe Members"
attrs="{'invisible' : [('purchase_commitee' , '!=' , True)], 'required': [('purchase_commitee' , '=' , True)]}">
@ -555,9 +521,75 @@
</field>
</page>
</xpath>
<xpath expr="//field[@name='company_id']" position="after">
<field name="department_id" invisible="1"/>
<field name="days_count" invisible="1"/>
<xpath expr="//group[1]" position="replace">
<group>
<group string="Basic Information">
<field name="is_quantity_copy" invisible='1'/>
<field name="user_id" attrs="{'readonly': [('state','not in',('draft','in_progress','open'))]}" domain="[('share', '=', False)]"
help="المستخدم المسؤول عن متابعة اتفاقية الشراء"/>
<field name="type_id" attrs="{'readonly': [('state','!=','draft')]}" required="1" widget="selection"
help="نوع اتفاقية الشراء (منافسة، اتفاقية إطار، إلخ)"/>
<field name="request_id" readonly="1"
help="طلب الشراء المرتبط بهذه الاتفاقية (إن وجد)"/>
<field name="origin" placeholder="e.g. PO0025" attrs="{'readonly': [('state', '!=', 'draft')]}"
help="رقم مرجعي خارجي للاتفاقية (اختياري)"/>
<field name="company_id" groups="base.group_multi_company" options="{'no_create': True}" attrs="{'readonly': [('state','not in',('draft'))]}"
help="الشركة التابعة لها الاتفاقية"/>
<field name="is_purchase_budget" invisible="1"/>
<field name="type_exclusive" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="days_count" invisible="1"/>
</group>
<group string="Classification/Purpose">
<field name="check_request" invisible="1"/>
<field name="category_ids" required="1"
attrs="{'readonly':['|',('state','in',('cancel','checked','done','waiting')),('check_request','=',True)]}"
widget="many2many_tags"
help="تصنيفات الأصناف المطلوبة في الاتفاقية"/>
<field name="purpose" required="1"
attrs="{'readonly':['|',('state','in',('cancel','checked','done','waiting')),('check_request','=',True)]}"
help="الغرض من اتفاقية الشراء والسبب وراء الحاجة للأصناف"/>
<field name="type" required="1" attrs="{'readonly':[('state','in',('cancel','checked','done','waiting'))]}"
help="نوع الاتفاقية: مشروع (مرتبط بمشروع محدد) أو تشغيلي (للاستخدام العام)"/>
<field name="purchase_cost" required="1"
attrs="{'readonly':[('state','in',('cancel','checked','done','waiting'))]}"
help="طريقة توزيع التكلفة: حسب القسم، حسب بند المنتج، حسب المشروع، أو الافتراضي"/>
<field name="department_id" attrs="{'required':[('purchase_cost','=', 'department')], 'invisible':[('purchase_cost','=', 'product_line')],
'readonly':['|',('state','in',('cancel','checked','done','waiting')),('check_request','=',True)]}" context="{'show_department_short': True}"
help="القسم المسؤول عن التكلفة (يظهر عند اختيار 'حسب القسم')"/>
<field name="project_id"
attrs="{'invisible':[('type','!=', 'project')], 'required':[('type','=', 'project')], 'readonly':[('state' , '!=' , 'draft')]}"
help="المشروع المرتبط بالاتفاقية (يظهر عند اختيار نوع 'مشروع')"/>
</group>
<group string="Vendor/Dates">
<field name="vendor_id" context="{'res_partner_search_mode': 'supplier'}" attrs="{'required': [('is_quantity_copy', '=', 'none')], 'readonly': [('state', 'in', ['ongoing','done'])]}"
help="المورد المحدد للاتفاقية (مطلوب لبعض أنواع الاتفاقيات)"/>
<field name="currency_id" groups="base.group_multi_currency"
help="العملة المستخدمة في الاتفاقية"/>
<field name="ordering_date" attrs="{'readonly': [('state','not in',('draft','in_progress','open','ongoing'))]}" required="1"
help="تاريخ بدء الاتفاقية"/>
<field name="schedule_date" attrs="{'readonly': [('state','not in',('draft','in_progress','open','ongoing'))]}"
help="تاريخ الاستلام المتوقع للأصناف"/>
<field name="date_end" attrs="{'readonly': [('state','not in',('draft','in_progress','open','ongoing'))]}"
help="تاريخ انتهاء الاتفاقية"/>
</group>
<group string="Committee Settings">
<field name="purchase_commitee"
help="تفعيل استخدام لجنة الشراء لتقييم العروض"/>
<field name="committee_type_id" attrs="{'invisible' : [('purchase_commitee' , '!=' , True)]}"
domain="[('type_cat', '=', category_ids)]"
help="نوع اللجنة المستخدمة (يتم تحديده حسب تصنيفات الأصناف)"/>
<field name="committe_head"
attrs="{'invisible' : [('purchase_commitee' , '!=' , True)], 'required' : [('purchase_commitee' , '=' , True)]}"
help="رئيس اللجنة المسؤول عن إدارة عملية التقييم"/>
<field name="min_approve"
attrs="{'invisible' : [('purchase_commitee' , '!=' , True)] , 'required' : [('purchase_commitee' , '=' , True)]}"
help="الحد الأدنى لعدد الموافقات المطلوبة من أعضاء اللجنة"/>
<field name="min_vote"
attrs="{'invisible' : [('purchase_commitee' , '!=' , True)] , 'required' : [('purchase_commitee' , '=' , True)]}"
help="الحد الأدنى لعدد الأصوات المطلوبة من أعضاء اللجنة"/>
</group>
</group>
</xpath>
@ -577,7 +609,12 @@
<field name="ordering_date"/>
<field name="department_id"/>
<field name="category_ids" widget="many2many_tags"/>
<field name="state"/>
<field name="state" widget="badge"
decoration-muted="state == 'draft'"
decoration-info="state in ['in_progress', 'ongoing', 'open', 'committee']"
decoration-success="state in ['accept', 'checked', 'done', 'approve']"
decoration-warning="state in ['purchase_manager', 'second_approve', 'third_approve', 'legal_counsel', 'waiting']"
decoration-danger="state in ['cancel', 'rejected_by_committee']"/>
</tree>
</xpath>
</field>
@ -727,8 +764,16 @@
<field name="origin"/>
<field name="amount_untaxed"/>
<field name="amount_total"/>
<field name="state"/>
<field name="invoice_status"/>
<field name="state" widget="badge"
decoration-muted="state == 'draft'"
decoration-info="state in ['sent', 'wait', 'wait_for_send']"
decoration-success="state in ['purchase', 'done']"
decoration-warning="state == 'to approve'"
decoration-danger="state == 'cancel'"/>
<field name="invoice_status" widget="badge"
decoration-success="invoice_status == 'invoiced'"
decoration-info="invoice_status == 'to invoice'"
decoration-muted="invoice_status == 'no'"/>
</tree>
</field>
</record>