diff --git a/customer_sequence/README.rst b/customer_sequence/README.rst new file mode 100644 index 000000000..8dc1d9153 --- /dev/null +++ b/customer_sequence/README.rst @@ -0,0 +1,39 @@ +Customer Sequence v12 +===================== + +This module will give a unique code to each customer and supplier. + +Configuration +============= +You should configure the company form for the proper working of this module. +The supplier code will start from 0000,0001,.. and customer code start from the number you give in the company form + +Further information +=================== +I added a security file which gives access res.company for all users. +if you not configure the company form then the customer code start with 1,2,..and supplier code always start with 0001,0002,.. + +Installation +============ +- www.odoo.com/documentation/11.0/setup/install.html +- Install our custom addon + +Bug Tracker +=========== +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Credits +======= +Cybrosys Techno Solutions + +Author +====== +* Cybrosys Techno Solutions +Developer : Vinaya (odoo@cybrosys.com) @ Cybrosys + +Maintainer +---------- + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com. diff --git a/customer_sequence/__init__.py b/customer_sequence/__init__.py new file mode 100644 index 000000000..cde864bae --- /dev/null +++ b/customer_sequence/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/customer_sequence/__manifest__.py b/customer_sequence/__manifest__.py new file mode 100644 index 000000000..166927ca1 --- /dev/null +++ b/customer_sequence/__manifest__.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2017-TODAY Cybrosys Technologies(). +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# It is forbidden to publish, distribute, sublicense, or sell copies +# of the Software or modified copies of the Software. +# +# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +{ + 'name': "Customer Sequence", + 'version': '12.0.1.0.0', + 'summary': """Unique Customer Code""", + 'description': """ + Each customer have unique number code + """, + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': "https://cybrosys.com/", + 'category': 'Sales', + 'depends': ['sale'], + 'data': [ + 'views/res_partner_fom.xml', + 'views/res_company.xml', + 'security/ir.model.access.csv', + ], + 'demo': [], + 'images': ['static/description/banner.jpg'], + 'license': 'LGPL-3', + 'installable': True, + 'application': False +} diff --git a/customer_sequence/models/__init__.py b/customer_sequence/models/__init__.py new file mode 100644 index 000000000..5380d0d59 --- /dev/null +++ b/customer_sequence/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import res_company +from . import res_partner diff --git a/customer_sequence/models/res_company.py b/customer_sequence/models/res_company.py new file mode 100644 index 000000000..35298adbf --- /dev/null +++ b/customer_sequence/models/res_company.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields + + +class CompanySequence(models.Model): + _inherit = 'res.company' + + customer_code = fields.Integer(string='Customer code', required=True) + supp_code = fields.Integer(string='Supplier code') + next_code = fields.Integer(string='Next code') diff --git a/customer_sequence/models/res_partner.py b/customer_sequence/models/res_partner.py new file mode 100644 index 000000000..9ccb9ce27 --- /dev/null +++ b/customer_sequence/models/res_partner.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields, api + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + unique_id = fields.Char(string='Unique Id', help="The Unique Sequence no", readonly=True, default='/') + + @api.model + def create(self, values): + res = super(ResPartner, self).create(values) + company_seq = self.env['res.users'].browse(self._uid).company_id + if res.customer and res.unique_id == '/': + if company_seq.next_code: + res.unique_id = company_seq.next_code + res.name = '[' + str(company_seq.next_code) + ']' + str(res.name) + company_seq.write({'next_code': company_seq.next_code + 1}) + else: + res.unique_id = company_seq.customer_code + res.name = '[' + str(company_seq.customer_code) + ']' + str(res.name) + company_seq.write({'next_code': company_seq.customer_code + 1}) + if res.supplier == True and res.unique_id == '/': + if company_seq.supp_code < 10: + res.unique_id = '000' + str(company_seq.supp_code) + res.name = '[' + '000' + str(company_seq.supp_code) + ']' + str(res.name) + company_seq.write({'supp_code': company_seq.supp_code + 1}) + elif company_seq.supp_code < 100: + res.unique_id = '00' + str(company_seq.supp_code) + res.name = '[' + '00' + str(company_seq.supp_code) + ']' + str(res.name) + company_seq.write({'supp_code': company_seq.supp_code + 1}) + elif company_seq.supp_code < 1000: + res.unique_id = '0' + str(company_seq.supp_code) + res.name = '[' + '0' + str(company_seq.supp_code) + ']' + str(res.name) + company_seq.write({'supp_code': company_seq.supp_code + 1}) + elif company_seq.supp_code > 1000: + res.unique_id = company_seq.supp_code + res.name = '[' + str(company_seq.supp_code) + ']' + str(res.name) + company_seq.write({'supp_code': company_seq.supp_code + 1}) + else: + res.unique_id = company_seq.supp_code + res.name = '[' + '0001' + ']' + str(res.name) + company_seq.write({'supp_code': 2}) + return res diff --git a/customer_sequence/security/ir.model.access.csv b/customer_sequence/security/ir.model.access.csv new file mode 100644 index 000000000..259c9de31 --- /dev/null +++ b/customer_sequence/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_res_company,access_res_company,model_res_company,base.group_user,1,1,1,0 diff --git a/customer_sequence/static/description/banner.jpg b/customer_sequence/static/description/banner.jpg new file mode 100644 index 000000000..7451342d6 Binary files /dev/null and b/customer_sequence/static/description/banner.jpg differ diff --git a/customer_sequence/static/description/company_form.png b/customer_sequence/static/description/company_form.png new file mode 100644 index 000000000..0fed569a8 Binary files /dev/null and b/customer_sequence/static/description/company_form.png differ diff --git a/customer_sequence/static/description/customer_form.png b/customer_sequence/static/description/customer_form.png new file mode 100644 index 000000000..e156e03b4 Binary files /dev/null and b/customer_sequence/static/description/customer_form.png differ diff --git a/customer_sequence/static/description/cybro_logo.png b/customer_sequence/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/customer_sequence/static/description/cybro_logo.png differ diff --git a/customer_sequence/static/description/icon.png b/customer_sequence/static/description/icon.png new file mode 100644 index 000000000..71a3a3528 Binary files /dev/null and b/customer_sequence/static/description/icon.png differ diff --git a/customer_sequence/static/description/index.html b/customer_sequence/static/description/index.html new file mode 100644 index 000000000..4cc9d1a5a --- /dev/null +++ b/customer_sequence/static/description/index.html @@ -0,0 +1,72 @@ +
+
+

