diff --git a/stock_move_invoice/README.rst b/stock_move_invoice/README.rst new file mode 100644 index 000000000..c093aaff7 --- /dev/null +++ b/stock_move_invoice/README.rst @@ -0,0 +1,40 @@ +Invoice From Stock Picking +========================== +* Enables the option for creating invoice from stock picking + +Installation +============ +- www.odoo.com/documentation/13.0/setup/install.html +- Install our custom addon + +License +------- +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: + Sayooj A O + +Contacts +-------- +* Mail Contact : odoo@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 +========== +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ diff --git a/stock_move_invoice/__init__.py b/stock_move_invoice/__init__.py new file mode 100644 index 000000000..f5dbb7050 --- /dev/null +++ b/stock_move_invoice/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# Author: Sayooj A O() +# +# 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 . import models +from . import wizard diff --git a/stock_move_invoice/__manifest__.py b/stock_move_invoice/__manifest__.py new file mode 100644 index 000000000..4675f98d6 --- /dev/null +++ b/stock_move_invoice/__manifest__.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# Author: Sayooj A O() +# +# 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 . +# +############################################################################# + +{ + 'name': "Invoice From Stock Picking", + 'version': '13.0.1.0.0', + 'summary': """In this module creating customer invoice,vendor bill, customer + credit note and refund from stock picking""", + 'description': """In this module creating customer invoice,vendor bill, customer + credit note and refund from stock picking""", + 'category': 'Stock', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['stock', 'account'], + 'data': [ + 'views/account_move_inherited.xml', + 'views/stock_picking_inherited.xml', + 'views/res_config_settings_inherited.xml', + 'wizard/picking_invoice_wizard.xml', + ], + 'license': "AGPL-3", + 'images': ['static/description/banner.png'], + 'installable': True, + 'application': True, +} diff --git a/stock_move_invoice/doc/RELEASE_NOTES.md b/stock_move_invoice/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..ff6c58aec --- /dev/null +++ b/stock_move_invoice/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 06.04.2020 +#### Version 13.0.1.0.0 +##### ADD +- Initial commit diff --git a/stock_move_invoice/models/__init__.py b/stock_move_invoice/models/__init__.py new file mode 100644 index 000000000..218cd9fba --- /dev/null +++ b/stock_move_invoice/models/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# Author: Sayooj A O() +# +# 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 . import account_move +from . import res_config_settings +from . import stock_picking diff --git a/stock_move_invoice/models/account_move.py b/stock_move_invoice/models/account_move.py new file mode 100644 index 000000000..a30b36df9 --- /dev/null +++ b/stock_move_invoice/models/account_move.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# Author: Sayooj A O() +# +# 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 api, fields, models + + +class AccountMove(models.Model): + _inherit = 'account.move' + + picking_id = fields.Many2one('stock.picking', string='Picking') diff --git a/stock_move_invoice/models/res_config_settings.py b/stock_move_invoice/models/res_config_settings.py new file mode 100644 index 000000000..e43712180 --- /dev/null +++ b/stock_move_invoice/models/res_config_settings.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# Author: Sayooj A O() +# +# 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 fields, models + + +class Settings(models.TransientModel): + _inherit = 'res.config.settings' + customer_journal_id = fields.Many2one('account.journal', string='Customer Journal', + config_parameter='stock_move_invoice.customer_journal_id') + vendor_journal_id = fields.Many2one('account.journal', string='Vendor Journal', + config_parameter='stock_move_invoice.vendor_journal_id') diff --git a/stock_move_invoice/models/stock_picking.py b/stock_move_invoice/models/stock_picking.py new file mode 100644 index 000000000..6ce4d8a4b --- /dev/null +++ b/stock_move_invoice/models/stock_picking.py @@ -0,0 +1,207 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies(). +# Author: Sayooj A O() +# +# 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 fields, models, _ +from odoo.exceptions import UserError + + +class StockPicking(models.Model): + _inherit = 'stock.picking' + invoice_count = fields.Integer(string='Invoices', compute='_compute_invoice_count') + operation_code = fields.Selection(related='picking_type_id.code') + is_return = fields.Boolean() + + def _compute_invoice_count(self): + """This compute function used to count the number of invoice for the picking""" + for picking_id in self: + move_ids = picking_id.env['account.move'].search([('invoice_origin', '=', picking_id.name)]) + if move_ids: + self.invoice_count = len(move_ids) + else: + self.invoice_count = 0 + + def create_invoice(self): + """This is the function for creating customer invoice + from the picking""" + for picking_id in self: + current_user = self.env.uid + if picking_id.picking_type_id.code == 'outgoing': + customer_journal_id = picking_id.env['ir.config_parameter'].sudo().get_param( + 'stock_move_invoice.customer_journal_id') or False + if not customer_journal_id: + raise UserError(_("Please configure the journal from settings")) + invoice_line_list = [] + for move_ids_without_package in picking_id.move_ids_without_package: + vals = (0, 0, { + 'name': move_ids_without_package.description_picking, + 'product_id': move_ids_without_package.product_id.id, + 'price_unit': move_ids_without_package.product_id.lst_price, + 'account_id': move_ids_without_package.product_id.property_account_income_id.id if move_ids_without_package.product_id.property_account_income_id + else move_ids_without_package.product_id.categ_id.property_account_income_categ_id.id, + 'tax_ids': [(6, 0, [picking_id.company_id.account_sale_tax_id.id])], + 'quantity': move_ids_without_package.quantity_done, + }) + invoice_line_list.append(vals) + invoice = picking_id.env['account.move'].create({ + 'type': 'out_invoice', + 'invoice_origin': picking_id.name, + 'invoice_user_id': current_user, + 'narration': picking_id.name, + 'partner_id': picking_id.partner_id.id, + 'currency_id': picking_id.env.user.company_id.currency_id.id, + 'journal_id': int(customer_journal_id), + 'invoice_payment_ref': picking_id.name, + 'picking_id': picking_id.id, + 'invoice_line_ids': invoice_line_list + }) + return invoice + + def create_bill(self): + """This is the function for creating vendor bill + from the picking""" + for picking_id in self: + current_user = self.env.uid + if picking_id.picking_type_id.code == 'incoming': + vendor_journal_id = picking_id.env['ir.config_parameter'].sudo().get_param( + 'stock_move_invoice.vendor_journal_id') or False + if not vendor_journal_id: + raise UserError(_("Please configure the journal from the settings.")) + invoice_line_list = [] + for move_ids_without_package in picking_id.move_ids_without_package: + vals = (0, 0, { + 'name': move_ids_without_package.description_picking, + 'product_id': move_ids_without_package.product_id.id, + 'price_unit': move_ids_without_package.product_id.lst_price, + 'account_id': move_ids_without_package.product_id.property_account_income_id.id if move_ids_without_package.product_id.property_account_income_id + else move_ids_without_package.product_id.categ_id.property_account_income_categ_id.id, + 'tax_ids': [(6, 0, [picking_id.company_id.account_purchase_tax_id.id])], + 'quantity': move_ids_without_package.quantity_done, + }) + invoice_line_list.append(vals) + invoice = picking_id.env['account.move'].create({ + 'type': 'in_invoice', + 'invoice_origin': picking_id.name, + 'invoice_user_id': current_user, + 'narration': picking_id.name, + 'partner_id': picking_id.partner_id.id, + 'currency_id': picking_id.env.user.company_id.currency_id.id, + 'journal_id': int(vendor_journal_id), + 'invoice_payment_ref': picking_id.name, + 'picking_id': picking_id.id, + 'invoice_line_ids': invoice_line_list + }) + return invoice + + def create_customer_credit(self): + """This is the function for creating customer credit note + from the picking""" + for picking_id in self: + current_user = picking_id.env.uid + if picking_id.picking_type_id.code == 'incoming': + customer_journal_id = picking_id.env['ir.config_parameter'].sudo().get_param( + 'stock_move_invoice.customer_journal_id') or False + if not customer_journal_id: + raise UserError(_("Please configure the journal from settings")) + invoice_line_list = [] + for move_ids_without_package in picking_id.move_ids_without_package: + vals = (0, 0, { + 'name': move_ids_without_package.description_picking, + 'product_id': move_ids_without_package.product_id.id, + 'price_unit': move_ids_without_package.product_id.lst_price, + 'account_id': move_ids_without_package.product_id.property_account_income_id.id if move_ids_without_package.product_id.property_account_income_id + else move_ids_without_package.product_id.categ_id.property_account_income_categ_id.id, + 'tax_ids': [(6, 0, [picking_id.company_id.account_sale_tax_id.id])], + 'quantity': move_ids_without_package.quantity_done, + }) + invoice_line_list.append(vals) + invoice = picking_id.env['account.move'].create({ + 'type': 'out_refund', + 'invoice_origin': picking_id.name, + 'invoice_user_id': current_user, + 'narration': picking_id.name, + 'partner_id': picking_id.partner_id.id, + 'currency_id': picking_id.env.user.company_id.currency_id.id, + 'journal_id': int(customer_journal_id), + 'invoice_payment_ref': picking_id.name, + 'picking_id': picking_id.id, + 'invoice_line_ids': invoice_line_list + }) + return invoice + + def create_vendor_credit(self): + """This is the function for creating refund + from the picking""" + for picking_id in self: + current_user = self.env.uid + if picking_id.picking_type_id.code == 'outgoing': + vendor_journal_id = picking_id.env['ir.config_parameter'].sudo().get_param( + 'stock_move_invoice.vendor_journal_id') or False + if not vendor_journal_id: + raise UserError(_("Please configure the journal from the settings.")) + invoice_line_list = [] + for move_ids_without_package in picking_id.move_ids_without_package: + vals = (0, 0, { + 'name': move_ids_without_package.description_picking, + 'product_id': move_ids_without_package.product_id.id, + 'price_unit': move_ids_without_package.product_id.lst_price, + 'account_id': move_ids_without_package.product_id.property_account_income_id.id if move_ids_without_package.product_id.property_account_income_id + else move_ids_without_package.product_id.categ_id.property_account_income_categ_id.id, + 'tax_ids': [(6, 0, [picking_id.company_id.account_purchase_tax_id.id])], + 'quantity': move_ids_without_package.quantity_done, + }) + invoice_line_list.append(vals) + invoice = picking_id.env['account.move'].create({ + 'type': 'in_refund', + 'invoice_origin': picking_id.name, + 'invoice_user_id': current_user, + 'narration': picking_id.name, + 'partner_id': picking_id.partner_id.id, + 'currency_id': picking_id.env.user.company_id.currency_id.id, + 'journal_id': int(vendor_journal_id), + 'invoice_payment_ref': picking_id.name, + 'picking_id': picking_id.id, + 'invoice_line_ids': invoice_line_list + }) + return invoice + + def action_open_picking_invoice(self): + """This is the function of the smart button which redirect to the + invoice related to the current picking""" + return { + 'name': 'Invoices', + 'type': 'ir.actions.act_window', + 'view_mode': 'tree,form', + 'res_model': 'account.move', + 'domain': [('invoice_origin', '=', self.name)], + 'context': {'create': False}, + 'target': 'current' + } + + +class StockReturnInvoicePicking(models.TransientModel): + _inherit = 'stock.return.picking' + + def _create_returns(self): + """in this function the picking is marked as return""" + new_picking, pick_type_id = super(StockReturnInvoicePicking, self)._create_returns() + picking = self.env['stock.picking'].browse(new_picking) + picking.write({'is_return': True}) + return new_picking, pick_type_id diff --git a/stock_move_invoice/security/ir.model.access.csv b/stock_move_invoice/security/ir.model.access.csv new file mode 100644 index 000000000..5fc94b439 --- /dev/null +++ b/stock_move_invoice/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_picking_invoice_wizard_manager_id,access_picking_invoice_wizard_manager,model_picking_invoice_wizard,base.group_erp_manager,1,1,1,1 +access_picking_invoice_wizard_user_id,access_picking_invoice_wizard_user,model_picking_invoice_wizard,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/stock_move_invoice/static/description/banner.png b/stock_move_invoice/static/description/banner.png new file mode 100644 index 000000000..29b279a12 Binary files /dev/null and b/stock_move_invoice/static/description/banner.png differ diff --git a/stock_move_invoice/static/description/icon.png b/stock_move_invoice/static/description/icon.png new file mode 100644 index 000000000..40cad0eae Binary files /dev/null and b/stock_move_invoice/static/description/icon.png differ diff --git a/stock_move_invoice/static/description/images/banner_barcode_scanning.jpeg b/stock_move_invoice/static/description/images/banner_barcode_scanning.jpeg new file mode 100644 index 000000000..529143e4e Binary files /dev/null and b/stock_move_invoice/static/description/images/banner_barcode_scanning.jpeg differ diff --git a/stock_move_invoice/static/description/images/banner_currency_total.png b/stock_move_invoice/static/description/images/banner_currency_total.png new file mode 100644 index 000000000..6153ed719 Binary files /dev/null and b/stock_move_invoice/static/description/images/banner_currency_total.png differ diff --git a/stock_move_invoice/static/description/images/banner_customer_sequence.jpeg b/stock_move_invoice/static/description/images/banner_customer_sequence.jpeg new file mode 100644 index 000000000..7451342d6 Binary files /dev/null and b/stock_move_invoice/static/description/images/banner_customer_sequence.jpeg differ diff --git a/stock_move_invoice/static/description/images/banner_previous_rates.jpeg b/stock_move_invoice/static/description/images/banner_previous_rates.jpeg new file mode 100644 index 000000000..e10c28799 Binary files /dev/null and b/stock_move_invoice/static/description/images/banner_previous_rates.jpeg differ diff --git a/stock_move_invoice/static/description/images/banner_product_branding.png b/stock_move_invoice/static/description/images/banner_product_branding.png new file mode 100644 index 000000000..aa12beabb Binary files /dev/null and b/stock_move_invoice/static/description/images/banner_product_branding.png differ diff --git a/stock_move_invoice/static/description/images/banner_product_expiry.jpeg b/stock_move_invoice/static/description/images/banner_product_expiry.jpeg new file mode 100644 index 000000000..84a872d44 Binary files /dev/null and b/stock_move_invoice/static/description/images/banner_product_expiry.jpeg differ diff --git a/stock_move_invoice/static/description/images/checked.png b/stock_move_invoice/static/description/images/checked.png new file mode 100644 index 000000000..578cedb80 Binary files /dev/null and b/stock_move_invoice/static/description/images/checked.png differ diff --git a/stock_move_invoice/static/description/images/cybrosys.png b/stock_move_invoice/static/description/images/cybrosys.png new file mode 100644 index 000000000..d76b5bafb Binary files /dev/null and b/stock_move_invoice/static/description/images/cybrosys.png differ diff --git a/stock_move_invoice/static/description/images/invoice_picking.png b/stock_move_invoice/static/description/images/invoice_picking.png new file mode 100644 index 000000000..4bada43ce Binary files /dev/null and b/stock_move_invoice/static/description/images/invoice_picking.png differ diff --git a/stock_move_invoice/static/description/images/stock_move_invoice-1.png b/stock_move_invoice/static/description/images/stock_move_invoice-1.png new file mode 100644 index 000000000..d394185ff Binary files /dev/null and b/stock_move_invoice/static/description/images/stock_move_invoice-1.png differ diff --git a/stock_move_invoice/static/description/images/stock_move_invoice-2.png b/stock_move_invoice/static/description/images/stock_move_invoice-2.png new file mode 100644 index 000000000..f0f9e5510 Binary files /dev/null and b/stock_move_invoice/static/description/images/stock_move_invoice-2.png differ diff --git a/stock_move_invoice/static/description/images/stock_move_invoice-3.png b/stock_move_invoice/static/description/images/stock_move_invoice-3.png new file mode 100644 index 000000000..2ab2a42b5 Binary files /dev/null and b/stock_move_invoice/static/description/images/stock_move_invoice-3.png differ diff --git a/stock_move_invoice/static/description/images/stock_move_invoice-4.png b/stock_move_invoice/static/description/images/stock_move_invoice-4.png new file mode 100644 index 000000000..311e616ef Binary files /dev/null and b/stock_move_invoice/static/description/images/stock_move_invoice-4.png differ diff --git a/stock_move_invoice/static/description/images/stock_move_invoice-5.png b/stock_move_invoice/static/description/images/stock_move_invoice-5.png new file mode 100644 index 000000000..dab7f4060 Binary files /dev/null and b/stock_move_invoice/static/description/images/stock_move_invoice-5.png differ diff --git a/stock_move_invoice/static/description/images/stock_move_invoice-6.png b/stock_move_invoice/static/description/images/stock_move_invoice-6.png new file mode 100644 index 000000000..5672ad310 Binary files /dev/null and b/stock_move_invoice/static/description/images/stock_move_invoice-6.png differ diff --git a/stock_move_invoice/static/description/images/stock_move_invoice-7.png b/stock_move_invoice/static/description/images/stock_move_invoice-7.png new file mode 100644 index 000000000..6f3b0eb75 Binary files /dev/null and b/stock_move_invoice/static/description/images/stock_move_invoice-7.png differ diff --git a/stock_move_invoice/static/description/index.html b/stock_move_invoice/static/description/index.html new file mode 100644 index 000000000..5737bc221 --- /dev/null +++ b/stock_move_invoice/static/description/index.html @@ -0,0 +1,549 @@ +
+ cybrosys-logo
+
+
+
+

Invoice From Stock Picking

+

Module for creating customer invoice,vendor bill, + credit note and refund from stock picking.

+
+

Key Highlights

+
    +
  • checkCreating invoice,bill,credit note and refund from individual picking. +
  • +
  • checkCreating invoice documents by selecting multiple documents. +
  • +
  • checkOption for configuring the journals from the settings. +
  • +
+
+
+
+
+
+
+
+ +
+
+ +

Overview

+
+

+ This module helps to create invoice,bill,credit note and refund from individual picking. +

+
+
+ +

Invoice From Stock Picking

+
+
    +
  • + check + Creating invoice documents by selecting multiple documents. +
  • +
  • + checkOption for configuring the journals from the settings. +
  • + +
+
+ +
+
+

Screenshots

+
+
+
+ +
+
+
+
+
+
    +
+
+
+
+
+
+
+

Suggested Products

+
+ +
+
+

Our Service

+
+ +
+
+
+

Our Industries

+
+ +
+
+
+
+ Odoo Industry
+
+
+

+ + Trading

+

+ Easily procure and sell your products.

+
+
+
+
+
+ Odoo Industry +
+
+
+

+ + Manufacturing

+

+ Plan, track and schedule your operations.

+
+
+
+
+
+ + Odoo Industry
+
+
+

+ + Restaurant

+

+ Run your bar or restaurant methodical.

+
+
+
+
+
+ Odoo Industry
+
+
+

+ + POS

+

+ Easy configuring and convivial selling.

+
+
+
+
+
+ Odoo Industry
+
+
+

+ + E-commerce & Website

+

+ Mobile friendly, awe-inspiring product pages.

+
+
+
+
+
+ + Odoo Industry
+
+
+

+ + Hotel Management

+

+ An all-inclusive hotel management application.

+
+
+
+
+
+ + Odoo Industry
+
+
+

+ + Education

+

+ A Collaborative platform for educational management.

+
+
+
+
+
+ Odoo Industry
+
+
+

+ + Service Management

+

+ Keep track of services and invoice accordingly.

+
+
+
+
+
+ +
+
+
+

Need Any Help?

+
+

If you have anything to share with us based on your use of this module, please + let us know. We are ready to offer our support.

+
+

Email us

+

odoo@cybrosys.com / info@cybrosys.com

+
+
+

Contact Us

+ www.cybrosys.com +
+
+
+
+
+
+
+
+
+ +
+ + + + + + + +
+
+
+ \ No newline at end of file diff --git a/stock_move_invoice/views/account_move_inherited.xml b/stock_move_invoice/views/account_move_inherited.xml new file mode 100644 index 000000000..8eb74a27a --- /dev/null +++ b/stock_move_invoice/views/account_move_inherited.xml @@ -0,0 +1,15 @@ + + + + + account.move.form.view.inherited + account.move + + + + + + + + + \ No newline at end of file diff --git a/stock_move_invoice/views/res_config_settings_inherited.xml b/stock_move_invoice/views/res_config_settings_inherited.xml new file mode 100644 index 000000000..cf61956f4 --- /dev/null +++ b/stock_move_invoice/views/res_config_settings_inherited.xml @@ -0,0 +1,42 @@ + + + + res.config.settings.invoice.modification + res.config.settings + + + + +

Invoice From Stock Picking

+
+
+
+
+ Journals + +
+ Journals which should apply for the invoice creation from stock picking +
+
+
+
+
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/stock_move_invoice/views/stock_picking_inherited.xml b/stock_move_invoice/views/stock_picking_inherited.xml new file mode 100644 index 000000000..4c0a1708f --- /dev/null +++ b/stock_move_invoice/views/stock_picking_inherited.xml @@ -0,0 +1,37 @@ + + + + + stock.picking.form.view.inherited + stock.picking + + + + + + + + + + +