Browse Source

NOV 15 : [ADD] Initial Commit 'cancel_landed_cost_odoo'

pull/295/head
Shijin V 1 year ago
parent
commit
a5fe580aa8
  1. 41
      cancel_landed_cost_odoo/README.rst
  2. 22
      cancel_landed_cost_odoo/__init__.py
  3. 47
      cancel_landed_cost_odoo/__manifest__.py
  4. 38
      cancel_landed_cost_odoo/data/stock_landed_cost_data.xml
  5. 7
      cancel_landed_cost_odoo/doc/RELEASE_NOTES.md
  6. 23
      cancel_landed_cost_odoo/models/__init__.py
  7. 37
      cancel_landed_cost_odoo/models/res_config_settings.py
  8. 232
      cancel_landed_cost_odoo/models/stock_landed_cost.py
  9. 8
      cancel_landed_cost_odoo/security/cancel_landed_cost_odoo_groups.xml
  10. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/check.png
  11. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/chevron.png
  12. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/cogs.png
  13. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/consultation.png
  14. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/ecom-black.png
  15. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/education-black.png
  16. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/hotel-black.png
  17. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/license.png
  18. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/lifebuoy.png
  19. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/manufacturing-black.png
  20. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/pos-black.png
  21. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/puzzle.png
  22. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/restaurant-black.png
  23. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/service-black.png
  24. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/trading-black.png
  25. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/training.png
  26. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/update.png
  27. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/user.png
  28. BIN
      cancel_landed_cost_odoo/static/description/assets/icons/wrench.png
  29. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/categories.png
  30. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/check-box.png
  31. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/compass.png
  32. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/corporate.png
  33. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/customer-support.png
  34. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/cybrosys-logo.png
  35. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/features.png
  36. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/logo.png
  37. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/pictures.png
  38. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/pie-chart.png
  39. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/right-arrow.png
  40. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/star.png
  41. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/support.png
  42. BIN
      cancel_landed_cost_odoo/static/description/assets/misc/whatsapp.png
  43. BIN
      cancel_landed_cost_odoo/static/description/assets/modules/1.png
  44. BIN
      cancel_landed_cost_odoo/static/description/assets/modules/2.png
  45. BIN
      cancel_landed_cost_odoo/static/description/assets/modules/3.png
  46. BIN
      cancel_landed_cost_odoo/static/description/assets/modules/4.png
  47. BIN
      cancel_landed_cost_odoo/static/description/assets/modules/5.png
  48. BIN
      cancel_landed_cost_odoo/static/description/assets/modules/6.png
  49. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/.gif.zip
  50. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/10.png
  51. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/11.png
  52. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/12.png
  53. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/13.png
  54. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/14.png
  55. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/15.png
  56. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/16.png
  57. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/17.png
  58. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/18.png
  59. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/19.png
  60. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/2.png
  61. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/20.png
  62. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/21.png
  63. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/22.png
  64. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/23.png
  65. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/24.png
  66. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/3.png
  67. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/4.png
  68. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/5.png
  69. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/6.png
  70. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/7.png
  71. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/8.png
  72. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/9.png
  73. BIN
      cancel_landed_cost_odoo/static/description/assets/screenshots/cancel-landed-cost-odoo-gif.gif
  74. BIN
      cancel_landed_cost_odoo/static/description/banner.png
  75. BIN
      cancel_landed_cost_odoo/static/description/icon.png
  76. 842
      cancel_landed_cost_odoo/static/description/index.html
  77. 37
      cancel_landed_cost_odoo/views/res_config_settings_views.xml
  78. 24
      cancel_landed_cost_odoo/views/stock_landed_cost_views.xml

41
cancel_landed_cost_odoo/README.rst

