Add odex25_purchase
This commit is contained in:
parent
3a3f834c54
commit
58488512c1
|
|
@ -1,2 +1,2 @@
|
|||
# odex25-standard-moduless
|
||||
# odex25-standard-modules
|
||||
This Repo contains general standard modules for all projects.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': "Analytic account in hr department",
|
||||
'version': '14.0.1',
|
||||
'category': 'HR-Odex25',
|
||||
'author': 'Expert Co. Ltd.',
|
||||
'website': 'http://exp-sa.com',
|
||||
'depends': ['hr','analytic'],
|
||||
|
||||
# any module necessary for this one to work correctly
|
||||
|
||||
# always loaded
|
||||
'data': [
|
||||
'views/views.xml',
|
||||
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * exp_analytic
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-04 08:00+0000\n"
|
||||
"PO-Revision-Date: 2023-01-04 08:00+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model.fields,field_description:exp_analytic.field_hr_department__analytic_account_id
|
||||
msgid "Analytic Account"
|
||||
msgstr "الحساب التحليلي"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model,name:exp_analytic.model_hr_department
|
||||
msgid "Department"
|
||||
msgstr "القسم"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model.fields,field_description:exp_analytic.field_hr_department__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model.fields,field_description:exp_analytic.field_hr_department__id
|
||||
msgid "ID"
|
||||
msgstr "المُعرف"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model.fields,field_description:exp_analytic.field_hr_department____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import models, fields
|
||||
class HrDepartment(models.Model):
|
||||
_inherit = 'hr.department'
|
||||
|
||||
analytic_account_id = fields.Many2one('account.analytic.account',
|
||||
'Analytic Account')
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
|
||||
<record id="view_department_form_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.department.analytic.inherit.form</field>
|
||||
<field name="inherit_id" ref="hr.view_department_form"/>
|
||||
<field name="model">hr.department</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='company_id']" position="after">
|
||||
<field name="analytic_account_id" options='{"no_open": True, "no_create": True}'/>
|
||||
</xpath>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': "Analytic account in hr department",
|
||||
'version': '14.0.1',
|
||||
'category': 'Odex25-Purchase/Odex25-Purchase',
|
||||
'author': 'Expert Co. Ltd.',
|
||||
'website': 'http://exp-sa.com',
|
||||
'depends': ['hr','analytic'],
|
||||
|
||||
# any module necessary for this one to work correctly
|
||||
|
||||
# always loaded
|
||||
'data': [
|
||||
'views/views.xml',
|
||||
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * exp_analytic
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-01-04 08:00+0000\n"
|
||||
"PO-Revision-Date: 2023-01-04 08:00+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model.fields,field_description:exp_analytic.field_hr_department__analytic_account_id
|
||||
msgid "Analytic Account"
|
||||
msgstr "الحساب التحليلي"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model,name:exp_analytic.model_hr_department
|
||||
msgid "Department"
|
||||
msgstr "القسم"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model.fields,field_description:exp_analytic.field_hr_department__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model.fields,field_description:exp_analytic.field_hr_department__id
|
||||
msgid "ID"
|
||||
msgstr "المُعرف"
|
||||
|
||||
#. module: exp_analytic
|
||||
#: model:ir.model.fields,field_description:exp_analytic.field_hr_department____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import models, fields
|
||||
class HrDepartment(models.Model):
|
||||
_inherit = 'hr.department'
|
||||
|
||||
analytic_account_id = fields.Many2one('account.analytic.account',
|
||||
'Analytic Account')
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
|
||||
<record id="view_department_form_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.department.analytic.inherit.form</field>
|
||||
<field name="inherit_id" ref="hr.view_department_form"/>
|
||||
<field name="model">hr.department</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='company_id']" position="after">
|
||||
<field name="analytic_account_id" options='{"no_open": True, "no_create": True}'/>
|
||||
</xpath>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
from . import wizard
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
# -*- coding: utf-8 -*-# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': 'Purchase Customizations For Governmental projects',
|
||||
'version': '1.1',
|
||||
'summary': 'Customize Purchase ',
|
||||
'sequence': -1,
|
||||
'author': "Expert Co Ltd",
|
||||
'website': "http://www.ex.com",
|
||||
'category': 'Odex25-Purchase/Odex25-Purchase',
|
||||
'description': """
|
||||
""",
|
||||
'data': [
|
||||
'security/security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'data/cron_data.xml',
|
||||
'views/purchase_request_views.xml',
|
||||
'views/purchase_order_views.xml',
|
||||
# 'views/res_setting.xml',
|
||||
'views/budget_confirmation_view.xml',
|
||||
'wizard/convert_to_contract.xml',
|
||||
],
|
||||
'depends': ['purchase_requisition_custom'],
|
||||
'installable': True,
|
||||
'application': False,
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record model="ir.cron" id="purchase_order_auto_notify_cron_job">
|
||||
<field name="name">PO Contract Auto Notification</field>
|
||||
<field name="model_id" ref="purchase.model_purchase_order"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.cron_po_auto_notify()</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="auto_po_notify" model="mail.template">
|
||||
<field name="name">PO Auto Notify</field>
|
||||
<field name="model_id" ref="purchase.model_purchase_order"/>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
<field name="email_to">${object.responsible_id.partner_id.email}</field>
|
||||
<field name="subject">Po Auto Notify</field>
|
||||
<field name="body_html"><![CDATA[
|
||||
<p>Dear ${object.responsible_id.name},</p>
|
||||
<p> ${object.contract_name} Will Be Expired<br>
|
||||
IN Purchase order: ${object.name}<br>
|
||||
Vendor: ${object.partner_id.name}<br>
|
||||
End Date: ${object.end_date}<br>
|
||||
</p>
|
||||
]]></field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,816 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * governmental_purchase
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-09-28 10:14+0000\n"
|
||||
"PO-Revision-Date: 2023-09-28 10:14+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__strategic_objective__e_d_p
|
||||
msgid "3.1.1 Ease of doing business"
|
||||
msgstr "3.1.1 تسهيل ممارسة الأعمال"
|
||||
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__strategic_objective__a_f_d_i
|
||||
msgid "3.1.6 Attracting foreign direct investment"
|
||||
msgstr "3.1.6 جذب الاستثمارات الأجنبية المباشرة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__strategic_objective__d_r_s
|
||||
msgid "3.3.5 Development of the retail sector"
|
||||
msgstr "3.3.5 تطوير قطاع التجزئة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__strategic_objective__i_c_e
|
||||
msgid "4.3.2 Increasing SMEs contribution to the economy"
|
||||
msgstr "4.3.2 زيادة مساهمة الشركات الصغيرة والمتوسطة في الاقتصاد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_requisition_custom_setting
|
||||
msgid "Activate Budget check in purchase"
|
||||
msgstr "تفعيل التحقق من الميزانية في الشراء"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__activities
|
||||
msgid "Activities"
|
||||
msgstr "الأنشطة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__activity_description
|
||||
msgid "Activity Description"
|
||||
msgstr "وصف النشاط"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__cso_agreed
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__cso_agreed__agreed
|
||||
msgid "Agreed"
|
||||
msgstr "موافق"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Aligned with the scope of the draft national strategy"
|
||||
msgstr "التأكد مع نطاق الاستراتيجية "
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__alternative_offer_allowed
|
||||
msgid "Alternative Offer Allowed ?"
|
||||
msgstr "يسمح بالعرض البديل؟"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__applying_address
|
||||
msgid "Applying Address"
|
||||
msgstr "عنوان تقديم الضمان"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Approve"
|
||||
msgstr "إعتماد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_order_governmental_form_view
|
||||
msgid "Are you sure you want to process ?"
|
||||
msgstr "هل أنت متأكد بهذا الاجراء؟"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__attachment_scope_project
|
||||
msgid "Attachment Scope Project"
|
||||
msgstr "نطاق عمل المشروع "
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__auto_notification
|
||||
msgid "Auto Notification"
|
||||
msgstr "اشعار آلي"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_order__billed_amount
|
||||
msgid "Billed Amount"
|
||||
msgstr "المبلغ المفوتر"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__body_technical
|
||||
msgid "Body Technical"
|
||||
msgstr "اسم الجهة الفنية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_requisition_custom_setting
|
||||
msgid "Booklet"
|
||||
msgstr "الكراسة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__ceo_purchase
|
||||
msgid "Manager OF Purchasing And Contract"
|
||||
msgstr "المدير التنفيذي للمشتريات والعقود"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Can't Confirm Request With No Item!"
|
||||
msgstr ""
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__cancel
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.convert_to_contract_po_wizard
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__classify_des
|
||||
msgid "Classify"
|
||||
msgstr "توضيح"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model,name:governmental_purchase.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "المؤسسات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__company_id
|
||||
msgid "Company"
|
||||
msgstr "المؤسسة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__cso_compatible
|
||||
msgid "Compatible"
|
||||
msgstr "موائم للنطاق"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__cso_compatible__compatible
|
||||
msgid "Compatible with scope"
|
||||
msgstr "غير موائم للنطاق"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__competion_description
|
||||
msgid "Competion Description"
|
||||
msgstr "وصف المنافسة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model,name:governmental_purchase.model_res_config_settings
|
||||
msgid "Config Settings"
|
||||
msgstr "ضبط الاعدادات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_order_governmental_form_view
|
||||
msgid "Confirm Order"
|
||||
msgstr "تأكيد الأمر"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.convert_to_contract_po_wizard
|
||||
msgid "Contract Information"
|
||||
msgstr "معلومات العقد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__contract_name
|
||||
msgid "Contract Name"
|
||||
msgstr "اسم العقد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model,name:governmental_purchase.model_convert_po_contract_wizard
|
||||
msgid "Convert Contract wizard"
|
||||
msgstr "معالج تحويل العقد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.convert_to_contract_po_wizard
|
||||
msgid "Convert To Contract"
|
||||
msgstr "تحويل إلى عقد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Create Date: "
|
||||
msgstr "تاريخ الإنشاء"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.actions.act_window,help:governmental_purchase.purchase_type_contract_action
|
||||
msgid "Create New a Purchase Contract"
|
||||
msgstr "إنشاء عقد مشتريات جديد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Create Purchase Order"
|
||||
msgstr "إنشاء أمر الشراء"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Create Requisition"
|
||||
msgstr "انشاء طلب شراء (عروض اسعار)"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "أنشئ بواسطة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__create_date
|
||||
msgid "Created on"
|
||||
msgstr "أنشئ في"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__date_time
|
||||
msgid "Date and Time"
|
||||
msgstr "التاريخ والوقت"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__convert_po_contract_wizard__period_type__day
|
||||
msgid "Day(s)"
|
||||
msgstr "يوم(أيام)"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Delivery Info"
|
||||
msgstr "معلومات التسليم"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__Delivery_place
|
||||
msgid "Delivery_place"
|
||||
msgstr "مكان التسليم"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Deparments Use"
|
||||
msgstr "الإدارة الطالبة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Deparments Use Base info"
|
||||
msgstr "المعلومات الأساسية للطلب"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__display_name
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_order__display_name
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__display_name
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_res_company__display_name
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_res_config_settings__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__is_delivered
|
||||
msgid "Do samples need to delivered"
|
||||
msgstr "هل يتطلب تسليم عينات؟"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__document_cost
|
||||
msgid "Document cost"
|
||||
msgstr "قيمة الوثائق"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__done
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Done"
|
||||
msgstr "تم"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__draft
|
||||
msgid "Draft"
|
||||
msgstr "مبدئي"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__budget_approve
|
||||
msgid "Budget Approved"
|
||||
msgstr "إعتماد الإرتباط المبدئي"
|
||||
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__end_date
|
||||
msgid "End Date"
|
||||
msgstr "تاريخ النهاية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "First Budget Check"
|
||||
msgstr "ارسال للارتباط المبدئي"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__delivery_floor
|
||||
msgid "Floor"
|
||||
msgstr "الطابق"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "For technical management use"
|
||||
msgstr "الادراة الفنية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__id
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_order__id
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__id
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_res_company__id
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_res_config_settings__id
|
||||
msgid "ID"
|
||||
msgstr "المُعرف"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__waiting
|
||||
msgid "Procurement Department"
|
||||
msgstr "إدارة المشتريات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__cso_compatible__incompatible
|
||||
msgid "Incompatible with scope "
|
||||
msgstr "غير موائم للنطاق"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__initial_guarantee_percentage
|
||||
msgid "Initial Guarantee Percentage (%)"
|
||||
msgstr "نسبة الضمان الابتدائي (%)"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__initiative_end_date
|
||||
msgid "Initiative End Date"
|
||||
msgstr "تاريخ انتهاء المبادرة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__initiative_name
|
||||
msgid "Initiative Name"
|
||||
msgstr "اسم المبادرة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__Delivery_place__inside
|
||||
msgid "Inside Saudi Arabia"
|
||||
msgstr "داخل المملكة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__is_competition_divisible
|
||||
msgid "Is Competition Divisible?"
|
||||
msgstr "هل المنافسة قابلة للتجزئة؟"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_order____last_update
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request____last_update
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_res_company____last_update
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_res_config_settings____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "آخر تحديث بواسطة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "آخر تحديث في"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__list_documentaries
|
||||
msgid "List documentaries"
|
||||
msgstr "قائمة الوثائق"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__convert_po_contract_wizard__period_type__month
|
||||
msgid "Month(s)"
|
||||
msgstr "شهر (شهور) "
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__is_delivered__no
|
||||
msgid "NO"
|
||||
msgstr "لا"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__alternative_offer_allowed__no
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__is_competition_divisible__no
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__pre_qualification__no
|
||||
msgid "No"
|
||||
msgstr "لا"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__cso_agreed__not_agreed
|
||||
msgid "Not Agreed"
|
||||
msgstr "غير موافق"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__notify_before
|
||||
msgid "Notify Before"
|
||||
msgstr "إشعار قبل"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.convert_to_contract_po_wizard
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_order_governmental_form_view
|
||||
msgid "Notify Before End"
|
||||
msgstr "إشعار قبل الانتهاء"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/wizard/convert_to_contract.py:0
|
||||
#, python-format
|
||||
msgid "Notify Before End Should Be Greater Than Zero"
|
||||
msgstr ""
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__budget_confirmation__budget_scope__other
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__strategic_objective__other
|
||||
msgid "Other"
|
||||
msgstr "اخرى"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__other_strategic_objective
|
||||
msgid "Other Strategic objective"
|
||||
msgstr "هدف استراتيجي آخر"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__other_details
|
||||
msgid "Other details"
|
||||
msgstr "تفاصيل أخرى"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__Delivery_place__out
|
||||
msgid "Out of Saudi Arabia"
|
||||
msgstr "خارج المملكة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.actions.server,name:governmental_purchase.purchase_order_auto_notify_cron_job_ir_actions_server
|
||||
#: model:ir.cron,cron_name:governmental_purchase.purchase_order_auto_notify_cron_job
|
||||
#: model:ir.cron,name:governmental_purchase.purchase_order_auto_notify_cron_job
|
||||
msgid "PO Contract Auto Notification"
|
||||
msgstr "اشعار آلي للعقد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_order_governmental_form_view
|
||||
msgid "PO To Contract"
|
||||
msgstr "تحويل امر الشراء الى عقد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__period_type
|
||||
msgid "Period Type"
|
||||
msgstr "نوع الفترة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Please Select department for employee"
|
||||
msgstr "الرجاء إختيار قسم للموظف"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__pre_qualification
|
||||
msgid "Pre-Qualification Linked ?"
|
||||
msgstr "مربوط بتأهيل مسبق؟"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Procurement use"
|
||||
msgstr "استخدام إدارة المشتريات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__program_action
|
||||
msgid "Program of action"
|
||||
msgstr "برنامج العمل"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__project_duration
|
||||
msgid "Project Duration"
|
||||
msgstr "مدة تنفيذ المشروع"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Project Location"
|
||||
msgstr "موقع المشروع"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__project_name
|
||||
msgid "Project Name"
|
||||
msgstr "اسم المشروع"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__purchase_id
|
||||
msgid "Purchase"
|
||||
msgstr "الشراء"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_requisition_custom_setting
|
||||
msgid "Purchase Booklet"
|
||||
msgstr "الكراسة الالكترونية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.actions.act_window,name:governmental_purchase.purchase_type_contract_action
|
||||
#: model:ir.ui.menu,name:governmental_purchase.purchase_type_contract_menu
|
||||
msgid "Purchase Contracts"
|
||||
msgstr "عقود الشراء"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model,name:governmental_purchase.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr "أوامر الشراء المؤكدة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model,name:governmental_purchase.model_purchase_request
|
||||
msgid "Purchase Request"
|
||||
msgstr "طلبات الشراء"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Purchase Request Approve"
|
||||
msgstr "اعتماد طلبات شراء الإدارات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Purchase Request Confirmation By Direct Managr"
|
||||
msgstr "صلاحية طلبات الشراء لمدراء الادارات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__purpose_of_tender
|
||||
msgid "Purpose of Tender"
|
||||
msgstr "الغرض من المشروع"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_order_governmental_form_view
|
||||
msgid "Recommend"
|
||||
msgstr "العرض الموصي به"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__refuse
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Refuse"
|
||||
msgstr "رفض"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_order__remaining_amount
|
||||
msgid "Remaining Amount"
|
||||
msgstr "المتبقي للفوترة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Requesting ِAdministration"
|
||||
msgstr "لإستخدام الإدارة الطالبة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Reset To Draft"
|
||||
msgstr "ارجاع الى مبــدئي"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__responsible_id
|
||||
msgid "Responsible"
|
||||
msgstr "المسؤول"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__samples_delivery_address
|
||||
msgid "Samples Address"
|
||||
msgstr "عنوان تسليم العينات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.convert_to_contract_po_wizard
|
||||
msgid "Save"
|
||||
msgstr "حفظ"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Send"
|
||||
msgstr "إرسال"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__send_budget
|
||||
msgid "Send to Budget Confirmation"
|
||||
msgstr "إرسال للإرتباط المبدئي"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__is_direct_manager
|
||||
msgid "Sent Technical Department"
|
||||
msgstr "إرسال للإدارة الفنية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_convert_po_contract_wizard__start_date
|
||||
msgid "Start Date"
|
||||
msgstr "تاريخ البداية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/wizard/convert_to_contract.py:0
|
||||
#, python-format
|
||||
msgid "Start Date Should Be Less Than End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__state
|
||||
msgid "State"
|
||||
msgstr "الحالة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__strategic_objective
|
||||
msgid "Strategic Objective"
|
||||
msgstr "الهدف الاستراتيجي"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Strategy Management Use"
|
||||
msgstr "لإستخدام الاستراتجية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__sub_project
|
||||
msgid "Sub Project"
|
||||
msgstr "اسم المشروع الفرعي"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "Submit"
|
||||
msgstr "إعتماد"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__direct_manager
|
||||
msgid "Technical Department"
|
||||
msgstr "الإدارة الفنية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__tender_name
|
||||
msgid "Tender Name"
|
||||
msgstr "اسم المشروع"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__delivery_unit
|
||||
msgid "Unit"
|
||||
msgstr "الغرفة/الادارة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__attachment_booklet_uploade
|
||||
msgid "Upload Booklet"
|
||||
msgstr "رفع ملف الكراسة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,help:governmental_purchase.field_res_company__attachment_booklet_exp
|
||||
#: model:ir.model.fields,help:governmental_purchase.field_res_config_settings__attachment_booklet_exp
|
||||
msgid "Upload Booklet file"
|
||||
msgstr "إرفاق الكراسة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__vision_program_name
|
||||
msgid "Vision Program Name"
|
||||
msgstr "اسم برنامج الرؤية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__wait_budget
|
||||
msgid "Wait Budget"
|
||||
msgstr "في انتظار إدارة الميزانية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__convert_po_contract_wizard__period_type__week
|
||||
msgid "Week(s)"
|
||||
msgstr "أسبوع (أسابيع)"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__work_location_city
|
||||
msgid "Work Location City"
|
||||
msgstr "المدينة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__work_location_district
|
||||
msgid "Work Location District"
|
||||
msgstr "الحي"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__work_location_GPS
|
||||
msgid "Work Location GPS"
|
||||
msgstr "احداثيات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__work_location_state
|
||||
msgid "Work Location State"
|
||||
msgstr "المحافظة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__is_delivered__yes
|
||||
msgid "YES"
|
||||
msgstr "نعم"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__convert_po_contract_wizard__period_type__year
|
||||
msgid "Year(s)"
|
||||
msgstr "سنة (سنوات)"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__alternative_offer_allowed__yes
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__is_competition_divisible__yes
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__pre_qualification__yes
|
||||
msgid "Yes"
|
||||
msgstr "نعم"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_purchase_request__delivery_building
|
||||
msgid "building"
|
||||
msgstr "المبنى"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__dm
|
||||
msgid "Management Manager"
|
||||
msgstr "مدير الإدارة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.purchase_request_form
|
||||
msgid "download Booklet"
|
||||
msgstr "تنزيل الكراسة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_res_company__attachment_booklet_exp
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_res_config_settings__attachment_booklet_exp
|
||||
msgid "file"
|
||||
msgstr "الملف"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "need your approve."
|
||||
msgstr ""
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "need your confirmation."
|
||||
msgstr ""
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__budget_confirmation__budget_scope__initiative
|
||||
msgid "Initiative"
|
||||
msgstr "المبادرة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__budget_confirmation__budget_scope__ksagreement_budget
|
||||
msgid "Korean Side Agreement Budget"
|
||||
msgstr "ميزانية اتفاقية الجانب الكوري"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__budget_confirmation__budget_scope__strategy
|
||||
msgid "National Strategy Budget"
|
||||
msgstr "ميزانية الاستراتجية الوطنية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__budget_confirmation__budget_scope__operational_budget
|
||||
msgid "Operational Budget"
|
||||
msgstr "الميزانية التشغلية للهيئة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__budget_confirmation__budget_scope__revenue_budget
|
||||
msgid "Revenue Budget"
|
||||
msgstr "ميزانية الايرادات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_budget_confirmation__budget_scope
|
||||
msgid "Budget Scope"
|
||||
msgstr "نطاق الميزانية"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__budget_confirmation__permission__allowed
|
||||
msgid "Item Allows"
|
||||
msgstr "البند يسمح"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__budget_confirmation__permission__not_allowed
|
||||
msgid "Item Not Allows"
|
||||
msgstr "البند لايسمح"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields,field_description:governmental_purchase.field_budget_confirmation__permission
|
||||
msgid "Permission"
|
||||
msgstr "السماح"
|
||||
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:governmental_purchase.inherit_view_budget_confirmation_form
|
||||
msgid "Budget Management"
|
||||
msgstr "انتظار الارسال"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:res.groups,name:governmental_purchase.executive_director_of_purchase_and_contract
|
||||
msgid "Executive Director of Purchase and Contract"
|
||||
msgstr "المدير التنفيذي للخدمات المشتركة"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__general_supervisor
|
||||
#: model:res.groups,name:governmental_purchase.group_ceo_of_corporate_resources
|
||||
msgid "Chief Executive Officer"
|
||||
msgstr "الرئيس"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.model.fields.selection,name:governmental_purchase.selection__purchase_request__state__executive_vice
|
||||
#: model:res.groups,name:governmental_purchase.group_executive_vice_approve
|
||||
msgid "Executive Vice President"
|
||||
msgstr "نائب الرئيس التنفيذي"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: model:ir.ui.menu,name:governmental_purchase.purchase_request_root_menu
|
||||
msgid "Employee Requests"
|
||||
msgstr "طلبات الإدارات"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Total Amount MUST be greater than 0 !!!"
|
||||
msgstr "المبلغ الإجمالي يجب أن يكون أكبر من الصفر"
|
||||
|
||||
#. module: governmental_purchase
|
||||
#: code:addons/governmental_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Please select an analytic account"
|
||||
msgstr "الرجاء إختيار حساب تحليلي"
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import purchase_order
|
||||
from . import purchase_request
|
||||
from . import res_company
|
||||
from . import budget_confirmation
|
||||
from . import account_budget
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class CrossoveredBudgetLines(models.Model):
|
||||
_inherit = "crossovered.budget.lines"
|
||||
# Added new
|
||||
reserve = fields.Float(string='Reserve Amount', tracking=True)
|
||||
initial_reserve = fields.Float(string='Initial Reserve Amount', tracking=True)
|
||||
confirm = fields.Float(string='Confirm Amount')
|
||||
year_end = fields.Boolean(compute="get_year_end")
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
from odoo import fields, api ,models, _
|
||||
|
||||
|
||||
class BudgetConfirmationCustom(models.Model):
|
||||
_inherit = 'budget.confirmation'
|
||||
|
||||
budget_scope = fields.Selection([
|
||||
('operational_budget', 'Operational Budget'),
|
||||
('initiative', 'Initiative'),
|
||||
('KSAgreement_budget', 'Korean Side Agreement Budget'),
|
||||
('revenue_budget', 'Revenue Budget'),
|
||||
('strategy','National Strategy Budget'),
|
||||
('other','Other')
|
||||
], string="Budget Scope")
|
||||
|
||||
permission = fields.Selection([
|
||||
('allowed', 'Item Allows'),
|
||||
('not_allowed', 'Item Not Allows'),
|
||||
], string="Permission")
|
||||
|
||||
|
||||
|
||||
class BudgetConfirmationLineCustom(models.Model):
|
||||
_inherit = 'budget.confirmation.line'
|
||||
analytic_account_id = fields.Many2one(
|
||||
comodel_name='account.analytic.account',
|
||||
string='Cost Center',
|
||||
required=False
|
||||
)
|
||||
|
||||
@api.onchange('analytic_account_id')
|
||||
def _onchange_analytic_account_id(self):
|
||||
rec_remain = self.analytic_account_id.crossovered_budget_line.\
|
||||
filtered(lambda x : x.date_from <= self.date and x.date_to >= self.date)
|
||||
if rec_remain :
|
||||
self.remain = rec_remain[0].remain
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo import api, fields, models, _
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
|
||||
class PurchaseOrderCustom(models.Model):
|
||||
_inherit = "purchase.order"
|
||||
|
||||
|
||||
billed_amount = fields.Float(store=True, compute='_compute_amount')
|
||||
remaining_amount = fields.Float(store=True, compute='_compute_amount')
|
||||
|
||||
@api.depends('invoice_ids','invoice_count')
|
||||
def _compute_amount(self):
|
||||
for order in self:
|
||||
billed_amount = 0.0
|
||||
for invoice in order.invoice_ids:
|
||||
billed_amount += invoice.amount_total
|
||||
|
||||
currency = order.currency_id or order.partner_id.property_purchase_currency_id or \
|
||||
self.env.company.currency_id
|
||||
order.update({
|
||||
'billed_amount': currency.round(billed_amount),
|
||||
'remaining_amount': order.amount_total - billed_amount,
|
||||
})
|
||||
|
||||
|
||||
def action_recommend(self):
|
||||
for order in self:
|
||||
order.recommendation_order = True
|
||||
|
||||
def button_confirm(self):
|
||||
super(PurchaseOrderCustom, self).button_confirm()
|
||||
for order in self:
|
||||
if order.state not in ['draft', 'sent', 'sign']:
|
||||
continue
|
||||
order._add_supplier_to_product()
|
||||
# Deal with double validation process
|
||||
if order._approval_allowed():
|
||||
order.button_approve()
|
||||
else:
|
||||
order.write({'state': 'to approve'})
|
||||
if order.partner_id not in order.message_partner_ids:
|
||||
order.message_subscribe([order.partner_id.id])
|
||||
return True
|
||||
|
|
@ -0,0 +1,148 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from datetime import datetime
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo.tools.misc import get_lang
|
||||
|
||||
|
||||
class PurchaseRequest(models.Model):
|
||||
_inherit = 'purchase.request'
|
||||
|
||||
state = fields.Selection(
|
||||
[('draft', 'Draft'),
|
||||
('dm', 'Management Manager'),
|
||||
('direct_manager', 'Technical Department'),
|
||||
('send_budget', 'Send to Budget Confirmation'),
|
||||
('wait_budget', 'Wait Budget'),
|
||||
('ceo_purchase', 'Manager OF Purchasing And Contract'),
|
||||
('executive_vice', 'Executive Vice President'),
|
||||
('general_supervisor', 'Chief Executive Officer'),
|
||||
('waiting', 'Procurement Department'),
|
||||
('done', 'Done'),
|
||||
('refuse', 'Refuse')], default="draft", tracking=True)
|
||||
project_name = fields.Char('Project Name', copy=False)
|
||||
sub_project = fields.Char('Sub Project', copy=False)
|
||||
project_duration = fields.Char('Project Duration', copy=False)
|
||||
strategic_objective = fields.Selection([
|
||||
('e_d_p', '3.1.1 Ease of doing business'),
|
||||
('a_f_d_i', '3.1.6 Attracting foreign direct investment'),
|
||||
('d_r_s', '3.3.5 Development of the retail sector'),
|
||||
('i_c_e', '4.3.2 Increasing SMEs contribution to the economy'),
|
||||
('other', 'Other')
|
||||
], string='Strategic Objective', copy=False)
|
||||
|
||||
other_strategic_objective = fields.Char('Other Strategic objective', copy=False)
|
||||
vision_program_name = fields.Char('Vision Program Name', copy=False)
|
||||
initiative_name = fields.Char('Initiative Name', copy=False)
|
||||
initiative_end_date = fields.Date('Initiative End Date', copy=False)
|
||||
is_direct_manager = fields.Boolean('Sent Technical Department', copy=False)
|
||||
cso_agreed = fields.Selection([
|
||||
('agreed', 'Agreed'),
|
||||
('not_agreed', 'Not Agreed'),
|
||||
], string='Agreed', copy=False)
|
||||
cso_compatible = fields.Selection([
|
||||
('compatible', 'Compatible with scope '),
|
||||
('Incompatible', 'Incompatible with scope '),
|
||||
], string='Compatible', copy=False)
|
||||
company_id = fields.Many2one(string='Company', comodel_name='res.company',
|
||||
default=lambda self: self.env.user.company_id)
|
||||
attachment_booklet_uploade = fields.Binary(string="Upload Booklet", copy=False)
|
||||
document_cost = fields.Char('Document cost', copy=False)
|
||||
body_technical = fields.Char('Body Technical', copy=False)
|
||||
pre_qualification = fields.Selection([
|
||||
('yes', 'Yes'),
|
||||
('no', 'No')
|
||||
], string='Pre-Qualification Linked ?', copy=False)
|
||||
initial_guarantee_percentage = fields.Float(
|
||||
'Initial Guarantee Percentage (%)', copy=False)
|
||||
applying_address = fields.Char('Applying Address', copy=False)
|
||||
alternative_offer_allowed = fields.Selection([
|
||||
('yes', 'Yes'),
|
||||
('no', 'No')
|
||||
], string='Alternative Offer Allowed ?', copy=False)
|
||||
is_competition_divisible = fields.Selection([
|
||||
('yes', 'Yes'),
|
||||
('no', 'No')
|
||||
], string='Is Competition Divisible?', copy=False)
|
||||
classify_des = fields.Text('Classify', copy=False)
|
||||
|
||||
tender_name = fields.Char('Tender Name', copy=False)
|
||||
purpose_of_tender = fields.Char('Purpose of Tender ', copy=False)
|
||||
is_delivered = fields.Selection([
|
||||
('no', 'NO'),
|
||||
('yes', 'YES')
|
||||
], string='Do samples need to delivered', copy=False)
|
||||
|
||||
samples_delivery_address = fields.Char('Samples Address', copy=False)
|
||||
delivery_building = fields.Char('building', copy=False)
|
||||
delivery_floor = fields.Char('Floor', copy=False)
|
||||
delivery_unit = fields.Char('Unit', copy=False)
|
||||
date_time = fields.Datetime('Date and Time', copy=False)
|
||||
Delivery_place = fields.Selection([
|
||||
('out', 'Out of Saudi Arabia'),
|
||||
('inside', 'Inside Saudi Arabia')
|
||||
], string='Delivery_place', copy=False)
|
||||
other_details = fields.Text('Other details', copy=False)
|
||||
# activities = fields.Many2many('activity.type', string='Activities', copy=False)
|
||||
activity_description = fields.Text('Activity Description', copy=False)
|
||||
competion_description = fields.Text('Competion Description', copy=False)
|
||||
list_documentaries = fields.Text('List documentaries', copy=False)
|
||||
attachment_scope_project = fields.Binary(string="Attachment Scope Project", copy=False)
|
||||
program_action = fields.Char('Program of action', copy=False)
|
||||
work_location_district = fields.Char('Work Location District', copy=False)
|
||||
work_location_city = fields.Char('Work Location City', copy=False)
|
||||
work_location_state = fields.Char('Work Location State', copy=False)
|
||||
work_location_GPS = fields.Char('Work Location GPS', copy=False)
|
||||
cancel_reason = fields.Char(string='Reason')
|
||||
user_id = fields.Many2one(comodel_name='res.users',string='User id')
|
||||
|
||||
|
||||
def action_dm_confirm(self):
|
||||
if len(self.line_ids) == 0:
|
||||
raise ValidationError(_("Can't Confirm Request With No Item!"))
|
||||
if not self.department_id:
|
||||
raise ValidationError(_("Please Select department for employee"))
|
||||
for rec in self.line_ids:
|
||||
if rec.request_id.is_analytic:
|
||||
if not rec.account_id:
|
||||
raise ValidationError(_("Please select an analytic account"))
|
||||
if rec.sum_total <= 0:
|
||||
raise ValidationError(_("Total Amount MUST be greater than 0 !!!"))
|
||||
|
||||
self.write({'state': 'dm'})
|
||||
|
||||
|
||||
def approve_department(self):
|
||||
self.write({'state': 'send_budget'})
|
||||
|
||||
def action_pc_confirm(self):
|
||||
amount = 0
|
||||
for rec in self.line_ids:
|
||||
amount = amount + rec.sum_total
|
||||
if amount >= self.company_id.direct_purchase:
|
||||
self.write({'state': 'executive_vice'})
|
||||
else:
|
||||
self.write({'state': 'waiting'})
|
||||
|
||||
def approve_executive_vice(self):
|
||||
amount = 0
|
||||
for rec in self.line_ids:
|
||||
amount = amount + rec.sum_total
|
||||
if amount >= self.company_id.chief_executive_officer:
|
||||
self.write({'state': 'general_supervisor'})
|
||||
else:
|
||||
self.write({'state': 'waiting'})
|
||||
|
||||
def action_general_supervisor_approve(self):
|
||||
for request in self:
|
||||
request.write({'state': 'waiting'})
|
||||
|
||||
def action_refuse(self):
|
||||
self.write({'state': 'refuse'})
|
||||
|
||||
def download_url(self):
|
||||
return {
|
||||
"type": "ir.actions.act_url",
|
||||
"url": '/web/content/res.company/%s/attachment_booklet_exp/الكراسة الالكترونية الموحدة.docx' % self.company_id.id,
|
||||
"target": "new",
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import models, fields, api, _
|
||||
|
||||
|
||||
class PurchaseRequisition(models.Model):
|
||||
_inherit = 'purchase.requisition'
|
||||
|
||||
agreement_name = fields.Char()
|
||||
agreement_number = fields.Char()
|
||||
agreement_date = fields.Date()
|
||||
# oveeride purchase_cost field to set default value
|
||||
purchase_cost = fields.Selection([('department', 'Department'), ('default', 'Default Cost Center'),('product_line', 'Product Line'), ('project', 'Project')],default='department',string='Purchase Cost')
|
||||
# end
|
||||
city = fields.Char()
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResSetting(models.TransientModel):
|
||||
_inherit = 'res.config.settings'
|
||||
|
||||
attachment_booklet_exp = fields.Binary(string='file', readonly=False, related="company_id.attachment_booklet_exp",
|
||||
attachment=True, help='Upload Booklet file')
|
||||
|
||||
|
||||
class Company(models.Model):
|
||||
_inherit = 'res.company'
|
||||
|
||||
attachment_booklet_exp = fields.Binary(
|
||||
string='file', readonly=False, attachment=True, help='Upload Booklet file')
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_crossovered_budget_group_department_approve,crossovered.budget,odex25_account_budget.model_crossovered_budget,purchase_requisition_custom.group_department_approve,1,0,0,0
|
||||
access_account_budget_post_group_department_approve,model_account_budget_post,odex25_account_budget.model_account_budget_post,purchase_requisition_custom.group_department_approve,1,0,0,0
|
||||
access_budget_confirmation_group_department_approve,budget_confirmation,account_budget_custom.model_budget_confirmation,purchase_requisition_custom.group_department_approve,1,1,1,0
|
||||
access_budget_confirmation_line_group_department_approve,budget_confirmation_line,account_budget_custom.model_budget_confirmation_line,purchase_requisition_custom.group_department_approve,1,1,1,0
|
||||
|
||||
access_crossovered_budget_group_purchase_user,crossovered.budget.group_purchase_user,odex25_account_budget.model_crossovered_budget,purchase.group_purchase_user,1,0,0,0
|
||||
access_account_budget_post_group_purchase_user,model_account_budget_post.group_purchase_user,odex25_account_budget.model_account_budget_post,purchase.group_purchase_user,1,0,0,0
|
||||
access_budget_confirmation_group_purchase_user,budget_confirmation.group_purchase_user,account_budget_custom.model_budget_confirmation,purchase.group_purchase_user,1,1,1,0
|
||||
access_budget_confirmation_line_group_purchase_user,budget_confirmation_line.group_purchase_user,account_budget_custom.model_budget_confirmation_line,purchase.group_purchase_user,1,1,1,0
|
||||
|
||||
group_user_purchase_requisition_type,Requisition Type,purchase_requisition.model_purchase_requisition_type,base.group_user,1,1,0,0
|
||||
|
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="executive_director_of_purchase_and_contract" model="res.groups">
|
||||
<field name="name">Executive Director of Purchase and Contract</field>
|
||||
<field name="category_id" ref="purchase_requisition_custom.module_category_purchase_request"/>
|
||||
<field name="implied_ids" eval="[(4, ref('purchase_requisition_custom.view_purchase_request'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="group_ceo_of_corporate_resources" model="res.groups">
|
||||
<field name="name">Chief Executive Officer</field>
|
||||
<field name="category_id" ref="purchase_requisition_custom.module_category_purchase_request"/>
|
||||
<field name="implied_ids" eval="[(4, ref('purchase_requisition_custom.view_purchase_request'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="group_executive_vice_approve" model="res.groups">
|
||||
<field name="name">Executive Vice President</field>
|
||||
<field name="category_id" ref="purchase_requisition_custom.module_category_purchase_request"/>
|
||||
<field name="implied_ids" eval="[(4, ref('purchase_requisition_custom.view_purchase_request'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="account_budget_custom.group_budget_user" model="res.groups">
|
||||
<field name="implied_ids" eval="[(4, ref('purchase_requisition_custom.view_purchase_request'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="account_budget_custom.group_department_manager_budget" model="res.groups">
|
||||
<field name="implied_ids" eval="[(4, ref('purchase_requisition_custom.view_purchase_request'))]"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<record id="purchase.group_purchase_user" model="res.groups">
|
||||
<field name="name">Purchasing Specialist</field>
|
||||
<field name="implied_ids"
|
||||
eval="[
|
||||
(4, ref('purchase_requisition_custom.group_confirm_purchase_requisition')),
|
||||
(4, ref('purchase_requisition_custom.group_quotation_purchase_requisition')),
|
||||
(4, ref('purchase_requisition_custom.group_sign_purchase_order')),
|
||||
(4, ref('purchase_requisition_custom.view_purchase_request'))]"/>
|
||||
<field name="menu_access"
|
||||
eval="[(4,ref('purchase.menu_purchase_root')),
|
||||
(4,ref('purchase_requisition.menu_purchase_requisition_pro_mgt')),
|
||||
(4,ref('purchase.menu_procurement_management'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Record Rules -->
|
||||
|
||||
<record id="executive_director_of_purchase_and_contract_record_rule" model="ir.rule">
|
||||
<field name="name">Executive Director of Purchase and Contract Rule</field>
|
||||
<field name="model_id" ref="purchase_requisition_custom.model_purchase_request"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('governmental_purchase.executive_director_of_purchase_and_contract'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record id="group_ceo_of_corporate_resources_record_rule" model="ir.rule">
|
||||
<field name="name">CEO of Corporate Resources Rule</field>
|
||||
<field name="model_id" ref="purchase_requisition_custom.model_purchase_request"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('governmental_purchase.group_ceo_of_corporate_resources'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record id="group_executive_vice_approve_record_rule" model="ir.rule">
|
||||
<field name="name">Executive Vice President of Corporate Resources Rule</field>
|
||||
<field name="model_id" ref="purchase_requisition_custom.model_purchase_request"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('governmental_purchase.executive_director_of_purchase_and_contract'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="group_budget_user_record_rule" model="ir.rule">
|
||||
<field name="name">Budget User Rule</field>
|
||||
<field name="model_id" ref="purchase_requisition_custom.model_purchase_request"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('account_budget_custom.group_budget_user'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record id="group_department_manager_budget_record_rule" model="ir.rule">
|
||||
<field name="name">Budget department Rule</field>
|
||||
<field name="model_id" ref="purchase_requisition_custom.model_purchase_request"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('account_budget_custom.group_department_manager_budget'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record id="group_manager_budget_record_rule" model="ir.rule">
|
||||
<field name="name">Manager Budget Manager</field>
|
||||
<field name="model_id" ref="purchase_requisition_custom.model_purchase_request"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">[(1, '=', 1)]</field>
|
||||
<field name="groups" eval="[(4, ref('account_budget_custom.group_manager_budget'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="inherit_view_budget_confirmation_form" model="ir.ui.view">
|
||||
<field name="name">budget.confirmation.form</field>
|
||||
<field name="model">budget.confirmation</field>
|
||||
<field name="inherit_id" ref="account_budget_custom.view_budget_confirmation_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[last()]" position="after">
|
||||
<page string="Budget Management">
|
||||
<group>
|
||||
<field name="budget_scope" widget="radio" options="{'horizontal': true}" attrs="{'required':[('state','=','bdgt_dep_mngr')],'readonly':[('state' , '!=' , 'bdgt_dep_mngr')]}"/>
|
||||
<field name="permission" widget="radio" options="{'horizontal': true}" attrs="{'required':[('state','=','bdgt_dep_mngr')],'readonly':[('state' , '!=' , 'bdgt_dep_mngr')]}"/>
|
||||
<field name="request_id" readonly="1" attrs="{'invisible':[('request_id' , '=' , False)]}"/>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<odoo>
|
||||
<record id="purchase_order_governmental_form_view" model="ir.ui.view">
|
||||
<field name="name">purchase.order.governmental.form.custom</field>
|
||||
<field name="model">purchase.order</field>
|
||||
<field name="inherit_id" ref="purchase.purchase_order_form"/>
|
||||
<field name="priority" eval="200"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//button[@name='action_rfq_send']" position="after">
|
||||
<button string="PO To Contract" states="sign" name="open_convert_po_contract" type="object"
|
||||
class="oe_highlight"/>
|
||||
<button type="object" name="action_recommend"
|
||||
confirm="Are you sure you want to process ?"
|
||||
attrs="{'invisible':['|',
|
||||
('recommendation_order','=', True),('purchase_commitee', '=', False)]}" string="Recommend"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='type']" position="after">
|
||||
<!-- <field name="type"/> -->
|
||||
<field name="contract_name"
|
||||
attrs="{'invisible':[('type','!=', 'contract')],'required':[('type','=', 'contract'),]}"/>
|
||||
<field name="responsible_id"
|
||||
attrs="{'invisible':[('type','!=', 'contract')],'required':[('type','=', 'contract'),]}"/>
|
||||
<field name="start_date"
|
||||
attrs="{'invisible':[('type','!=', 'contract')],'required':[('type','=', 'contract'),]}"/>
|
||||
<field name="end_date"
|
||||
attrs="{'invisible':[('type','!=', 'contract')],'required':[('type','=', 'contract'),]}"/>
|
||||
|
||||
<field name="auto_notification" attrs="{'invisible':[('type','!=', 'contract')]}"/>
|
||||
<field name="notify_before" string="Notify Before End"
|
||||
attrs="{'invisible':['|',('type','!=', 'contract'), ('auto_notification','=', False)],
|
||||
'required':[('auto_notification','=', True),]}"/>
|
||||
|
||||
<field name="period_type"
|
||||
attrs="{'invisible':['|',('type','!=', 'contract'), ('auto_notification','=', False)],
|
||||
'required':[('auto_notification','=', True),]}"/>
|
||||
<field name="cron_end_date" invisible="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='button_confirm']" position="replace">
|
||||
<button name="button_confirm" type="object" states="sign" string="Confirm Order"
|
||||
class="oe_highlight" id="bid_confirm"/>
|
||||
</xpath>
|
||||
|
||||
<!-- show analytic account -->
|
||||
<xpath expr="//field[@name='order_line']/tree/field[@name='account_analytic_id']" position="replace">
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='order_line']/tree/field[@name='department_name']" position="after">
|
||||
<field name="account_analytic_id" optional="show" context="{'default_partner_id':parent.partner_id}"
|
||||
groups="analytic.group_analytic_accounting"
|
||||
domain="['|', ('company_id', '=', False), ('company_id', '=', parent.company_id)]"/>
|
||||
</xpath>
|
||||
<!-- end -->
|
||||
<xpath expr="//group[@class='oe_subtotal_footer oe_right']" position="after">
|
||||
<group class="oe_right" style="float:right !important;">
|
||||
<field name="billed_amount"/>
|
||||
<field name="remaining_amount"/>
|
||||
</group>
|
||||
</xpath>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- purchase.orders only for Purchase Contracts action window -->
|
||||
<record id="purchase_type_contract_tree" model="ir.ui.view">
|
||||
<field name="name">Purchase Contracts List</field>
|
||||
<field name="model">purchase.order</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="contract_name"/>
|
||||
<field name="name"/>
|
||||
<field name="date_order"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="origin"/>
|
||||
<field name="amount_untaxed"/>
|
||||
<field name="amount_total"/>
|
||||
<field name="state"/>
|
||||
<field name="invoice_status"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="purchase_type_contract_action" model="ir.actions.act_window">
|
||||
<field name="name">Purchase Contracts</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">purchase.order</field>
|
||||
<field name="view_mode">tree,kanban,form,pivot,graph,calendar</field>
|
||||
<field name="domain">[('type' , '=' , 'contract'), ('state' , '=' , 'purchase')]</field>
|
||||
<field name="context">{
|
||||
'default_type': 'contract',
|
||||
'create': False,
|
||||
'edit': False,
|
||||
'delete': False,
|
||||
'duplicate': False,
|
||||
'tree_view_ref': 'purchase_requisition_custom.purchase_type_contract_tree',
|
||||
}
|
||||
</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('purchase_type_contract_tree')}),
|
||||
]"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Create New a Purchase Contract
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="purchase_type_contract_menu" name="Purchase Contracts"
|
||||
parent="purchase.menu_procurement_management" action="purchase_type_contract_action" sequence="7"/>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,201 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<odoo>
|
||||
<record id="purchase_request_form" model="ir.ui.view">
|
||||
<field name="name">purchase.request.view.form</field>
|
||||
<field name="model">purchase.request</field>
|
||||
<field name="inherit_id" ref="purchase_requisition_custom.purchase_request_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//header" position="replace">
|
||||
<header>
|
||||
<button name="action_dm_confirm" groups="purchase_requisition_custom.create_purchase_request"
|
||||
type="object" string="Send" states="draft" class="oe_highlight"/>
|
||||
|
||||
<button name="action_confirm" groups="purchase_requisition_custom.group_direct_manger" type="object"
|
||||
string="Submit" states="dm" class="oe_highlight"/>
|
||||
<button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse"
|
||||
states="dm" type="action" groups="purchase_requisition_custom.group_direct_manger"/>
|
||||
|
||||
<button name="approve_department" type="object" string="Approve"
|
||||
groups="purchase_requisition_custom.group_department_approve" states="direct_manager"
|
||||
class="oe_highlight"/>
|
||||
<button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse"
|
||||
states="direct_manager" type="action"
|
||||
groups="purchase_requisition_custom.group_department_approve"/>
|
||||
|
||||
<button type="object" name="action_budget" string="First Budget Check" class="oe_highlight"
|
||||
states="send_budget" groups="purchase_requisition_custom.group_department_approve"/>
|
||||
|
||||
|
||||
<button name="action_pc_confirm"
|
||||
groups="governmental_purchase.executive_director_of_purchase_and_contract" type="object"
|
||||
string="Approve" states="ceo_purchase" class="oe_highlight"/>
|
||||
<button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse"
|
||||
states="ceo_purchase" type="action"
|
||||
groups="governmental_purchase.executive_director_of_purchase_and_contract"/>
|
||||
|
||||
<button name="approve_executive_vice"
|
||||
groups="governmental_purchase.group_executive_vice_approve" type="object"
|
||||
string="Approve" states="executive_vice" class="oe_highlight"/>
|
||||
<button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse"
|
||||
states="executive_vice" type="action"
|
||||
groups="governmental_purchase.group_executive_vice_approve"/>
|
||||
|
||||
<button type="object" name="action_general_supervisor_approve" class="oe_highlight"
|
||||
groups="governmental_purchase.group_ceo_of_corporate_resources" string="Approve"
|
||||
attrs="{'invisible':[('state', '!=', 'general_supervisor')]}"/>
|
||||
<button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse"
|
||||
states="general_supervisor" groups="governmental_purchase.group_ceo_of_corporate_resources"
|
||||
type="action"/>
|
||||
<button name="create_requisition"
|
||||
groups="purchase.group_purchase_user,purchase.group_purchase_manager" type="object"
|
||||
string="Create Requisition" class="oe_highlight" attrs="{'invisible' : ['|',('purchase_create' , '=' , True),
|
||||
('state' , 'not in' , ['waiting'])]}"/>
|
||||
<button name="create_purchase_order2"
|
||||
groups="purchase.group_purchase_user,purchase.group_purchase_manager" type="object"
|
||||
string="Create Purchase Order" class="oe_highlight" attrs="{'invisible' : ['|',('purchase_create' , '=' , True),
|
||||
('state' , 'not in' , ['waiting'])]}"/>
|
||||
|
||||
<!-- <button name="action_done" type="object" string="Done" class="oe_stat_button"-->
|
||||
<!-- groups="purchase.group_purchase_manager" states="waiting"/>-->
|
||||
|
||||
<button name="action_draft" type="object" string="Reset To Draft" class="oe_highlight"
|
||||
attrs="{'invisible' : [('state','not in' , ['refuse'])]}"/>
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="draft,dm,direct_manager,send_budget,wait_budget,ceo_purchase,executive_vice,general_supervisor,waiting,done,refuse"/>
|
||||
</header>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='dep_use']" position="after">
|
||||
<page string="For technical management use" name="technical_use"
|
||||
attrs="{'invisible':[('state' , 'in' , 'draft,dm')]}">
|
||||
<group string="For technical management use" name="technical_use">
|
||||
<group>
|
||||
<field name="available" attrs="{'readonly':[('state' , '!=' , 'direct_manager')]}"/>
|
||||
<field name="unavailable" attrs="{'readonly':[('state' , '!=' , 'direct_manager')]}"/>
|
||||
<field name="specifications_conform"
|
||||
attrs="{'readonly':[('state' , '!=' , 'direct_manager')]}"/>
|
||||
<field name="specifications_not_conform"
|
||||
attrs="{'readonly':[('state' , '!=' , 'direct_manager')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//notebook//page[@name='dep_use']" position="replace">
|
||||
<page string="Departments Use" name="dep_use" attrs="{'invisible':[('state' , 'in' , 'draft')]}">
|
||||
<group>
|
||||
<group string="Requesting ِAdministration">
|
||||
<field name="planned_for" attrs="{'readonly':[('state' , '!=' , 'dm')]}"/>
|
||||
<field name="emergency" attrs="{'readonly':[('state' , '!=' , 'dm')]}"/>
|
||||
</group>
|
||||
<group name="attachment_booklet_uploade">
|
||||
<div class="row mb4">
|
||||
<div class="col-12">
|
||||
<button string="download Booklet" name="download_url" type="object"
|
||||
class="oe_highlight" attrs="{'readonly':[('state' , '!=' , 'dm')]}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb4">
|
||||
<div class="col-12">
|
||||
<label for="attachment_booklet_uploade"/>
|
||||
<field name="attachment_booklet_uploade" widget="binary"
|
||||
attrs="{'readonly':[('state' , '!=' , 'dm')]}"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Departments Use Base info" name="base_info_dep_use">
|
||||
<group>
|
||||
<group string="Delivery Info" name="DeliveryInfo">
|
||||
<field name="tender_name" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="purpose_of_tender" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="other_details" invisible="1" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="is_delivered" required="1" widget="radio" options="{'horizontal': true}"/>
|
||||
<field name="samples_delivery_address"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')],'invisible':[('is_delivered' , '!=' , 'yes')],'required':[('is_delivered' , '=' , 'yes')]}"/>
|
||||
<field name="delivery_building"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')],'invisible':[('is_delivered' , '!=' , 'yes')],'required':[('is_delivered' , '=' , 'yes')]}"/>
|
||||
<field name="delivery_floor"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')],'invisible':[('is_delivered' , '!=' , 'yes')],'required':[('is_delivered' , '=' , 'yes')]}"/>
|
||||
<field name="delivery_unit"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')],'invisible':[('is_delivered' , '!=' , 'yes')],'required':[('is_delivered' , '=' , 'yes')]}"/>
|
||||
<field name="date_time"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')],'invisible':[('is_delivered' , '!=' , 'yes')],'required':[('is_delivered' , '=' , 'yes')]}"/>
|
||||
</group>
|
||||
<group name="Info">
|
||||
<!-- <field name="activities" required="1" widget="many2many_tags"-->
|
||||
<!-- options="{'no_create': True}" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>-->
|
||||
<field name="project_duration" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="activity_description" style="white-space: normal;word-break: break-word;"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="competion_description" required="1"
|
||||
style="white-space: normal;word-break: break-word;"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="list_documentaries" required="1"
|
||||
style="white-space: normal;word-break: break-word;"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="attachment_scope_project" required="1" widget="binary"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="program_action" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group string="Project Location">
|
||||
<group>
|
||||
<field name="work_location_state"/>
|
||||
<field name="work_location_city"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="work_location_district"/>
|
||||
<field name="work_location_GPS"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
|
||||
<page name="procurement_use" string="Procurement use">
|
||||
<group>
|
||||
<group>
|
||||
<field name="type_id"
|
||||
attrs="{'required':[('state','=','waiting')],'readonly':[('state','!=','waiting')]}"/>
|
||||
<field name="document_cost"
|
||||
attrs="{'required':[('state','=','waiting')],'readonly':[('state','!=','waiting')]}"/>
|
||||
<field name="body_technical"
|
||||
attrs="{'required':[('state','=','waiting')],'readonly':[('state','!=','waiting')]}"/>
|
||||
<field name="is_competition_divisible" widget="radio" options="{'horizontal': true}"
|
||||
attrs="{'required':[('state','=','waiting')],'readonly':[('state','!=','waiting')]}"/>
|
||||
<field name="classify_des"
|
||||
attrs="{'invisible':[('is_competition_divisible','!=','yes')],'required':[('is_competition_divisible','=','yes')],'readonly':[('state','!=','waiting')]}"/>
|
||||
|
||||
</group>
|
||||
<group>
|
||||
<field name="pre_qualification" widget="radio" options="{'horizontal': true}"
|
||||
attrs="{'required':[('state','=','waiting')],'readonly':[('state','!=','waiting')]}"/>
|
||||
<field name="initial_guarantee_percentage"
|
||||
attrs="{'required':[('state','=','waiting')],'readonly':[('state','!=','waiting')]}"/>
|
||||
<field name="applying_address"
|
||||
attrs="{'required':[('state','=','waiting')],'readonly':[('state','!=','waiting')]}"/>
|
||||
<field name="alternative_offer_allowed" widget="radio" options="{'horizontal': true}"
|
||||
attrs="{'required':[('state','=','waiting')],'readonly':[('state','!=','waiting')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='purchase_purpose']" position="after">
|
||||
<field name="type_id"
|
||||
options="{'no_create': True}"/>
|
||||
</xpath>
|
||||
|
||||
|
||||
</field>
|
||||
</record>
|
||||
<menuitem id="purchase_request_root_menu" name="Employee Requests" parent="purchase.menu_purchase_root" sequence="4"
|
||||
groups="purchase_requisition_custom.view_purchase_request"/>
|
||||
<!-- Purchase requests -->
|
||||
<menuitem id="purchase_requisition_custom.purchase_request_menu" name="Purchase Request"
|
||||
parent="purchase_request_root_menu" sequence="4"
|
||||
groups="purchase_requisition_custom.view_purchase_request"/>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<record id="purchase_governmental_requisition_form_view_inherit" model="ir.ui.view">
|
||||
<field name="name">purchase.governmental.requisition.form.inherit</field>
|
||||
<field name="model">purchase.requisition</field>
|
||||
<field name="inherit_id" ref="purchase_requisition.view_purchase_requisition_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="custom_three_validation_steps" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</field>
|
||||
<xpath expr="//field[@name='date_end']" position="before">
|
||||
<field name="agreement_name" attrs="{'readonly': [('state','!=', 'draft')]}"/>
|
||||
<field name="agreement_number" attrs="{'readonly': [('state','!=', 'draft')]}"/>
|
||||
<field name="agreement_date" attrs="{'readonly': [('state','!=', 'draft')]}"/>
|
||||
<field name="city" attrs="{'readonly': [('state','!=', 'draft')]}"/>
|
||||
</xpath>
|
||||
<field name="type_id" position="replace"/>
|
||||
<xpath expr="//field[@name='user_id']" position="before">
|
||||
<field name="type_id" readonly="1"/>
|
||||
</xpath>
|
||||
<field name="account_analytic_id" position="attributes">
|
||||
<attribute name="optional"></attribute>
|
||||
</field>
|
||||
</field>
|
||||
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
<!-- <?xml version='1.0' encoding='utf-8'?>
|
||||
<odoo>
|
||||
<!-- model.name inherit form view -->
|
||||
<record id="purchase_requisition_custom_setting" model="ir.ui.view">
|
||||
<field name="name">model.name.inherit.view.form</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="inherit_id" ref="purchase.res_config_settings_view_form_purchase"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@data-string='Purchase']" position="inside">
|
||||
<h2>Booklet</h2>
|
||||
<div class="row mt16 o_settings_container">
|
||||
<div class="col-12 col-md-6 o_setting_box" title="Activate Budget check in purchase">
|
||||
<div class="o_setting_left_pane">
|
||||
<div class="mt16">
|
||||
<field name="attachment_booklet_exp" widget="binary" nolabel="1" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="attachment_booklet_exp"/>
|
||||
<div class="text-muted">
|
||||
Purchase Booklet
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo> -->
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from . import convert_to_contract
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class ConvertPoContract(models.TransientModel):
|
||||
_name = "convert.po.contract.wizard"
|
||||
_description = "Convert Contract wizard"
|
||||
|
||||
purchase_id = fields.Many2one('purchase.order')
|
||||
contract_name = fields.Char()
|
||||
auto_notification = fields.Boolean()
|
||||
responsible_id = fields.Many2one('res.users')
|
||||
notify_before = fields.Integer()
|
||||
start_date = fields.Date()
|
||||
end_date = fields.Date()
|
||||
period_type = fields.Selection(
|
||||
selection=[('day', 'Day(s)'), ('week', 'Week(s)'), ('month', 'Month(s)'), ('year', 'Year(s)')])
|
||||
|
||||
@api.onchange('auto_notification')
|
||||
def auto_notification_onchange(self):
|
||||
if not self.auto_notification:
|
||||
self.notify_before = 0
|
||||
self.period_type = ''
|
||||
return {}
|
||||
|
||||
@api.constrains('end_date', 'start_date', 'auto_notification')
|
||||
def start_notify_constrain(self):
|
||||
for rec in self:
|
||||
if rec.start_date and rec.end_date:
|
||||
if rec.start_date >= rec.end_date:
|
||||
raise ValidationError(_("Start Date Should Be Less Than End Date"))
|
||||
|
||||
if rec.auto_notification and rec.notify_before < 1:
|
||||
raise ValidationError(_("Notify Before End Should Be Greater Than Zero"))
|
||||
|
||||
def action_create_contract(self):
|
||||
self.ensure_one()
|
||||
self.purchase_id.write({
|
||||
'type': 'contract',
|
||||
'contract_name': self.contract_name,
|
||||
'auto_notification': self.auto_notification,
|
||||
'responsible_id': self.responsible_id.id,
|
||||
'notify_before': self.notify_before,
|
||||
'start_date': self.start_date,
|
||||
'end_date': self.end_date,
|
||||
'period_type': self.period_type
|
||||
})
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="convert_to_contract_po_wizard" model="ir.ui.view">
|
||||
<field name="name">convert.po.contract.wizard.form</field>
|
||||
<field name="model">convert.po.contract.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Convert To Contract">
|
||||
<separator string="Contract Information"/>
|
||||
<group>
|
||||
<field name="purchase_id" invisible="1"/>
|
||||
<field name="contract_name" required="1"/>
|
||||
<field name="responsible_id" required="1"/>
|
||||
<field name="start_date" required="1"/>
|
||||
<field name="end_date" required="1"/>
|
||||
<field name="auto_notification"/>
|
||||
<field name="notify_before" string="Notify Before End"
|
||||
attrs="{'invisible':[('auto_notification','=', False)],
|
||||
'required':[('auto_notification','=', True),]}"/>
|
||||
<field name="period_type"
|
||||
attrs="{'invisible':[('auto_notification','=', False)],
|
||||
'required':[('auto_notification','=', True),]}"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button string='Save' name="action_create_contract" type="object" class="oe_highlight"/>
|
||||
<button string="Cancel" class="oe_link" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
from . import models
|
||||
from . import wizard
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
'name': "Khwalid Vendor",
|
||||
'version': '14.0.1.0.0',
|
||||
'summary': """Khwalid Vendor""",
|
||||
'category': 'Purchase',
|
||||
'author': "Expert Co Ltd",
|
||||
'website': "http://www.ex.com",
|
||||
'category': 'Odex25-Purchase/Odex25-Purchase',
|
||||
'company': 'Expert Co. Ltd.',
|
||||
'depends': ['base','mail','contacts'],
|
||||
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'security/secuirty.xml',
|
||||
'data/res_partner_sequence.xml',
|
||||
'views/res_partner.xml',
|
||||
'wizard/messeage_wiz.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'application': False,
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="0">
|
||||
|
||||
<!-- Sequences for res.partner -->
|
||||
<record id="seq_res_partner" model="ir.sequence">
|
||||
<field name="name">Res Partner</field>
|
||||
<field name="code">res.partner</field>
|
||||
<field name="prefix">V/</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,157 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * khwalid_vendor
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-10 22:28+0000\n"
|
||||
"PO-Revision-Date: 2022-01-10 22:28+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields.selection,name:khwalid_vendor.selection__res_partner__state__cancel
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_info_wizard
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_partner_form_inherited
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_res_partner__cancel_reason
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_res_users__cancel_reason
|
||||
msgid "Cancel Reason"
|
||||
msgstr "سبب الإلغاء"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields.selection,name:khwalid_vendor.selection__res_partner__state__ceo
|
||||
#: model:res.groups,name:khwalid_vendor.group_ceo
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_partner_form_inherited
|
||||
msgid "Chief Executive Officer"
|
||||
msgstr "المدير التنفيذي"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model,name:khwalid_vendor.model_res_partner
|
||||
msgid "Contact"
|
||||
msgstr "جهة الاتصال"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.module.category,name:khwalid_vendor.smart_module_management
|
||||
msgid "Contacts WorkFlow"
|
||||
msgstr "صلاحيات جهات الإتصال"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_partner_cancel_wizard__create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_partner_cancel_wizard__create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_partner_cancel_wizard__display_name
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_res_partner__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields.selection,name:khwalid_vendor.selection__res_partner__state__draft
|
||||
msgid "Draft"
|
||||
msgstr "مسودة"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields.selection,name:khwalid_vendor.selection__res_partner__state__financial_manager
|
||||
#: model:res.groups,name:khwalid_vendor.group_financial_manager
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_partner_form_inherited
|
||||
msgid "Financial Manager"
|
||||
msgstr "المدير المالي"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields.selection,name:khwalid_vendor.selection__res_partner__state__general_manager
|
||||
#: model:res.groups,name:khwalid_vendor.group_general_manager
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_partner_form_inherited
|
||||
msgid "General Manager"
|
||||
msgstr "المدير العام"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_partner_cancel_wizard__id
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_res_partner__id
|
||||
msgid "ID"
|
||||
msgstr "المُعرف"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_info_wizard
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_partner_cancel_wizard____last_update
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_res_partner____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_partner_cancel_wizard__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_partner_cancel_wizard__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_info_wizard
|
||||
msgid "OK"
|
||||
msgstr "تأكيد"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_partner_cancel_wizard__partner_id
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields.selection,name:khwalid_vendor.selection__res_partner__state__project_manager
|
||||
#: model:res.groups,name:khwalid_vendor.group_project_manager
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_partner_form_inherited
|
||||
msgid "Project Manager"
|
||||
msgstr "مدير المشاريع"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields.selection,name:khwalid_vendor.selection__res_partner__state__purchase_department
|
||||
#: model:res.groups,name:khwalid_vendor.group_purchase_department
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_partner_form_inherited
|
||||
msgid "Purchase Department"
|
||||
msgstr "مسؤول ادارة المشتريات"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_partner_cancel_wizard__cancel_reason
|
||||
msgid "Reason"
|
||||
msgstr "السبب"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model,name:khwalid_vendor.model_partner_cancel_wizard
|
||||
msgid "Reason Wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model_terms:ir.ui.view,arch_db:khwalid_vendor.view_partner_form_inherited
|
||||
msgid "Rest To Draft"
|
||||
msgstr "إعادة إلي مسودة"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.model.fields,field_description:khwalid_vendor.field_res_partner__state
|
||||
msgid "Status"
|
||||
msgstr "الحالة"
|
||||
|
||||
#. module: khwalid_vendor
|
||||
#: model:ir.module.category,description:khwalid_vendor.smart_module_management
|
||||
msgid "User access level for this module"
|
||||
msgstr ""
|
||||
|
|
@ -0,0 +1 @@
|
|||
from . import res_parnter
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
from odoo import fields, models, api, _
|
||||
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT as DF
|
||||
|
||||
|
||||
class Partner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
parnter_referencen = fields.Char('Partner Reference', required=True, index=True, copy=False, default='New')
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
vals['parnter_referencen'] = self.env['ir.sequence'].next_by_code('res.partner') or '/'
|
||||
return super(Partner, self).create(vals)
|
||||
|
||||
cancel_reason = fields.Text(
|
||||
string='Cancel Reason',
|
||||
)
|
||||
|
||||
name = fields.Char(index=True,tracking=True)
|
||||
|
||||
vat = fields.Char(string='Tax ID', index=True, help="The Tax Identification Number. Complete it if the contact is subjected to government taxes. Used in some legal statements.",tracking=True)
|
||||
|
||||
email = fields.Char(tracking=True)
|
||||
|
||||
phone = fields.Char(tracking=True)
|
||||
mobile = fields.Char(tracking=True)
|
||||
|
||||
state = fields.Selection(
|
||||
string='Status', required=True, readonly=True, copy=False,tracking=True,
|
||||
selection=[
|
||||
('new', 'New'),
|
||||
('approved', 'Approved'),
|
||||
('refused', 'Refused')],
|
||||
default='new',
|
||||
|
||||
)
|
||||
|
||||
def action_purchase_vendor_approve(self):
|
||||
self.state = 'approved'
|
||||
|
||||
def action_purchase_vendor_refuse(self):
|
||||
self.state = 'refused'
|
||||
|
||||
# def action_project_manager(self):
|
||||
# self.state = 'project_manager'
|
||||
|
||||
# def action_financial_manager(self):
|
||||
# self.state = 'financial_manager'
|
||||
|
||||
# def action_ceo(self):
|
||||
# self.state = 'ceo'
|
||||
|
||||
# def action_general_manager(self):
|
||||
# self.state = 'general_manager'
|
||||
|
||||
# def action_cancel(self):
|
||||
# return {
|
||||
# 'name': 'Cancel',
|
||||
# 'type': 'ir.actions.act_window',
|
||||
# 'res_model': 'partner.cancel.wizard',
|
||||
# 'view_mode': 'form',
|
||||
# 'view_type': 'form',
|
||||
# 'target': 'new'
|
||||
|
||||
# }
|
||||
|
||||
# def action_rest_to_draft(self):
|
||||
# self.state = 'draft'
|
||||
|
||||
|
||||
#
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_partner_cancel_wizard,access_partner_cancel_wizard,model_partner_cancel_wizard,base.group_user,1,1,1,1
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record model="ir.module.category" id="smart_module_management">
|
||||
<field name="name">Contacts WorkFlow</field>
|
||||
<field name="description">User access level for this module</field>
|
||||
<field name="sequence">99</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="group_vendor_approve" model="res.groups">
|
||||
<field name="name">Vendor Approve</field>
|
||||
<field name="category_id" ref="smart_module_management" />
|
||||
</record>
|
||||
|
||||
<record id="group_refuse_vendor" model="res.groups">
|
||||
<field name="name">Refuse Vendor</field>
|
||||
<field name="category_id" ref="smart_module_management" />
|
||||
</record>
|
||||
|
||||
<!-- <record id="group_financial_manager" model="res.groups">
|
||||
<field name="name">Financial Manager</field>
|
||||
<field name="category_id" ref="smart_module_management" />
|
||||
</record>
|
||||
|
||||
<record id="group_ceo" model="res.groups">
|
||||
<field name="name">Chief Executive Officer</field>
|
||||
<field name="category_id" ref="smart_module_management" />
|
||||
</record>
|
||||
|
||||
<record id="group_general_manager" model="res.groups">
|
||||
<field name="name">General Manager</field>
|
||||
<field name="category_id" ref="smart_module_management" />
|
||||
</record> -->
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
Binary file not shown.
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="view_partner_form_inherited" model="ir.ui.view">
|
||||
<field name="name">view.res.partner.form.inherited</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//sheet" position="before">
|
||||
<header>
|
||||
<button string="Vendor Approval" groups="khwalid_vendor.group_vendor_approve" states="new" class="oe_highlight" name="action_purchase_vendor_approve" type="object"/>
|
||||
<button string="Refuse" groups="khwalid_vendor.group_refuse_vendor" states="new" class="oe_highlight" name="action_purchase_vendor_refuse" type="object"/>
|
||||
|
||||
<field name="state" widget="statusbar"/>
|
||||
|
||||
|
||||
</header>
|
||||
</xpath>
|
||||
<field name="vat" position="after">
|
||||
<field name="cancel_reason" readonly="1" attrs="{'invisible': [('state', '!=', 'cancel')]}" />
|
||||
</field>
|
||||
<xpath expr="//div[hasclass('oe_title')]" position="inside">
|
||||
<group>
|
||||
<field name="parnter_referencen" readonly="1"/>
|
||||
</group>
|
||||
</xpath>
|
||||
|
||||
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
from . import messeage_wiz
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
from odoo import api, fields, models,_
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
|
||||
class InfoWizard(models.TransientModel):
|
||||
|
||||
_name = 'partner.cancel.wizard'
|
||||
|
||||
_description = 'Reason Wizard'
|
||||
|
||||
cancel_reason = fields.Text(string="Reason")
|
||||
|
||||
|
||||
partner_id = fields.Many2one(
|
||||
string='Partner',
|
||||
comodel_name='res.partner',
|
||||
)
|
||||
|
||||
@api.model
|
||||
def default_get(self, fields):
|
||||
res = super(InfoWizard, self).default_get(fields)
|
||||
partner_id = self.env.context['active_id']
|
||||
res['partner_id'] = partner_id
|
||||
return res
|
||||
|
||||
def cancel_partner(self):
|
||||
if self.partner_id:
|
||||
self.partner_id.write({'state':'cancel','cancel_reason':self.cancel_reason})
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<odoo>
|
||||
|
||||
<record id="view_info_wizard" model="ir.ui.view">
|
||||
|
||||
<field name="name">info.form</field>
|
||||
|
||||
<field name="model">partner.cancel.wizard</field>
|
||||
|
||||
<field name="arch" type="xml">
|
||||
|
||||
<form string="Info">
|
||||
|
||||
<group>
|
||||
|
||||
<field name="cancel_reason" />
|
||||
<field name="partner_id" invisible="1" />
|
||||
|
||||
</group>
|
||||
|
||||
<footer>
|
||||
<button name="cancel_partner" string="OK" type="object" class="btn-primary" />
|
||||
<button string="Cancel" special="cancel" class="oe_highlight" />
|
||||
|
||||
</footer>
|
||||
|
||||
</form>
|
||||
|
||||
</field>
|
||||
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import report
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
{
|
||||
'name': "Purchase Dashboard",
|
||||
'version': "1.0",
|
||||
'category': 'Odex25 Inventory/Purchase',
|
||||
'author': 'Expert Co. Ltd.',
|
||||
'website': 'http://www.exp-sa.com',
|
||||
'summary': "Advanced Features for Purchase Management",
|
||||
'description': """
|
||||
Contains advanced features for purchase management
|
||||
""",
|
||||
'depends': ['purchase', 'odex25_web_dashboard'],
|
||||
'data': [
|
||||
'report/purchase_report_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
'data/purchase_order_demo.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'application': False,
|
||||
'auto_install': ['purchase'],
|
||||
}
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="purchase_order_1" model="purchase.order">
|
||||
<field name="partner_id" ref="base.res_partner_1"/>
|
||||
<field name="user_id" ref="base.user_admin"/>
|
||||
<field name="state">purchase</field>
|
||||
<field name="create_date" eval="DateTime.today() - relativedelta(days=20)"/>
|
||||
<field name="date_order" eval="DateTime.today() - relativedelta(days=5)"/>
|
||||
<field name="date_approve" eval="DateTime.today() - relativedelta(days=9)"/>
|
||||
<field name="order_line" model="purchase.order.line" eval="[(5, 0, 0),
|
||||
(0, 0, {
|
||||
'product_id': ref('product.product_product_16'),
|
||||
'name': 'Drawer Black',
|
||||
'price_unit': 280.80,
|
||||
'product_qty': 15.0,
|
||||
'product_uom': ref('uom.product_uom_dozen'),
|
||||
'date_planned': time.strftime('%Y-%m-%d')}),
|
||||
(0, 0, {
|
||||
'product_id': ref('product.product_product_20'),
|
||||
'name': 'Flipover',
|
||||
'price_unit': 450.70,
|
||||
'product_qty': 5.0,
|
||||
'product_uom': ref('uom.product_uom_dozen'),
|
||||
'date_planned': time.strftime('%Y-%m-%d')})
|
||||
]"/>
|
||||
</record>
|
||||
|
||||
<record id="purchase_order_2" model="purchase.order">
|
||||
<field name="partner_id" ref="base.res_partner_3"/>
|
||||
<field name="user_id" ref="base.user_admin"/>
|
||||
<field name="state">purchase</field>
|
||||
<field name="create_date" eval="DateTime.today() - relativedelta(days=20)"/>
|
||||
<field name="date_order" eval="DateTime.today() - relativedelta(days=15)"/>
|
||||
<field name="date_approve" eval="DateTime.today() - relativedelta(days=5)"/>
|
||||
<field name="order_line" model="purchase.order.line" eval="[(5, 0, 0),
|
||||
(0, 0, {
|
||||
'product_id': ref('product.product_product_8'),
|
||||
'name': 'Large Desk',
|
||||
'price_unit': 500.00,
|
||||
'product_qty': 20.0,
|
||||
'product_uom': ref('uom.product_uom_dozen'),
|
||||
'date_planned': time.strftime('%Y-%m-%d')}),
|
||||
(0, 0, {
|
||||
'product_id': ref('product.product_product_5'),
|
||||
'name': 'Corner Desk Right Sit',
|
||||
'price_unit': 500.0,
|
||||
'product_qty': 5.0,
|
||||
'product_uom': ref('uom.product_uom_dozen'),
|
||||
'date_planned': time.strftime('%Y-%m-%d')}),
|
||||
]"/>
|
||||
</record>
|
||||
|
||||
<record id="purchase_order_3" model="purchase.order">
|
||||
<field name="partner_id" ref="base.res_partner_12"/>
|
||||
<field name="user_id" ref="base.user_admin"/>
|
||||
<field name="state">purchase</field>
|
||||
<field name="create_date" eval="DateTime.today() - relativedelta(days=20)"/>
|
||||
<field name="date_order" eval="DateTime.today() - relativedelta(days=15)"/>
|
||||
<field name="date_approve" eval="DateTime.today() - relativedelta(days=18)"/>
|
||||
<field name="order_line" model="purchase.order.line" eval="[(5, 0, 0),
|
||||
(0, 0, {
|
||||
'product_id': ref('product.product_product_12'),
|
||||
'name': 'Office Chair Black',
|
||||
'price_unit': 250.50,
|
||||
'product_qty': 10.0,
|
||||
'product_uom': ref('uom.product_uom_dozen'),
|
||||
'date_planned': time.strftime('%Y-%m-%d')}),
|
||||
]"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
</odoo>
|
||||
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * odex25_purchase
|
||||
#
|
||||
# Translators:
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2020
|
||||
# Osoul <baruni@osoul.ly>, 2020
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~13.5+e\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-01 07:39+0000\n"
|
||||
"PO-Revision-Date: 2020-09-07 08:22+0000\n"
|
||||
"Last-Translator: Osoul <baruni@osoul.ly>, 2020\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_purchase.purchase_report_view_dashboard
|
||||
msgid "Average Days to Purchase"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_purchase.purchase_report_view_dashboard
|
||||
msgid "Average Order"
|
||||
msgstr "متوسط الأمر"
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model_terms:ir.actions.act_window,help:odex25_purchase.purchase_report_action_dashboard
|
||||
msgid "Create a new purchase order"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model_terms:ir.actions.act_window,help:odex25_purchase.purchase_report_action_dashboard
|
||||
msgid "No data yet!"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_purchase.purchase_report_view_dashboard
|
||||
msgid "Orders"
|
||||
msgstr "أوامر"
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model:ir.actions.act_window,name:odex25_purchase.purchase_report_action_dashboard
|
||||
msgid "Purchase Analysis"
|
||||
msgstr "تحليل المشتريات"
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_purchase.purchase_report_view_dashboard
|
||||
msgid "Total Purchased"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_purchase.purchase_report_view_dashboard
|
||||
msgid "Total, Tax Included"
|
||||
msgstr "المجموع شامل الضريبة"
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_purchase.purchase_report_view_dashboard
|
||||
msgid "Untaxed Total"
|
||||
msgstr "الإجمالي بدون ضرائب"
|
||||
|
||||
#. module: odex25_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_purchase.purchase_report_view_dashboard
|
||||
msgid "days"
|
||||
msgstr "يوم"
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record id="purchase_report_view_dashboard" model="ir.ui.view">
|
||||
<field name="name">purchase.report.view.dashboard</field>
|
||||
<field name="model">purchase.report</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<dashboard sample="1">
|
||||
<view type="graph" ref="purchase.view_purchase_order_graph"/>
|
||||
<group>
|
||||
<group>
|
||||
<aggregate name="price_subtotal_confirmed_orders" string="Total Purchased" field="price_total" help="Total, Tax Included" widget="monetary"/>
|
||||
<aggregate name="price_subtotal_all_orders" string="Untaxed Total" field="untaxed_total" widget="monetary"/>
|
||||
<aggregate name="purchase_orders" string="Orders" field="order_id"/>
|
||||
<formula name="typetotal" string="Average Order" value="record.price_subtotal_confirmed_orders / record.purchase_orders" widget="monetary"/>
|
||||
<aggregate name="avg_days_to_purchase" string="Average Days to Purchase" field="avg_days_to_purchase" group_operator="avg" value_label="days"
|
||||
domain="[('date_approve', '!=', False)]" domain_label="purchase orders" clickable="False"/>
|
||||
</group>
|
||||
</group>
|
||||
<view type="pivot" ref="purchase.view_purchase_order_pivot"/>
|
||||
</dashboard>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="purchase_report_action_dashboard" model="ir.actions.act_window">
|
||||
<field name="name">Purchase Analysis</field>
|
||||
<field name="res_model">purchase.report</field>
|
||||
<field name="view_mode">dashboard,pivot,graph</field>
|
||||
<field name="search_view_id" ref="purchase.view_purchase_order_search"/>
|
||||
<field name="context" eval="{
|
||||
'search_default_orders': 1,
|
||||
'search_default_filter_date_approve': 1}"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
No data yet!
|
||||
</p><p>
|
||||
Create a new purchase order
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="purchase.purchase_report" model="ir.ui.menu">
|
||||
<field name="action" ref="purchase_report_action_dashboard"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
|
|
@ -0,0 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import controllers
|
||||
from . import models
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': "Purchase CoC",
|
||||
|
||||
'summary': """
|
||||
This Module is Designed and Developed to Add CoC process To purchase""",
|
||||
|
||||
'description': """
|
||||
|
||||
""",
|
||||
|
||||
'author': "Expert Co Ltd",
|
||||
'website': "http://www.ex.com",
|
||||
'category': 'Odex25-Purchase/Odex25-Purchase',
|
||||
'version': '14.0',
|
||||
|
||||
# any module necessary for this one to work correctly
|
||||
'depends': ['purchase_requisition_custom'],
|
||||
|
||||
# always loaded
|
||||
'data': [
|
||||
'security/security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'views/views.xml',
|
||||
'sequence/seq.xml',
|
||||
],
|
||||
# only loaded in demonstration mode
|
||||
'demo': [
|
||||
'demo/demo.xml',
|
||||
],
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import controllers
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import http
|
||||
|
||||
# class OdexPurchaseCoc(http.Controller):
|
||||
# @http.route('/odex25_purchase_coc/odex25_purchase_coc/', auth='public')
|
||||
# def index(self, **kw):
|
||||
# return "Hello, world"
|
||||
|
||||
# @http.route('/odex25_purchase_coc/odex25_purchase_coc/objects/', auth='public')
|
||||
# def list(self, **kw):
|
||||
# return http.request.render('odex25_purchase_coc.listing', {
|
||||
# 'root': '/odex25_purchase_coc/odex25_purchase_coc',
|
||||
# 'objects': http.request.env['odex25_purchase_coc.odex25_purchase_coc'].search([]),
|
||||
# })
|
||||
|
||||
# @http.route('/odex25_purchase_coc/odex25_purchase_coc/objects/<model("odex25_purchase_coc.odex25_purchase_coc"):obj>/', auth='public')
|
||||
# def object(self, obj, **kw):
|
||||
# return http.request.render('odex25_purchase_coc.object', {
|
||||
# 'object': obj
|
||||
# })
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<odoo>
|
||||
<data>
|
||||
<!-- -->
|
||||
<!-- <record id="object0" model="odex25_purchase_coc.odex25_purchase_coc"> -->
|
||||
<!-- <field name="name">Object 0</field> -->
|
||||
<!-- <field name="value">0</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
<!-- <record id="object1" model="odex25_purchase_coc.odex25_purchase_coc"> -->
|
||||
<!-- <field name="name">Object 1</field> -->
|
||||
<!-- <field name="value">10</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
<!-- <record id="object2" model="odex25_purchase_coc.odex25_purchase_coc"> -->
|
||||
<!-- <field name="name">Object 2</field> -->
|
||||
<!-- <field name="value">20</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
<!-- <record id="object3" model="odex25_purchase_coc.odex25_purchase_coc"> -->
|
||||
<!-- <field name="name">Object 3</field> -->
|
||||
<!-- <field name="value">30</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
<!-- <record id="object4" model="odex25_purchase_coc.odex25_purchase_coc"> -->
|
||||
<!-- <field name="name">Object 4</field> -->
|
||||
<!-- <field name="value">40</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,319 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * odex25_purchase_coc
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 11.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-15 08:59+0000\n"
|
||||
"PO-Revision-Date: 2021-09-15 08:59+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Approve"
|
||||
msgstr "موافقة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.actions.act_window,help:odex25_purchase_coc.purchase_coc_action
|
||||
msgid "Approve and Confirm CoC"
|
||||
msgstr "تصديق و تأكيد شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,coc_stage:0
|
||||
msgid "Before Bill"
|
||||
msgstr "Before Bill"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,coc_stage:0
|
||||
msgid "Before Bill Validation"
|
||||
msgstr "Before Bill Validation"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,coc_stage:0
|
||||
msgid "Before Payment"
|
||||
msgstr "Before Payment"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_created
|
||||
msgid "COC Created"
|
||||
msgstr "تم انشاء شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:res.groups,name:odex25_purchase_coc.group_coc_manager
|
||||
msgid "COC Manager"
|
||||
msgstr "مدير شهادات الإنجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:res.groups,name:odex25_purchase_coc.group_coc_user
|
||||
msgid "COC User"
|
||||
msgstr "مستخدم شهادات الإنجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.menu,name:odex25_purchase_coc.coc_menu
|
||||
msgid "Certificat of Completion CoC"
|
||||
msgstr "شهادات الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.actions.act_window,name:odex25_purchase_coc.purchase_coc_action
|
||||
msgid "Certificate of Completion"
|
||||
msgstr "شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.view_id
|
||||
msgid "Certificates of Completion"
|
||||
msgstr "شهادات الإنجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc
|
||||
msgid "CoC Created"
|
||||
msgstr "تم انشاء شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_id
|
||||
msgid "CoC Ref"
|
||||
msgstr "شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_coc_stage
|
||||
msgid "CoC Stage"
|
||||
msgstr "مرحلة شهادة استلام"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_ids
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.view_id
|
||||
msgid "CoCs"
|
||||
msgstr "شهادة استلام"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_line_coc_id
|
||||
msgid "Coc"
|
||||
msgstr "شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:176
|
||||
#, python-format
|
||||
msgid "Coc Rejected By %s . With Reject Reason : %s"
|
||||
msgstr "Coc Rejected By %s . With Reject Reason : %s"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_count
|
||||
msgid "Cocs"
|
||||
msgstr "Cocs"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Confirm"
|
||||
msgstr "تأكيد"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "أنشئ بواسطة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_create_date
|
||||
msgid "Created on"
|
||||
msgstr "أنشئ في"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_date
|
||||
msgid "Date"
|
||||
msgstr "التاريخ"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_display_name
|
||||
msgid "Display Name"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Draft"
|
||||
msgstr "مبدئي"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr "الفاتورة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "آخر تحديث بواسطة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "آخر تحديث في"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_name
|
||||
msgid "Name"
|
||||
msgstr "الإسم"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_need_coc
|
||||
msgid "Need CoC?"
|
||||
msgstr "يحتاج الى شهادة انجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_note
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "Note"
|
||||
msgstr "ملاحظات"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_po_line_ids
|
||||
msgid "PO Lines"
|
||||
msgstr "الاصناف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_account_payment
|
||||
msgid "Payments"
|
||||
msgstr "المدفوعات"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_po_id
|
||||
msgid "Po Ref."
|
||||
msgstr "طلب الشراء."
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "Products"
|
||||
msgstr "الأصناف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_purchase_coc
|
||||
msgid "Purchase CoC"
|
||||
msgstr "Purchase CoC"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr "عرض سعر"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_purchase_order_line
|
||||
msgid "Purchase Order Line"
|
||||
msgstr "بند طلب الشراء"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Reject"
|
||||
msgstr "رفض"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_reject_reason
|
||||
msgid "Reject Reason"
|
||||
msgstr "Reject Reason"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "Set to Draft"
|
||||
msgstr "تعيين كمسودة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:196
|
||||
#, python-format
|
||||
msgid "Sorry This object have no field named Selection Reasoon"
|
||||
msgstr "Sorry This object have no field named Selection Reasoon"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:74
|
||||
#, python-format
|
||||
msgid "Sorry You cannot Create Bill untill CoC Created and Approved."
|
||||
msgstr "لايمكن إنشاء الفاتورة قبل انشاء وتصديف شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:105
|
||||
#, python-format
|
||||
msgid "Sorry You cannot Pay For This Vendor untill CoC Created and Approved."
|
||||
msgstr "لايمكن الدفع قبل انشاء وتصديق شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:86
|
||||
#, python-format
|
||||
msgid "Sorry You cannot Validate Bill untill CoC Created and Approved."
|
||||
msgstr "لايمكن اعتماد الفاتورة قبل انشاء وتصديق شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_state
|
||||
msgid "State"
|
||||
msgstr "الحالة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:33
|
||||
#, python-format
|
||||
msgid "Submit Your Prices"
|
||||
msgstr "تأكيد الأسعار"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_vendor_id
|
||||
msgid "Vendor"
|
||||
msgstr "الموردون"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:15
|
||||
#, python-format
|
||||
msgid "delivary date"
|
||||
msgstr "تاريخ التسليم"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:16
|
||||
#, python-format
|
||||
msgid "price"
|
||||
msgstr "السعر"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:13
|
||||
#, python-format
|
||||
msgid "product"
|
||||
msgstr "الصنف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:12
|
||||
#, python-format
|
||||
msgid "product id"
|
||||
msgstr "الصنف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:14
|
||||
#, python-format
|
||||
msgid "quantity"
|
||||
msgstr "الكمية"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_reject_wizard
|
||||
msgid "reject.wizard"
|
||||
msgstr "reject.wizard"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:res.groups,name:odex25_purchase_coc.group_coc_menu
|
||||
msgid "COC Menu"
|
||||
msgstr "قائمة شهادة استلام"
|
||||
|
||||
|
|
@ -0,0 +1,319 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * odex25_purchase_coc
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 11.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-09-15 08:59+0000\n"
|
||||
"PO-Revision-Date: 2021-09-15 08:59+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Approve"
|
||||
msgstr "موافقة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.actions.act_window,help:odex25_purchase_coc.purchase_coc_action
|
||||
msgid "Approve and Confirm CoC"
|
||||
msgstr "تصديق و تأكيد شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,coc_stage:0
|
||||
msgid "Before Bill"
|
||||
msgstr "Before Bill"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,coc_stage:0
|
||||
msgid "Before Bill Validation"
|
||||
msgstr "Before Bill Validation"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,coc_stage:0
|
||||
msgid "Before Payment"
|
||||
msgstr "Before Payment"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_created
|
||||
msgid "COC Created"
|
||||
msgstr "تم انشاء شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:res.groups,name:odex25_purchase_coc.group_coc_manager
|
||||
msgid "COC Manager"
|
||||
msgstr "مدير شهادات الإنجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:res.groups,name:odex25_purchase_coc.group_coc_user
|
||||
msgid "COC User"
|
||||
msgstr "مستخدم شهادات الإنجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.menu,name:odex25_purchase_coc.coc_menu
|
||||
msgid "Certificat of Completion CoC"
|
||||
msgstr "شهادات الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.actions.act_window,name:odex25_purchase_coc.purchase_coc_action
|
||||
msgid "Certificate of Completion"
|
||||
msgstr "شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.view_id
|
||||
msgid "Certificates of Completion"
|
||||
msgstr "شهادات الإنجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc
|
||||
msgid "CoC Created"
|
||||
msgstr "تم انشاء شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_id
|
||||
msgid "CoC Ref"
|
||||
msgstr "شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_coc_stage
|
||||
msgid "CoC Stage"
|
||||
msgstr "مرحلة شهادة استلام"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_ids
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.view_id
|
||||
msgid "CoCs"
|
||||
msgstr "شهادة استلام"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_line_coc_id
|
||||
msgid "Coc"
|
||||
msgstr "شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:176
|
||||
#, python-format
|
||||
msgid "Coc Rejected By %s . With Reject Reason : %s"
|
||||
msgstr "Coc Rejected By %s . With Reject Reason : %s"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_count
|
||||
msgid "Cocs"
|
||||
msgstr "Cocs"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Confirm"
|
||||
msgstr "تأكيد"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "أنشئ بواسطة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_create_date
|
||||
msgid "Created on"
|
||||
msgstr "أنشئ في"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_date
|
||||
msgid "Date"
|
||||
msgstr "التاريخ"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_display_name
|
||||
msgid "Display Name"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Draft"
|
||||
msgstr "مبدئي"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr "الفاتورة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "آخر تحديث بواسطة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "آخر تحديث في"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_name
|
||||
msgid "Name"
|
||||
msgstr "الإسم"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_need_coc
|
||||
msgid "Need CoC?"
|
||||
msgstr "يحتاج الى شهادة انجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_note
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "Note"
|
||||
msgstr "ملاحظات"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_po_line_ids
|
||||
msgid "PO Lines"
|
||||
msgstr "الاصناف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_account_payment
|
||||
msgid "Payments"
|
||||
msgstr "المدفوعات"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_po_id
|
||||
msgid "Po Ref."
|
||||
msgstr "طلب الشراء."
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "Products"
|
||||
msgstr "الأصناف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_purchase_coc
|
||||
msgid "Purchase CoC"
|
||||
msgstr "Purchase CoC"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr "عرض سعر"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_purchase_order_line
|
||||
msgid "Purchase Order Line"
|
||||
msgstr "بند طلب الشراء"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Reject"
|
||||
msgstr "رفض"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_reject_reason
|
||||
msgid "Reject Reason"
|
||||
msgstr "Reject Reason"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "Set to Draft"
|
||||
msgstr "تعيين كمسودة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:196
|
||||
#, python-format
|
||||
msgid "Sorry This object have no field named Selection Reasoon"
|
||||
msgstr "Sorry This object have no field named Selection Reasoon"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:74
|
||||
#, python-format
|
||||
msgid "Sorry You cannot Create Bill untill CoC Created and Approved."
|
||||
msgstr "لايمكن إنشاء الفاتورة قبل انشاء وتصديف شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:105
|
||||
#, python-format
|
||||
msgid "Sorry You cannot Pay For This Vendor untill CoC Created and Approved."
|
||||
msgstr "لايمكن الدفع قبل انشاء وتصديق شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:86
|
||||
#, python-format
|
||||
msgid "Sorry You cannot Validate Bill untill CoC Created and Approved."
|
||||
msgstr "لايمكن اعتماد الفاتورة قبل انشاء وتصديق شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_state
|
||||
msgid "State"
|
||||
msgstr "الحالة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:33
|
||||
#, python-format
|
||||
msgid "Submit Your Prices"
|
||||
msgstr "تأكيد الأسعار"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_vendor_id
|
||||
msgid "Vendor"
|
||||
msgstr "الموردون"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:15
|
||||
#, python-format
|
||||
msgid "delivary date"
|
||||
msgstr "تاريخ التسليم"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:16
|
||||
#, python-format
|
||||
msgid "price"
|
||||
msgstr "السعر"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:13
|
||||
#, python-format
|
||||
msgid "product"
|
||||
msgstr "الصنف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:12
|
||||
#, python-format
|
||||
msgid "product id"
|
||||
msgstr "الصنف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#. openerp-web
|
||||
#: code:addons/odex25_purchase_coc/static/src/xml/tender_templates.xml:14
|
||||
#, python-format
|
||||
msgid "quantity"
|
||||
msgstr "الكمية"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_reject_wizard
|
||||
msgid "reject.wizard"
|
||||
msgstr "reject.wizard"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:res.groups,name:odex25_purchase_coc.group_coc_menu
|
||||
msgid "COC Menu"
|
||||
msgstr "قائمة شهادة استلام"
|
||||
|
||||
|
|
@ -0,0 +1,245 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * odex25_purchase_coc
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 11.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-24 08:27+0000\n"
|
||||
"PO-Revision-Date: 2020-08-24 08:27+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Approve"
|
||||
msgstr "موافقة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.actions.act_window,help:odex25_purchase_coc.purchase_coc_action
|
||||
msgid "Approve and Confirm CoC"
|
||||
msgstr "تصديق و تأكيد شهادة الانجاز"
|
||||
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.order,coc_stage:0
|
||||
msgid "Before Bill"
|
||||
msgstr "قبل انشاء الفاتورة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.order,coc_stage:0
|
||||
msgid "Before Bill Validation"
|
||||
msgstr "قبل اعتماد الفاتورة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.order,coc_stage:0
|
||||
msgid "Before Payment"
|
||||
msgstr "قبل الدفع"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_created
|
||||
msgid "COC Created"
|
||||
msgstr "تم انشاء شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.menu,name:odex25_purchase_coc.coc_menu
|
||||
msgid "Certificat of Completion CoC"
|
||||
msgstr "شهادات الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.actions.act_window,name:odex25_purchase_coc.purchase_coc_action
|
||||
msgid "Certificate of Completion"
|
||||
msgstr "شهادة الانجاز"
|
||||
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc
|
||||
msgid "CoC Created"
|
||||
msgstr "تم انشاء شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_id
|
||||
msgid "CoC Ref"
|
||||
msgstr "شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_coc_stage
|
||||
msgid "CoC Stage"
|
||||
msgstr "مرحلة شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_line_coc_id
|
||||
msgid "Coc"
|
||||
msgstr "شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Confirm"
|
||||
msgstr "تأكيد"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.view_id
|
||||
msgid "Create CoC"
|
||||
msgstr "انشاء شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "أنشئ بواسطة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_create_date
|
||||
msgid "Created on"
|
||||
msgstr "أنشئ في"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_date
|
||||
msgid "Date"
|
||||
msgstr "التاريخ"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_display_name
|
||||
msgid "Display Name"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Draft"
|
||||
msgstr "مبدئي"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_id
|
||||
msgid "ID"
|
||||
msgstr "المعرف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr "الفاتورة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "آخر تحديث بواسطة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "آخر تحديث في"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_name
|
||||
msgid "Name"
|
||||
msgstr "الرقم المرجعي"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order_need_coc
|
||||
msgid "Need CoC?"
|
||||
msgstr "يحتاج الى شهادة انجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_note
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "Note"
|
||||
msgstr "ملاحظة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_po_line_ids
|
||||
msgid "PO Lines"
|
||||
msgstr "الاصناف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_account_payment
|
||||
msgid "Payments"
|
||||
msgstr "المدفوعات"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_po_id
|
||||
msgid "Po Ref."
|
||||
msgstr "طلب الشراء."
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "الاصناف"
|
||||
msgstr "الاصناف"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_purchase_coc
|
||||
msgid "Purchase CoC"
|
||||
msgstr "Purchase CoC"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr "طلب الشراء"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model,name:odex25_purchase_coc.model_purchase_order_line
|
||||
msgid "Purchase Order Line"
|
||||
msgstr "بند طلب الشراء"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "Set to Draft"
|
||||
msgstr "تعيين كمسودة"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:53
|
||||
#, python-format
|
||||
msgid "Sorry You cannot Create Bill untill CoC Created and Approved."
|
||||
msgstr "لايمكن إنشاء الفاتورة قبل انشاء وتصديف شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:87
|
||||
#, python-format
|
||||
msgid "Sorry You cannot Pay For This Vendor untill CoC Created and Approved."
|
||||
msgstr "لايمكن الدفع قبل انشاء وتصديق شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: code:addons/odex25_purchase_coc/models/models.py:67
|
||||
#, python-format
|
||||
msgid "Sorry You cannot Validate Bill untill CoC Created and Approved."
|
||||
msgstr "لايمكن اعتماد الفاتورة قبل انشاء وتصديق شهادة الانجاز"
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_state
|
||||
msgid "State"
|
||||
msgstr "الحالة"
|
||||
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_coc_vendor_id
|
||||
msgid "Vendor"
|
||||
msgstr "المورد"
|
||||
|
||||
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: model:ir.ui.view,arch_db:odex25_purchase_coc.purchase_coc_form
|
||||
msgid "Reject"
|
||||
msgstr "رفض"
|
||||
|
||||
|
||||
|
||||
#. module: odex25_purchase_coc
|
||||
#: selection:purchase.coc,state:0
|
||||
msgid "Reject"
|
||||
msgstr "تم الرفض"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import models, fields, api, _
|
||||
from datetime import datetime
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class POCustom(models.Model):
|
||||
_inherit = 'purchase.order'
|
||||
|
||||
need_coc = fields.Boolean(string='Need CoC?')
|
||||
coc_id = fields.Many2one(comodel_name='purchase.coc', string='CoC Ref')
|
||||
# state = fields.Selection(selection_add=[("coc", "Waiting For CoC")])
|
||||
coc = fields.Boolean(string='CoC Created')
|
||||
coc_created = fields.Boolean('COC Created')
|
||||
coc_ids = fields.One2many(comodel_name='purchase.coc', inverse_name='po_id', string='CoCs')
|
||||
coc_count = fields.Integer(string='Cocs', compute="_compute_coc_count")
|
||||
|
||||
@api.depends('coc_ids')
|
||||
def _compute_coc_count(self):
|
||||
for rec in self:
|
||||
rec.coc_count = len(rec.coc_ids)
|
||||
|
||||
def button_confirm(self):
|
||||
super_action = super(POCustom, self).button_confirm()
|
||||
service_products = self.order_line.filtered(lambda line: line.product_id.type == "service")
|
||||
if service_products:
|
||||
self.action_create_coc()
|
||||
return super_action
|
||||
|
||||
def action_view_coc(self):
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': 'CertificateOf Completion',
|
||||
'res_model': 'purchase.coc',
|
||||
'view_mode': 'tree,form',
|
||||
'target': 'current',
|
||||
'domain': [('po_id', '=', self.id)],
|
||||
'context': {'create': False}
|
||||
}
|
||||
|
||||
def action_create_coc(self):
|
||||
coc = None
|
||||
coc = self.env['purchase.coc'].create({
|
||||
'vendor_id': self.partner_id.id,
|
||||
'date': datetime.today(),
|
||||
'po_id': self.id,
|
||||
'state': 'draft'
|
||||
})
|
||||
for line in self.order_line.filtered(lambda line: line.product_id.type == 'service' and line.choosen == True):
|
||||
line.coc_id = coc.id
|
||||
self.coc_id = coc.id
|
||||
self.coc_created = True
|
||||
|
||||
def action_create_invoice(self):
|
||||
for rec in self:
|
||||
if rec and rec.coc_ids.filtered(lambda coc: coc.coc_stage == 'before_bill' and coc.state != 'approve'):
|
||||
raise ValidationError(_("Sorry You cannot Create Bill untill CoC Created and Approved."))
|
||||
return super(POCustom, rec).action_create_invoice()
|
||||
|
||||
class PurchaseOrderLine(models.Model):
|
||||
_inherit = 'purchase.order.line'
|
||||
|
||||
coc_id = fields.Many2one('purchase.coc')
|
||||
|
||||
|
||||
class AccountInvoiceCustom(models.Model):
|
||||
_inherit = 'account.move'
|
||||
|
||||
|
||||
def action_post(self):
|
||||
if self.move_type == 'in_invoice':
|
||||
context = self.env.context
|
||||
print("context",context)
|
||||
po = self.env['purchase.order'].search([('id', '=', context.get('active_id', False))])
|
||||
print(po.coc_ids.filtered(lambda coc: coc.coc_stage == 'befor_bill_valid' and coc.state != 'approve'))
|
||||
if po and po.coc_ids.filtered(lambda coc: coc.coc_stage == 'befor_bill_valid' and coc.state != 'approve'):
|
||||
raise ValidationError(_("Sorry You cannot Validate Bill untill CoC Created and Approved."))
|
||||
else:
|
||||
return super(AccountInvoiceCustom, self).action_post()
|
||||
else:
|
||||
return super(AccountInvoiceCustom, self).action_post()
|
||||
|
||||
def action_confirm(self):
|
||||
if self.move_type == 'in_invoice':
|
||||
context = self.env.context
|
||||
print("context",context)
|
||||
po = self.env['purchase.order'].search([('id', '=', context.get('active_id', False))])
|
||||
print(po.coc_ids.filtered(lambda coc: coc.coc_stage == 'befor_bill_valid' and coc.state != 'approve'))
|
||||
if po and po.coc_ids.filtered(lambda coc: coc.coc_stage == 'befor_bill_valid' and coc.state != 'approve'):
|
||||
raise ValidationError(_("Sorry You cannot Validate Bill untill CoC Created and Approved."))
|
||||
else:
|
||||
return super(AccountInvoiceCustom, self).action_confirm()
|
||||
else:
|
||||
return super(AccountInvoiceCustom, self).action_confirm()
|
||||
|
||||
def action_register_payment(self):
|
||||
if self.move_type == 'in_invoice':
|
||||
context = self.env.context
|
||||
po = self.env['purchase.order'].search([('id', '=', context.get('active_id', False))])
|
||||
if po and po.coc_ids.filtered(lambda coc: coc.coc_stage == 'before_payment' and coc.state != 'approve'):
|
||||
raise ValidationError(_("Sorry You cannot Pay For This Vendor untill CoC Created and Approved."))
|
||||
else:
|
||||
return super(AccountInvoiceCustom, self).action_register_payment()
|
||||
else:
|
||||
return super(AccountInvoiceCustom, self).action_register_payment()
|
||||
|
||||
class PurchaseCoC(models.Model):
|
||||
_name = 'purchase.coc'
|
||||
_description = 'Purchase CoC'
|
||||
|
||||
name = fields.Char(string='Name')
|
||||
coc_stage = fields.Selection(string='CoC Stage', selection=[('before_bill', 'Before Bill'),
|
||||
('befor_bill_valid', 'Before Bill Validation'),
|
||||
('before_payment', 'Before Payment')]
|
||||
,default='before_bill')
|
||||
po_id = fields.Many2one(comodel_name='purchase.order', string='Po Ref.')
|
||||
vendor_id = fields.Many2one(comodel_name='res.partner', string='Vendor', related="po_id.partner_id")
|
||||
date = fields.Date(string='Date')
|
||||
note = fields.Text(string='Note')
|
||||
state = fields.Selection(string='', selection=[('draft', 'Draft'), ('confirm', 'Confirm'), ('approve', 'Approve'),
|
||||
('cancel', 'Reject')])
|
||||
po_line_ids = fields.One2many('purchase.order.line', 'coc_id', string='PO Lines')
|
||||
reject_reason = fields.Char(string='Reject Reason')
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
vals['name'] = self.env['ir.sequence'].next_by_code(self._name)
|
||||
return super(PurchaseCoC, self).create(vals)
|
||||
|
||||
def action_confirm(self):
|
||||
self.write({
|
||||
'state': 'confirm'
|
||||
})
|
||||
|
||||
def action_approve(self):
|
||||
self.write({
|
||||
'state': 'approve'
|
||||
})
|
||||
# This code is commented because the exchange request module is not needed and
|
||||
# will cause a problem when we uninstall the exchange request module
|
||||
# if self.po_id and self.po_id.requisition_id and self.po_id.requisition_id.exchange_request:
|
||||
# self.po_id.requisition_id.exchange_request.write({
|
||||
# 'state' : 'done'
|
||||
# })
|
||||
|
||||
def action_cancel(self):
|
||||
if self.env.context['lang'] in['ar_SY','ar_001']:
|
||||
action_name = 'حدد سبب الرفض'
|
||||
else:
|
||||
action_name = 'Specify Reject Reason'
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': action_name,
|
||||
'res_model': 'reject.wizard',
|
||||
'view_mode': 'form',
|
||||
'target': 'new',
|
||||
'context': {'default_origin': self.id, 'default_origin_name': self._name}
|
||||
}
|
||||
|
||||
def cancel(self):
|
||||
self.write({
|
||||
'state': 'cancel',
|
||||
'reject_reason': self.env.context.get('reject_reason')
|
||||
})
|
||||
self.po_id.message_post(body=_(
|
||||
'Coc Rejected By %s . With Reject Reason : %s' % (str(self.env.user.name), str(self.reject_reason))))
|
||||
|
||||
def action_draft(self):
|
||||
self.write({
|
||||
'state': 'draft'
|
||||
})
|
||||
|
||||
|
||||
class RejectWizard(models.TransientModel):
|
||||
_name = 'reject.wizard.coc'
|
||||
|
||||
origin = fields.Integer('')
|
||||
reject_reason = fields.Text(string='Reject Reson')
|
||||
origin_name = fields.Char('')
|
||||
|
||||
def action_reject(self):
|
||||
origin_rec = self.env[self.origin_name].sudo().browse(self.origin)
|
||||
if dict(origin_rec._fields).get('reject_reason') == None:
|
||||
raise ValidationError(_('Sorry This object have no field named Selection Reasoon'))
|
||||
else:
|
||||
return origin_rec.with_context({'reject_reason': self.reject_reason}).cancel()
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_odex25_purchase_coc_odex25_purchase_coc,odex25_purchase_coc.odex25_purchase_coc,model_purchase_coc,,1,0,0,0
|
||||
access_odex25_purchase_coc_odex25_purchase_coc_user,odex25_purchase_coc.odex25_purchase_coc_user,model_purchase_coc,group_coc_user,1,1,1,0
|
||||
access_odex25_purchase_coc_odex25_purchase_coc_manager,odex25_purchase_coc.odex25_purchase_coc_manager,model_purchase_coc,group_coc_manager,1,1,1,1
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<!-- Purchase COC groups -->
|
||||
<record id="group_coc_user" model="res.groups">
|
||||
<field name="name">COC User</field>
|
||||
<field name="category_id" ref="base.module_category_purchase_management"/>
|
||||
</record>
|
||||
|
||||
<record id="group_coc_manager" model="res.groups">
|
||||
<field name="name">COC Manager</field>
|
||||
<field name="category_id" ref="base.module_category_purchase_management"/>
|
||||
</record>
|
||||
|
||||
<record id="group_coc_menu" model="res.groups">
|
||||
<field name="name">COC Menu</field>
|
||||
<field name="category_id" ref="base.module_category_purchase_management"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="tender_application_sequence" model="ir.sequence">
|
||||
<field name="name">CoC Sequence</field>
|
||||
<field name="code">purchase.coc</field>
|
||||
<field name="prefix">COC-%(year)s/%(month)s/0000</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
<field name="use_date_range">True</field>
|
||||
<field eval="1" name="number_increment"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
@charset "UTF-8";
|
||||
|
||||
main .oe_website_login_container {
|
||||
|
||||
vertical-align: middle;
|
||||
padding: 40px 65px 0px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
float: none;
|
||||
background-color: #FFF;
|
||||
box-shadow: 0.33px 3px 12px rgba(0, 0, 0, 0.3);
|
||||
width: 400px;
|
||||
margin: 40px auto;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
odoo.define('online_tendering.online_tender', function (require) {
|
||||
"use strict";
|
||||
require('web.dom_ready');
|
||||
var core = require('web.core');
|
||||
var ajax = require('web.ajax');
|
||||
var QWeb = core.qweb;
|
||||
$('.subtotal').text("0");
|
||||
$('.untax_total').text("0");
|
||||
$('.tax_total').text("0");
|
||||
$('.price').change(function(event){
|
||||
$('.untax_total').text("0");
|
||||
$('.tax_total').text("0");
|
||||
var subtotal = 0;
|
||||
var parent_tr = $(event.currentTarget).parent().parent();
|
||||
var old_subtotal = parseInt(parent_tr.children(".subtotal").text())
|
||||
subtotal = event.currentTarget.value * parseInt(parent_tr.children(".qty").text())
|
||||
var untax_total = Math.abs(parseInt($('.untax_total').text()) - old_subtotal + subtotal)
|
||||
$('.untax_total').text(untax_total)
|
||||
var tax_total = untax_total + (untax_total * parseInt($('#tax').text())/100)
|
||||
parent_tr.children(".subtotal").text(subtotal)
|
||||
$('.tax_total').text(tax_total)
|
||||
});
|
||||
|
||||
$('#tax').change(function(event){
|
||||
var untax_total = parseInt($('.untax_total').text())
|
||||
var tax_total = untax_total + untax_total * parseInt($(event.currentTarget).text())/100
|
||||
$('.tax_total').text(tax_total)
|
||||
})
|
||||
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<templates id="template" xml:space="preserve">
|
||||
<t t-name="tender" id="tender">
|
||||
<!-- <t t-call="website.layout"> -->
|
||||
<t t-esc="tender.name"/>
|
||||
<form method="POST" action="/Application_result">
|
||||
<input style="visibility: hidden;" name="tender" type="number" readonly="1" t-att-value="tender.id" />
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="visibility: hidden; border: 1px black solid">product id</th>
|
||||
<th style="border: 1px black solid">product</th>
|
||||
<th style="border: 1px black solid">quantity</th>
|
||||
<th style="border: 1px black solid">delivary date</th>
|
||||
<th style="border: 1px black solid">price</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr t-foreach="tender.line_ids" t-as="line">
|
||||
<td style="visibility: hidden;"><input name="product_id" type="number" readonly="1" t-att-value="line.product_id.id" /></td>
|
||||
<td style="border: 1px black solid"><input type="text" t-att-value="line.product_id.name"/></td>
|
||||
<td style="border: 1px black solid"> <input type="text" t-att-value="line.product_qty"/> </td>
|
||||
<td style="border: 1px black solid"> <input type="text" t-att-value="line.schedule_date"/></td>
|
||||
<td><input type="number" name="price" required="required" /></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
||||
|
||||
</table>
|
||||
|
||||
<button type="submit" class="btn btn-primary pull-left o_signup_btn">Submit Your Prices</button>
|
||||
|
||||
|
||||
</form>
|
||||
<!-- </t> -->
|
||||
</t>
|
||||
|
||||
</templates>
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
<odoo>
|
||||
<data>
|
||||
<!-- purchase.order inherit form view -->
|
||||
<record id="view_id" model="ir.ui.view">
|
||||
<field name="name">purchase.order.inherit.view.form</field>
|
||||
<field name="model">purchase.order</field>
|
||||
<field name="inherit_id" ref="purchase.purchase_order_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//button[@name='action_view_invoice']" position="after">
|
||||
<button type="object" name="action_view_coc" class="oe_stat_button" icon="fa-check" attrs="{'invisible':['|',('state', 'in', ('draft','sent','to approve')),('coc_count','=', 0)]}">
|
||||
<field name="coc_count" widget="statinfo" string="CoCs" help="Certificates of Completion"/>
|
||||
<field name="coc_ids" invisible="1"/>
|
||||
</button>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='company_id']" position="after">
|
||||
<!-- <field name="need_coc"/> -->
|
||||
<!-- <field name="coc_id" readonly="1"/> -->
|
||||
<field name="coc_created" invisible="1"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- purchase.coc form view -->
|
||||
<record id="purchase_coc_form" model="ir.ui.view">
|
||||
<field name="name">purchase.coc.view.form</field>
|
||||
<field name="model">purchase.coc</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="" create="false" delete="false">
|
||||
<header>
|
||||
<button name="action_confirm" type="object" class="oe_highlight" states="draft" string="Confirm" groups="odex25_purchase_coc.group_coc_user,odex25_purchase_coc.group_coc_manager"/>
|
||||
<button name="action_approve" type="object" class="oe_highlight" states="confirm" string="Approve" groups="odex25_purchase_coc.group_coc_manager"/>
|
||||
<button name="action_cancel" type="object" class="oe_highlight" states="draft,confirm" string="Reject" groups="odex25_purchase_coc.group_coc_manager"/>
|
||||
<button name="action_draft" type="object" class="oe_highlight" states="cancel" string="Set to Draft"/>
|
||||
<field name="state" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<group col="4" colspan="2">
|
||||
<field name="po_id" readonly="1"/>
|
||||
<field name="vendor_id" readonly="1"/>
|
||||
<field name="date" readonly="1"/>
|
||||
<field name="coc_stage"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Products" name="products">
|
||||
<field name="po_line_ids" readonly="1"/>
|
||||
</page>
|
||||
<page string="Note" name="note">
|
||||
<field name="note"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- purchase.coc tree view -->
|
||||
<record id="purchase_coc_view_tree" model="ir.ui.view">
|
||||
<field name="name">model.name.view.tree</field>
|
||||
<field name="model">purchase.coc</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree create="false" delete="false" edit="false">
|
||||
<field name="name"/>
|
||||
<field name="po_id"/>
|
||||
<field name="date"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- purchase.coc action window -->
|
||||
<record id="purchase_coc_action" model="ir.actions.act_window">
|
||||
<field name="name">Certificate of Completion</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">purchase.coc</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Approve and Confirm CoC
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!-- This Menu Item must have a parent and an action -->
|
||||
<menuitem id="coc_menu" name="Certificat of Completion CoC" parent="purchase.menu_purchase_root" action="purchase_coc_action" groups="group_coc_menu" sequence="3"/>
|
||||
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1 @@
|
|||
from . import models
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': 'Taqeem Purchase custom',
|
||||
'version': '1.1',
|
||||
'summary': 'Adding new Functionality on the Purchase Requests',
|
||||
'sequence': -1,
|
||||
'category':'Odex25-Purchase/Odex25-Purchase',
|
||||
'description': """
|
||||
Adding new Functionalities in Purchase Requests
|
||||
""",
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'security/security.xml',
|
||||
'views/purchase_less_thirty_view.xml',
|
||||
'views/res_partner.xml',
|
||||
'views/direct_purchase.xml',
|
||||
'views/res_config_setting.xml',
|
||||
'views/res_company.xml',
|
||||
'views/competitive_purchase_attachment.xml',
|
||||
'views/competitve_purchase.xml',
|
||||
'views/account_analytic_account_views.xml',
|
||||
],
|
||||
'depends': ['purchase', 'governmental_purchase', 'purchase_requisition_custom'],
|
||||
# 'account_budget_custom', exp_budget_check
|
||||
'installable': True,
|
||||
'application': True,
|
||||
}
|
||||
|
|
@ -0,0 +1,830 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * odex25_taqeem_purchase
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-24 13:40+0000\n"
|
||||
"PO-Revision-Date: 2024-01-24 13:40+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_needaction
|
||||
msgid "Action Needed"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_ids
|
||||
msgid "Activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_exception_decoration
|
||||
msgid "Activity Exception Decoration"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_state
|
||||
msgid "Activity State"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_type_icon
|
||||
msgid "Activity Type Icon"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__alternative_offer
|
||||
msgid "Allow Alternative Offer"
|
||||
msgstr "يسمح بالعرض البديل"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model,name:odex25_taqeem_purchase.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr "الحسابات التحليلية"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.actions.act_window,name:odex25_taqeem_purchase.action_competitive_purchase_attachment
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__attachment_scop
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__attach
|
||||
#: model:ir.ui.menu,name:odex25_taqeem_purchase.menu_action_competitive_purchase_attachment
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.competitive_purchase_attachment_form_view
|
||||
msgid "Application brochure"
|
||||
msgstr "كراسة الطلب"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__name
|
||||
msgid "Application brochure Name"
|
||||
msgstr "اسم الكراسة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_thirty
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_twenty
|
||||
msgid "Approve"
|
||||
msgstr "إعتماد"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_attachment_count
|
||||
msgid "Attachment Count"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model,name:odex25_taqeem_purchase.model_budget_confirmation
|
||||
msgid "Budget Confirmation"
|
||||
msgstr "تعميد الموازنة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__send_budget
|
||||
msgid "Budget Management"
|
||||
msgstr "انتظار الارسال"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_account_analytic_account__item_executive_officer
|
||||
msgid "Budget executive Officer"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__business_place
|
||||
msgid "Business Place"
|
||||
msgstr "مكان تنفيذ اﻷعمال"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Can't Confirm Request With No Item!"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__cancel
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__check_chief_executive
|
||||
msgid "Check Chief Executive"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__chief_executive_officer
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__dm
|
||||
msgid "Chief Executive Officer"
|
||||
msgstr "المدير التنفيذي للبند"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__general_supervisor
|
||||
msgid "Chief Procurement Executive"
|
||||
msgstr "الرئيس "
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__need_to_reparation__comming
|
||||
msgid "Comming"
|
||||
msgstr "لاحق"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model,name:odex25_taqeem_purchase.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "شركات"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__purchase_type__competitive
|
||||
msgid "Competitive"
|
||||
msgstr "تنافسي"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.actions.act_window,name:odex25_taqeem_purchase.action_purchase_request_competitive
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__competitive_purchase_id
|
||||
msgid "Competitive Purchase"
|
||||
msgstr "طلبات شراء المنافسات"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.ui.menu,name:odex25_taqeem_purchase.purchase_request_competitive_menu
|
||||
msgid "Competitive Purchase Request"
|
||||
msgstr "طلبات شراء المنافسات"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__competitive_type
|
||||
msgid "Competitive Type"
|
||||
msgstr "نوع المنافسة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model,name:odex25_taqeem_purchase.model_res_config_settings
|
||||
msgid "Config Settings"
|
||||
msgstr "ضبط الاعدادات"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model,name:odex25_taqeem_purchase.model_res_partner
|
||||
msgid "Contact"
|
||||
msgstr "جهة الاتصال"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__create_uid
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__create_date
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__day
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_config_settings__day
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__date_receive_offer__day
|
||||
msgid "Day"
|
||||
msgstr "يوم"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Days must be equal or greater than %s"
|
||||
msgstr "عدد اﻷيام يجب أن تكون اكثر من "
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_thirty
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_twenty
|
||||
msgid "Delivered sample address"
|
||||
msgstr "عنوان تسليم العينات"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_thirty
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_twenty
|
||||
msgid "Delivery Info"
|
||||
msgstr "معلومات التسليم"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__delivery_samples
|
||||
msgid "Delivery Samples"
|
||||
msgstr "تسليم العينات"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__delivery_type
|
||||
msgid "Delivery type"
|
||||
msgstr "نوع التسليم"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__department_alter_offer
|
||||
msgid "Department Alternative Offer"
|
||||
msgstr "هل توصي اﻹدارة بقبول العروض البديلة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__dep_suggestion
|
||||
msgid "Department Suggestion"
|
||||
msgstr "رأي اﻹدارة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.ui.menu,name:odex25_taqeem_purchase.purchase_request_direct_menu
|
||||
msgid "Direct Purchase Request"
|
||||
msgstr "طلبات الشراء المباشر"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_account_analytic_account__display_name
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_budget_confirmation__display_name
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__display_name
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__display_name
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request_line__display_name
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__display_name
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_company__display_name
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_config_settings__display_name
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_partner__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__document_list
|
||||
msgid "Document List"
|
||||
msgstr "قائمة الوثائق"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__done
|
||||
msgid "Done"
|
||||
msgstr "تم"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
msgid "Download"
|
||||
msgstr "تنزيل"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
msgid "Download Application brochure"
|
||||
msgstr "تنزيل كراسة الطلب"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__delivery_type__electronic
|
||||
msgid "Electronic"
|
||||
msgstr "إلكتروني"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__supplier_email
|
||||
msgid "Email"
|
||||
msgstr "الايميل"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__mech_evaluating_supp
|
||||
msgid "Evaluating supplier mechanism"
|
||||
msgstr "الية تقييم المورد المقترح"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__budget_approve
|
||||
msgid "Executive Vice President of Corporate Resources"
|
||||
msgstr "المدير التنفيذي للخدمات المشتركة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_follower_ids
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_channel_ids
|
||||
msgid "Followers (Channels)"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_partner_ids
|
||||
msgid "Followers (Partners)"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_type_icon
|
||||
msgid "Font awesome icon e.g. fa-tasks"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_account_analytic_account__id
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_budget_confirmation__id
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__id
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__id
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request_line__id
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__id
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_company__id
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_config_settings__id
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_partner__id
|
||||
msgid "ID"
|
||||
msgstr "المُعرف"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_exception_icon
|
||||
msgid "Icon"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_exception_icon
|
||||
msgid "Icon to indicate an exception activity."
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_needaction
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_unread
|
||||
msgid "If checked, new messages require your attention."
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_has_error
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_has_sms_error
|
||||
msgid "If checked, some messages have a delivery error."
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_is_follower
|
||||
msgid "Is Follower"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__operational_construction
|
||||
msgid "Item Operational Construction"
|
||||
msgstr "هل البند ضمن الخطة التشغيلية"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_account_analytic_account____last_update
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_budget_confirmation____last_update
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment____last_update
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request____last_update
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request_line____last_update
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line____last_update
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_company____last_update
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_config_settings____last_update
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_partner____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__write_uid
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__write_date
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__purchase_type__less_twenty
|
||||
msgid "Less Than Twenty"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__purchase_type__less_thirty
|
||||
msgid "Less than thirty"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_main_attachment_id
|
||||
msgid "Main Attachment"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__delivery_type__manual
|
||||
msgid "Manual"
|
||||
msgstr "يدوي"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__material_spec
|
||||
msgid "Material Specification"
|
||||
msgstr "مواصفات المواد"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_has_error
|
||||
msgid "Message Delivery error"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_ids
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__month
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_config_settings__month
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__date_receive_offer__month
|
||||
msgid "Month"
|
||||
msgstr "شهر"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Months must be equal or greater than %s"
|
||||
msgstr "الشهور يجب الا تكن اقل من"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__my_activity_date_deadline
|
||||
msgid "My Activity Deadline"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__delivery_samples__no
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__material_spec__no
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__quality_spec__no
|
||||
msgid "NO"
|
||||
msgstr "لا ينطبق"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__need_to_reparation
|
||||
msgid "Need Preparation"
|
||||
msgstr "هل يحتاج إلى تأهيل"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_date_deadline
|
||||
msgid "Next Activity Deadline"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_summary
|
||||
msgid "Next Activity Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_type_id
|
||||
msgid "Next Activity Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__alternative_offer__no
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__department_alter_offer__no
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__operational_construction__no
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__sell_document__no
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__work_service_imp__no
|
||||
msgid "No"
|
||||
msgstr "لا"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__need_to_reparation__noy_need
|
||||
msgid "Not need"
|
||||
msgstr "لا يحتاج"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__material_notes
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__quality_notes
|
||||
msgid "Note"
|
||||
msgstr "توضيح"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_needaction_counter
|
||||
msgid "Number of Actions"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_has_error_counter
|
||||
msgid "Number of errors"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_needaction_counter
|
||||
msgid "Number of messages which requires an action"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_has_error_counter
|
||||
msgid "Number of messages with delivery error"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_unread_counter
|
||||
msgid "Number of unread messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__offer_requirements
|
||||
msgid "Offer Requirements"
|
||||
msgstr "متطلبات تنسيق العروض"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_thirty
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_twenty
|
||||
msgid "Order Base info"
|
||||
msgstr "المعلومات اﻷساسية للطلب"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__wait_budget
|
||||
msgid "Pending Budget Approve"
|
||||
msgstr "في انتظار إدارة الميزانية"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__supplier_phone
|
||||
msgid "Phone"
|
||||
msgstr "الهاتف"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Please Select department for employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__need_to_reparation__previous
|
||||
msgid "Previous"
|
||||
msgstr "مسبق"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__waiting
|
||||
msgid "Procurement Department"
|
||||
msgstr "إدارة المشتريات"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__project_start_date
|
||||
msgid "Project start date"
|
||||
msgstr "تاريخ بداية المشروع"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__date_receive_offer
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.res_config_settings_view_form_purchase
|
||||
msgid "Proposed Period Receiving Offer"
|
||||
msgstr "المدة المقترحة ﻹستقبال العروض"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__purchase_ids
|
||||
msgid "Purchase"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__purchase_line_ids
|
||||
msgid "Purchase Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model,name:odex25_taqeem_purchase.model_purchase_request
|
||||
msgid "Purchase Request"
|
||||
msgstr "طلبات الشراء"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.ui.menu,name:odex25_taqeem_purchase.purchase_request_less_thirty_menu
|
||||
msgid "Purchase Request Less Thirty"
|
||||
msgstr "طلبات الشراء أقل من ثلاثين ألف"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__purchase_type
|
||||
msgid "Purchase Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.actions.act_window,name:odex25_taqeem_purchase.action_purchase_request_less_thirty
|
||||
msgid "Purchase less than thirty"
|
||||
msgstr "طلبات الشراء أقل من ثلاثين ألف"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.actions.act_window,name:odex25_taqeem_purchase.action_purchase_request_direct
|
||||
msgid "Purchase less than twenty"
|
||||
msgstr "طلبات الشراء المباشر"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__record_licenses
|
||||
msgid "Records and licenses"
|
||||
msgstr "السجلات والتراخيص النظامية"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__refuse
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_thirty
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_twenty
|
||||
msgid "Refuse"
|
||||
msgstr "رفض"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__remain_budget
|
||||
msgid "Remain"
|
||||
msgstr "المتبقي من الموازنة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request_line__remain
|
||||
msgid "Remain Budget"
|
||||
msgstr "المتبقي من الموازنة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__draft
|
||||
msgid "Request Producer"
|
||||
msgstr "مقدم الطلب"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_user_id
|
||||
msgid "Responsible User"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_has_sms_error
|
||||
msgid "SMS Delivery error"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__attachment_scope_project
|
||||
msgid "Scope Project"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__selected_supplier_id
|
||||
msgid "Selected Supplier"
|
||||
msgstr "المورد المقترح"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__sell_document
|
||||
msgid "Sell Documents"
|
||||
msgstr "بيع الوثائق"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__special_condition
|
||||
msgid "Special Condition"
|
||||
msgstr "الشروط الخاصة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__state
|
||||
msgid "State"
|
||||
msgstr "الحالة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_state
|
||||
msgid ""
|
||||
"Status based on activities\n"
|
||||
"Overdue: Due date is already passed\n"
|
||||
"Today: Activity date is today\n"
|
||||
"Planned: Future activities."
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:res.groups,name:odex25_taqeem_purchase.strategy_project_group
|
||||
msgid "Strategy And Project Group"
|
||||
msgstr "إدارة اﻹستراتيجية والمشاريع"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
msgid "Strategy Project Department"
|
||||
msgstr "إدارة اﻹستراتيجية والمشاريع"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__str_pro_department
|
||||
msgid "Strategy Projects Departments"
|
||||
msgstr "إدارة اﻹستراتيجية والمشاريع"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_thirty
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_twenty
|
||||
msgid "Submit"
|
||||
msgstr "إرسال"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_thirty
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_less_twenty
|
||||
msgid "Suggested Supplier"
|
||||
msgstr "المورد المقترح"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_requests_line__supplier_id
|
||||
msgid "Supplier"
|
||||
msgstr "المورد"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__state__direct_manager
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
msgid "Technical Department"
|
||||
msgstr "الإدارة الفنية"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model_terms:ir.ui.view,arch_db:odex25_taqeem_purchase.purchase_request_competitive
|
||||
msgid "Technical Department Use"
|
||||
msgstr "استخدام إدارة المشتريات"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"There is not enough balance for account %s to sen purchase request,Please "
|
||||
"contact to your executive director"
|
||||
msgstr "لايوجد رصيد كافي لهذا الحساب التحليلي ﻹرسال طلب الشراء برجاء التواصل مع المدير التنفيذي للبند"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"There is not enough balance to sen purchase request,Please contact to your "
|
||||
"executive director"
|
||||
msgstr "لايوجد رصيد كافي ﻹرسال طلب الشراء برجاء التواصل مع المدير التنفيذي للبند"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Total Amount Must be less than thirty thousand"
|
||||
msgstr "يجب أن تكون القيمة اﻹجمالية أقل من ثلاثين ألف ريال"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Total Amount Must be less than two hundred thousand"
|
||||
msgstr "يجب أن تكون القيمة اﻹجمالية أقل من مائتي ألف ريال"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__activity_exception_decoration
|
||||
msgid "Type of the exception activity on record."
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_unread
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__message_unread_counter
|
||||
msgid "Unread Messages Counter"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__attachment_upload
|
||||
msgid "Upload Application brochure"
|
||||
msgstr "رفع كراسة الطلب"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_competitive_purchase_attachment__website_message_ids
|
||||
msgid "Website Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,help:odex25_taqeem_purchase.field_competitive_purchase_attachment__website_message_ids
|
||||
msgid "Website communication history"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__work_service_imp
|
||||
msgid "Work service Implementation"
|
||||
msgstr "كيفية تنفيذ الخدمات واﻷعمال"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__year
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_res_config_settings__year
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__date_receive_offer__year
|
||||
msgid "Year"
|
||||
msgstr "سنة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "Years must be equal or greater than %s"
|
||||
msgstr "عدد السنوات يجب الا يكون اقل من"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__alternative_offer__yes
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__delivery_samples__yes
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__department_alter_offer__yes
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__material_spec__yes
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__operational_construction__yes
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__quality_spec__yes
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__sell_document__yes
|
||||
#: model:ir.model.fields.selection,name:odex25_taqeem_purchase.selection__purchase_request__work_service_imp__yes
|
||||
msgid "Yes"
|
||||
msgstr "نعم"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "You have to select at least Five supplier"
|
||||
msgstr "يجب أن تختار خمس موردين على اﻷقل"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#: code:addons/odex25_taqeem_purchase/models/purchase_request.py:0
|
||||
#, python-format
|
||||
msgid "You have to select at least one supplier"
|
||||
msgstr "يجب أن تختار مورد واحد على اﻷقل"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model,name:odex25_taqeem_purchase.model_competitive_purchase_attachment
|
||||
msgid "competitive.purchase.attachment"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_account_analytic_account__department_id
|
||||
msgid "department"
|
||||
msgstr "القسم"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model,name:odex25_taqeem_purchase.model_purchase_request_line
|
||||
msgid "purchase request line"
|
||||
msgstr "بند طلب الشراء"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model,name:odex25_taqeem_purchase.model_purchase_requests_line
|
||||
msgid "purchase.requests.line"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__quality_spec
|
||||
msgid "quality Specification"
|
||||
msgstr "مواصفات الجودة"
|
||||
|
||||
#. module: odex25_taqeem_purchase
|
||||
#: model:ir.model.fields,field_description:odex25_taqeem_purchase.field_purchase_request__room
|
||||
msgid "room/department"
|
||||
msgstr "الغرفة/اﻹدارة"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
from . import purchase_request, budget_confirmation, res_partner, account_analytic_account, res_config_setting, \
|
||||
res_company
|
||||
from . import competitive_purchase_attachment
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
from odoo import fields, models, _
|
||||
|
||||
|
||||
class AccountAnalyticAccount(models.Model):
|
||||
_inherit = "account.analytic.account"
|
||||
|
||||
item_executive_officer = fields.Many2one('hr.employee', string='Budget executive Officer')
|
||||
department_id = fields.Many2one('hr.department', string='department')
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
from odoo import fields, models, _
|
||||
|
||||
|
||||
class BudgetConfirmationCustom(models.Model):
|
||||
_inherit = 'budget.confirmation'
|
||||
|
||||
def done(self):
|
||||
super(BudgetConfirmationCustom, self).done()
|
||||
if self.request_id and self.type == 'purchase.request':
|
||||
self.request_id.write({'state': 'budget_approve'})
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
from odoo import fields, models
|
||||
|
||||
|
||||
class CompetitivePurchaseAttachment(models.Model):
|
||||
_name = "competitive.purchase.attachment"
|
||||
_inherit = ['mail.thread', 'mail.activity.mixin']
|
||||
_description = "competitive.purchase.attachment"
|
||||
|
||||
purchase_ids = fields.One2many('purchase.request', 'competitive_purchase_id')
|
||||
name = fields.Char(string='Application brochure Name')
|
||||
attachment_scop = fields.Binary(
|
||||
string='Application brochure', readonly=False, attachment=True, required=True)
|
||||
|
|
@ -0,0 +1,300 @@
|
|||
from odoo import api, fields, models, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from lxml import etree
|
||||
import json
|
||||
import base64
|
||||
import urllib.parse
|
||||
|
||||
|
||||
class PurchaseRequest(models.Model):
|
||||
_inherit = 'purchase.request'
|
||||
project_start_date = fields.Date('Project start date')
|
||||
check_chief_executive = fields.Boolean()
|
||||
chief_executive_officer = fields.Many2one('res.users', compute='get_chief_executive_officer', store=True)
|
||||
selected_supplier_id = fields.One2many('purchase.requests.line', 'purchase_line_ids')
|
||||
material_spec = fields.Selection([('yes', 'Yes'), ('no', 'NO')], string='Material Specification')
|
||||
quality_spec = fields.Selection([('yes', 'Yes'), ('no', 'NO')], string='quality Specification')
|
||||
delivery_samples = fields.Selection([('yes', 'Yes'), ('no', 'NO')], string='Delivery Samples')
|
||||
delivery_type = fields.Selection([('electronic', 'Electronic'), ('manual', 'Manual')], string='Delivery type')
|
||||
# building = fields.Char('Building')
|
||||
# floor = fields.Char('Floor')
|
||||
room = fields.Char('room/department')
|
||||
# date_time = fields.Datetime('Date&Time')
|
||||
material_notes = fields.Char(string='Note')
|
||||
quality_notes = fields.Char(string='Note')
|
||||
business_place = fields.Char(string='Business Place')
|
||||
special_condition = fields.Char(string='Special Condition')
|
||||
attachment_scope_project = fields.Char(string="Scope Project", copy=False)
|
||||
work_service_imp = fields.Selection([('yes', 'Yes'), ('no', 'No')], string='Work service Implementation')
|
||||
alternative_offer = fields.Selection([('yes', 'Yes'), ('no', 'No')], string='Allow Alternative Offer')
|
||||
# remain_budget = fields.Float(string='Remain', compute='get_remaining_budget', store=True)
|
||||
date_receive_offer = fields.Selection([('day', 'Day'), ('month', 'Month'), ('year', 'Year')],
|
||||
string='Proposed Period Receiving Offer')
|
||||
day = fields.Integer(string='Day')
|
||||
month = fields.Integer(string='Month')
|
||||
year = fields.Integer(string='Year')
|
||||
company_id = fields.Many2one('res.company', default=lambda self: self.env.user.company_id)
|
||||
attachment_scop = fields.Binary(related="company_id.attachment_scop",string='Application brochure',)
|
||||
|
||||
remain_budget = fields.Float(string='Remain', compute='get_remaining_budget', store=True)
|
||||
|
||||
state = fields.Selection(
|
||||
selection_add=[('draft', 'Request Producer'),
|
||||
('dm', 'Chief Executive Officer'),
|
||||
('str_pro_department', 'Strategy Projects Departments'),
|
||||
('direct_manager', 'Technical Department'),
|
||||
('send_budget', 'Budget Management'),
|
||||
('wait_budget', 'Pending Budget Approve'),
|
||||
('budget_approve', 'Executive Vice President of Corporate Resources'),
|
||||
('general_supervisor', 'Chief Procurement Executive'),
|
||||
('waiting', 'Procurement Department'),
|
||||
('done', 'Done'),
|
||||
('cancel', 'Cancel'),
|
||||
('refuse', 'Refuse')], default="draft", tracking=True)
|
||||
purchase_type = fields.Selection(
|
||||
[('less_thirty', 'Less than thirty'), ('less_twenty', 'Less Than Twenty'), ('competitive', 'Competitive')])
|
||||
department_alter_offer = fields.Selection([('yes', 'Yes'), ('no', 'No')], string='Department Alternative Offer')
|
||||
document_list = fields.Char(string='Document List')
|
||||
record_licenses = fields.Char(string='Records and licenses')
|
||||
mech_evaluating_supp = fields.Char(string='Evaluating supplier mechanism')
|
||||
attachment_upload = fields.Char(string='Upload Application brochure')
|
||||
offer_requirements = fields.Char(string='Offer Requirements')
|
||||
competitive_type = fields.Char(string='Competitive Type')
|
||||
sell_document = fields.Selection([('yes', 'Yes'), ('no', 'No')], string='Sell Documents')
|
||||
need_to_reparation = fields.Selection([('previous', 'Previous'), ('comming', 'Comming'), ('noy_need', 'Not need')],
|
||||
string='Need Preparation')
|
||||
operational_construction = fields.Selection([('yes', 'Yes'), ('no', 'No')], string='Item Operational Construction')
|
||||
dep_suggestion = fields.Char(string='Department Suggestion')
|
||||
|
||||
competitive_purchase_id = fields.Many2one('competitive.purchase.attachment')
|
||||
attach = fields.Binary(related='competitive_purchase_id.attachment_scop', attachment=True)
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
default_purchase_type = self.env.context.get('default_purchase_type')
|
||||
if default_purchase_type == 'less_thirty':
|
||||
vals['name'] =self.env['ir.sequence'].next_by_code('purchase.seq30.sequence') or '/'
|
||||
com_attach = self.env['competitive.purchase.attachment'].search([])
|
||||
res = super(PurchaseRequest, self).create(vals)
|
||||
res['competitive_purchase_id'] = com_attach
|
||||
return res
|
||||
elif default_purchase_type=='competitive':
|
||||
print('com')
|
||||
vals['name'] =self.env['ir.sequence'].next_by_code('purchase.com.sequence') or '/'
|
||||
com_attach = self.env['competitive.purchase.attachment'].search([])
|
||||
res = super(PurchaseRequest, self).create(vals)
|
||||
res['competitive_purchase_id'] = com_attach
|
||||
return res
|
||||
else:
|
||||
res = super(PurchaseRequest, self).create(vals)
|
||||
com_attach = self.env['competitive.purchase.attachment'].search([])
|
||||
res['competitive_purchase_id'] = com_attach
|
||||
return res
|
||||
|
||||
def download_url(self):
|
||||
return {
|
||||
"type": "ir.actions.act_url",
|
||||
"url": '/web/content/competitive.purchase.attachment/%s/attachment_scop/attachment_scop.?download=true'% (self.competitive_purchase_id.id),
|
||||
"target": "new",
|
||||
}
|
||||
|
||||
@api.constrains('date_receive_offer')
|
||||
def check_date_receiving_offer(self):
|
||||
config_settings = self.env['res.config.settings'].create(
|
||||
{}) # Create an empty record print('config_day')
|
||||
config_settings.execute() # Load the current configuration values
|
||||
for rec in self:
|
||||
if rec.date_receive_offer:
|
||||
if rec.day < config_settings.day and rec.day:
|
||||
raise ValidationError(_("Days must be equal or greater than %s" % config_settings.day))
|
||||
if rec.month < config_settings.month and rec.month:
|
||||
raise ValidationError(_("Months must be equal or greater than %s" % config_settings.month))
|
||||
if rec.year < config_settings.year and rec.year:
|
||||
raise ValidationError(_("Years must be equal or greater than %s" % config_settings.year))
|
||||
|
||||
def get_budget_line(self, product_account):
|
||||
budget_account = self.env['account.budget.post'].search([])
|
||||
for budget in budget_account:
|
||||
if budget.account_ids == product_account:
|
||||
return budget
|
||||
def action_confirm_button(self):
|
||||
if len(self.line_ids) == 0:
|
||||
raise ValidationError(_("Can't Confirm Request With No Item!"))
|
||||
if not self.department_id:
|
||||
raise ValidationError(_("Please Select department for employee"))
|
||||
self.write({'state': 'str_pro_department'})
|
||||
|
||||
|
||||
@api.depends('line_ids')
|
||||
def get_remaining_budget(self):
|
||||
for rec in self.line_ids:
|
||||
if len(self) ==1:
|
||||
if self.is_analytic:
|
||||
# fix issue singlton
|
||||
self.ensure_one()
|
||||
purchase_account = rec.account_id
|
||||
product_account = rec.product_id.property_account_expense_id
|
||||
budget_name = self.get_budget_line(product_account)
|
||||
budget_accounts = self.env['crossovered.budget'].search([])
|
||||
for account in budget_accounts.crossovered_budget_line:
|
||||
if account.analytic_account_id == purchase_account and budget_name == account.general_budget_id:
|
||||
rec.remain = account.remain
|
||||
print(account.remain, 'account.remain')
|
||||
elif self.department_id:
|
||||
department_account = self.department_id.analytic_account_id
|
||||
budget_accounts = self.env['crossovered.budget'].search([])
|
||||
for account in budget_accounts.crossovered_budget_line:
|
||||
if account.analytic_account_id == department_account:
|
||||
rec.remain = account.remain
|
||||
|
||||
elif len(self) >1:
|
||||
for y in self:
|
||||
if y.is_analytic:
|
||||
purchase_account = rec.account_id
|
||||
product_account = rec.product_id.property_account_expense_id
|
||||
budget_name = self.get_budget_line(product_account)
|
||||
budget_accounts = self.env['crossovered.budget'].search([])
|
||||
for account in budget_accounts.crossovered_budget_line:
|
||||
if account.analytic_account_id == purchase_account and budget_name == account.general_budget_id:
|
||||
rec.remain = account.remain
|
||||
print(account.remain, 'account.remain')
|
||||
elif self.department_id:
|
||||
department_account = self.department_id.analytic_account_id
|
||||
budget_accounts = self.env['crossovered.budget'].search([])
|
||||
for account in budget_accounts.crossovered_budget_line:
|
||||
if account.analytic_account_id == department_account:
|
||||
rec.remain = account.remain
|
||||
|
||||
@api.depends('line_ids', 'department_id')
|
||||
def get_chief_executive_officer(self):
|
||||
for record in self:
|
||||
if record.is_analytic:
|
||||
item_executive_officer = record.line_ids.account_id.item_executive_officer.user_id
|
||||
record.chief_executive_officer = item_executive_officer
|
||||
return item_executive_officer
|
||||
else:
|
||||
item_executive_officer = record.department_id.analytic_account_id.item_executive_officer.user_id
|
||||
record.chief_executive_officer = item_executive_officer
|
||||
return item_executive_officer
|
||||
|
||||
def read(self, records):
|
||||
res = super(PurchaseRequest, self).read(records)
|
||||
if self.chief_executive_officer == self.env.user:
|
||||
self.check_chief_executive = True
|
||||
else:
|
||||
self.check_chief_executive = False
|
||||
return res
|
||||
|
||||
@api.model
|
||||
def fields_view_get(self, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
res = super(PurchaseRequest, self).fields_view_get(view_id, view_type, toolbar=toolbar, submenu=False)
|
||||
doc = etree.XML(res['arch'])
|
||||
for node in doc.xpath("//field[@name='name']"):
|
||||
modifiers = json.loads(node.get("modifiers"))
|
||||
modifiers['readonly'] = True
|
||||
node.set("modifiers", json.dumps(modifiers))
|
||||
for node in doc.xpath("//field[@name='operational_construction']"):
|
||||
modifiers = json.loads(node.get("modifiers"))
|
||||
modifiers['readonly'] = [
|
||||
('state', 'not in', ['str_pro_department'])]
|
||||
for node in doc.xpath("//field[@name='partner_id']"):
|
||||
modifiers = json.loads(node.get("modifiers"))
|
||||
modifiers['readonly'] = [
|
||||
('state', 'not in', ['waiting'])]
|
||||
node.set("modifiers", json.dumps(modifiers))
|
||||
for node in doc.xpath("//field[@name='type_id']"):
|
||||
modifiers = json.loads(node.get("modifiers"))
|
||||
modifiers['readonly'] = [
|
||||
('state', 'not in', ['waiting'])]
|
||||
node.set("modifiers", json.dumps(modifiers))
|
||||
for node in doc.xpath("//field[@name='line_ids']"):
|
||||
modifiers = json.loads(node.get("modifiers"))
|
||||
modifiers['readonly'] = [('state', '!=', 'draft')]
|
||||
node.set("modifiers", json.dumps(modifiers))
|
||||
res['arch'] = etree.tostring(doc, encoding='unicode')
|
||||
return res
|
||||
|
||||
def action_pc_confirm(self):
|
||||
if self.purchase_type != 'less_thirty':
|
||||
self.write({'state': 'general_supervisor'})
|
||||
else:
|
||||
self.write({'state': 'waiting'})
|
||||
|
||||
def is_account_repeated(self, lines):
|
||||
accounts = set()
|
||||
for line in lines:
|
||||
account = line.account_id
|
||||
if account in accounts:
|
||||
print(accounts, 'line')
|
||||
return True
|
||||
accounts.add(account)
|
||||
print(accounts, 'accountsbjh')
|
||||
return False
|
||||
|
||||
def check_budget(self):
|
||||
total = 0
|
||||
for line in self.line_ids:
|
||||
total += line.sum_total
|
||||
if not self.is_analytic:
|
||||
print(total, 'check_budget')
|
||||
print('Department Account')
|
||||
if abs(line.remain) < total:
|
||||
raise ValidationError(
|
||||
_("There is not enough balance to sen purchase request,"
|
||||
"Please contact to your executive director"))
|
||||
else:
|
||||
if self.is_account_repeated(self.line_ids) == True:
|
||||
if abs(line.remain) < total:
|
||||
print('with repeated account')
|
||||
raise ValidationError(
|
||||
_("There is not enough balance to sen purchase request,"
|
||||
"Please contact to your executive director"))
|
||||
else:
|
||||
if abs(line.remain) < line.sum_total:
|
||||
print('no repeated accounts')
|
||||
raise ValidationError(
|
||||
_("There is not enough balance for account %s to sen purchase request,"
|
||||
"Please contact to your executive director") % line.account_id.name)
|
||||
|
||||
def action_dm_confirm(self):
|
||||
res = super(PurchaseRequest, self).action_dm_confirm()
|
||||
self.check_budget()
|
||||
if self.purchase_type == 'less_twenty':
|
||||
if not self.selected_supplier_id:
|
||||
raise ValidationError(_("You have to select at least one supplier"))
|
||||
elif self.purchase_type == 'less_thirty':
|
||||
if not self.selected_supplier_id:
|
||||
raise ValidationError(_("You have to select at least one supplier"))
|
||||
elif self.purchase_type == 'competitive':
|
||||
line_len = 0
|
||||
for line in self.selected_supplier_id:
|
||||
line_len += 1
|
||||
if line_len < 5:
|
||||
raise ValidationError(_("You have to select at least Five supplier"))
|
||||
return res
|
||||
|
||||
def technical_department(self):
|
||||
self.write({'state': 'direct_manager'})
|
||||
|
||||
@api.constrains('line_ids')
|
||||
def check_amount_total(self):
|
||||
for line in self.line_ids:
|
||||
if self.purchase_type == 'less_thirty' and line.sum_total > 30000:
|
||||
raise ValidationError(_("Total Amount Must be less than thirty thousand"))
|
||||
elif self.purchase_type == 'less_twenty' and line.sum_total > 200000:
|
||||
raise ValidationError(_("Total Amount Must be less than two hundred thousand"))
|
||||
|
||||
|
||||
class PurchaseRequestLine(models.Model):
|
||||
_inherit = 'purchase.request.line'
|
||||
|
||||
remain = fields.Float(string='Remain Budget')
|
||||
|
||||
|
||||
class PurchaseRequestsLine(models.Model):
|
||||
_name = 'purchase.requests.line'
|
||||
|
||||
purchase_line_ids = fields.Many2one('purchase.request')
|
||||
supplier_id = fields.Many2one('res.partner', string='Supplier')
|
||||
supplier_email = fields.Char(string='Email', related='supplier_id.email')
|
||||
supplier_phone = fields.Char(string='Phone', related='supplier_id.phone')
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
from odoo import fields, models, api
|
||||
|
||||
|
||||
class Company(models.Model):
|
||||
_inherit = 'res.company'
|
||||
|
||||
attachment_scop = fields.Binary(string='Application brochure',)
|
||||
day = fields.Integer(string='Day')
|
||||
month = fields.Integer(string='Month')
|
||||
year = fields.Integer(string='Year')
|
||||
# @api.onchange('name')
|
||||
# def get_attachment(self):
|
||||
# attach = self.env['competitive.purchase.attachment']
|
||||
# print(attach.attachment_scop, 'attachment_scop')
|
||||
# self.attachment_scop = attach.attachment_scop
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import base64
|
||||
import ast
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from ast import literal_eval
|
||||
|
||||
|
||||
class ResConfigSettings(models.TransientModel):
|
||||
_inherit = 'res.config.settings'
|
||||
|
||||
attachment_scop = fields.Binary(related="company_id.attachment_scop",string='Application brochure',readonly=False)
|
||||
day = fields.Integer(
|
||||
string='Day', related="company_id.day", readonly=False)
|
||||
month = fields.Integer(
|
||||
string='Month', related="company_id.month", readonly=False)
|
||||
year = fields.Integer(
|
||||
string='Year', related="company_id.year", readonly=False)
|
||||
|
||||
# @api.model
|
||||
# def get_values(self):
|
||||
# res = super(ResConfigSettings, self).get_values()
|
||||
# res['day'] = int(
|
||||
# self.env['ir.config_parameter'].sudo().get_param('odex25_taqeem_purchase.day', default=14))
|
||||
# res['month'] = int(
|
||||
# self.env['ir.config_parameter'].sudo().get_param('odex25_taqeem_purchase.month', default=0))
|
||||
# res['year'] = int(
|
||||
# self.env['ir.config_parameter'].sudo().get_param('odex25_taqeem_purchase.year', default=0))
|
||||
# # res['attachment_scop'] = self.env['ir.config_parameter'].sudo().get_param('odex25_taqeem_purchase.attachment_scop', default=0)
|
||||
|
||||
# return res
|
||||
|
||||
# @api.model
|
||||
# def set_values(self):
|
||||
# self.env['ir.config_parameter'].sudo().set_param('odex25_taqeem_purchase.day', self.day)
|
||||
# self.env['ir.config_parameter'].sudo().set_param('odex25_taqeem_purchase.month', self.month)
|
||||
# self.env['ir.config_parameter'].sudo().set_param('odex25_taqeem_purchase.year', self.year)
|
||||
# self.env['ir.config_parameter'].sudo().set_param('odex25_taqeem_purchase.attachment_scop', self.attachment_scop)
|
||||
|
||||
# super(ResConfigSettings, self).set_values()
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
from odoo.exceptions import UserError, ValidationError
|
||||
from odoo import api, fields, models, _
|
||||
|
||||
|
||||
class ResPartner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
# purchase_request_id = fields.Many2one('purchase.request')
|
||||
|
||||
@api.constrains('vat', 'company_type', 'commercial_register')
|
||||
def _check_unique_tax_id_commercial_register(self):
|
||||
for record in self:
|
||||
if record.vat:
|
||||
domain = [('vat', '=', record.vat), ('company_type', '=', 'company'), ]
|
||||
existing_records = self.env['res.partner'].search_count(domain)
|
||||
if existing_records > 1:
|
||||
raise ValidationError("Tax ID must be unique per company")
|
||||
if record.commercial_register:
|
||||
domain = [('commercial_register', '=', record.commercial_register), ('company_type', '=', 'company'), ]
|
||||
existing_records = self.env['res.partner'].search_count(domain)
|
||||
if existing_records > 1:
|
||||
raise ValidationError("Commercial Register must be unique per company")
|
||||
|
||||
@api.constrains('id_number', 'company_type')
|
||||
def _check_unique_id_number(self):
|
||||
for record in self:
|
||||
if record.id_number:
|
||||
domain = [('id_number', '=', record.id_number), ('company_type', '=', 'person')]
|
||||
existing_records = self.env['res.partner'].search_count(domain)
|
||||
if existing_records > 1:
|
||||
raise ValidationError("Identity Number must be unique")
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
|
||||
access_purchase_requests_line,odex25_taqeem_purchase.purchase_requests_line,model_purchase_requests_line,base.group_user,1,1,1,1
|
||||
access_competitive_purchase_attachment,odex25_taqeem_purchase.competitive_purchase_attachment,model_competitive_purchase_attachment,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
<odoo>
|
||||
<record id="strategy_project_group" model="res.groups">
|
||||
<field name="name">Strategy And Project Group</field>
|
||||
<field name="implied_ids" eval="[(4, ref('purchase_requisition_custom.view_purchase_request'))]"/>
|
||||
<field name="category_id" ref="purchase_requisition_custom.module_category_purchase_request"/>
|
||||
</record>
|
||||
|
||||
<record id="purchase_requisition_custom.group_direct_manger" model="res.groups">
|
||||
<field name="name">Budget Executive Officer</field>
|
||||
</record>
|
||||
|
||||
<record id="governmental_purchase.executive_director_of_purchase_and_contract" model="res.groups">
|
||||
<field name="name">Executive Vice President of Corporate Resources</field>
|
||||
</record>
|
||||
<record id="governmental_purchase.group_ceo_of_corporate_resources" model="res.groups">
|
||||
<field name="name">Chief Procurement Executive</field>
|
||||
</record>
|
||||
|
||||
<record id="group_direct_manger_record_rule" model="ir.rule">
|
||||
<field name="name">Group Direct Manger Rule</field>
|
||||
<field name="model_id" ref="odex25_taqeem_purchase.model_purchase_request"/>
|
||||
<field name="domain_force">['|',('user_id','=',user.id),('chief_executive_officer', '=', user.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('purchase_requisition_custom.group_direct_manger'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<odoo>
|
||||
<record model="ir.ui.view" id="view_account_analytic_account_form_view">
|
||||
<field name="name">account.analytic.account.form.view</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='group_id']" position="after">
|
||||
<field name="item_executive_officer"/>
|
||||
<field name="department_id"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<odoo>
|
||||
<record model="ir.ui.view" id="competitive_purchase_attachment_form_view">
|
||||
<field name="name">competitive.purchase.attachment.form.view</field>
|
||||
<field name="model">competitive.purchase.attachment</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Application brochure">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="attachment_scop"/>
|
||||
</group>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="competitive_purchase_attachment_tree_view">
|
||||
<field name="name">competitive.purchase.attachment.tree.view</field>
|
||||
<field name="model">competitive.purchase.attachment</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="attachment_scop"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_competitive_purchase_attachment" model="ir.actions.act_window">
|
||||
<field name="name">Application brochure</field>
|
||||
<field name="res_model">competitive.purchase.attachment</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem parent="purchase.menu_purchase_config" name='Application brochure' id="menu_action_competitive_purchase_attachment"
|
||||
action="action_competitive_purchase_attachment"/>/>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
<odoo>
|
||||
<record id="purchase_request_competitive" model="ir.ui.view">
|
||||
<field name="name">purchase.request.competitive</field>
|
||||
<field name="model">purchase.request</field>
|
||||
<field name="inherit_id" ref="governmental_purchase.purchase_request_form"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='type_id']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='by_purchase']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_id']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='is_analytic']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=',('draft','waiting'))]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='state']" position="replace">
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,dm,str_pro_department,direct_manager,send_budget,wait_budget,budget_approve,general_supervisor,waiting"/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='action_pc_confirm']" position="replace">
|
||||
<button name="action_pc_confirm" groups="governmental_purchase.executive_director_of_purchase_and_contract" type="object" string="Approve" states="budget_approve" class="oe_highlight"/>
|
||||
<button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse" states="budget_approve" type="action" groups="governmental_purchase.executive_director_of_purchase_and_contract"/>
|
||||
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_id']" position="after">
|
||||
<field name="purchase_type" invisible="1"/>
|
||||
<field name="check_chief_executive" invisible="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='action_confirm']" position="replace">
|
||||
<button name="action_confirm_button" groups="purchase_requisition_custom.group_direct_manger" type="object" string="Submit" class="oe_highlight" attrs="{'invisible': ['|',('check_chief_executive','=',False),('state','!=', 'dm')]}"/>
|
||||
<button name="technical_department" type="object" groups="odex25_taqeem_purchase.strategy_project_group" string="Technical Department" states="str_pro_department" class="oe_highlight"/>
|
||||
<button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse" type="action" groups="odex25_taqeem_purchase.strategy_project_group" states="str_pro_department"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='line_ids']//field[@name='sum_total']" position="attributes">
|
||||
<attribute name="readonly">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='line_ids']//field[@name='sum_total']" position="after">
|
||||
<field name="remain" attrs="{'column_invisible': [('parent.state', '!=', 'dm')]}"/>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//page[@name='base_info_dep_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='purchase_request_info']" position="after">
|
||||
<page string="Order Base info" name="base_info_order">
|
||||
<group>
|
||||
<group string="Delivery Info" name="DeliveryInfo">
|
||||
<field name="tender_name" required="1" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="purpose_of_tender" required="1" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="project_duration" required="1" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="project_start_date" required="1" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="work_service_imp" widget="radio" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="record_licenses" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="quality_spec" widget="radio" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="quality_notes" attrs="{'invisible':[('quality_spec' , '!=' , 'yes')],'readonly':[('state', '!=', 'draft')],'required':[('quality_spec' , '=' , 'yes')]}"/>
|
||||
<field name="material_spec" widget="radio" attrs="{'invisible':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="material_notes" attrs="{'invisible':[('material_spec' , '!=' , 'yes')],'readonly':[('state', '!=', 'draft')],'required':[('material_spec' , '=' , 'yes')]}"/>
|
||||
|
||||
<field name="other_details" invisible="1" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="is_delivered" required="1" widget="radio" options="{'horizontal': true}" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="delivery_type" attrs="{'invisible':[('is_delivered' , '!=' , 'yes')],'readonly':[('state', '!=', 'draft')],}"/>
|
||||
|
||||
</group>
|
||||
<group>
|
||||
<field name="business_place" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="attachment_scope_project" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="document_list" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="mech_evaluating_supp" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="offer_requirements" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="alternative_offer" widget="radio" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="department_alter_offer" widget="radio" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="date_receive_offer" widget="radio" attrs="{'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="day" attrs="{'invisible': [('date_receive_offer', '!=', 'day')],'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="month" attrs="{'invisible': [('date_receive_offer', '!=', 'month')],'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="year" attrs="{'invisible': [('date_receive_offer', '!=', 'year')],'readonly':[('state', '!=', 'draft')]}"/>
|
||||
<field name="special_condition" attrs="{'invisible':[('state' , '!=' , 'draft')]}"/>
|
||||
<!-- <field name="attach" attrs="{'invisible':[('state' , '!=' , 'draft')]}"/>-->
|
||||
</group>
|
||||
|
||||
|
||||
<!-- -->
|
||||
</group>
|
||||
<group string="Delivered sample address" attrs="{'invisible':['|',('delivery_type' , '!=' , 'manual'),('is_delivered' , '!=' , 'yes')]}">
|
||||
<group>
|
||||
<field name="delivery_building" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="delivery_floor" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="room" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="date_time" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<group name="attachment_upload" string="Download Application brochure" attrs="{'invisible':[('state' , '!=' , 'draft')]}">
|
||||
<div class=" row mb4">
|
||||
<div class="col-12">
|
||||
<!-- <button string="Download" name="download_url" type="object" class="oe_highlight"/> -->
|
||||
<field readonly="1" name="attachment_scop" class="btn btn-primary" widget="binary" nolabel="1"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb4">
|
||||
<div class="col-12">
|
||||
<label for="attachment_upload"/>
|
||||
<field name="attachment_upload" widget="binary"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
|
||||
</page>
|
||||
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='base_info_order']" position="after">
|
||||
<page string="Suggested Supplier" name="selected_supplier">
|
||||
|
||||
<field name="selected_supplier_id" attrs="{'readonly':[('state' , '!=' , 'draft')]}">
|
||||
<tree editable="bottom">
|
||||
<field name="supplier_id" required="1"/>
|
||||
<field name="supplier_email"/>
|
||||
<field name="supplier_phone"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='selected_supplier']" position="after">
|
||||
<page name="srt_project_dep" string="Strategy Project Department">
|
||||
<group>
|
||||
<group>
|
||||
<field name="operational_construction" attrs="{'readonly':[('state' , '!=' , 'str_pro_department')]}"/>
|
||||
<field name="dep_suggestion" attrs="{'readonly':[('state' , '!=' , 'str_pro_department')]}"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
|
||||
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='srt_project_dep']" position="after">
|
||||
<page name="technical_dep_use" string="Technical Department Use">
|
||||
<group>
|
||||
<group>
|
||||
<field name="competitive_type" attrs="{'readonly':[('state' , '!=' , 'waiting')]}"/>
|
||||
<field name="sell_document" attrs="{'readonly':[('state' , '!=' , 'waiting')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="need_to_reparation" attrs="{'readonly':[('state' , '!=' , 'waiting')]}"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
|
||||
</page>
|
||||
</xpath>
|
||||
|
||||
|
||||
<xpath expr="//page[@name='dep_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='technical_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='procurement_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='note']" position="replace"/>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_purchase_request_competitive" model="ir.actions.act_window">
|
||||
<field name="name">Competitive Purchase</field>
|
||||
<field name="res_model">purchase.request</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree'}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('purchase_request_competitive')})]"/>
|
||||
<field name="domain">[('purchase_type', '=', 'competitive')]</field>
|
||||
<field name="context">{'default_purchase_type': 'competitive'}</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="purchase_request_competitive_menu" name="Competitive Purchase Request" parent="purchase_requisition_custom.purchase_request_menu" action="action_purchase_request_competitive"/>
|
||||
|
||||
|
||||
<!-- <record id="purchase_request_less_thirt" model="ir.actions.server">-->
|
||||
<!-- <field name="name">Purchase Request Less Thirty</field>-->
|
||||
<!-- <field name="model_id" ref="purchase_requisition_custom.model_purchase_request"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">-->
|
||||
<!-- action = model.purchase_less_than_thirty()-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
<odoo>
|
||||
<record id="purchase_request_less_twenty" model="ir.ui.view">
|
||||
<field name="name">purchase.request.less.twenty</field>
|
||||
<field name="model">purchase.request</field>
|
||||
<field name="inherit_id" ref="governmental_purchase.purchase_request_form"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='type_id']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='by_purchase']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_id']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='is_analytic']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='state']" position="replace">
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="draft,dm,direct_manager,send_budget,wait_budget,budget_approve,general_supervisor,waiting"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='line_ids']//field[@name='sum_total']" position="attributes">
|
||||
<attribute name="readonly">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='line_ids']//field[@name='sum_total']" position="after">
|
||||
<field name="remain" attrs="{'column_invisible': [('parent.state', '!=', 'dm')]}"/>
|
||||
</xpath>
|
||||
|
||||
|
||||
<xpath expr="//button[@name='action_pc_confirm']" position="replace">
|
||||
<button name="action_pc_confirm"
|
||||
groups="governmental_purchase.executive_director_of_purchase_and_contract" type="object"
|
||||
string="Approve" states="budget_approve" class="oe_highlight"/>
|
||||
<button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse"
|
||||
states="budget_approve" type="action"
|
||||
groups="governmental_purchase.executive_director_of_purchase_and_contract"/>
|
||||
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//field[@name='partner_id']" position="after">
|
||||
<field name="purchase_type" invisible="1"/>
|
||||
<field name="check_chief_executive" invisible="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='action_confirm']" position="replace">
|
||||
<button name="action_confirm" groups="purchase_requisition_custom.group_direct_manger" type="object"
|
||||
string="Submit" class="oe_highlight"
|
||||
attrs="{'invisible': ['|',('check_chief_executive','=',False),('state','!=', 'dm')]}"/>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='base_info_dep_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='purchase_request_info']" position="after">
|
||||
<page string="Order Base info" name="base_info_order"
|
||||
>
|
||||
<group>
|
||||
<group string="Delivery Info" name="DeliveryInfo">
|
||||
<field name="tender_name" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="purpose_of_tender" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="other_details" invisible="1" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="is_delivered" required="1" widget="radio" options="{'horizontal': true}"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="delivery_type"
|
||||
attrs="{'invisible':[('is_delivered' , '!=' , 'yes')],'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
</group>
|
||||
|
||||
<group name="Info">
|
||||
<field name="project_duration" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="project_start_date" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="work_service_imp" widget="radio"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="business_place" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="attachment_scope_project" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="alternative_offer" widget="radio"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="quality_spec" widget="radio"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="quality_notes"
|
||||
attrs="{'invisible':[('quality_spec' , '!=' , 'yes')],'readonly':[('state' , '!=' , 'draft')],'required':[('quality_spec' , '=' , 'yes')]}"/>
|
||||
<field name="material_spec" widget="radio"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="material_notes"
|
||||
attrs="{'invisible':[('material_spec' , '!=' , 'yes')],'readonly':[('state' , '!=' , 'draft')],'required':[('material_spec' , '=' , 'yes')]}"/>
|
||||
<field name="special_condition"/>
|
||||
|
||||
</group>
|
||||
</group>
|
||||
<group string="Delivered sample address"
|
||||
attrs="{'invisible':['|',('delivery_type' , '!=' , 'manual'),('is_delivered' , '!=' , 'yes')]}">
|
||||
<group>
|
||||
<field name="delivery_building"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="delivery_floor"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="room"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="date_time"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
</page>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//page[@name='base_info_order']" position="after">
|
||||
<page string="Suggested Supplier" name="selected_supplier"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}">
|
||||
<field name="selected_supplier_id">
|
||||
<tree editable="bottom">
|
||||
<field name="supplier_id" required="1"/>
|
||||
<field name="supplier_email"/>
|
||||
<field name="supplier_phone"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='dep_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='technical_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='procurement_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='note']" position="replace"/>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_purchase_request_direct" model="ir.actions.act_window">
|
||||
<field name="name">Purchase less than twenty</field>
|
||||
<field name="res_model">purchase.request</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree'}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('purchase_request_less_twenty')})]"/>
|
||||
<field name="domain">[('purchase_type', '=', 'less_twenty')]</field>
|
||||
<field name="context">{'default_purchase_type': 'less_twenty'}</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="purchase_request_direct_menu" name="Direct Purchase Request"
|
||||
parent="purchase_requisition_custom.purchase_request_menu"
|
||||
action="action_purchase_request_direct"/>
|
||||
|
||||
|
||||
<!-- <record id="purchase_request_less_thirt" model="ir.actions.server">-->
|
||||
<!-- <field name="name">Purchase Request Less Thirty</field>-->
|
||||
<!-- <field name="model_id" ref="purchase_requisition_custom.model_purchase_request"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">-->
|
||||
<!-- action = model.purchase_less_than_thirty()-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,169 @@
|
|||
<odoo>
|
||||
<record id="purchase_request_less_thirty" model="ir.ui.view">
|
||||
<field name="name">purchase.request.less.thirty</field>
|
||||
<field name="model">purchase.request</field>
|
||||
<field name="inherit_id" ref="governmental_purchase.purchase_request_form"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='type_id']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='by_purchase']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_id']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='is_analytic']" position="attributes">
|
||||
<attribute name="attrs">{'readonly':[('state', '!=','draft')]}</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='state']" position="replace">
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="draft,dm,direct_manager,send_budget,wait_budget,budget_approve,waiting"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_id']" position="after">
|
||||
<field name="purchase_type" invisible="1"/>
|
||||
<field name="check_chief_executive" invisible="1"/>
|
||||
<field name="chief_executive_officer" invisible="1"/>
|
||||
<!-- <field name="remain_budget" invisible="0"/>-->
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='action_confirm']" position="replace">
|
||||
<button name="action_confirm" groups="purchase_requisition_custom.group_direct_manger" type="object"
|
||||
string="Submit" class="oe_highlight"
|
||||
attrs="{'invisible': ['|',('check_chief_executive','=',False),('state','!=', 'dm')]}"/>
|
||||
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='action_pc_confirm']" position="replace">
|
||||
<button name="action_pc_confirm"
|
||||
groups="governmental_purchase.executive_director_of_purchase_and_contract" type="object"
|
||||
string="Approve" states="budget_approve" class="oe_highlight"/>
|
||||
|
||||
<button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse"
|
||||
|
||||
states="budget_approve" type="action"
|
||||
groups="governmental_purchase.executive_director_of_purchase_and_contract"/>
|
||||
</xpath>
|
||||
<!-- <xpath expr="//button[@name='%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d']"-->
|
||||
<!-- position="replace">-->
|
||||
<!-- <button name="%(purchase_requisition_custom.purchase_request_cancel_wizard_action)d" string="Refuse"-->
|
||||
<!-- type="action" groups="purchase_requisition_custom.group_direct_manger"/>-->
|
||||
|
||||
<!-- </xpath>-->
|
||||
<xpath expr="//field[@name='line_ids']//field[@name='sum_total']" position="attributes">
|
||||
<attribute name="readonly">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='line_ids']//field[@name='sum_total']" position="after">
|
||||
<field name="remain" attrs="{'column_invisible': [('parent.state', '!=', 'dm')]}"/>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='base_info_dep_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='purchase_request_info']" position="after">
|
||||
<page string="Order Base info" name="base_info_order"
|
||||
>
|
||||
<group>
|
||||
<group string="Delivery Info" name="DeliveryInfo">
|
||||
<field name="tender_name" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="purpose_of_tender" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="other_details" invisible="1" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="is_delivered" required="1" widget="radio" options="{'horizontal': true}"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="delivery_type"
|
||||
attrs="{'invisible':[('is_delivered' , '!=' , 'yes')],'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
|
||||
</group>
|
||||
|
||||
<group name="Info">
|
||||
<field name="project_duration" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="project_start_date" required="1"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="work_service_imp" widget="radio"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="business_place" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="attachment_scope_project" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="quality_spec" widget="radio"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="quality_notes"
|
||||
attrs="{'invisible':[('quality_spec' , '!=' , 'yes')],'required':[('quality_spec' , '=' , 'yes')],'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="material_spec" widget="radio"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="material_notes"
|
||||
attrs="{'invisible':[('material_spec' , '!=' , 'yes')],'readonly':[('state' , '!=' , 'draft')],'required':[('material_spec' , '=' , 'yes')]}"/>
|
||||
<field name="special_condition" attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="Delivered sample address"
|
||||
attrs="{'invisible':['|',('delivery_type' , '!=' , 'manual'),('is_delivered' , '!=' , 'yes')]}">
|
||||
<group>
|
||||
<field name="delivery_building"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="delivery_floor"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="room"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
<field name="date_time"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}"/>
|
||||
</group>
|
||||
|
||||
|
||||
</group>
|
||||
</page>
|
||||
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='base_info_order']" position="after">
|
||||
<page string="Suggested Supplier" name="selected_supplier"
|
||||
attrs="{'readonly':[('state' , '!=' , 'draft')]}">
|
||||
<field name="selected_supplier_id">
|
||||
<tree editable="bottom">
|
||||
<field name="supplier_id" required="1"/>
|
||||
<field name="supplier_email"/>
|
||||
<field name="supplier_phone"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='dep_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='technical_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='procurement_use']" position="replace"/>
|
||||
<xpath expr="//page[@name='note']" position="replace"/>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_purchase_request_less_thirty" model="ir.actions.act_window">
|
||||
<field name="name">Purchase less than thirty</field>
|
||||
<field name="res_model">purchase.request</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree'}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('purchase_request_less_thirty')})]"/>
|
||||
<field name="domain">[('purchase_type', '=', 'less_thirty')]</field>
|
||||
<field name="context">{'default_purchase_type': 'less_thirty'}</field>
|
||||
</record>
|
||||
<!-- add seq -->
|
||||
<record model="ir.sequence" id="purchase_seq30_sequence">
|
||||
<field name="name">purchase request 30 Sequence</field>
|
||||
<field name="code">purchase.seq30.sequence</field>
|
||||
<field name="prefix">PR30 %(year)s/%(month)s/</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
<field name="number_increment" eval="1"/>
|
||||
</record>
|
||||
<record model="ir.sequence" id="purchase_com_sequence">
|
||||
<field name="name">purchase com Sequence</field>
|
||||
<field name="code">purchase.com.sequence</field>
|
||||
<field name="prefix">PRCOMP %(year)s/%(month)s/</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
<field name="number_increment" eval="1"/>
|
||||
</record>
|
||||
<!-- end -->
|
||||
|
||||
<menuitem id="purchase_request_less_thirty_menu" name="Purchase Request Less Thirty"
|
||||
parent="purchase_requisition_custom.purchase_request_menu"
|
||||
action="action_purchase_request_less_thirty"/>
|
||||
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<odoo>
|
||||
|
||||
<!-- <record model="ir.ui.view" id="view_res_company_form">-->
|
||||
<!-- <field name="name">view.res.company.form</field>-->
|
||||
<!-- <field name="model">res.company</field>-->
|
||||
<!-- <field name="inherit_id" ref="base.view_company_form"/>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <xpath expr="//page[@name='general_info']" position="after">-->
|
||||
<!-- <page name="attachment" string="Application brochure">-->
|
||||
<!-- <group>-->
|
||||
<!-- <field name="attachment_scop"/>-->
|
||||
<!-- </group>-->
|
||||
<!-- </page>-->
|
||||
<!-- </xpath>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
<odoo>
|
||||
<record id="res_config_settings_view_form_purchase" model="ir.ui.view">
|
||||
<field name="name">res.config.settings.view.form.purchase</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="inherit_id" ref="purchase.res_config_settings_view_form_purchase"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@name='invoicing_settings_container']" position="after">
|
||||
<h2>Proposed Period Receiving Offer</h2>
|
||||
<div class="row mt16 o_settings_container" name="proposed_period_receiving_offer">
|
||||
<div class="col-12 col-lg-6 o_setting_box">
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="day"/>
|
||||
<field name="day"/>
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="month"/>
|
||||
<field name="month"/>
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="year"/>
|
||||
<field name="year"/>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="o_setting_right_pane">
|
||||
<label for="attachment_scop"/>
|
||||
<field name="attachment_scop"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<odoo>
|
||||
<record id="res_partner_view_inherit" model="ir.ui.view">
|
||||
<field name="name">res.partner.view.inherit</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='vat']" position="attributes">
|
||||
<attribute name="attrs">{'required':[('company_type', '=','company')]}
|
||||
</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='commercial_register']" position="attributes">
|
||||
<attribute name="attrs">{'required':[('company_type', '=','company')]}
|
||||
</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='id_number']" position="attributes">
|
||||
<attribute name="attrs">{'required':[('company_type', '=','person')]}
|
||||
</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import controllers
|
||||
from . import models
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': "Odex Online Tendering",
|
||||
|
||||
'summary': """
|
||||
Online tendering For odex""",
|
||||
|
||||
'description': """
|
||||
This Module is Designed to allow online tendering work smothly with other odex purchase modules
|
||||
""",
|
||||
|
||||
'author': "Expert Company Ltd",
|
||||
'website': "http://www.exp-sa.com",
|
||||
|
||||
'category': 'Odex25-Purchase/Odex25-Purchase',
|
||||
'version': '0.1',
|
||||
|
||||
# any module necessary for this one to work correctly
|
||||
'depends': ['online_tendering' , 'purchase_requisition_custom'],
|
||||
|
||||
'data': [
|
||||
'views/views.xml',
|
||||
'views/templates.xml',
|
||||
],
|
||||
# # only loaded in demonstration mode
|
||||
# 'demo': [
|
||||
# 'demo/demo.xml',
|
||||
# ],
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import controllers
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import http
|
||||
|
||||
# class OdexOnlineTendering(http.Controller):
|
||||
# @http.route('/odex_online_tendering/odex_online_tendering/', auth='public')
|
||||
# def index(self, **kw):
|
||||
# return "Hello, world"
|
||||
|
||||
# @http.route('/odex_online_tendering/odex_online_tendering/objects/', auth='public')
|
||||
# def list(self, **kw):
|
||||
# return http.request.render('odex_online_tendering.listing', {
|
||||
# 'root': '/odex_online_tendering/odex_online_tendering',
|
||||
# 'objects': http.request.env['odex_online_tendering.odex_online_tendering'].search([]),
|
||||
# })
|
||||
|
||||
# @http.route('/odex_online_tendering/odex_online_tendering/objects/<model("odex_online_tendering.odex_online_tendering"):obj>/', auth='public')
|
||||
# def object(self, obj, **kw):
|
||||
# return http.request.render('odex_online_tendering.object', {
|
||||
# 'object': obj
|
||||
# })
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<odoo>
|
||||
<data>
|
||||
<!-- -->
|
||||
<!-- <record id="object0" model="odex_online_tendering.odex_online_tendering"> -->
|
||||
<!-- <field name="name">Object 0</field> -->
|
||||
<!-- <field name="value">0</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
<!-- <record id="object1" model="odex_online_tendering.odex_online_tendering"> -->
|
||||
<!-- <field name="name">Object 1</field> -->
|
||||
<!-- <field name="value">10</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
<!-- <record id="object2" model="odex_online_tendering.odex_online_tendering"> -->
|
||||
<!-- <field name="name">Object 2</field> -->
|
||||
<!-- <field name="value">20</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
<!-- <record id="object3" model="odex_online_tendering.odex_online_tendering"> -->
|
||||
<!-- <field name="name">Object 3</field> -->
|
||||
<!-- <field name="value">30</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
<!-- <record id="object4" model="odex_online_tendering.odex_online_tendering"> -->
|
||||
<!-- <field name="name">Object 4</field> -->
|
||||
<!-- <field name="value">40</field> -->
|
||||
<!-- </record> -->
|
||||
<!-- -->
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue