diff --git a/product_price_update_advanced/README.rst b/product_price_update_advanced/README.rst
new file mode 100644
index 000000000..f898a29c0
--- /dev/null
+++ b/product_price_update_advanced/README.rst
@@ -0,0 +1,45 @@
+
+Advanced Product Price Update v13
+=================================
+ This module helps to update the cost price and sale price of any product in one single click
+
+Configuration
+=============
+* No additional configurations needed
+
+Company
+-------
+* `Cybrosys Techno Solutions `__
+
+Credits
+-------
+* Developers: Saritha Sahadevan V10, odoo@cybrosys.com
+ Niyas Raphy V11 @cybrosys, odoo@cybrosys.com
+ Vinaya S B V12 odoo@cybrosys.com
+ Mehjabin Farsana P V13 @cybrosys,odoo@cybrosys.com
+
+Contacts
+--------
+* Mail Contact : odoo@cybrosys.com
+* Website : https://cybrosys.com
+
+Bug Tracker
+-----------
+Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
+
+Maintainer
+==========
+.. image:: https://cybrosys.com/images/logo.png
+ :target: https://cybrosys.com
+
+This module is maintained by Cybrosys Technologies.
+
+For support and more information, please visit `Our Website `__
+
+Further information
+===================
+HTML Description: ``__
+
+
+
+
diff --git a/product_price_update_advanced/__init__.py b/product_price_update_advanced/__init__.py
new file mode 100644
index 000000000..d5883b592
--- /dev/null
+++ b/product_price_update_advanced/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+###################################################################################
+# Cybrosys Technologies Pvt. Ltd.
+# Copyright (C) 2018-TODAY Cybrosys Technologies ().#
+# This program is free software: you can modify
+# it under the terms of the GNU Affero General Public License (AGPL) as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+###################################################################################
+
+from . import models
+
+
diff --git a/product_price_update_advanced/__manifest__.py b/product_price_update_advanced/__manifest__.py
new file mode 100644
index 000000000..5cbbde89d
--- /dev/null
+++ b/product_price_update_advanced/__manifest__.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+###################################################################################
+# Cybrosys Technologies Pvt. Ltd.
+# Copyright (C) 2018-TODAY Cybrosys Technologies ().#
+# This program is free software: you can modify
+# it under the terms of the GNU Affero General Public License (AGPL) as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+###################################################################################
+
+{
+ 'name': "Advanced Product Price Update",
+ 'version': '13.0.1.0.0',
+ 'summary': """User Can Easily Update Cost Price/Sale Price of Products""",
+ 'description': """This module updates price of any product on single click""",
+ 'author': "Cybrosys Techno Solutions",
+ 'company': 'Cybrosys Techno Solutions',
+ 'website': "https://www.Cybrosys.com",
+ 'category': 'Tools',
+ 'depends': ['base', 'sale'],
+ 'data': [
+ 'views/product_price_view.xml'
+ ],
+ 'images': ['static/description/banner.jpg'],
+ 'license': 'AGPL-3',
+ 'installable': True,
+ 'auto_install': False,
+ 'application': False,
+}
diff --git a/product_price_update_advanced/doc/RELEASE_NOTES.md b/product_price_update_advanced/doc/RELEASE_NOTES.md
new file mode 100644
index 000000000..fccf74cdb
--- /dev/null
+++ b/product_price_update_advanced/doc/RELEASE_NOTES.md
@@ -0,0 +1,9 @@
+## Module
+
+#### 11.11.2019
+#### Version 13.0.1.0.0
+#### ADD
+Initial Commit Advanced Product Price Update
+
+
+
diff --git a/product_price_update_advanced/models/__init__.py b/product_price_update_advanced/models/__init__.py
new file mode 100644
index 000000000..3993ab5ca
--- /dev/null
+++ b/product_price_update_advanced/models/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import product_price
diff --git a/product_price_update_advanced/models/product_price.py b/product_price_update_advanced/models/product_price.py
new file mode 100644
index 000000000..596596e2c
--- /dev/null
+++ b/product_price_update_advanced/models/product_price.py
@@ -0,0 +1,51 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2019-TODAY Cybrosys Technologies().
+# Author: Saritha Sahadevan @cybrosys(odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+from odoo import models, fields, api, _
+
+
+class ProductPrice(models.TransientModel):
+ _name = 'product.price'
+
+ name = fields.Many2one('product.template', string="Product", required=True)
+ sale_price = fields.Integer(string="Sale Price", required=True)
+ cost_price = fields.Integer(string="Cost Price", required=True)
+
+ def change_product_price(self):
+ prod_obj = self.env['product.template'].search([('id', '=', self.name.id)])
+ prod_value = {'list_price': self.sale_price, 'standard_price': self.cost_price}
+ prod_obj.write(prod_value)
+ return {
+ 'name': _('Products'),
+ 'view_mode': 'form',
+ 'res_model': 'product.template',
+ 'type': 'ir.actions.act_window',
+ 'res_id': prod_obj.id,
+ 'context': self.env.context
+ }
+
+ @api.onchange('name')
+ def get_price(self):
+ self.sale_price = self.name.list_price
+ self.cost_price = self.name.standard_price
+
+
diff --git a/product_price_update_advanced/static/description/banner.jpg b/product_price_update_advanced/static/description/banner.jpg
new file mode 100644
index 000000000..0c6129ed0
Binary files /dev/null and b/product_price_update_advanced/static/description/banner.jpg differ
diff --git a/product_price_update_advanced/static/description/cybro_logo.png b/product_price_update_advanced/static/description/cybro_logo.png
new file mode 100644
index 000000000..bb309114c
Binary files /dev/null and b/product_price_update_advanced/static/description/cybro_logo.png differ
diff --git a/product_price_update_advanced/static/description/icon.png b/product_price_update_advanced/static/description/icon.png
new file mode 100644
index 000000000..a22a0435c
Binary files /dev/null and b/product_price_update_advanced/static/description/icon.png differ
diff --git a/product_price_update_advanced/static/description/index.html b/product_price_update_advanced/static/description/index.html
new file mode 100644
index 000000000..427865a97
--- /dev/null
+++ b/product_price_update_advanced/static/description/index.html
@@ -0,0 +1,338 @@
+
+
+
+ Advanced Product Price Update
+
+
+ User Can Easily Update Cost Price/Sale Price of Products
+
+ Currently in Odoo, we need to switch over to each product form to update the price of product.
+ This module helps to update the cost price and sale price of any product in one single click.
+ * Create a wizard button in the menu Sales > 'Update Product'.
+ * After filling wizard form and clicking on 'Update', it will change the selected price field of products
+ that were selected in the wizard.
+
+
+
diff --git a/product_price_update_advanced/static/description/product-price-cybrosys-1.png b/product_price_update_advanced/static/description/product-price-cybrosys-1.png
new file mode 100644
index 000000000..3fea8c874
Binary files /dev/null and b/product_price_update_advanced/static/description/product-price-cybrosys-1.png differ
diff --git a/product_price_update_advanced/views/product_price_view.xml b/product_price_update_advanced/views/product_price_view.xml
new file mode 100644
index 000000000..a20412af3
--- /dev/null
+++ b/product_price_update_advanced/views/product_price_view.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+ Update Product Price
+ product.price
+
+
+
+
+
+
+ Update Product Price
+ product.price
+ ir.actions.act_window
+ form
+
+ new
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sale_purchase_previous_product_cost/README.rst b/sale_purchase_previous_product_cost/README.rst
new file mode 100644
index 000000000..8aa78787f
--- /dev/null
+++ b/sale_purchase_previous_product_cost/README.rst
@@ -0,0 +1,45 @@
+Previous Sale/Purchase Product Rates V13
+========================================
+This module enables a view to see all previous sale/purchase product rates of selected customer.
+
+
+Configuration
+=============
+* No additional configurations needed
+
+Company
+-------
+* `Cybrosys Techno Solutions `__
+
+Credits
+-------
+* Developers: Nilamr Shereef V10 @cybrosys, odoo@cybrosys.com
+ Niyas Raphy V11 @cybrosys, odoo@cybrosys.com
+ Vinaya S B V12 odoo@cybrosys.com
+ Mehjabin Farsana P V13 @cybrosys,odoo@cybrosys.com
+
+Contacts
+--------
+* Mail Contact : odoo@cybrosys.com
+* Website : https://cybrosys.com
+
+Bug Tracker
+-----------
+Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
+
+Maintainer
+==========
+.. image:: https://cybrosys.com/images/logo.png
+ :target: https://cybrosys.com
+
+This module is maintained by Cybrosys Technologies.
+
+For support and more information, please visit `Our Website `__
+
+Further information
+===================
+HTML Description: ``__
+
+
+
+
diff --git a/sale_purchase_previous_product_cost/__init__.py b/sale_purchase_previous_product_cost/__init__.py
new file mode 100644
index 000000000..1a2cfbd50
--- /dev/null
+++ b/sale_purchase_previous_product_cost/__init__.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+###################################################################################
+# Cybrosys Technologies Pvt. Ltd.
+# Copyright (C) 2018-TODAY Cybrosys Technologies ().#
+# This program is free software: you can modify
+# it under the terms of the GNU Affero General Public License (AGPL) as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+###################################################################################
+
+from . import models
diff --git a/sale_purchase_previous_product_cost/__manifest__.py b/sale_purchase_previous_product_cost/__manifest__.py
new file mode 100644
index 000000000..3ac6c9fb2
--- /dev/null
+++ b/sale_purchase_previous_product_cost/__manifest__.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+###################################################################################
+# Cybrosys Technologies Pvt. Ltd.
+# Copyright (C) 2018-TODAY Cybrosys Technologies ().#
+# This program is free software: you can modify
+# it under the terms of the GNU Affero General Public License (AGPL) as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+###################################################################################
+
+{
+ "name": "Previous Sale/Purchase Product Rates",
+ 'version': '13.0.1.0.0',
+ "summary": """Provide Product's Previous Sale & Purchase Price History for Partner.""",
+ "description": """Provide product's previous prices in product master.""",
+ "category": "Sales",
+ 'author': 'Cybrosys Techno Solutions',
+ 'website': "https://www.cybrosys.com",
+ 'company': 'Cybrosys Techno Solutions',
+ "depends": ['sale', 'purchase'],
+ "data": ['views/sale_order_view.xml'],
+ 'images': ['static/description/banner.jpg'],
+ 'license': 'AGPL-3',
+ 'installable': True,
+ 'auto_install': False,
+ 'application': False,
+}
diff --git a/sale_purchase_previous_product_cost/doc/RELEASE_NOTES.md b/sale_purchase_previous_product_cost/doc/RELEASE_NOTES.md
new file mode 100644
index 000000000..2a3d3282d
--- /dev/null
+++ b/sale_purchase_previous_product_cost/doc/RELEASE_NOTES.md
@@ -0,0 +1,9 @@
+## Module
+
+#### 12.11.2019
+#### Version 13.0.1.0.0
+#### ADD
+Initial Commit Previous Sale/Purchase Product Rates
+
+
+
diff --git a/sale_purchase_previous_product_cost/models/__init__.py b/sale_purchase_previous_product_cost/models/__init__.py
new file mode 100644
index 000000000..29e51a52e
--- /dev/null
+++ b/sale_purchase_previous_product_cost/models/__init__.py
@@ -0,0 +1,3 @@
+# -*- encoding: utf-8 -*-
+
+from . import sale_order
diff --git a/sale_purchase_previous_product_cost/models/sale_order.py b/sale_purchase_previous_product_cost/models/sale_order.py
new file mode 100644
index 000000000..728e39239
--- /dev/null
+++ b/sale_purchase_previous_product_cost/models/sale_order.py
@@ -0,0 +1,97 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2019-TODAY Cybrosys Technologies().
+# Author: Nilamr Shereef(odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+from odoo import models, api, fields
+from odoo.exceptions import Warning
+
+
+class SaleOrderLine(models.Model):
+ _inherit = 'sale.order.line'
+
+ sale_date = fields.Datetime(comodel_name='sale.order', string='Sale Date',
+ related='order_id.date_order', store=True)
+
+
+class PurchaseOrderLine(models.Model):
+ _inherit = 'purchase.order.line'
+
+ @api.onchange('product_id')
+ def set_partner(self):
+ for each in self:
+ if each.product_id:
+ each.product_id.write({'order_partner_id': each.order_id.partner_id.id})
+
+ purchase_date = fields.Datetime(comodel_name='purchase.order', string='Purchase Date',
+ related='order_id.date_order', store=True)
+
+
+class ProductTemplate(models.Model):
+ _inherit = "product.product"
+
+ order_partner_id = fields.Many2one('res.partner', string="Partner")
+
+ def action_sale_product_prices(self):
+ rel_view_id = self.env.ref(
+ 'sale_purchase_previous_product_cost.last_sale_product_prices_view')
+ if self.order_partner_id.id:
+ sale_lines = self.env['sale.order.line'].search([('product_id', '=', self.id),
+ ('order_partner_id', '=', self.order_partner_id.id)],
+ order='create_date DESC').mapped('id')
+ else:
+ sale_lines = self.env['sale.order.line'].search([('product_id', '=', self.id)],
+ order='create_date DESC').mapped('id')
+ if not sale_lines:
+ raise Warning("No sales history found.!")
+ else:
+ return {
+ 'domain': [('id', 'in', sale_lines)],
+ 'views': [(rel_view_id.id, 'tree')],
+ 'name': 'Sales History',
+ 'res_model': 'sale.order.line',
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ }
+
+ def action_purchase_product_prices(self):
+ rel_view_id = self.env.ref(
+ 'sale_purchase_previous_product_cost.last_sale_product_purchase_prices_view')
+ if self.order_partner_id.id:
+ purchase_lines = self.env['purchase.order.line'].search([('product_id', '=', self.id),
+ ('partner_id', '=', self.order_partner_id.id)],
+ order='create_date DESC').mapped('id')
+ else:
+ purchase_lines = self.env['purchase.order.line'].search([('product_id', '=', self.id)],
+ order='create_date DESC').mapped('id')
+ if not purchase_lines:
+ raise Warning("No purchase history found.!")
+ else:
+ return {
+ 'domain': [('id', 'in', purchase_lines)],
+ 'views': [(rel_view_id.id, 'tree')],
+ 'name': 'Purchase History',
+ 'res_model': 'purchase.order.line',
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ }
+
+
+
+
diff --git a/sale_purchase_previous_product_cost/static/description/banner.jpg b/sale_purchase_previous_product_cost/static/description/banner.jpg
new file mode 100644
index 000000000..e10c28799
Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/banner.jpg differ
diff --git a/sale_purchase_previous_product_cost/static/description/cybro_logo.png b/sale_purchase_previous_product_cost/static/description/cybro_logo.png
new file mode 100644
index 000000000..bb309114c
Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/cybro_logo.png differ
diff --git a/sale_purchase_previous_product_cost/static/description/icon.png b/sale_purchase_previous_product_cost/static/description/icon.png
new file mode 100644
index 000000000..1b8ea4ebf
Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/icon.png differ
diff --git a/sale_purchase_previous_product_cost/static/description/index.html b/sale_purchase_previous_product_cost/static/description/index.html
new file mode 100644
index 000000000..f300cdd06
--- /dev/null
+++ b/sale_purchase_previous_product_cost/static/description/index.html
@@ -0,0 +1,377 @@
+
+
+
+ Previous Sale/Purchase Product Rates
+
+
+ Provide Product's Previous Sale & Purchase Price History
+
+ This module enables a view to see all previous sale/purchase product rates of selected customer. It will help you to manage
+ your orders according to these price history. You can see these option from sale/purchase form.
+
+
+
+
+
+
+ Features
+
+
+
+ Previous sale price history
+
+
+
+ Previous purchase price history
+
+
+
+ Provide product's previous prices in product page
+
+
+
+
+
+
+
+ Screenshots
+
+
+
+
+ go to Sale/Purchase Order Form
+
+
+
+
+
+
+
+
+
+ Select product and go to product form view
+
+
+
+
+
+
+
+
+
+ In product form you can see a new tab named "Previous Price History". In this tab 'Partner' field already filled with the partner name which you are selected in sale/purchase form. You have also an option to change this 'Partner'.
+
+
+
+
+
+
+
+
+
+ To see previous sale price history please click on the button name 'Previous Sale Rates'.
+
+
+
+
+
+
+
+
+
+ To see previous purchase price history please click on the button name 'Previous Purchase Rates'
+