@ -0,0 +1,41 @@
.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
Cancel Landed Cost
=======================
This module helps to cancel Landed Costs and allows you to cancel multiple Landed Costs from the tree view. There are three ways in which you can cancel the Landed Costs.
License
-------
General Public License, Version 3 (AGPL v3).
(https://www.gnu.org/licenses/agpl-3.0-standalone.html)
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
Credits
-------
Developer: ANFAS FAISAL K, Contact: 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 <https://cybrosys.com/>`__
Further information
===================
HTML Description: `<static/description/index.html>`__

22
cancel_landed_cost_odoo/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anfas Faisal K (odoo@cybrosys.info)
#
# 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 <http://www.gnu.org/licenses/>.
#
################################################################################
from . import models

47
cancel_landed_cost_odoo/__manifest__.py

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anfas Faisal K (odoo@cybrosys.info)
#
# 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 <http://www.gnu.org/licenses/>.
#
################################################################################
{
'name': "Cancel Landed Cost",
'version': "16.0.1.0.0",
'category': 'Purchases,Accounting,Warehouse',
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'summary': 'This module helps to cancel landed costs',
'description': 'This module helps to cancel Landed Costs and allows you '
'to cancel multiple Landed Costs from the tree view. There '
'are three ways in which you can cancel the Landed Costs'
'Cancel Only, Cancel and Reset to Draft,Cancel and Delete',
'maintainer': 'Cybrosys Techno Solutions',
'images': ['static/description/banner.png'],
'website': 'https://www.cybrosys.com',
'depends': ['account', 'purchase', 'stock_landed_costs'],
'data': [
'security/cancel_landed_cost_odoo_groups.xml',
'data/stock_landed_cost_data.xml',
'views/stock_landed_cost_views.xml',
'views/res_config_settings_views.xml',
],
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
'application': False,
}

38
cancel_landed_cost_odoo/data/stock_landed_cost_data.xml

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Cancel Button inside Action Menu in model Stock Landed Cost-->
<record id="stock_landed_cost_action_cancel" model="ir.actions.server">
<field name="name">Cancel</field>
<field name="model_id" ref="model_stock_landed_cost"/>
<field name="groups_id"
eval="[(4, ref('cancel_landed_cost_odoo_group_cancel_user'))]"/>
<field name="binding_model_id" ref="model_stock_landed_cost"/>
<field name="binding_view_types">list,form</field>
<field name="state">code</field>
<field name="code">action = records.action_landed_cost_cancel()</field>
</record>
<!-- Cancel and Reset Button inside Action Menu in model Stock Landed Cost-->
<record id="stock_landed_cost_action_cancel_and_reset" model="ir.actions.server">
<field name="name">Cancel and Reset Draft</field>
<field name="model_id" ref="model_stock_landed_cost"/>
<field name="groups_id"
eval="[(4, ref('cancel_landed_cost_odoo_group_cancel_user'))]"/>
<field name="binding_model_id" ref="model_stock_landed_cost"/>
<field name="binding_view_types">list,form</field>
<field name="state">code</field>
<field name="code">action = records.action_landed_cost_reset_and_cancel()
</field>
</record>
<!-- Cancel and Delete Button inside Action Menu in model Stock Landed Cost-->
<record id="stock_landed_cost_action_cancel_and_delete" model="ir.actions.server">
<field name="name">Cancel and Delete</field>
<field name="model_id" ref="model_stock_landed_cost"/>
<field name="groups_id"
eval="[(4, ref('cancel_landed_cost_odoo_group_cancel_user'))]"/>
<field name="binding_model_id" ref="model_stock_landed_cost"/>
<field name="binding_view_types">list,form</field>
<field name="state">code</field>
<field name="code">action = records.action_landed_cost_cancel_and_delete()
</field>
</record>
</odoo>

7
cancel_landed_cost_odoo/doc/RELEASE_NOTES.md

@ -0,0 +1,7 @@
## Module <cancel_landed_cost_odoo>
#### 15.11.2023
#### Version 16.0.1.0.0
#### ADD
- Initial commit for Cancel Landed Cost

23
cancel_landed_cost_odoo/models/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anfas Faisal K (odoo@cybrosys.info)
#
# 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 <http://www.gnu.org/licenses/>.
#
################################################################################
from . import res_config_settings
from . import stock_landed_cost

37
cancel_landed_cost_odoo/models/res_config_settings.py

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anfas Faisal K (odoo@cybrosys.info)
#
# 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 <http://www.gnu.org/licenses/>.
#
################################################################################
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
"""Model for managing the configuration settings for canceling landed
costs."""
_inherit = "res.config.settings"
land_cost_cancel_modes = fields.Selection([
('cancel', 'Cancel'),
('cancel_draft', 'Cancel and Reset to Draft'),
('cancel_delete', 'Cancel and Delete'),
], string='Operation Type', default='cancel',
help="Select the operation to perform when canceling a landed cost.",
config_parameter='cancel_landed_cost_odoo.land_cost_cancel_modes')

232
cancel_landed_cost_odoo/models/stock_landed_cost.py

@ -0,0 +1,232 @@
# -*- coding: utf-8 -*-
################################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
# Author: Anfas Faisal K (odoo@cybrosys.info)
#
# 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 <http://www.gnu.org/licenses/>.
#
################################################################################
from odoo import fields, models
class StockLandedCost(models.Model):
"""Inherits 'stock.landed.cost' model to add additional functionality
related to cancelling and resetting landed cost records.
Methods:
action_landed_cost_cancel: Cancels the landed cost record by deleting
its associated accounting entries, stock valuation, and changes state
to 'cancelled.
action_landed_cost_reset_and_cancel: Resets the landed cost record by
deleting its associated accounting entries and stock valuation.
It changes the state back to 'draft'.
action_landed_cost_cancel_and_delete: Deletes the landed cost record by
deleting its associated accounting entries and stock valuation. It also
deletes the Landed cost record.
action_landed_cost_cancel_form: Cancels the landed cost record and
deletes its associated accounting entries and stock valuation.
It also creates two entries to revert back to the original cost price,
which are also deleted in the process.
"""
_inherit = 'stock.landed.cost'
is_cancel = fields.Boolean(string='Cancel', default=False,
help='If the user clicks the "Cancel" button'
'once, it will hide the button and make'
'it invisible.')
def action_landed_cost_cancel(self):
"""Cancels the landed cost record by deleting its associated
accounting entries, stock valuation, and changes state to 'cancelled'.
Additionally, it reverts the original cost price by creating two
entries, which are also deleted in the process.
"""
for rec in self:
for line in rec.valuation_adjustment_lines.filtered(
lambda line: line.move_id):
product = line.move_id.product_id
if product.cost_method == 'average':
original_price = product.standard_price
new_price = product.standard_price - line.additional_landed_cost
product.write({'standard_price': new_price})
stock_valuation_layer = self.env['stock.valuation.layer'] \
.search([('product_id', '=', product.id),
('description', '=', f'Product value manually '
f'modified (from {original_price} to {new_price})')],
limit=1)
if stock_valuation_layer:
stock_valuation_layer.account_move_id.button_draft()
stock_valuation_layer.account_move_id.sudo().unlink()
stock_valuation_layer.sudo().unlink()
if rec.account_move_id:
account_id = rec.account_move_id
account_move_ids = account_id.line_ids
if account_move_ids:
account_id.sudo().write(
{'state': 'draft', 'name': 'Delete Sequence Number'})
account_move_ids.sudo().unlink()
account_id.sudo().unlink()
if rec.valuation_adjustment_lines:
rec.valuation_adjustment_lines.unlink()
if rec.stock_valuation_layer_ids:
rec.stock_valuation_layer_ids.sudo().unlink()
rec.write({'state': 'cancel'})
def action_landed_cost_reset_and_cancel(self):
"""Resets the landed cost record by deleting its associated accounting
entries and stock valuation. It changes the state back to 'draft'.
Additionally, it reverts the original cost price by creating two entries,
which are also deleted in the process.
"""
for rec in self:
for line in rec.valuation_adjustment_lines.filtered(
lambda line: line.move_id):
product = line.move_id.product_id
if product.cost_method == 'average':
original_price = product.standard_price
new_price = product.standard_price - line.additional_landed_cost
product.write({'standard_price': new_price})
stock_valuation_layer = self.env['stock.valuation.layer'] \
.search([('product_id', '=', product.id),
('description', '=', f'Product value manually '
f'modified (from {original_price} to {new_price})')],
limit=1)
if stock_valuation_layer:
stock_valuation_layer.account_move_id.button_draft()
stock_valuation_layer.account_move_id.sudo().unlink()
stock_valuation_layer.sudo().unlink()
if rec.account_move_id:
account_id = rec.account_move_id
account_move_ids = account_id.line_ids
if account_move_ids:
account_id.sudo().write(
{'state': 'draft', 'name': 'Delete Sequence Number'})
account_move_ids.sudo().unlink()
account_id.sudo().unlink()
if rec.valuation_adjustment_lines:
rec.valuation_adjustment_lines.unlink()
if rec.stock_valuation_layer_ids:
rec.sudo().stock_valuation_layer_ids.unlink()
rec.write({'state': 'draft'})
def action_landed_cost_cancel_and_delete(self):
"""Deletes the landed cost record by deleting its associated accounting
entries and stock valuation. It also deletes the Landed cost record.
Additionally, it reverts the original cost price by creating two
entries, which are also deleted in the process.
"""
for rec in self:
for line in rec.valuation_adjustment_lines.filtered(
lambda line: line.move_id):
product = line.move_id.product_id
if product.cost_method == 'average':
original_price = product.standard_price
new_price = product.standard_price - line.additional_landed_cost
product.write({'standard_price': new_price})
stock_valuation_layer = self.env['stock.valuation.layer'] \
.search([('product_id', '=', product.id),
('description', '=', f'Product value manually '
f'modified (from {original_price} to {new_price})')],
limit=1)
if stock_valuation_layer:
stock_valuation_layer.account_move_id.button_draft()
stock_valuation_layer.account_move_id.sudo().unlink()
stock_valuation_layer.sudo().unlink()
if rec.account_move_id:
account_id = rec.account_move_id
account_move_ids = account_id.line_ids
if account_move_ids:
account_id.sudo().write(
{'state': 'draft', 'name': 'Delete Sequence Number'})
account_move_ids.sudo().unlink()
account_id.sudo().unlink()
if rec.valuation_adjustment_lines:
rec.valuation_adjustment_lines.unlink()
if rec.stock_valuation_layer_ids:
rec.sudo().stock_valuation_layer_ids.unlink()
rec.write({'state': 'cancel'})
rec.unlink()
def action_landed_cost_cancel_form(self):
"""Cancels the landed cost record and deletes its associated
accounting entries and stock valuation. It also creates two entries
to revert back to the original cost price, which are also deleted in
the process.
The specific action performed depends on the value of the
'cancel_landed_cost_odoo.land_cost_cancel_modes'
configuration parameter:
- 'cancel': Changes the landed cost state to 'cancel' and sets
the 'is_cancel' flag to True.
- 'cancel_draft': Changes the landed cost state to 'draft'
and sets the 'is_cancel' flag to False.
- 'cancel_delete': Deletes the landed cost record and returns an
action to open the Landed Cost tree view.
"""
for rec in self:
for line in rec.valuation_adjustment_lines.filtered(
lambda line: line.move_id):
product = line.move_id.product_id
if product.cost_method == 'average':
original_price = product.standard_price
new_price = product.standard_price - line.additional_landed_cost
product.write({'standard_price': new_price})
stock_valuation_layer = self.env['stock.valuation.layer'] \
.search([('product_id', '=', product.id),
('description', '=', f'Product value manually '
f'modified (from {original_price} to {new_price})')],
limit=1)
if stock_valuation_layer:
stock_valuation_layer.account_move_id.button_draft()
stock_valuation_layer.account_move_id.sudo().unlink()
stock_valuation_layer.sudo().unlink()
if self.account_move_id:
account_id = self.account_move_id
account_move_ids = account_id.line_ids
if account_move_ids:
account_id.sudo().write(
{'state': 'draft', 'name': 'Delete Sequence Number'})
account_move_ids.sudo().unlink()
account_id.sudo().unlink()
if self.valuation_adjustment_lines:
self.valuation_adjustment_lines.unlink()
if self.stock_valuation_layer_ids:
self.sudo().stock_valuation_layer_ids.unlink()
landed_mode = self.env['ir.config_parameter'].sudo().get_param(
'cancel_landed_cost_odoo.land_cost_cancel_modes')
if landed_mode == 'cancel':
self.write({'state': 'cancel'})
self.is_cancel = True
if landed_mode == 'cancel_draft':
self.write({'state': 'draft'})
self.is_cancel = False
if landed_mode == 'cancel_delete':
self.write({'state': 'cancel'})
self.unlink()
return {
'name': 'Landed Cost',
'type': 'ir.actions.act_window',
'res_model': 'stock.landed.cost',
'view_mode': 'tree,form',
'target': 'current'
}

8
cancel_landed_cost_odoo/security/cancel_landed_cost_odoo_groups.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Added a new group within the res.groups module, which allows you to activate the feature for canceling landed costs.-->
<record id="cancel_landed_cost_odoo_group_cancel_user" model="res.groups">
<field name="name">Landed Cost Cancel Features</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
</odoo>

BIN
cancel_landed_cost_odoo/static/description/assets/icons/check.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/icons/chevron.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/cogs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/icons/consultation.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/icons/ecom-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/education-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/hotel-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/license.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/icons/lifebuoy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/icons/manufacturing-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/pos-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/puzzle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/restaurant-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/service-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/trading-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/training.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/update.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/icons/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

BIN
cancel_landed_cost_odoo/static/description/assets/icons/wrench.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/categories.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/check-box.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/compass.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/corporate.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/customer-support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/cybrosys-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/features.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

BIN
cancel_landed_cost_odoo/static/description/assets/misc/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/pictures.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/pie-chart.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/right-arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

BIN
cancel_landed_cost_odoo/static/description/assets/misc/star.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/misc/whatsapp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/modules/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/modules/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/modules/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/modules/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/modules/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/modules/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/.gif.zip

Binary file not shown.

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/11.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/12.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/13.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/14.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/15.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/17.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/18.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/19.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/20.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/21.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/22.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/23.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/24.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
cancel_landed_cost_odoo/static/description/assets/screenshots/cancel-landed-cost-odoo-gif.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

BIN
cancel_landed_cost_odoo/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
cancel_landed_cost_odoo/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

842
cancel_landed_cost_odoo/static/description/index.html

@ -0,0 +1,842 @@
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;">
<!-- TITLE BAR -->
<div class="d-flex align-items-center justify-content-between"
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
<img src="assets/misc/cybrosys-logo.png" width="42" height="42"
style="width: 42px; height: 42px;"/>
<div>
<div
style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Community
</div>
<div
style="color: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Enterprise
</div>
<div
style="color: #017E84; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Odoo.sh
</div>
</div>
</div>
<!-- END OF TITLE BAR -->
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
Cancel Landed Cost
</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">
This Module Allows You To Cancel Multiple Landed Costs From The Tree View And Provides Three Ways In Which You Can Cancel The Landed Costs
</p>
<!-- END OF APP HERO -->
<img src="assets/screenshots/cancel-landed-cost-odoo-gif.gif"
class="img-responsive"
style="width: 100%; margin-left: auto; margin-right: auto;"/>
</div>
</div>
</div>
</div>
<!-- NAVIGATION SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/compass.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Explore This
Module</h2>
</div>
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
<div class="col-sm-12 col-md-6 my-3">
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
more about this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#features">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
features of this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
screenshots for this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
</div>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pie-chart.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Overview
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4">
This module helps to cancel Landed Costs and allows you to cancel
multiple Landed Costs from the tree view. There are three ways in which
you can cancel the Landed Costs.
<ul>
<li>
1) Cancel Only: When you Cancel the Landed cost then the landed
cost is cancelled and the state is changed to Cancelled.
</li>
<li>
2) Cancel and Reset to Draft: When you cancel landed costs,
First Landed Costs is Cancelled and then Reset to the Draft
state.
</li>
<li>
3) Cancel and Delete: When you Cancel the Landed costs then
First Landed Cost is Cancelled and then Landed Cost will be
deleted.
</li>
</ul>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="features">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/features.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Features
</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">This module helps to cancel Landed Costs and allows you to cancel multiple Landed Costs from the tree view.
There are three ways in which you can cancel the Landed Costs.
</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Deleting landed costs entirely can be helpful in cases of error or irrelevance.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Resetting landed costs to draft status enables changes to be made and resubmission for review.
</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Canceling landed costs with journal entries ensures accurate accounting record-keeping.
</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> These features help businesses streamline inventory and expense management.
</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Accurate tracking of landed costs can improve inventory management.
</span>
</div>
</div>
<div class="col-sm-12 col-md-6">
</div>
<!-- END OF FEATURES SECTION -->
<!-- SCREENSHOTS SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="screenshots">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pictures.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Screenshots
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Tick The "Landed Cost Cancel Features" To Cancel The
Landed cost.
</h3>
<img src="assets/screenshots/24.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
To Cancel The Landed Costs, Select Your Preferred Cancellation Method For The Landed Cost Option, And Then Save The Changes.
</h3>
<img src="assets/screenshots/2.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Landed Cost Creation(Odoo Standard).
</h3>
<img src="assets/screenshots/3.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Stock Valuation Of Product When Landed Cost Is Created.
</h3>
<img src="assets/screenshots/4.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
The Journal Entry Of The Landed Cost(Odoo Standard).
</h3>
<img src="assets/screenshots/5.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Press The "CANCEL" Button To Cancel Landed Costs.
</h3>
<img src="assets/screenshots/7.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
When You Cancel The Landed Costs Then The Landed Cost Is
Cancelled And The State Is Changed To "CANCELLED" And
Valuation Adjustments Lines Are Deleted.
</h3>
<img src="assets/screenshots/8.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Corresponding Stock Valuation Is Deleted From The
Records.
</h3>
<img src="assets/screenshots/9.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Corresponding Journal Entries Are Deleted.
</h3>
<img src="assets/screenshots/10.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
When You Want To Cancel The Landed Costs And Reset To
The Draft State Tick "Cancel and Reset to Draft".
</h3>
<img src="assets/screenshots/11.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Press The "CANCEL" Button To Cancel Landed Costs " .
<img src="assets/screenshots/12.png"
class="img-thumbnail">
</h3>
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
When You Cancel The Landed Costs Then The Landed Cost Is
Reset And The State Is Changed Back To "DRAFT".
</h3>
<img src="assets/screenshots/13.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
When You Want To Cancel & Delete The Landed Costs Then
Choose The "Cancel and Delete" Option.
</h3>
<img src="assets/screenshots/14.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Press The "CANCEL" Button To Cancel Landed Costs.
</h3>
<img src="assets/screenshots/15.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
After The "CANCEL" The Corresponding Landed Cost Will Be
Deleted.
</h3>
<img src="assets/screenshots/16.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
We Can Cancel Multiple Landed Costs From The Tree View.
</h3>
<img src="assets/screenshots/17.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select The Landed Cost You Want To Cancel And Click
"Cancel" Button.
</h3>
<img src="assets/screenshots/18.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
All Selected Landed Costs Are Cancelled.
</h3>
<img src="assets/screenshots/19.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select The Landed Cost You Want To Cancel&Reset And
Click "Cancel and Reset Draft" Button.
</h3>
<img src="assets/screenshots/20.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
All Selected Landed Costs Changed to Draft State.
</h3>
<img src="assets/screenshots/21.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select the Landed Cost You Want To Cancel&Delete and
Click "Cancel and Delete" Button.
</h3>
<img src="assets/screenshots/22.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
All Landed Costs Will Be Deleted After Cancelled.
</h3>
<img src="assets/screenshots/23.png" class="img-thumbnail">
</div>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED PRODUCTS -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/categories.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Related
Products
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner" style="padding: 30px;">
<div class="carousel-item"
style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/pos_delete_orderline/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/1.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/invoice_multi_approval/#"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/2.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/pos_numpad_show_hide/#"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/3.png">
</div>
</a>
</div>
</div>
<div class="carousel-item active"
style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/website_hide_variants/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/4.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/developer_mode/#"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/5.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/inventory_barcode_scanning/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/6.png">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1"
data-slide="prev" style="width:35px; color:#000"> <span
class="carousel-control-prev-icon"><i
class="fa fa-chevron-left"
style="font-size:24px"></i></span>
</a> <a class="carousel-control-next" href="#demo1"
data-slide="next" style="width:35px; color:#000">
<span class="carousel-control-next-icon"><i
class="fa fa-chevron-right"
style="font-size:24px"></i></span>
</a>
</div>
</div>
</div>
<!-- END OF RELATED PRODUCTS -->
<!-- OUR SERVICES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/star.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our Services
</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/cogs.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Customization</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/wrench.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/lifebuoy.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Support</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/user.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Hire
Odoo
Developer</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/puzzle.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Integration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/update.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Migration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/consultation.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Consultancy</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/training.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/license.png"
class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Licensing Consultancy</h6>
</div>
</div>
</div>
<!-- END OF OUR SERVICES -->
<!-- OUR INDUSTRIES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/corporate.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our
Industries
</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/trading-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easily procure
and
sell your products</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/pos-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easy
configuration
and convivial experience</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/education-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
A platform for
educational management</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/manufacturing-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Plan, track and
schedule your operations</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/ecom-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Mobile
friendly,
awe-inspiring product pages</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/service-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Keep track of
services and invoice</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/restaurant-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Run your bar or
restaurant methodically</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/hotel-black.png"
class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
An
all-inclusive
hotel management application</p>
</div>
</div>
</div>
</div>
<!-- END OF OUR INDUSTRIES -->
<!-- SUPPORT -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/customer-support.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Support
</h2>
</div>
<div class="container mt-5">
<div class="row">
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/support.png" height="48"
width="48" style="width: 42px; height: 42px;"/>
</div>
<div>
<h4>Need Help?</h4>
<p style="line-height: 100%;">Got questions or need
help? Get in touch.</p>
<a href="mailto:odoo@cybrosys.com">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
odoo@cybrosys.com</p>
</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/whatsapp.png" height="52"
width="52" style="width: 52px; height: 52px;"/>
</div>
<div>
<h4>WhatsApp</h4>
<p style="line-height: 100%;">Say hi to us on
WhatsApp!</p>
<a href="https://api.whatsapp.com/send?phone=918606827707">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
+91 86068
27707</p>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center">
<img src="assets/misc/logo.png" width="144" height="31"
style="width:144px; height: 31px; margin-top: 40px;"/>
</div>
</div>
</div>
</div>
</div>
<!-- END OF SUPPORT -->

