work on flow of sales and rental

This commit is contained in:
sonal arora
2020-09-06 17:56:23 +05:30
parent 6c07dad17d
commit 447e08ac75
8 changed files with 70 additions and 33 deletions

View File

@@ -11,7 +11,7 @@
<field name="auto_delete" eval="True"/> <field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[ <field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 14px; color: rgb(34, 34, 34); background-color: #FFF;"> <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 10px; color: rgb(34, 34, 34); background-color: #FFF;">
<p>Dear Purchase Coordinator,</p> <br/> <p>Dear Purchase Coordinator,</p> <br/>
<p>Please Approve Purchase Agreements bellow link </b> </p> <p>Please Approve Purchase Agreements bellow link </b> </p>
@@ -20,7 +20,7 @@
% set setup_url = object.make_url() % set setup_url = object.make_url()
<br/><br/> <br/><br/>
<a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 16px;" class="o_default_snippet_text">Approve Purchase Agreements</a> <a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 11px;" class="o_default_snippet_text">Approve Purchase Agreements</a>
<br/><br/> <br/><br/>
</div> </div>
@@ -35,7 +35,7 @@
<field name="auto_delete" eval="True"/> <field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[ <field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 14px; color: rgb(34, 34, 34); background-color: #FFF;"> <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 10px; color: rgb(34, 34, 34); background-color: #FFF;">
<p>Dear Managment,</p><br/> <p>Dear Managment,</p><br/>
<p>Please Approve Purchase Agreements bellow link </b> </p> <p>Please Approve Purchase Agreements bellow link </b> </p>
@@ -45,7 +45,7 @@
% set setup_url = object.make_url() % set setup_url = object.make_url()
<br/><br/> <br/><br/>
<a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 16px;" class="o_default_snippet_text">Approve Purchase Agreements</a> <a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 11px;" class="o_default_snippet_text">Approve Purchase Agreements</a>
<br/><br/> <br/><br/>
</div> </div>

View File

@@ -11,14 +11,14 @@
<field name="auto_delete" eval="True"/> <field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[ <field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 14px; color: rgb(34, 34, 34); background-color: #FFF;"> <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 10px; color: rgb(34, 34, 34); background-color: #FFF;">
<p>Dear Coordinator,</p> <br/> <p>Dear Coordinator,</p> <br/>
<p>Please Approve Purchase Request bellow link </b> </p> <p>Please Approve Purchase Request bellow link </b> </p>
% set setup_url = object.make_url() % set setup_url = object.make_url()
<br/><br/> <br/><br/>
<a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 16px;" class="o_default_snippet_text">Approve Purchase Request</a> <a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 11px;" class="o_default_snippet_text">Approve Purchase Request</a>
<br/><br/> <br/><br/>
</div> </div>
@@ -33,14 +33,14 @@
<field name="auto_delete" eval="True"/> <field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[ <field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 14px; color: rgb(34, 34, 34); background-color: #FFF;"> <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 10px; color: rgb(34, 34, 34); background-color: #FFF;">
<p>Dear Manager,</p> <br/> <p>Dear Manager,</p> <br/>
<p>Please Confirm Purchase Request bellow link </b> </p> <p>Please Confirm Purchase Request bellow link </b> </p>
% set setup_url = object.make_url() % set setup_url = object.make_url()
<br/><br/> <br/><br/>
<a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 16px;" class="o_default_snippet_text">Approve Purchase Request</a> <a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 11px;" class="o_default_snippet_text">Approve Purchase Request</a>
<br/><br/> <br/><br/>
</div> </div>

View File

@@ -11,14 +11,14 @@
<field name="auto_delete" eval="True"/> <field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[ <field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 14px; color: rgb(34, 34, 34); background-color: #FFF;"> <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 10px; color: rgb(34, 34, 34); background-color: #FFF;">
<p>Dear Sale Management ,</p> <br/> <p>Dear Sale Management ,</p> <br/>
<p>Please Approve RFQ Request bellow link </b> </p> <p>Please Approve RFQ Request bellow link </b> </p>
% set setup_url = object.make_url() % set setup_url = object.make_url()
<br/><br/> <br/><br/>
<a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 16px;" class="o_default_snippet_text">Approve Sale Order Request</a> <a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 11px;" class="o_default_snippet_text">Approve Sale Order Request</a>
<br/><br/> <br/><br/>
</div> </div>
@@ -32,13 +32,13 @@
<field name="auto_delete" eval="True"/> <field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[ <field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 14px; color: rgb(34, 34, 34); background-color: #FFF;"> <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 10px; color: rgb(34, 34, 34); background-color: #FFF;">
<p>Dear ${(object.user_id.name)} ,</p> <br/> <p>Dear ${(object.user_id.name)} ,</p> <br/>
<p>Please Approve RFQ Request bellow link </b> </p> <p>Please Approve RFQ Request bellow link </b> </p>
% set setup_url = object.make_url() % set setup_url = object.make_url()
<br/><br/> <br/><br/>
<a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 16px;" class="o_default_snippet_text">Approve Sale Order Request</a> <a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 11px;" class="o_default_snippet_text">Approve Sale Order Request</a>
<br/><br/> <br/><br/>
</div> </div>
@@ -53,13 +53,13 @@
<field name="auto_delete" eval="True"/> <field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[ <field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 14px; color: rgb(34, 34, 34); background-color: #FFF;"> <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 10px; color: rgb(34, 34, 34); background-color: #FFF;">
<p>Dear Logistic,</p> <br/> <p>Dear Logistic,</p> <br/>
<p>Please Approve Sale Order bellow link </b> </p> <p>Please Approve Sale Order bellow link </b> </p>
% set setup_url = object.make_url() % set setup_url = object.make_url()
<br/><br/> <br/><br/>
<a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 16px;" class="o_default_snippet_text">Approve Sale Order Request</a> <a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 11px;" class="o_default_snippet_text">Approve Sale Order Request</a>
<br/><br/> <br/><br/>
</div> </div>
@@ -73,13 +73,13 @@
<field name="auto_delete" eval="True"/> <field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[ <field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 14px; color: rgb(34, 34, 34); background-color: #FFF;"> <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 10px; color: rgb(34, 34, 34); background-color: #FFF;">
<p>Dear Credit Controller,</p> <br/> <p>Dear Credit Controller,</p> <br/>
<p>Please Approve Sale Order bellow link </b> </p> <p>Please Approve Sale Order bellow link </b> </p>
% set setup_url = object.make_url() % set setup_url = object.make_url()
<br/><br/> <br/><br/>
<a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 16px;" class="o_default_snippet_text">Approve Sale Order Request</a> <a href="${setup_url}" style="background-color: #1abc9c;padding: 20px;text-decoration: none;color: #fff;border-radius: 5px;font-size: 11px;" class="o_default_snippet_text">Approve Sale Order Request</a>
<br/><br/> <br/><br/>
</div> </div>

View File

@@ -20,10 +20,14 @@ PURCHASE_REQUISITION_STATES = [
class purchase_requisition(models.Model): class purchase_requisition(models.Model):
_inherit = "purchase.requisition" _inherit = "purchase.requisition"
def _check_store_keeper(self): # def _check_store_keeper(self):
has_vle_group = self.env.user.has_group( # print('store_keeper_group++++++++++++++++++++++')
'csc_administrator.group_vle_level') # store_keeper_group = self.user_has_groups('purchase.group_purchase_user')
self.state_blanket_order = self.state # if store_keeper_group:
# self.store_keeper_visibility = True
# else:
# self.store_keeper_visibility = False
state = fields.Selection(PURCHASE_REQUISITION_STATES, state = fields.Selection(PURCHASE_REQUISITION_STATES,
'Status', tracking=True, required=True, 'Status', tracking=True, required=True,
@@ -32,9 +36,8 @@ class purchase_requisition(models.Model):
state_blanket_order = fields.Selection(PURCHASE_REQUISITION_STATES, compute='_set_state') state_blanket_order = fields.Selection(PURCHASE_REQUISITION_STATES, compute='_set_state')
# store_keeper_visibility = fields.Boolean("Visibility",default='_check_store_keeper') # store_keeper_visibility = fields.Boolean("Visibility",default='_check_store_keeper')
# @api.depends('state')
# def _check_store_keeper(self):
# self.state_blanket_order = self.state
@api.depends('state') @api.depends('state')
def _set_state(self): def _set_state(self):
@@ -147,3 +150,9 @@ class purchase_requisition(models.Model):
def action_manager_approval(self): def action_manager_approval(self):
self.state = 'manager_approval' self.state = 'manager_approval'
class PurchaseRequisitionLine(models.Model):
_inherit = "purchase.requisition.line"
state = fields.Selection(related='requisition_id.state', store=True, readonly=False,default='draft')

View File

@@ -21,7 +21,20 @@ class sale_order(models.Model):
('done', 'Locked'), ('done', 'Locked'),
('reject','Rejected By MGT'), ('reject','Rejected By MGT'),
('cancel', 'Cancelled'), ('cancel', 'Cancelled'),
], string='Status', readonly=True, copy=False, index=True, tracking=3, default='draft') ], string='Status', readonly=True, copy=False, index=True, tracking=3, default='draft')
rental_status = fields.Selection([
('draft', 'Quotation'),
('approval', 'Submitted To MGT'),
('approved', 'Approved By MGT'),
('logistics_approval', 'Validated By LC'),
('credit_approval', 'Submitted To CC'),
('sent', 'Quotation Sent'),
('pickup', 'Reserved'),
('return', 'Picked-up'),
('returned', 'Returned'),
('cancel', 'Cancelled'),
], string="Rental Status", compute='_compute_rental_status', store=True)
def make_url(self): def make_url(self):
record_id = self.id record_id = self.id

View File

@@ -8,7 +8,7 @@
<record id="group_purchase_coordinator" model="res.groups"> <record id="group_purchase_coordinator" model="res.groups">
<field name="name">Purchase Coordinator</field> <field name="name">Purchase Coordinator</field>
<field name="implied_ids" eval="[(4, ref('purchase.group_purchase_user'))]"/> <!-- <field name="implied_ids" eval="[(4, ref('purchase.group_purchase_user'))]"/> -->
<field name="category_id" ref="base.module_category_operations_purchase"/> <field name="category_id" ref="base.module_category_operations_purchase"/>
</record> </record>
@@ -44,6 +44,10 @@
<field name="implied_ids" eval="[(4, ref('group_credit_controller'))]"/> <field name="implied_ids" eval="[(4, ref('group_credit_controller'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/> <field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record> </record>
<record id="group_hire_coordinator" model="res.groups">
<field name="name">Hire Coordinator</field>
<field name="category_id" ref="base.module_category_sales_sales"/>
</record>
</data> </data>
</odoo> </odoo>

View File

@@ -32,14 +32,23 @@
<!-- <button name="action_manager_approval" states="manager_approval" string="Approved By MGT" type="object" class="btn-primary" groups="purchase.group_purchase_manager"/>--> <!-- <button name="action_manager_approval" states="manager_approval" string="Approved By MGT" type="object" class="btn-primary" groups="purchase.group_purchase_manager"/>-->
<field name="state" widget="statusbar" statusbar_visible="draft,in_progress,open,done" attrs="{'invisible': [('is_quantity_copy', '=', 'none')]}"/> <field name="state" widget="statusbar" statusbar_visible="draft,in_progress,open,done" attrs="{'invisible': [('is_quantity_copy', '=', 'none')]}"/>
<field name="state_blanket_order" widget="statusbar" statusbar_visible="draft,ongoing,done" attrs="{'invisible': [('is_quantity_copy', '!=', 'none')]}"/> <field name="state_blanket_order" widget="statusbar" statusbar_visible="draft,ongoing,done" attrs="{'invisible': [('is_quantity_copy', '!=', 'none')]}"/>
<!-- <field name="store_keeper_visibility"/> -->
</header> </header>
</xpath> </xpath>
<xpath expr="//field[@name='vendor_id']" position="replace">
<field name="vendor_id" context="{'res_partner_search_mode': 'supplier'}" attrs="{'required': [('is_quantity_copy', '=', 'none')], 'readonly': [('state', 'in', ['ongoing','done'])], 'invisible': [('state', 'in', ['draft'])]}"/>
</xpath>
<field name="type_id" position="attributes"> <field name="type_id" position="attributes">
<attribute name="string">Requisition Type</attribute> <attribute name="string">Requisition Type</attribute>
</field> </field>
<field name="date_end" position="attributes"> <field name="date_end" position="attributes">
<attribute name="string">Requisition Deadline</attribute> <attribute name="string">Requisition Deadline</attribute>
</field> </field>
<xpath expr="//notebook/page/field[@name='line_ids']/tree/field[@name='price_unit']" position="replace">
<field name="state" invisible="1"/>
<field name="price_unit" attrs="{'invisible': [('state', '=', 'draft')]}"/>
</xpath>
</field> </field>
</record> </record>

View File

@@ -17,21 +17,22 @@
<button name="reset" string="Reset" type="object" attrs="{'invisible': [('state', 'not in', ['reject'])]}" class="btn-primary"/> <button name="reset" string="Reset" type="object" attrs="{'invisible': [('state', 'not in', ['reject'])]}" class="btn-primary"/>
</xpath> </xpath>
<xpath expr="//button[@name='action_quotation_send']" position="replace"> <!-- <xpath expr="//button[@name='action_quotation_send']" position="replace">
<button name="action_quotation_send" string="Send by Email" type="object" states="approved" class="btn-primary"/> <button name="action_quotation_send" string="Send by Email" type="object" states="approved" class="btn-primary"/>
</xpath> </xpath> -->
<xpath expr="//button[@name='action_confirm']" position="after"> <xpath expr="//button[@name='action_confirm']" position="after">
<button name="action_confirm_approval_request" groups="sales_team.group_sale_salesman" string="Submit To MGT" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['draft'])]}"/> <button name="action_confirm_approval_request" groups="sales_team.group_sale_salesman" string="Submit To MGT" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['draft'])]}"/>
</xpath>
<xpath expr="//button[@name='action_confirm']" position="after">
<button name="action_logistics_approval" groups="sales_team.group_sale_salesman" states="approved" type="object" string="Validated By LC"/> <button name="action_logistics_approval" groups="sales_team.group_sale_salesman" states="approved" type="object" string="Validated By LC"/>
</xpath> </xpath>
<xpath expr="//button[@id='action_confirm']" position="replace">
<button name="action_manager_approval" groups = "sales_team.group_sale_manager" string="Approved By MGT" type="object" attrs="{'invisible': [('state', 'not in', ['sent'])]}" class="btn-primary"/>
<button name="action_managment_reject" groups = "sales_team.group_sale_manager" string="Rejected By MGT" type="object" attrs="{'invisible': [('state', 'not in', ['sent'])]}" class="btn-primary"/>
</xpath>
<xpath expr="//button[@name='action_confirm'][2]" position="replace"> <xpath expr="//button[@name='action_confirm']" position="replace">
<button name="action_credit_approval" groups="MKS_Tradex_Backend_2.group_credit_controller" string="Submit To CC" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['logistics_approval'])]}"/> <button name="action_credit_approval" groups="MKS_Tradex_Backend_2.group_credit_controller" string="Submit To CC" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['logistics_approval'])]}"/>
<button name="action_logistics_approve" groups="MKS_Tradex_Backend_2.group_credit_controller" states="credit_approval" type="object" string="Validated By CC"/> <button name="action_logistics_approve" groups="MKS_Tradex_Backend_2.group_credit_controller" states="credit_approval" type="object" string="Validated By CC"/>
<!-- <button name="action_confirm" groups="MKS_Tradex_Backend_2.group_sale_logistics,MKS_Tradex_Backend_2.group_credit_controller" string="Create SO" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['sale'])]}"/> --> <!-- <button name="action_confirm" groups="MKS_Tradex_Backend_2.group_sale_logistics,MKS_Tradex_Backend_2.group_credit_controller" string="Create SO" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['sale'])]}"/> -->
@@ -45,7 +46,8 @@
<field name="inherit_id" ref="sale.view_sales_order_auto_done_setting"/> <field name="inherit_id" ref="sale.view_sales_order_auto_done_setting"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//form//header//button[@name='action_done']" position="replace"> <xpath expr="//form//header//button[@name='action_done']" position="replace">
<button name="action_done" type="object" string="Create SO" states="sale" help="If the sale is locked, you can not modify it anymore. However, you will still be able to invoice or deliver." groups="MKS_Tradex_Backend_2.group_sale_logistics,MKS_Tradex_Backend_2.group_credit_controller"/> <button name="action_done" type="object" string="Create SO" states="sale" help="If the sale is locked, you can not modify it anymore. However, you will still be able to invoice or deliver." groups="MKS_Tradex_Backend_2.group_sale_logistics,
MKS_Tradex_Backend_2.group_hire_coordinator"/>
</xpath> </xpath>
</field> </field>