Customer Sequence

+

Give unique code to each customer

+

Cybrosys Technologies

+
+
+ +
+
+
+

Overview

+

+ Now it is very easy to identify your customers with unique code. This module gives coding to the customers as well as to the supplier. +

+
+
+
+
+
+

Company form

+
+

+ ☛ Give the starting number of code.
+ ☛ You can give separate starting for each company if it is a multi company.
+

+
+ +
+
+
+
+
+
+

Customer Form

+
+

+ ☛ Create a customer and the code will generate automatically as defined in the company form..
+

+
+ +
+
+
+
+ +
+

Need Any Help?

+ +
+ diff --git a/customer_sequence/views/res_company.xml b/customer_sequence/views/res_company.xml new file mode 100644 index 000000000..72724c4a8 --- /dev/null +++ b/customer_sequence/views/res_company.xml @@ -0,0 +1,16 @@ + + + + + Company Sequence + res.company + + + + + + + + + + diff --git a/customer_sequence/views/res_partner_fom.xml b/customer_sequence/views/res_partner_fom.xml new file mode 100644 index 000000000..dcb8d32ef --- /dev/null +++ b/customer_sequence/views/res_partner_fom.xml @@ -0,0 +1,26 @@ + + + + + res.partner.form.inherit + res.partner + + + + + + + + + + res.partner.form.inherit + res.partner + + + + + + + + + \ No newline at end of file diff --git a/legal_case_management/README.rst b/legal_case_management/README.rst new file mode 100755 index 000000000..becc94579 --- /dev/null +++ b/legal_case_management/README.rst @@ -0,0 +1,37 @@ +Legal Case Management +===================== + +Module for managing Legal Processes + + +Installation +============ +- www.odoo.com/documentation/12.0/setup/install.html +- Install our custom addon + +License +======= +GNU Lesser General Public License, Version 3 (LGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +Bug Tracker +=========== +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Credits +======= +* Cybrosys Techno Solutions + +Author +------ + +Developer: Sayooj A O(odoo@cybrosys.com) @ Cybrosys +Developer: Vinaya (odoo@cybrosys.com) @ Cybrosys + +Maintainer +---------- + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com. + diff --git a/legal_case_management/__init__.py b/legal_case_management/__init__.py new file mode 100644 index 000000000..5f9e6d215 --- /dev/null +++ b/legal_case_management/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +################################################################################### +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2018-TODAY Cybrosys Technologies (). +# Author: Sayooj A O() +# +# This program is free software: you can modify +# it under the terms of the GNU Lesser General Public License(LGPLv3) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +from . import models \ No newline at end of file diff --git a/legal_case_management/__manifest__.py b/legal_case_management/__manifest__.py new file mode 100644 index 000000000..8dceb2259 --- /dev/null +++ b/legal_case_management/__manifest__.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +################################################################################### +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2018-TODAY Cybrosys Technologies (). +# Author: Sayooj A O() +# +# This program is free software: you can modify +# it under the terms of the GNU Lesser General Public License(LGPLv3) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +{ + 'name': 'Legal Case Management', + 'summary': """Module for managing LEGAL Processes""", + 'version': '12.0.1.0.0', + 'description': """ALL LEGAL FIRM BASED PROBLEMS GET SOLVED HERE""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': 'http://www.cybrosys.com', + 'category': 'Tools', + 'depends': ['base', 'hr_payroll', 'document', 'hr'], + 'license': 'LGPL-3', + 'data': [ + 'views/legal_views.xml', + 'views/res_partner_views.xml', + 'views/sequence.xml', + 'security/ir.model.access.csv', + + ], + 'demo': [], + 'images': ['static/description/banner.png'], + 'installable': True, + 'auto_install': False, +} diff --git a/legal_case_management/doc/RELEASE_NOTES.md b/legal_case_management/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..cf86a35fa --- /dev/null +++ b/legal_case_management/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 23.01.2019 +#### Version 12.0.1.0.0 +##### ADD +- Initial commit for Legal Case Managment diff --git a/legal_case_management/models/__init__.py b/legal_case_management/models/__init__.py new file mode 100644 index 000000000..d6b387c8c --- /dev/null +++ b/legal_case_management/models/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +################################################################################### +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2018-TODAY Cybrosys Technologies (). +# Author: Sayooj A O() +# +# This program is free software: you can modify +# it under the terms of the GNU Lesser General Public License(LGPLv3) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +from . import legal \ No newline at end of file diff --git a/legal_case_management/models/legal.py b/legal_case_management/models/legal.py new file mode 100644 index 000000000..bc3de2be7 --- /dev/null +++ b/legal_case_management/models/legal.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields, api,_ + + +class LawyerRecords(models.Model): + _name = 'case.case' + _description = 'Case Register' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _rec_name = "name" + case_category = fields.Selection([('f', 'Family Cases'), ('c', 'Criminal Cases'), ('b', 'Traffic Cases'), + ('j', 'Civil Cases')], string='Category of Case', required=True) + case_details = fields.Text(string='Details Of Case (SECTION)', required=True) + case_lawyer = fields.Many2one('hr.employee', string=" Lawyer", required=True, track_visibility='onchange') + case_client = fields.Many2one('res.partner', string='Client', required=True, track_visibility='onchange', + domain=[['customer', '=', 1]]) + case_court = fields.Many2one('court.court', string='Court', required=True) + case_next = fields.Date(string='Sitting Date', required=True) + case_menu = fields.One2many('case.case.line', 'connect_id', string="Sitting") + case_note = fields.One2many('notes.notes', 'connect_id1', string="Internal Notes") + name = fields.Char(string='Reference', required=True, copy=False, readonly=True, + default=lambda self: _('New')) + obj_attachment = fields.Integer(string='attachment', compute='attachments1') + + state = fields.Selection([('draft', 'Draft'), + ('invoiced', 'Invoiced'), + ('completed', 'Completed')], default='draft', track_visibility='onchange') + + @api.model + def create(self, vals): + vals['name'] = self.env['ir.sequence'].next_by_code('case.case') + return super(LawyerRecords, self).create(vals) + + @api.one + def attachments1(self): + obj_attachment = self.env['ir.attachment'] + for record in self: + record.attachment_count = 0 + attachment_ids = obj_attachment.search([('res_model', '=', 'case.case'), ('res_id', '=', record.id)]) + if attachment_ids: + record.obj_attachment = len(attachment_ids) + + @api.multi + def count_attachments(self): + self.ensure_one() + domain = [('res_model', '=', 'case.case'), ('res_id', 'in', self.ids)] + return { + + 'name': 'ir.attachment tree', + 'view_type': 'form', + 'view_mode': 'tree,form', + 'res_model': 'ir.attachment', + 'type': 'ir.actions.act_window', + 'target': 'current', + 'domain': domain, + 'context': "{'default_res_model': '%s','default_res_id': %d}" % (self._name, self.id) + } + + @api.multi + def make_payment(self): + self.ensure_one() + self.sudo().write({ + 'state': 'invoiced' + }) + + ctx = { + + 'default_corres_customer': self.case_client.id, 'default_employee_id': self.case_lawyer.id + } + return { + 'name': 'my.form', + 'view_type': 'form', + 'view_mode': 'form,tree', + 'res_model': 'hr.payslip', + 'type': 'ir.actions.act_window', + 'target': 'current', + 'context': ctx, + } + + @api.multi + def add_sittings(self): + self.ensure_one() + self.sudo().write({ + 'state': 'draft' + }) + + @api.multi + def mark_done(self): + self.ensure_one() + self.sudo().write({ + 'state': 'completed' + }) + + + +class LawyerRecordsline(models.Model): + _name = 'case.case.line' + case_description = fields.Text(string='Description', required=True) + connect_id = fields.Many2one('case.case', string='Description', required=True) + case_date = fields.Date(string='Date', required=True) + + +class InternalNotes(models.Model): + _name = 'notes.notes' + case_internal = fields.Text(string='Internal Notes', required=True) + connect_id1 = fields.Many2one('case.case', string='Internal Notes', required=True) + + +class Court(models.Model): + _name = 'court.court' + _rec_name = 'case_court' + case_court = fields.Text(string='Court', required=True) + + +class PartnerForm(models.Model): + + _inherit = 'res.partner' + + class PartnerForm(models.Model): + _inherit = 'res.partner' + + customer = fields.Boolean(string='Is a Client', default=True) + + +class Payslip(models.Model): + + _inherit = 'hr.payslip' + + corres_customer = fields.Many2one('res.partner',string='Customer') diff --git a/legal_case_management/security/ir.model.access.csv b/legal_case_management/security/ir.model.access.csv new file mode 100644 index 000000000..b49f9ebcf --- /dev/null +++ b/legal_case_management/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_case_id,access_case,legal_case_management.model_case_case,base.group_user,1,1,1,0 +access_case_line_id,access_case_line,legal_case_management.model_case_case_line,base.group_user,1,1,1,0 +access_note_id,access_note,legal_case_management.model_notes_notes,base.group_user,1,1,1,0 +access_court_id,access_court,legal_case_management.model_court_court,base.group_user,1,1,1,0 \ No newline at end of file diff --git a/legal_case_management/static/description/banner.png b/legal_case_management/static/description/banner.png new file mode 100644 index 000000000..e7270c749 Binary files /dev/null and b/legal_case_management/static/description/banner.png differ diff --git a/legal_case_management/static/description/icon.png b/legal_case_management/static/description/icon.png new file mode 100644 index 000000000..be36aca9c Binary files /dev/null and b/legal_case_management/static/description/icon.png differ diff --git a/legal_case_management/static/description/index.html b/legal_case_management/static/description/index.html new file mode 100644 index 000000000..b7f96d0ae --- /dev/null +++ b/legal_case_management/static/description/index.html @@ -0,0 +1,410 @@ + +
+
+

+ Legal Case Management +

+

+ Module for managing Legal Processes +

+
+ Cybrosys Technologies +
+ +
+ cybrosys technologies +
+
+
+
+ +
+
+

+ Overview +

+

+ Legal case management module helps to manage the Clients,Lawyers,Case Registration,Payments and + provides pivot reports of the process. +

+

+ Configuration +

+

+ No additional configuration required +

+
+
+ +
+
+

+ Features +

+

+ + Creating Lawyers and Clients. +

+

+ + Featuring Case Registration. +

+

+ + Arrange Sittings for the case +

+

+ + Provision to add case related attachments +

+

+ + Payment Of the case and Payslip generation for lawyers +

+

+ + Offering a pivot report. +

+
+
+ +
+
+

+ Screenshots +

+

+ + We can create or view the clients from the menu "Clients" under Master Data +

+
+ +
+

+ + We can create or view the lawyers from the menu "Lawyers" under Master Data +

+
+ +
+

+ + A new case can be registered from the menu "Case Register" by filling the mandatory fields. + And can attach any documents if needed. +

+
+ +
+

+ + And we can add multiple sittings to the same case from the tab "Sittings" +

+
+ +
+

+ + An Internal Note field is added for adding any notes related to case +

+
+ +
+

+ + By clicking on the button "Make Payment" we were lead into a form of making payment to the + corresponding lawyer. +

+
+ +
+

+ + If we want to add sittings after the payment there is button "Add Sittings" is provided and + if the case is over we can mark it as by clicking on "Mark as Done" +

+
+ +
+

+ + The state changes from "Invoiced" to "Completed" after clicking of "Mark As Done" +

+
+ +
+

+ + We can view the pivot report based on Lawyer,Client,Case Category etc.. +

+
+ +
+ +
+
+ +
+
+ cybrosys technologies +
+
+
+
+

+ Our Services +

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

+ + Odoo Support +

+ +
+ +
+
+
+
+
+

+ 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. +

+
+
+
+
+
+
+ +
diff --git a/legal_case_management/static/description/legal-case-cybrosys-1.png b/legal_case_management/static/description/legal-case-cybrosys-1.png new file mode 100644 index 000000000..da2a2bb89 Binary files /dev/null and b/legal_case_management/static/description/legal-case-cybrosys-1.png differ diff --git a/legal_case_management/static/description/legal-case-cybrosys-2.png b/legal_case_management/static/description/legal-case-cybrosys-2.png new file mode 100644 index 000000000..6b53ff3a1 Binary files /dev/null and b/legal_case_management/static/description/legal-case-cybrosys-2.png differ diff --git a/legal_case_management/static/description/legal-case-cybrosys-3.png b/legal_case_management/static/description/legal-case-cybrosys-3.png new file mode 100644 index 000000000..2cc050854 Binary files /dev/null and b/legal_case_management/static/description/legal-case-cybrosys-3.png differ diff --git a/legal_case_management/static/description/legal-case-cybrosys-4.png b/legal_case_management/static/description/legal-case-cybrosys-4.png new file mode 100644 index 000000000..67ad41984 Binary files /dev/null and b/legal_case_management/static/description/legal-case-cybrosys-4.png differ diff --git a/legal_case_management/static/description/legal-case-cybrosys-5.png b/legal_case_management/static/description/legal-case-cybrosys-5.png new file mode 100644 index 000000000..ef675fe1f Binary files /dev/null and b/legal_case_management/static/description/legal-case-cybrosys-5.png differ diff --git a/legal_case_management/static/description/legal-case-cybrosys-6.png b/legal_case_management/static/description/legal-case-cybrosys-6.png new file mode 100644 index 000000000..40a3cf679 Binary files /dev/null and b/legal_case_management/static/description/legal-case-cybrosys-6.png differ diff --git a/legal_case_management/static/description/legal-case-cybrosys-7.png b/legal_case_management/static/description/legal-case-cybrosys-7.png new file mode 100644 index 000000000..d6677bfca Binary files /dev/null and b/legal_case_management/static/description/legal-case-cybrosys-7.png differ diff --git a/legal_case_management/static/description/legal-case-cybrosys-8.png b/legal_case_management/static/description/legal-case-cybrosys-8.png new file mode 100644 index 000000000..9b665cd78 Binary files /dev/null and b/legal_case_management/static/description/legal-case-cybrosys-8.png differ diff --git a/legal_case_management/static/description/legal-case-cybrosys-9.png b/legal_case_management/static/description/legal-case-cybrosys-9.png new file mode 100644 index 000000000..eb7bd4694 Binary files /dev/null and b/legal_case_management/static/description/legal-case-cybrosys-9.png differ diff --git a/legal_case_management/views/legal_views.xml b/legal_case_management/views/legal_views.xml new file mode 100644 index 000000000..3bc97f3e3 --- /dev/null +++ b/legal_case_management/views/legal_views.xml @@ -0,0 +1,177 @@ + + + + + case.case.tree + case.case + + + + + + + + + + + + + + case.case.form + case.case + + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + +
+
+
+
+
+ + + +
+ +
+
+ + + Register + case.case + form + tree,form,kanban + [] + +

Register new case +

+
+
+ + + + Lawyers + hr.employee + form + kanban,tree,form + [] + {"default_x_hide": 1} + +

Create new Lawyer +

+
+
+ + + + Clients + res.partner + form + kanban,tree,form + [['customer', '=', 1]] + +

Create new client +

+
+
+ + + + pivot + case.case + pivot + + + + + + + + + + + + View Pivot + case.case + form + pivot + [] + +

Enter the target +

+
+
+ + + + + + + + + + + + +
+
\ No newline at end of file diff --git a/legal_case_management/views/res_partner_views.xml b/legal_case_management/views/res_partner_views.xml new file mode 100644 index 000000000..d825df52f --- /dev/null +++ b/legal_case_management/views/res_partner_views.xml @@ -0,0 +1,36 @@ + + + + partner inherit + res.partner + + + + + + + + + + + + + + 1 + + + + + + partner inherit + hr.payslip + + + + + + + + + + \ No newline at end of file diff --git a/legal_case_management/views/sequence.xml b/legal_case_management/views/sequence.xml new file mode 100644 index 000000000..4af307a7a --- /dev/null +++ b/legal_case_management/views/sequence.xml @@ -0,0 +1,11 @@ + + + + + Legal Firm Management + case.case + LF + 4 + + + \ No newline at end of file diff --git a/product_price_update_advanced/README.rst b/product_price_update_advanced/README.rst new file mode 100644 index 000000000..afa59a867 --- /dev/null +++ b/product_price_update_advanced/README.rst @@ -0,0 +1,26 @@ +Product Price Update v12 +======================== + +Product price update is an effective module which helps to update the price of any product. +We can update sale price and cost price of any product on a single click. + +Installation +============ + +Just select it from available modules to install it, there is no need to extra installations. + +Configuration +============= + +Nothing to configure. + + +Credits +======= +* Cybrosys Techno Solutions, https://www.cybrosys.com + +Author +------ +* v10 : Saritha Sahadevan +* v11 : Niyas Raphy +* v12 : Vinaya S B diff --git a/product_price_update_advanced/__init__.py b/product_price_update_advanced/__init__.py new file mode 100644 index 000000000..d5883b592 --- /dev/null +++ b/product_price_update_advanced/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################### +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2018-TODAY Cybrosys Technologies ().# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +from . import models + + diff --git a/product_price_update_advanced/__manifest__.py b/product_price_update_advanced/__manifest__.py new file mode 100644 index 000000000..0df062b96 --- /dev/null +++ b/product_price_update_advanced/__manifest__.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +################################################################################### +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2018-TODAY Cybrosys Technologies ().# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +{ + 'name': "Advanced Product Price Update", + 'version': '12.0.1.0.0', + 'summary': """User Can Easily Update Cost Price/Sale Price of Products""", + 'description': """This module updates price of any product on single click""", + 'author': "Cybrosys Techno Solutions", + 'company': 'Cybrosys Techno Solutions', + 'website': "https://www.Cybrosys.com", + 'category': 'Tools', + 'depends': ['base', 'sale'], + 'data': [ + 'views/product_price_view.xml' + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/product_price_update_advanced/models/__init__.py b/product_price_update_advanced/models/__init__.py new file mode 100644 index 000000000..3993ab5ca --- /dev/null +++ b/product_price_update_advanced/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import product_price diff --git a/product_price_update_advanced/models/product_price.py b/product_price_update_advanced/models/product_price.py new file mode 100644 index 000000000..b9c019712 --- /dev/null +++ b/product_price_update_advanced/models/product_price.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields, api, _ + + +class ProductPrice(models.TransientModel): + _name = 'product.price' + + name = fields.Many2one('product.template', string="Product", required=True) + sale_price = fields.Integer(string="Sale Price", required=True) + cost_price = fields.Integer(string="Cost Price", required=True) + + def change_product_price(self): + prod_obj = self.env['product.template'].search([('id', '=', self.name.id)]) + prod_value = {'list_price': self.sale_price, 'standard_price': self.cost_price} + prod_obj.write(prod_value) + return { + 'name': _('Products'), + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'product.template', + 'type': 'ir.actions.act_window', + 'res_id': prod_obj.id, + 'context': self.env.context + } + + @api.onchange('name') + def get_price(self): + self.sale_price = self.name.list_price + self.cost_price = self.name.standard_price + + diff --git a/product_price_update_advanced/static/description/banner.jpg b/product_price_update_advanced/static/description/banner.jpg new file mode 100644 index 000000000..0c6129ed0 Binary files /dev/null and b/product_price_update_advanced/static/description/banner.jpg differ diff --git a/product_price_update_advanced/static/description/cybro_logo.png b/product_price_update_advanced/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/product_price_update_advanced/static/description/cybro_logo.png differ diff --git a/product_price_update_advanced/static/description/icon.png b/product_price_update_advanced/static/description/icon.png new file mode 100644 index 000000000..a22a0435c Binary files /dev/null and b/product_price_update_advanced/static/description/icon.png differ diff --git a/product_price_update_advanced/static/description/index.html b/product_price_update_advanced/static/description/index.html new file mode 100644 index 000000000..a8224448d --- /dev/null +++ b/product_price_update_advanced/static/description/index.html @@ -0,0 +1,338 @@ +
+
+

+ Advanced Product Price Update +

+

+ User Can Easily Update Cost Price/Sale Price of Products +

+
+ Cybrosys Technologies +
+ +
+ cybrosys technologies +
+
+
+
+ +
+
+

+ Overview +

+

+ Currently in Odoo, we need to switch over to each product form to update the price of product. + This module helps to update the cost price and sale price of any product in one single click.
+ * Create a wizard button in the menu Sales > 'Update Product'.
+ * After filling wizard form and clicking on 'Update', it will change the selected price field of products + that were selected in the wizard. +

+

+ Configuration +

+

+ No additional configuration required +

+
+
+ + +
+
+

+ Features +

+

+ + Updates sale price +

+

+ + Updates cost price +

+
+
+ +
+
+

+ Screenshots +

+

+ + You can update the price of product here +

+
+ +
+
+
+ +
+
+ cybrosys technologies +
+
+
+
+

+ Our Services +

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

+ + Odoo Support +

+ +
+ +
+
+
+
+
+

+ 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. +

+
+
+
+
+
+
+ +
+ diff --git a/product_price_update_advanced/static/description/product-price-cybrosys-1.png b/product_price_update_advanced/static/description/product-price-cybrosys-1.png new file mode 100644 index 000000000..3fea8c874 Binary files /dev/null and b/product_price_update_advanced/static/description/product-price-cybrosys-1.png differ diff --git a/product_price_update_advanced/views/product_price_view.xml b/product_price_update_advanced/views/product_price_view.xml new file mode 100644 index 000000000..3a32ffae4 --- /dev/null +++ b/product_price_update_advanced/views/product_price_view.xml @@ -0,0 +1,41 @@ + + + + + + Update Product Price + product.price + +
+ + + + + + + + +
+
+
+
+
+ + + Update Product Price + product.price + ir.actions.act_window + form + form + + new + + + + +
+
\ No newline at end of file diff --git a/sale_purchase_previous_product_cost/README.rst b/sale_purchase_previous_product_cost/README.rst new file mode 100644 index 000000000..3f83e0a50 --- /dev/null +++ b/sale_purchase_previous_product_cost/README.rst @@ -0,0 +1,43 @@ +Previous Sale/Purchase Product Rates v12 +======================================== +* Provide Product's Previous Sale & Purchase Price History for Partner +* Activate the product variants feature to see the changes + +Depends +======= +[sale] addon Odoo +[purchase] addon Odoo + + +Tech +==== +* [Python] - Models +* [XML] - Odoo views + +Installation +============ +- www.odoo.com/documentation/12.0/setup/install.html +- Install our custom addon + +License +======= + GNU Affero General Public License + (http://www.gnu.org/licenses/agpl.html) + +Bug Tracker +=========== + +Contact odoo@cybrosys.com + +Authors +------- +* Developer v10: Nilmar Shereef (odoo@cybrosys.com) @ Cybrosys +* Developer v11: Niyas Raphy (odoo@cybrosys.com) @ Cybrosys +* Developer v12: Vinaya S B (odoo@cybrosys.com) @ Cybrosys + +Maintainer +---------- + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com. diff --git a/sale_purchase_previous_product_cost/__init__.py b/sale_purchase_previous_product_cost/__init__.py new file mode 100644 index 000000000..1a2cfbd50 --- /dev/null +++ b/sale_purchase_previous_product_cost/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +################################################################################### +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2018-TODAY Cybrosys Technologies ().# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +from . import models diff --git a/sale_purchase_previous_product_cost/__manifest__.py b/sale_purchase_previous_product_cost/__manifest__.py new file mode 100644 index 000000000..91faacef8 --- /dev/null +++ b/sale_purchase_previous_product_cost/__manifest__.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +################################################################################### +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2018-TODAY Cybrosys Technologies ().# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +{ + "name": "Previous Sale/Purchase Product Rates", + 'version': '12.0.1.0.0', + "summary": """Provide Product's Previous Sale & Purchase Price History for Partner.""", + "description": """Provide product's previous prices in product master.""", + "category": "Sales", + 'author': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'company': 'Cybrosys Techno Solutions', + "depends": ['sale', 'purchase'], + "data": ['views/sale_order_view.xml'], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/sale_purchase_previous_product_cost/models/__init__.py b/sale_purchase_previous_product_cost/models/__init__.py new file mode 100644 index 000000000..29e51a52e --- /dev/null +++ b/sale_purchase_previous_product_cost/models/__init__.py @@ -0,0 +1,3 @@ +# -*- encoding: utf-8 -*- + +from . import sale_order diff --git a/sale_purchase_previous_product_cost/models/sale_order.py b/sale_purchase_previous_product_cost/models/sale_order.py new file mode 100644 index 000000000..0fc9d7b2e --- /dev/null +++ b/sale_purchase_previous_product_cost/models/sale_order.py @@ -0,0 +1,80 @@ +# -*- encoding: utf-8 -*- + +from odoo import models, api, fields +from odoo.exceptions import Warning + + +class SaleOrderLine(models.Model): + _inherit = 'sale.order.line' + + sale_date = fields.Datetime(comodel_name='sale.order', string='Sale Date', + related='order_id.date_order', store=True) + + +class PurchaseOrderLine(models.Model): + _inherit = 'purchase.order.line' + + @api.onchange('product_id') + def set_partner(self): + for each in self: + if each.product_id: + each.product_id.write({'order_partner_id': each.order_id.partner_id.id}) + + purchase_date = fields.Datetime(comodel_name='purchase.order', string='Purchase Date', + related='order_id.date_order', store=True) + + +class ProductTemplate(models.Model): + _inherit = "product.product" + + order_partner_id = fields.Many2one('res.partner', string="Partner") + + @api.multi + def action_sale_product_prices(self): + rel_view_id = self.env.ref( + 'sale_purchase_previous_product_cost.last_sale_product_prices_view') + if self.order_partner_id.id: + sale_lines = self.env['sale.order.line'].search([('product_id', '=', self.id), + ('order_partner_id', '=', self.order_partner_id.id)], + order='create_date DESC').mapped('id') + else: + sale_lines = self.env['sale.order.line'].search([('product_id', '=', self.id)], + order='create_date DESC').mapped('id') + if not sale_lines: + raise Warning("No sales history found.!") + else: + return { + 'domain': [('id', 'in', sale_lines)], + 'views': [(rel_view_id.id, 'tree')], + 'name': 'Sales History', + 'res_model': 'sale.order.line', + 'view_id': False, + 'type': 'ir.actions.act_window', + } + + @api.multi + def action_purchase_product_prices(self): + rel_view_id = self.env.ref( + 'sale_purchase_previous_product_cost.last_sale_product_purchase_prices_view') + if self.order_partner_id.id: + purchase_lines = self.env['purchase.order.line'].search([('product_id', '=', self.id), + ('partner_id', '=', self.order_partner_id.id)], + order='create_date DESC').mapped('id') + else: + purchase_lines = self.env['purchase.order.line'].search([('product_id', '=', self.id)], + order='create_date DESC').mapped('id') + if not purchase_lines: + raise Warning("No purchase history found.!") + else: + return { + 'domain': [('id', 'in', purchase_lines)], + 'views': [(rel_view_id.id, 'tree')], + 'name': 'Purchase History', + 'res_model': 'purchase.order.line', + 'view_id': False, + 'type': 'ir.actions.act_window', + } + + + + diff --git a/sale_purchase_previous_product_cost/static/description/banner.jpg b/sale_purchase_previous_product_cost/static/description/banner.jpg new file mode 100644 index 000000000..e10c28799 Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/banner.jpg differ diff --git a/sale_purchase_previous_product_cost/static/description/cybro_logo.png b/sale_purchase_previous_product_cost/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/cybro_logo.png differ diff --git a/sale_purchase_previous_product_cost/static/description/icon.png b/sale_purchase_previous_product_cost/static/description/icon.png new file mode 100644 index 000000000..1b8ea4ebf Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/icon.png differ diff --git a/sale_purchase_previous_product_cost/static/description/index.html b/sale_purchase_previous_product_cost/static/description/index.html new file mode 100644 index 000000000..508d88f9a --- /dev/null +++ b/sale_purchase_previous_product_cost/static/description/index.html @@ -0,0 +1,377 @@ +
+
+

+ Previous Sale/Purchase Product Rates +

+

+ Provide Product's Previous Sale & Purchase Price History +

+
+ Cybrosys Technologies +
+ +
+ cybrosys technologies +
+
+
+
+
+
+

+ Overview +

+

+ This module enables a view to see all previous sale/purchase product rates of selected customer. It will help you to manage + your orders according to these price history. You can see these option from sale/purchase form. +

+
+
+
+
+

+ Features +

+

+ + Previous sale price history +

+

+ + Previous purchase price history +

+

+ + Provide product's previous prices in product page +

+
+
+ +
+
+

+ Screenshots +

+

+
+ + go to Sale/Purchase Order Form +
+

+ +
+ +
+

+
+ + Select product and go to product form view +
+

+ +
+ +
+

+
+ + In product form you can see a new tab named "Previous Price History". In this tab 'Partner' field already filled with the partner name which you are selected in sale/purchase form. You have also an option to change this 'Partner'. +
+

+ +
+ +
+

+
+ + To see previous sale price history please click on the button name 'Previous Sale Rates'. +
+

+ +
+ +
+

+
+ + To see previous purchase price history please click on the button name 'Previous Purchase Rates' +
+

+ +
+ +
+
+
+
+
+ cybrosys technologies +
+
+
+
+

+ Our Services +

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

+ + Odoo Support +

+ +
+ +
+
+
+
+
+

+ 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. +

+
+
+
+
+
+
+ +
+ + + + + + diff --git a/sale_purchase_previous_product_cost/static/description/purchase.png b/sale_purchase_previous_product_cost/static/description/purchase.png new file mode 100644 index 000000000..d57a063ea Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/purchase.png differ diff --git a/sale_purchase_previous_product_cost/static/description/purchase_form.png b/sale_purchase_previous_product_cost/static/description/purchase_form.png new file mode 100644 index 000000000..97d5931e0 Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/purchase_form.png differ diff --git a/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-1.png b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-1.png new file mode 100644 index 000000000..8a07d10d2 Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-1.png differ diff --git a/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-2.png b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-2.png new file mode 100644 index 000000000..454ed245a Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-2.png differ diff --git a/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-3.png b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-3.png new file mode 100644 index 000000000..3d3fba5a8 Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-3.png differ diff --git a/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-4.png b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-4.png new file mode 100644 index 000000000..69187a835 Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-4.png differ diff --git a/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-5.png b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-5.png new file mode 100644 index 000000000..20b7c8e60 Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/sale-product-cost-cybrosys-5.png differ diff --git a/sale_purchase_previous_product_cost/static/description/sale.png b/sale_purchase_previous_product_cost/static/description/sale.png new file mode 100644 index 000000000..d6453ef45 Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/sale.png differ diff --git a/sale_purchase_previous_product_cost/static/description/sale_form.png b/sale_purchase_previous_product_cost/static/description/sale_form.png new file mode 100644 index 000000000..90be6cc8d Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/sale_form.png differ diff --git a/sale_purchase_previous_product_cost/static/description/wizard.png b/sale_purchase_previous_product_cost/static/description/wizard.png new file mode 100644 index 000000000..36a98a668 Binary files /dev/null and b/sale_purchase_previous_product_cost/static/description/wizard.png differ diff --git a/sale_purchase_previous_product_cost/views/sale_order_view.xml b/sale_purchase_previous_product_cost/views/sale_order_view.xml new file mode 100644 index 000000000..13fedd82f --- /dev/null +++ b/sale_purchase_previous_product_cost/views/sale_order_view.xml @@ -0,0 +1,66 @@ + + + + + last.product.prices.view + sale.order.line + + + + + + + + + + + + + + + + last.product.purchase_prices.view + purchase.order.line + + + + + + + + + + + + + + + + product_extended.product.form.view + product.product + 3 + + + + + + + + + + + +