37
cancel_landed_cost_odoo/views/res_config_settings_views.xml

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Inherited the res.config.setting to add the fields-->
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">
res.config.settings.view.form.inherit.cancel.landed.cost.odoo
</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="stock.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@data-key='stock']" position="inside">
<h2 groups="cancel_landed_cost_odoo.cancel_landed_cost_odoo_group_cancel_user">
Landed Cost Cancel Configuration
</h2>
<div class="row mt16 o_settings_container"
groups="cancel_landed_cost_odoo.cancel_landed_cost_odoo_group_cancel_user">
<div class="o_setting_box o_searchable_setting col-12 col-lg-6">
<div class="o_setting_right_pane">
<div>
<strong>Operation type:</strong>
<div class="text-muted">
Options to Cancel Landed Cost
</div>
<div class="content-group">
<div class="mt16">
<field name="land_cost_cancel_modes"
widget="radio"/>
</div>
</div>
</div>
</div>
</div>
</div>
</xpath>
</field>
</record>
</odoo>

24
cancel_landed_cost_odoo/views/stock_landed_cost_views.xml

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Inherited the Landed Cost Form to Add a Cancel Button in the Header-->
<record id="view_stock_landed_cost_form" model="ir.ui.view">
<field name="name">
stock.landed.cost.view.form.inherit.cancel.landed.cost.odoo
</field>
<field name="model">stock.landed.cost</field>
<field name="inherit_id"
ref="stock_landed_costs.view_stock_landed_cost_form"/>
<field name="arch" type="xml">
<xpath expr="//header" position="inside">
<button name="action_landed_cost_cancel_form" string="Cancel"
type="object"
class="oe_highlight"
groups="cancel_landed_cost_odoo.cancel_landed_cost_odoo_group_cancel_user"
attrs="{'invisible': ['|',('state','!=','done'),('is_cancel','!=',False)]}"/>
</xpath>
<xpath expr="//field[@name='vendor_bill_id']" position="after">
<field name="is_cancel" invisible="1"/>
</xpath>
</field>
</record>
</odoo>
Loading…
Cancel
Save