版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Odoo:Odoo郵件與通知系統(tǒng)技術教程1Odoo郵件系統(tǒng)概述1.1Odoo郵件模塊介紹Odoo郵件模塊是Odoo框架中一個強大的工具,用于自動化和管理企業(yè)內(nèi)部及外部的郵件通信。它不僅支持發(fā)送和接收電子郵件,還提供了郵件模板、郵件跟蹤、郵件線程等功能,使得在Odoo應用中集成郵件通信變得簡單而高效。1.1.1核心功能郵件線程:允許在任何模型上添加評論和消息,所有通信都與特定記錄相關聯(lián)。郵件模板:創(chuàng)建可重復使用的郵件模板,用于自動發(fā)送帶有動態(tài)內(nèi)容的郵件。郵件跟蹤:記錄所有郵件活動,包括發(fā)送、接收和打開郵件的狀態(tài)。自動化郵件:基于特定事件或條件自動觸發(fā)郵件發(fā)送。1.2郵件發(fā)送機制Odoo郵件模塊使用SMTP(SimpleMailTransferProtocol)服務器來發(fā)送郵件。在Odoo中配置SMTP服務器后,可以使用mail.mail模型來創(chuàng)建和發(fā)送郵件。郵件發(fā)送可以通過編程方式觸發(fā),也可以通過用戶界面手動發(fā)送。1.2.1示例代碼:發(fā)送郵件#導入必要的模塊
fromodooimportmodels,fields,api
classSendEmail(models.Model):
_name='send.email'
_description='SendEmailModel'
#定義發(fā)送郵件的方法
defsend_email(self):
#創(chuàng)建郵件記錄
mail=self.env['mail.mail'].create({
'subject':'Odoo郵件測試',
'body_html':'<p>這是一封來自Odoo的測試郵件。</p>',
'email_from':'sender@',
'email_to':'receiver@',
})
#發(fā)送郵件
mail.send()在上述代碼中,我們首先創(chuàng)建了一個mail.mail記錄,定義了郵件的主題、HTML格式的正文、發(fā)件人和收件人。然后,調(diào)用send方法來發(fā)送郵件。1.3郵件模板創(chuàng)建與使用Odoo郵件模板允許用戶創(chuàng)建包含動態(tài)字段的郵件,這些字段在發(fā)送郵件時會被替換為實際值。模板可以與特定的模型相關聯(lián),以便在創(chuàng)建或更新記錄時自動發(fā)送郵件。1.3.1創(chuàng)建郵件模板在Odoo的用戶界面中,可以通過以下步驟創(chuàng)建郵件模板:進入“設置”菜單。選擇“技術”下的“郵件”選項。點擊“郵件模板”并創(chuàng)建一個新的模板。配置模板的名稱、模型、主題、正文等。1.3.2示例代碼:使用郵件模板#導入必要的模塊
fromodooimportmodels,fields,api
classEmailTemplateUsage(models.Model):
_name='email.template.usage'
_description='EmailTemplateUsageModel'
#定義使用郵件模板的方法
defsend_template_email(self):
#獲取模板
template=self.env.ref('module_name.email_template_name')
#發(fā)送模板郵件
template.send_mail(self.id,force_send=True)在代碼中,我們使用env.ref來獲取預先定義的郵件模板。然后,調(diào)用send_mail方法,傳入當前記錄的ID和force_send參數(shù),以確保郵件立即發(fā)送。1.3.3動態(tài)字段替換郵件模板中的動態(tài)字段以{{field_name}}的形式表示。例如,如果模板中包含{{}},在發(fā)送郵件時,Odoo會將字段的值替換到郵件中。1.3.4示例:動態(tài)字段在郵件模板中的使用假設我們有一個客戶模型res.partner,并且我們想要發(fā)送一封包含客戶名稱的歡迎郵件。郵件模板可以這樣設置:<p>親愛的{{}},</p>
<p>歡迎加入我們的社區(qū)!</p>當使用此模板發(fā)送郵件時,Odoo會自動將{{}}替換為實際的客戶名稱。通過以上介紹和示例,我們可以看到Odoo郵件模塊的靈活性和強大功能,它極大地簡化了企業(yè)通信的管理,提高了工作效率。2配置Odoo郵件服務器2.1設置郵件服務器參數(shù)在Odoo中,配置郵件服務器是實現(xiàn)自動化郵件發(fā)送和接收的基礎。以下是配置郵件服務器參數(shù)的步驟:登錄Odoo管理員賬戶:首先,確保你使用的是Odoo的管理員賬戶登錄,因為郵件服務器的配置需要管理員權限。進入設置菜單:在Odoo的主菜單中,找到并點擊“設置”(Settings)。選擇郵件服務器:在設置菜單中,滾動找到“郵件”(Email)部分,點擊“郵件服務器”(EmailServers)。添加郵件服務器:點擊“創(chuàng)建”(Create)按鈕,添加一個新的郵件服務器。在彈出的表單中,你需要填寫以下信息:服務器類型:選擇“發(fā)送”(Send)或“接收”(Receive)。服務器名稱:給服務器起一個描述性的名字。服務器主機:輸入郵件服務器的主機名或IP地址。服務器端口:輸入郵件服務器的端口號。使用SSL:勾選此選項如果服務器使用SSL加密。使用TLS:勾選此選項如果服務器使用TLS加密。用戶名和密碼:輸入用于連接郵件服務器的用戶名和密碼。保存設置:填寫完所有必要信息后,點擊“保存”(Save)按鈕。2.1.1示例代碼:設置郵件服務器參數(shù)#導入必要的模塊
fromodooimportmodels,fields,api
classMailServerConfig(models.TransientModel):
_inherit='mail.server'
#重寫create方法以添加自定義郵件服務器
@api.model
defcreate(self,vals):
#創(chuàng)建郵件服務器
server=super(MailServerConfig,self).create(vals)
#設置服務器參數(shù)
server.write({
'smtp_host':'',
'smtp_port':587,
'smtp_user':'user@',
'smtp_pass':'password',
'smtp_encryption':'starttls',
'smtp_authentication':True,
})
returnserver2.2測試郵件服務器連接配置完郵件服務器后,測試連接以確保一切正常是至關重要的。Odoo提供了一個內(nèi)置的測試功能來檢查郵件服務器的連接狀態(tài)。在郵件服務器列表中:在“郵件服務器”(EmailServers)的列表視圖中,找到你剛剛創(chuàng)建的郵件服務器。點擊測試按鈕:在郵件服務器的行中,你會看到一個“測試”(Test)按鈕。點擊它,Odoo將嘗試連接到郵件服務器并發(fā)送一個測試郵件。檢查測試郵件:如果郵件服務器配置正確,你將收到一封來自Odoo的測試郵件。檢查你的收件箱以確認郵件是否成功送達。2.2.1示例代碼:測試郵件服務器連接#導入必要的模塊
fromodooimportmodels,fields,api
classTestMailServer(models.TransientModel):
_name='test.mail.server'
#定義測試郵件發(fā)送的方法
deftest_mail_server(self):
#獲取第一個郵件服務器
mail_server=self.env['ir.mail_server'].search([],limit=1)
#使用郵件服務器發(fā)送測試郵件
mail_server.test_smtp()2.3配置郵件安全郵件安全是配置郵件服務器時不可忽視的一部分。Odoo允許你設置郵件安全選項,以確保郵件的發(fā)送和接收過程中的數(shù)據(jù)安全。選擇加密類型:在郵件服務器的配置中,你可以選擇使用SSL或TLS加密。SSL(SecureSocketsLayer)和TLS(TransportLayerSecurity)都是用于加密互聯(lián)網(wǎng)通信的協(xié)議。設置身份驗證:確保勾選“使用身份驗證”(UseAuthentication)選項,并輸入正確的用戶名和密碼。這將防止未經(jīng)授權的訪問。檢查郵件服務器的安全設置:在配置郵件服務器時,檢查服務器的安全設置,確保它們符合你的安全策略。2.3.1示例代碼:配置郵件安全#導入必要的模塊
fromodooimportmodels,fields,api
classMailServerSecurity(models.TransientModel):
_inherit='mail.server'
#重寫write方法以更新郵件服務器的安全設置
defwrite(self,vals):
#更新郵件服務器的安全設置
super(MailServerSecurity,self).write({
'smtp_encryption':'ssl',#設置加密類型為SSL
'smtp_authentication':True,#啟用身份驗證
})
returnTrue通過以上步驟,你可以有效地配置Odoo的郵件服務器,確保郵件的發(fā)送和接收既高效又安全。3使用Odoo發(fā)送郵件3.1創(chuàng)建郵件活動在Odoo中,創(chuàng)建郵件活動是通過mail.mail模型來實現(xiàn)的。首先,我們需要定義郵件模板,然后基于模板創(chuàng)建郵件活動。下面是一個創(chuàng)建郵件模板和郵件活動的示例代碼:#創(chuàng)建郵件模板
mail_template=env['mail.template'].create({
'name':'客戶歡迎郵件',
'model_id':env['ir.model']._get('res.partner').id,
'subject':'歡迎加入我們的社區(qū)!',
'body_html':'<p>尊敬的{{}},歡迎您加入我們的社區(qū)!</p>',
})
#基于模板創(chuàng)建郵件活動
partner=env['res.partner'].search([],limit=1)
mail_activity=env['mail.mail'].create({
'email_from':'admin@',
'author_id':partner.id,
'email_to':partner.email,
'mail_template_id':mail_template.id,
})
#發(fā)送郵件
mail_activity.send()3.1.1解釋mail.template模型用于創(chuàng)建郵件模板,模板可以包含動態(tài)字段,如{{}},它將在發(fā)送郵件時被替換為收件人的名字。mail.mail模型用于創(chuàng)建具體的郵件活動,通過mail_template_id字段關聯(lián)郵件模板。send()方法用于發(fā)送郵件活動。3.2自動化郵件發(fā)送Odoo支持自動化郵件發(fā)送,這通常通過mail.activity模型和mail.activity.type模型來實現(xiàn)。下面是一個設置自動化郵件發(fā)送的示例:#創(chuàng)建活動類型
activity_type=env['mail.activity.type'].create({
'name':'跟進',
'res_model_id':env['ir.model']._get('res.partner').id,
})
#創(chuàng)建自動化活動
activity=env['mail.activity'].create({
'summary':'新客戶跟進',
'activity_type_id':activity_type.id,
'res_id':partner.id,
'res_model_id':env['ir.model']._get('res.partner').id,
'date_deadline':fields.Date.today()+timedelta(days=7),
'note':'請在一周內(nèi)跟進新客戶。',
})
#當活動狀態(tài)改變時,觸發(fā)郵件發(fā)送
activity.action_feedback(feedback='已處理')3.2.1解釋mail.activity.type模型用于定義活動類型,如“跟進”。mail.activity模型用于創(chuàng)建自動化活動,活動可以設置截止日期和備注。action_feedback()方法用于標記活動為已完成,同時可以觸發(fā)郵件通知。3.3郵件跟蹤與分析Odoo提供了郵件跟蹤和分析功能,這可以通過mail.tracking.value模型和mail.statistics模型來實現(xiàn)。下面是一個示例,展示如何在郵件發(fā)送后跟蹤郵件狀態(tài):#發(fā)送郵件并獲取郵件統(tǒng)計信息
mail_activity.send()
mail_stats=env['mail.statistics'].search([('mail_mail_id','=',mail_activity.id)])
#打印郵件統(tǒng)計信息
forstatinmail_stats:
print(f"郵件狀態(tài):{stat.state}")
print(f"打開次數(shù):{stat.opened}")
print(f"點擊次數(shù):{stat.clicked}")3.3.1解釋mail_activity.send()方法發(fā)送郵件后,會生成郵件統(tǒng)計信息。mail.statistics模型用于存儲郵件的統(tǒng)計信息,如郵件狀態(tài)、打開次數(shù)和點擊次數(shù)。通過查詢mail.statistics模型,可以獲取并分析郵件的跟蹤數(shù)據(jù)。通過以上示例,我們可以看到Odoo郵件與通知系統(tǒng)不僅支持創(chuàng)建和發(fā)送郵件,還提供了自動化郵件發(fā)送和郵件跟蹤分析的高級功能。這些功能的實現(xiàn)依賴于Odoo的模型和方法,通過Python代碼可以靈活地控制和擴展郵件系統(tǒng)的功能。4Odoo通知系統(tǒng)詳解4.1通知類型與用途在Odoo中,通知系統(tǒng)是用于在系統(tǒng)內(nèi)部或通過電子郵件向用戶發(fā)送消息的關鍵組件。它支持多種通知類型,包括但不限于:即時通知:當用戶在系統(tǒng)中執(zhí)行特定操作時立即發(fā)送的通知。電子郵件通知:通過電子郵件發(fā)送給用戶的通知,適用于系統(tǒng)外的通信。計劃通知:根據(jù)預定義的時間表發(fā)送的通知,如定期報告或提醒。4.1.1即時通知示例即時通知通常用于提醒用戶系統(tǒng)內(nèi)的活動,例如,當一個新任務被分配給用戶時。下面是一個創(chuàng)建即時通知的代碼示例:fromodooimportmodels,fields,api
classTask(models.Model):
_name='project.task'
_inherit=['mail.thread','mail.activity.mixin']
name=fields.Char('TaskName',required=True)
user_id=fields.Many2one('res.users',string='Assignedto',track_visibility='onchange')
@api.model
defcreate(self,vals):
task=super(Task,self).create(vals)
iftask.user_id:
task.activity_schedule('mail.mail_activity_data_todo',user_id=task.user_id.id)
returntask在這個例子中,當一個新任務被創(chuàng)建并分配給一個用戶時,activity_schedule方法被調(diào)用來創(chuàng)建一個待辦活動,這將觸發(fā)一個即時通知給被分配的用戶。4.1.2電子郵件通知示例電子郵件通知用于向系統(tǒng)外部的用戶發(fā)送消息,例如,當客戶下單后,向客戶發(fā)送確認郵件。下面是一個發(fā)送電子郵件通知的代碼示例:fromodooimportmodels,fields,api
classSaleOrder(models.Model):
_inherit='sale.order'
@api.multi
defaction_confirm(self):
result=super(SaleOrder,self).action_confirm()
fororderinself:
template=self.env.ref('module_name.email_template_name')
template.send_mail(order.id,force_send=True)
returnresult在這個例子中,當銷售訂單被確認時,send_mail方法被調(diào)用來發(fā)送一個預定義的電子郵件模板給訂單的客戶。4.2創(chuàng)建自定義通知創(chuàng)建自定義通知涉及定義通知的觸發(fā)條件、內(nèi)容和接收者。Odoo提供了靈活的API來實現(xiàn)這一功能。4.2.1定義自定義通知首先,需要創(chuàng)建一個模型來承載通知的邏輯。例如,創(chuàng)建一個模型來發(fā)送項目更新通知:fromodooimportmodels,fields,api
classProjectUpdateNotification(models.Model):
_name='project.update.notification'
_inherit=['mail.thread']
project_id=fields.Many2one('ject',string='Project',required=True)
message=fields.Text('Message',required=True)
@api.model
defcreate(self,vals):
notification=super(ProjectUpdateNotification,self).create(vals)
followers=ject_id.message_follower_ids
forfollowerinfollowers:
follower.notify_info(body=notification.message,title='ProjectUpdate')
returnnotification在這個例子中,當ProjectUpdateNotification被創(chuàng)建時,所有項目關注者都將收到一個包含項目更新信息的通知。4.3通知規(guī)則與權限Odoo的通知系統(tǒng)允許管理員定義復雜的規(guī)則來控制何時、何地以及向誰發(fā)送通知。此外,權限管理確保只有授權用戶才能接收或觸發(fā)特定類型的通知。4.3.1定義通知規(guī)則通知規(guī)則可以通過Odoo的mail.activity.type和mail.activity模型來定義。例如,創(chuàng)建一個規(guī)則來自動為新創(chuàng)建的銷售訂單安排一個銷售確認活動:fromodooimportmodels,fields,api
classSaleOrder(models.Model):
_inherit='sale.order'
@api.model
defcreate(self,vals):
order=super(SaleOrder,self).create(vals)
activity_type=self.env.ref('module_name.activity_type_sale_confirmation')
order.activity_schedule(activity_type.id,user_id=order.user_id.id)
returnorder在這個例子中,當銷售訂單被創(chuàng)建時,一個銷售確認活動被自動安排給銷售代表。4.3.2管理權限通知的權限管理是通過Odoo的ir.model.access和res.groups模型實現(xiàn)的。例如,限制只有銷售經(jīng)理才能接收銷售確認通知:fromodooimportmodels,fields,api
classSaleOrder(models.Model):
_inherit='sale.order'
@api.model
defcreate(self,vals):
order=super(SaleOrder,self).create(vals)
activity_type=self.env.ref('module_name.activity_type_sale_confirmation')
sales_manager_group=self.env.ref('module_name.group_sales_manager')
sales_manager=self.env['res.users'].search([('groups_id','in',sales_manager_group.id)])
order.activity_schedule(activity_type.id,user_id=sales_manager.id)
returnorder在這個例子中,只有屬于銷售經(jīng)理組的用戶才能接收銷售確認活動的通知。通過上述示例,我們可以看到Odoo的通知系統(tǒng)不僅強大而且高度可定制,能夠滿足各種業(yè)務場景下的通信需求。5集成郵件與通知功能5.1在模型中添加郵件字段在Odoo中,為了使模型能夠支持郵件功能,我們需要在模型定義中添加特定的字段。這些字段通常包括email字段,用于存儲聯(lián)系人的電子郵件地址,以及message_follower_ids字段,用于跟蹤關注該記錄的用戶。此外,message_ids字段用于存儲與該記錄相關的所有郵件消息。5.1.1示例代碼fromodooimportmodels,fields
classMyModel(models.Model):
_name='my.model'
_inherit=['mail.thread','mail.activity.mixin']
_description='MyModelDescription'
name=fields.Char('Name',required=True)
email=fields.Char('Email',required=True)
message_follower_ids=fields.One2many('mail.followers','res_id',string='Followers',domain=[('res_model','=',_name)])
message_ids=fields.One2many('mail.message','model',string='Messages',domain=[('res_id','=','id')])在上述代碼中,我們定義了一個名為MyModel的模型,它繼承了mail.thread和mail.activity.mixin。這使得MyModel能夠接收郵件和通知,并且可以有關注者和郵件消息。5.2觸發(fā)郵件與通知的事件Odoo允許我們在特定事件發(fā)生時自動發(fā)送郵件或通知。這些事件可以是創(chuàng)建新記錄、更新記錄、刪除記錄等。我們可以通過在模型中定義_track屬性來指定哪些字段的更改應該觸發(fā)郵件通知。5.2.1示例代碼classMyModel(models.Model):
_name='my.model'
_inherit=['mail.thread','mail.activity.mixin']
_description='MyModelDescription'
name=fields.Char('Name',required=True,tracking=True)
email=fields.Char('Email',required=True,tracking=True)
_sql_constraints=[
('email_unique','unique(email)','Theemailmustbeunique!'),
]
_track={
'name':{
'my_module.mt_name_changed':lambdaself,cr,uid,obj,ctx=None:True,
},
'email':{
'my_module.mt_email_changed':lambdaself,cr,uid,obj,ctx=None:True,
},
}在本例中,我們定義了name和email字段的更改應該觸發(fā)郵件通知。_track屬性中的mt_name_changed和mt_email_changed是郵件模板的名稱,它們將在字段更改時被觸發(fā)。5.3使用API進行郵件與通知的自定義Odoo提供了強大的API,允許我們自定義郵件和通知的發(fā)送方式。我們可以使用mail.mail和mail.message模型來創(chuàng)建和發(fā)送郵件,以及使用mail.activity模型來創(chuàng)建活動通知。5.3.1示例代碼fromodooimportmodels,fields,api
classMyModel(models.Model):
_name='my.model'
_inherit=['mail.thread','mail.activity.mixin']
_description='MyModelDescription'
name=fields.Char('Name',required=True)
email=fields.Char('Email',required=True)
defsend_custom_email(self):
template_id=self.env.ref('my_module.email_template_id').id
self.env['mail.template'].browse(template_id).send_mail(self.id,force_send=True)
defcreate_custom_notification(self):
activity_type_id=self.env.ref('my_module.activity_type_id').id
summary='CustomNotification'
note='Thisisacustomnotificationfortherecord.'
self.env['mail.activity'].create({
'res_id':self.id,
'res_model_id':self.env['ir.model']._get('my.model').id,
'user_id':self.env.user.id,
'activity_type_id':activity_type_id,
'summary':summary,
'note':note,
})在上述代碼中,我們定義了兩個方法:send_custom_email和create_custom_notification。send_custom_email方法使用預定義的郵件模板發(fā)送郵件,而create_custom_notification方法創(chuàng)建一個自定義的活動通知。5.3.2郵件模板示例<!--email_template_id.xml-->
<templateid="email_template_id"name="CustomEmailTemplate"model="my.model">
<tt-call="mail.mail_notification_light">
<tt-set="title"t-value="Hello,{{}}!"/>
<tt-set="body">
<p>Dear{{}},</p>
<p>Youremailhasbeenupdatedto{{object.email}}.</p>
</t>
</t>
</template>在本例中,我們定義了一個郵件模板,它將發(fā)送給MyModel的實例,當調(diào)用send_custom_email方法時。模板使用了{{}}和{{object.email}}來動態(tài)填充郵件內(nèi)容。5.3.3活動類型示例<!--activity_type_id.xml-->
<recordid="activity_type_id"model="mail.activity.type">
<fieldname="name">CustomNotification</field>
<fieldname="summary">CustomSummary</field>
<fieldname="res_model">my.model</field>
</record>在本例中,我們定義了一個活動類型,它將用于創(chuàng)建自定義的活動通知。當調(diào)用create_custom_notification方法時,將使用這個活動類型來創(chuàng)建通知。通過這些示例,我們可以看到如何在Odoo中集成郵件與通知功能,以及如何自定義這些功能以適應特定的業(yè)務需求。使用Odoo的郵件和通知系統(tǒng),可以有效地與用戶和合作伙伴進行溝通,提高業(yè)務流程的透明度和效率。6郵件與通知的高級應用6.1多語言郵件模板在Odoo中,多語言郵件模板允許您根據(jù)用戶的語言偏好發(fā)送不同語言版本的郵件。這通過在模板中使用qweb標簽和t-屬性來實現(xiàn),其中t-esc用于輸出字段,t-if用于條件渲染,t-att-lang用于設置語言。6.1.1示例代碼#定義多語言郵件模板
fromodooimportmodels
classMailTemplate(models.Model):
_inherit='mail.template'
def_render_template(self,template_xmlid,model,res_ids,post_process=False):
template=self.env.ref(template_xmlid)
#使用多語言環(huán)境渲染模板
lang=self.env.context.get('lang')
iflang:
self.env.context=self.env.context.copy()
self.env.context['lang']=lang
returnsuper(MailTemplate,self)._render_template(template,model,res_ids,post_process=post_process)6.1.2示例模板<odoo>
<templateid="mail_template_multi_lang"name="多語言郵件模板"model="res.partner">
<tt-call="mail.mail_notification_paynow">
<tt-set="lang"t-value="object.lang"/>
<tt-esc=""/>
<tt-if="lang=='zh_CN'">
<p>尊敬的客戶,您的訂單已確認。</p>
</t>
<tt-if="lang=='en_US'">
<p>Dearcustomer,yourorderhasbeen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 委托轉(zhuǎn)讓公司協(xié)議
- 商超布展合作協(xié)議
- 《雅思閱讀技巧》課件
- 2025版五星酒店廚師長職位競聘與特聘合同書3篇
- 2025年全球及中國商用蘑菇殺菌設備行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球便攜式ALD系統(tǒng)行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國氧化鈮蒸發(fā)材料行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國磁力鎖支架行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國手語口譯服務行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國非接觸式26G高頻雷達物位計行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 化學-河南省TOP二十名校2025屆高三調(diào)研考試(三)試題和答案
- 智慧農(nóng)貿(mào)批發(fā)市場平臺規(guī)劃建設方案
- 小學數(shù)學分數(shù)四則混合運算300題帶答案
- 林下野雞養(yǎng)殖建設項目可行性研究報告
- 2023年水利部黃河水利委員會招聘考試真題
- Python編程基礎(項目式微課版)教案22
- 01J925-1壓型鋼板、夾芯板屋面及墻體建筑構造
- 欠電費合同范本
- 2024年新高考地區(qū)數(shù)學選擇題填空壓軸題匯編十八含解析
- 大型商場招商招租方案(2篇)
- 2022年袋鼠數(shù)學競賽真題一二年級組含答案
評論
0/150
提交評論