| @ -0,0 +1,54 @@ | |||
| .. image:: https://img.shields.io/badge/license-LGPL--3-blue.svg | |||
|     :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html | |||
|     :alt: License: LGPL-3 | |||
| 
 | |||
| Interest for Overdue Invoice | |||
| ============================ | |||
| * Easy to calculate Interest for Overdue invoices. | |||
| * It will manage journal items while you calculate amount in invoice. | |||
| * you can use different accounts for interest journal entries from payment terms menu | |||
| * Interest can be calculated for different period ratios (daily, weekly and monthly) | |||
| 
 | |||
| Configuration | |||
| ============ | |||
| No additional configurations needed | |||
| 
 | |||
| License | |||
| ------- | |||
| General Public License, Version 3 (LGPL v3). | |||
| (https://www.gnu.org/licenses/lgpl-3.0-standalone.html) | |||
| 
 | |||
| Configuration | |||
| ============= | |||
| * No additional configurations needed | |||
| 
 | |||
| Company | |||
| ------- | |||
| * `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | |||
| 
 | |||
| Credits | |||
| ------- | |||
| Developers: (V15) Naveen Krishna T, | |||
|              (V16) Ayana KP, | |||
| Contact: odoo@cybrosys.com | |||
| 
 | |||
| Contacts | |||
| -------- | |||
| * Mail Contact : odoo@cybrosys.com | |||
| * Website : https://cybrosys.co | |||
| 
 | |||
| 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>`__ | |||
| @ -0,0 +1,21 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Ayana KP(odoo@cybrosys.com) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from . import models | |||
| @ -0,0 +1,44 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Ayana KP(odoo@cybrosys.com) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| { | |||
|     'name': 'Interest for Overdue Invoice', | |||
|     'version': '16.0.1.0.0', | |||
|     'category': 'Accounting', | |||
|     'summary': """This module helps to manage Interest on Overdue Invoices.""", | |||
|     'description': """This module helps to calculate daily, weekly or monthly  | |||
|      Interest for Overdue Invoices based on payment term configuration. """, | |||
|     'author': 'Cybrosys Techno Solutions', | |||
|     'company': 'Cybrosys Techno Solutions', | |||
|     'maintainer': 'Cybrosys Techno Solutions', | |||
|     'website': 'https://www.cybrosys.com', | |||
|     'depends': ['sale', 'account'], | |||
|     'data': [ | |||
|         'views/account_payment_term_views.xml', | |||
|         'views/account_move_views.xml', | |||
|         'data/ir_cron_data.xml', | |||
|         'views/report_invoice.xml' | |||
|     ], | |||
|     'images': ['static/description/banner.png'], | |||
|     'license': 'LGPL-3', | |||
|     'installable': True, | |||
|     'auto_install': False, | |||
|     'application': False, | |||
| } | |||
| @ -0,0 +1,18 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <odoo> | |||
| <!--    Data for scheduled action --> | |||
|     <data noupdate="1"> | |||
|         <record id="ir_cron_daily_interest_compute" model="ir.cron"> | |||
|             <field name="name">Account:Daily Invoice Interest check</field> | |||
|             <field name="model_id" ref="account.model_account_move"/> | |||
|             <field name="state">code</field> | |||
|             <field name="code">model._get_interest_check()</field> | |||
|             <field name="active" eval="False"/> | |||
|             <field name="user_id" ref="base.user_root"/> | |||
|             <field name="interval_number">1</field> | |||
|             <field name="interval_type">days</field> | |||
|             <field name="numbercall">-1</field> | |||
|             <field name="doall" eval="1"/> | |||
|         </record> | |||
|     </data> | |||
| </odoo> | |||
| @ -0,0 +1,8 @@ | |||
| ## Module <account_interest_on_overdue_invoice> | |||
| #### 04.03.2024 | |||
| #### Version 16.0.1.0.0 | |||
| #### ADD | |||
| - Initial commit for Interest for Overdue Invoice. | |||
| 
 | |||
| 
 | |||
| 
 | |||
| @ -0,0 +1,22 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Ayana KP(odoo@cybrosys.com) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from . import account_move | |||
| from . import account_payment_term | |||
| @ -0,0 +1,195 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Ayana KP(odoo@cybrosys.com) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| import math | |||
| 
 | |||
| from dateutil import relativedelta | |||
| 
 | |||
| from odoo import api, fields, models, _ | |||
| from odoo.exceptions import ValidationError | |||
| 
 | |||
| 
 | |||
| class AccountMoves(models.Model): | |||
|     """ Extending model Invoice model to compute the interest amount for | |||
|     overdue invoices based on the chosen payment term configurations.""" | |||
| 
 | |||
|     _inherit = "account.move" | |||
| 
 | |||
|     interest_amount = fields.Monetary(string='Interest Amount', readonly=True, | |||
|                                       help='The amount of interest accrued.') | |||
|     interest_overdue_act = fields.Boolean(related="invoice_payment_term_id" | |||
|                                                   ".interest_overdue_act", | |||
|                                           help='Flag indicating whether overdue interest is active.') | |||
|     interest_calculated_period = fields.Char(string="Interest calculated date", | |||
|                                              help='The date when interest was calculated.') | |||
|     interest_type = fields.Selection(related="invoice_payment_term_id" | |||
|                                              ".interest_type", | |||
|                                      help='The type of interest applied.') | |||
|     interest_percentage = fields.Float(related="invoice_payment_term_id" | |||
|                                                ".interest_percentage", | |||
|                                        help='The percentage rate of interest applied.') | |||
| 
 | |||
|     def get_period_time(self, today_date): | |||
|         """ Compute period duration based on Interest duration type. """ | |||
|         self.ensure_one() | |||
|         r_obj = relativedelta. \ | |||
|             relativedelta(today_date, self.invoice_date_due) | |||
|         if self.invoice_payment_term_id.interest_type == 'monthly': | |||
|             period = (r_obj.years * 12) + r_obj.months | |||
|             if r_obj and r_obj.days > 0: | |||
|                 period = period + 1 | |||
|         elif self.invoice_payment_term_id.interest_type == 'weekly': | |||
|             period = math.ceil( | |||
|                 (today_date - self.invoice_date_due).days / 7) | |||
|         else: | |||
|             period = (today_date - self.invoice_date_due).days | |||
|         return period | |||
| 
 | |||
|     def action_interest_compute(self): | |||
|         """ Action for computing Interest amount based on the chosen payment | |||
|         term configurations""" | |||
|         today_date = fields.Date.today() | |||
|         for rec in self: | |||
|             if rec.invoice_date_due \ | |||
|                     and rec.invoice_date_due < fields.Date.today() \ | |||
|                     and rec.state == 'draft' \ | |||
|                     and rec.move_type == 'out_invoice' \ | |||
|                     and rec.interest_overdue_act \ | |||
|                     and rec.invoice_payment_term_id.interest_percentage > 0: | |||
|                 period = rec.get_period_time(today_date) | |||
|                 if rec.invoice_payment_term_id.interest_type == 'monthly': | |||
|                     if rec.interest_calculated_period \ | |||
|                             and rec.interest_calculated_period == str(period) \ | |||
|                             + "-m": | |||
|                         raise ValidationError(_('Your payment term is ' | |||
|                                                 'monthly, and you can update ' | |||
|                                                 'it only once in a month.')) | |||
|                     rec.interest_calculated_period = str(period) + "-m" | |||
|                 elif rec.invoice_payment_term_id.interest_type == 'weekly': | |||
|                     if rec.interest_calculated_period \ | |||
|                             and rec.interest_calculated_period == str(period) \ | |||
|                             + "-w": | |||
|                         raise ValidationError(_('Your payment term is weekly, ' | |||
|                                                 'and you can update it only ' | |||
|                                                 'once in a week.')) | |||
|                     rec.interest_calculated_period = str(period) + "-w" | |||
|                 else: | |||
|                     if rec.interest_calculated_period \ | |||
|                             and rec.interest_calculated_period == str(period) \ | |||
|                             + "-d": | |||
|                         raise ValidationError(_('Your payment term is daily, ' | |||
|                                                 'and you can update it only ' | |||
|                                                 'once in a day.')) | |||
|                     rec.interest_calculated_period = str(period) + "-d" | |||
|                 interest_line = rec.invoice_line_ids.search( | |||
|                     [('name', '=', 'Interest Amount for Overdue'), | |||
|                      ('move_id', '=', rec.id)], | |||
|                     limit=1) | |||
|                 if interest_line: | |||
|                     rec.invoice_line_ids = ([(2, interest_line.id, 0)]) | |||
|                 rec.interest_amount = rec.amount_total * rec \ | |||
|                     .invoice_payment_term_id.interest_percentage * period / 100 | |||
|                 vals = {'name': 'Interest Amount for Overdue', | |||
|                         'price_unit': rec.interest_amount, | |||
|                         'quantity': 1, | |||
|                         } | |||
|                 if rec.invoice_payment_term_id.interest_account_id: | |||
|                     vals.update({ | |||
|                         'account_id': rec.invoice_payment_term_id | |||
|                         .interest_account_id.id}) | |||
|                 if rec.interest_amount > 0: | |||
|                     rec.invoice_line_ids = ([(0, 0, vals)]) | |||
|             elif rec.interest_amount > 0: | |||
|                 rec.action_interest_reset() | |||
| 
 | |||
|     def _get_interest_check(self): | |||
|         """ Method for Interest computation via scheduled action """ | |||
| 
 | |||
|         today_date = fields.Date.today() | |||
|         for rec in self.sudo().search([('state', '=', 'draft')]): | |||
|             if rec.invoice_date_due and rec.invoice_date_due < today_date \ | |||
|                     and rec.state == 'draft' \ | |||
|                     and rec.move_type == 'out_invoice' \ | |||
|                     and rec.interest_overdue_act \ | |||
|                     and rec.invoice_payment_term_id.interest_percentage > 0: | |||
|                 period = rec.get_period_time(today_date) | |||
|                 if rec.invoice_payment_term_id.interest_type == 'monthly': | |||
|                     if rec.interest_calculated_period \ | |||
|                             and rec.interest_calculated_period == str(period) \ | |||
|                             + "-m": | |||
|                         continue | |||
|                     rec.interest_calculated_period = str(period) + "-m" | |||
|                 elif rec.invoice_payment_term_id.interest_type == 'weekly': | |||
|                     if rec.interest_calculated_period \ | |||
|                             and rec.interest_calculated_period == str(period) \ | |||
|                             + "-w": | |||
|                         continue | |||
|                     rec.interest_calculated_period = str(period) + "-w" | |||
|                 else: | |||
|                     if rec.interest_calculated_period \ | |||
|                             and rec.interest_calculated_period == str(period) \ | |||
|                             + "-d": | |||
|                         continue | |||
|                     rec.interest_calculated_period = str(period) + "-d" | |||
|                 interest_line = rec.invoice_line_ids.search( | |||
|                     [('name', '=', 'Interest Amount for Overdue'), | |||
|                      ('move_id', '=', rec.id)], limit=1) | |||
|                 if interest_line: | |||
|                     rec.invoice_line_ids = ([(2, interest_line.id, 0)]) | |||
|                 rec.interest_amount = rec.amount_total * rec \ | |||
|                     .invoice_payment_term_id.interest_percentage * period / 100 | |||
|                 vals = {'name': 'Interest Amount for Overdue', | |||
|                         'price_unit': rec.interest_amount, | |||
|                         'quantity': 1, | |||
|                         } | |||
|                 if rec.invoice_payment_term_id.interest_account_id: | |||
|                     vals.update({ | |||
|                         'account_id': rec.invoice_payment_term_id. | |||
|                         interest_account_id.id}) | |||
|                 if rec.interest_amount > 0: | |||
|                     rec.invoice_line_ids = ([(0, 0, vals)]) | |||
|             elif rec.interest_amount > 0: | |||
|                 rec.action_interest_reset() | |||
| 
 | |||
|     def action_interest_reset(self): | |||
|         """Method for resetting the interest lines and Interest amount in | |||
|         Invoice""" | |||
|         self.interest_amount = 0 | |||
|         interest_line = self.invoice_line_ids.search( | |||
|             [('name', '=', 'Interest Amount for Overdue'), | |||
|              ('move_id', '=', self.id)], limit=1) | |||
|         if interest_line: | |||
|             self.invoice_line_ids = ([(2, interest_line.id, 0)]) | |||
|         self.interest_calculated_period = False | |||
| 
 | |||
|     @api.onchange('invoice_payment_term_id', 'invoice_line_ids', | |||
|                   'invoice_date_due') | |||
|     def _onchange_invoice_payment_term_id(self): | |||
|         """Method for removing interest from Invoice when user changes dependent | |||
|             values of interest.""" | |||
|         for rec in self: | |||
|             if rec.move_type == 'out_invoice': | |||
|                 rec.interest_amount = 0 | |||
|                 interest_line = rec.invoice_line_ids.search( | |||
|                     [('name', '=', 'Interest Amount for Overdue')], limit=1) | |||
|                 if interest_line: | |||
|                     rec.invoice_line_ids = ([(2, interest_line.id, 0)]) | |||
|                 rec.interest_calculated_period = False | |||
|             return | |||
| @ -0,0 +1,65 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Ayana KP(odoo@cybrosys.com) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from odoo import api, fields, models, _ | |||
| from odoo.exceptions import ValidationError | |||
| 
 | |||
| 
 | |||
| class AccountPaymentTerms(models.Model): | |||
|     """ Module for extending account.payment.term model to add interest | |||
|     computation configuration features for computation of Interest in overdue | |||
|     invoices.""" | |||
| 
 | |||
|     _inherit = "account.payment.term" | |||
| 
 | |||
|     interest_overdue_act = fields.Boolean(default=False, string="Interest on " | |||
|                                                                 "Overdue " | |||
|                                                                 "Invoices", | |||
|                                           help="Activate Interest computation " | |||
|                                                "for this Payment term.") | |||
|     interest_type = fields.Selection( | |||
|         string='Interest Type', help="Base duration for interest calculation", | |||
|         selection=[('daily', 'Daily'), | |||
|                    ('weekly', 'Weekly'), | |||
|                    ('monthly', 'Monthly')], | |||
|         default='daily', copy=False) | |||
|     interest_percentage = fields\ | |||
|         .Float(string="Interest Percentage", default="0", digits=(12, 6), | |||
|                help="Interest percentage ratio per selected Interest type " | |||
|                     "duration.") | |||
|     interest_account_id = fields.Many2one('account.account', | |||
|                                           string='Account for Interest', | |||
|                                           company_dependent=True, | |||
|                                           domain="[('deprecated', '=', " | |||
|                                                  "False),('internal_group'," | |||
|                                                  "'=','income'), " | |||
|                                                  "('is_off_balance', '=', " | |||
|                                                  "False)]", | |||
|                                           help="Account used for creating " | |||
|                                                "accounting entries.") | |||
| 
 | |||
|     @api.constrains('interest_percentage') | |||
|     def _check_interest_percentage(self): | |||
|         """ check constrains for validating the interest rate in percentage | |||
|         is not negative""" | |||
|         for rec in self: | |||
|             if rec.interest_overdue_act and rec.interest_percentage <= 0: | |||
|                 raise ValidationError(_('Enter Positive value as Interest ' | |||
|                                       'percentage')) | |||
| After Width: | Height: | Size: 3.6 KiB | 
| After Width: | Height: | Size: 310 B | 
| After Width: | Height: | Size: 1.3 KiB | 
| After Width: | Height: | Size: 1.4 KiB | 
| After Width: | Height: | Size: 576 B | 
| After Width: | Height: | Size: 733 B | 
| After Width: | Height: | Size: 911 B | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 3.4 KiB | 
| After Width: | Height: | Size: 673 B | 
| After Width: | Height: | Size: 878 B | 
| After Width: | Height: | Size: 653 B | 
| After Width: | Height: | Size: 905 B | 
| After Width: | Height: | Size: 839 B | 
| After Width: | Height: | Size: 427 B | 
| After Width: | Height: | Size: 627 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 988 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 18 KiB | 
| After Width: | Height: | Size: 17 KiB | 
| After Width: | Height: | Size: 82 KiB | 
| After Width: | Height: | Size: 92 KiB | 
| After Width: | Height: | Size: 1.3 MiB | 
| After Width: | Height: | Size: 81 KiB | 
| After Width: | Height: | Size: 67 KiB | 
| After Width: | Height: | Size: 74 KiB | 
| After Width: | Height: | Size: 82 KiB | 
| After Width: | Height: | Size: 74 KiB | 
| After Width: | Height: | Size: 51 KiB | 
| After Width: | Height: | Size: 67 KiB | 
| After Width: | Height: | Size: 69 KiB | 
| After Width: | Height: | Size: 138 KiB | 
| After Width: | Height: | Size: 70 KiB | 
| After Width: | Height: | Size: 13 KiB | 
| @ -0,0 +1,654 @@ | |||
| <div class="container" | |||
|      style="padding: 1rem !important; margin-bottom: 1rem !important;"> | |||
|     <div class="row"> | |||
|         <div class="col-sm-12 col-md-12 col-lg-12 d-flex justify-content-between" | |||
|              style="border-bottom: 1px solid #d5d5d5;"> | |||
|             <div class="my-3"> | |||
|                 <img src="./assets/icons/logo.png" | |||
|                      style="width: auto !important; height: 40px !important;"> | |||
|             </div> | |||
|             <div class="my-3 d-flex align-items-center"> | |||
|                 <div | |||
|                         style="background-color: #7C7BAD !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;"> | |||
|                     <i class="fa fa-check mr-1"></i>Community | |||
|                 </div> | |||
|                 <div | |||
|                         style="background-color: #875A7B !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;"> | |||
|                     <i class="fa fa-check mr-1"></i>Enterprise | |||
|                 </div> | |||
| 
 | |||
|             </div> | |||
|         </div> | |||
|     </div> | |||
| </div> | |||
| <div class="container" style="padding: 0rem 1.5rem 4rem !important"> | |||
|     <div class="row" style="height: 900px !important;"> | |||
|         <div class="col-sm-12 col-md-12 col-lg-12" | |||
|              style="padding: 4rem 1rem !important; background-color: #714B67 !important; height: 600px !important; border-radius: 20px !important;"> | |||
|             <h1 | |||
|                     style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #FFFFFF !important;  font-size: 3.5rem !important; text-align: center !important;"> | |||
|                 Interest for Overdue Invoice</h1> | |||
|             <p | |||
|                     style="font-family: 'Montserrat', sans-serif !important; font-weight: 300 !important; color: #FFFFFF !important;  font-size: 1.4rem !important; text-align: center !important;"> | |||
|                 A Module For Interest for Overdue Invoice Calculation while Creating Invoice | |||
|             </p> | |||
|             <img src="./assets/screenshots/v16-hero.gif" class="img-responsive" | |||
|                  width="100%" height="auto"/> | |||
|         </div> | |||
|     </div> | |||
|     <div class="row"> | |||
|         <div class="col-md-12" | |||
|              style="border-bottom: 1px solid #d5d5d5 !important; margin-bottom: 2rem !important"> | |||
|             <h2 style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | |||
|                 <i class="fa fa-compass mr-2"></i>Explore this module | |||
|             </h2> | |||
|             <div class="row"> | |||
|                 <div class="col-md-6"> | |||
|                     <a href="#overview" | |||
|                        style="text-decoration: none !important;"> | |||
|                         <div class="row" | |||
|                              style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;"> | |||
|                             <div class="col-8"> | |||
|                                 <h3 style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;"> | |||
|                                     Overview</h3> | |||
|                                 <p style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | |||
|                                     Learn more about this module</p> | |||
|                             </div> | |||
|                             <div class="col-4 text-right d-flex justify-content-end align-items-center"> | |||
|                                 <i class="fa fa-chevron-right" | |||
|                                    style="color: #714B67 !important;"></i> | |||
|                             </div> | |||
|                         </div> | |||
|                     </a> | |||
|                 </div> | |||
|                 <div class="col-md-6"> | |||
|                     <a href="#features" | |||
|                        style="text-decoration: none !important;"> | |||
|                         <div class="row" | |||
|                              style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;"> | |||
|                             <div class="col-8"> | |||
|                                 <h3 | |||
|                                         style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;"> | |||
|                                     Features</h3> | |||
|                                 <p | |||
|                                         style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | |||
|                                     View features of this module</p> | |||
|                             </div> | |||
|                             <div class="col-4 text-right d-flex justify-content-end align-items-center"> | |||
|                                 <i class="fa fa-chevron-right" | |||
|                                    style="color: #714B67 !important;"></i> | |||
|                             </div> | |||
|                         </div> | |||
|                     </a> | |||
|                 </div> | |||
|                 <div class="col-md-6"> | |||
|                     <a href="#screenshots" | |||
|                        style="text-decoration: none !important;"> | |||
|                         <div class="row" | |||
|                              style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;"> | |||
|                             <div class="col-8"> | |||
|                                 <h3 | |||
|                                         style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;"> | |||
|                                     Screenshots</h3> | |||
|                                 <p | |||
|                                         style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | |||
|                                     See key screenshots of this module</p> | |||
|                             </div> | |||
|                             <div class="col-4 text-right d-flex justify-content-end align-items-center"> | |||
|                                 <i class="fa fa-chevron-right" | |||
|                                    style="color: #714B67 !important;"></i> | |||
|                             </div> | |||
|                         </div> | |||
|                     </a> | |||
|                 </div> | |||
|             </div> | |||
|         </div> | |||
|     </div> | |||
|     <div class="row" id="overview"> | |||
|         <div class="col-md-12" | |||
|              style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important"> | |||
|             <h2 | |||
|                     style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | |||
|                 <i class="fa fa-pie-chart mr-2"></i>Overview | |||
|             </h2> | |||
|         </div> | |||
|         <div class="col-mg-12 pl-3"> | |||
|             <p | |||
|                     style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important; line-height: 30px !important;"> | |||
|                 This Odoo apps is helps to calculate daily,weekly or monthly | |||
|                 Interest Penalty on Overdue Invoices based on payment term | |||
|                 configuration.Payment term is something that accountant emphasis | |||
|                 on most , delay payment can cost as late payment fee , so when | |||
|                 payment get overdue , interest needs to be charges in order to | |||
|                 get payment sooner, this odoo module does perfect job by helping | |||
|                 you to calculate interest on overdue invoices. Calculation of | |||
|                 interest will be done based on invoice due date and payment | |||
|                 term. | |||
|             </p> | |||
|         </div> | |||
|     </div> | |||
|     <div class="row" id="features"> | |||
|         <div class="col-md-12" | |||
|              style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important"> | |||
|             <h2 | |||
|                     style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | |||
|                 <i class="fa fa-star mr-2"></i>Features | |||
|             </h2> | |||
|         </div> | |||
|         <div class="col-md-6 pl-3 py-3 d-flex"> | |||
|             <div> | |||
|                 <img src="assets/icons/check.png"> | |||
|             </div> | |||
|             <div> | |||
|                 <h4 | |||
|                         style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                     Easy to Calculate Interest for Overdue Invoices.</h4> | |||
|             </div> | |||
|         </div> | |||
|         <div class="col-md-6 pl-3 py-3 d-flex"> | |||
|             <div> | |||
|                 <img src="assets/icons/check.png"> | |||
|             </div> | |||
|             <div> | |||
|                 <h4 | |||
|                         style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                     This module will manage journal items while you calculate | |||
|                     Interest in overdue invoice.</h4> | |||
|             </div> | |||
|         </div> | |||
|         <div class="col-md-6 pl-3 py-3 d-flex"> | |||
|             <div> | |||
|                 <img src="assets/icons/check.png"> | |||
|             </div> | |||
|             <div> | |||
|                 <h4 | |||
|                         style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                     You can use different accounts for interest journal entries | |||
|                     from payment terms menu</h4> | |||
|             </div> | |||
|         </div> | |||
|         <div class="col-md-6 pl-3 py-3 d-flex"> | |||
|             <div> | |||
|                 <img src="assets/icons/check.png"> | |||
|             </div> | |||
|             <div> | |||
|                 <h4 | |||
|                         style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                     Also, Interest can be calculated for different period ratios | |||
|                     (daily, weekly and monthly)</h4> | |||
|             </div> | |||
|         </div> | |||
|     </div> | |||
|     <div class="row" id="screenshots"> | |||
|         <div class="col-md-12" | |||
|              style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important"> | |||
|             <h2 | |||
|                     style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | |||
|                 <i class="fa fa-image mr-2"></i>Screenshots | |||
|             </h2> | |||
|         </div> | |||
|         <div class="col-lg-12 my-2"> | |||
|             <h4 class="mt-2" | |||
|                 style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                 Set Payment Term</h4> | |||
|             <p | |||
|                     style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | |||
|                 Enable the checkbox in payment term configuration to get the | |||
|                 Interest calculation in Overdue invoices for the selected | |||
|                 payment term. And set the values required for interest calculation, and the | |||
|                 account for interest jornal entries can be changed from here. | |||
|                 This is the details example for immediate payment term with | |||
|                 daily period based interest.</p> | |||
|             <img src="assets/screenshots/1.png" | |||
|                  class="img-responsive img-thumbnail border" width="100%" | |||
|                  height="auto"/> | |||
|         </div> | |||
|         <div class="col-lg-12 my-3"> | |||
|             <h4 class="mt-3" | |||
|                 style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                 Selecting Payment Term in Invoice</h4> | |||
|             <p | |||
|                     style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | |||
|                 After the payment configuration we can use that payment term in | |||
|                 invoice creation. Also set the | |||
|                 invoice details ,use the update interest button to calculate | |||
|                 interest | |||
|             </p> | |||
|             <img src="assets/screenshots/2.png" | |||
|                  class="img-responsive img-thumbnail border" width="100%" | |||
|                  height="auto"/> | |||
|         </div> | |||
| 
 | |||
|         <div class="col-lg-12 my-3"> | |||
|             <h4 class="mt-3" | |||
|                 style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                 Interest for Overdue</h4> | |||
|             <p | |||
|                     style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | |||
|                 Here you can get updated value of interest and amount. | |||
|             </p> | |||
|             <img src="assets/screenshots/3.png" | |||
|                  class="img-responsive img-thumbnail border" width="100%" | |||
|                  height="auto"/> | |||
|         </div> | |||
|         <div class="col-lg-12 my-3"> | |||
|             <h4 class="mt-3" | |||
|                 style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                 Scheduled Action</h4> | |||
|             <p | |||
|                     style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | |||
|                 You can also enable this automatic script for automatic interest update. | |||
|             </p> | |||
|             <img src="assets/screenshots/5.png" | |||
|                  class="img-responsive img-thumbnail border" width="100%" | |||
|                  height="auto"/> | |||
|         </div> | |||
|         <div class="col-lg-12 my-3"> | |||
|             <h4 class="mt-3" | |||
|                 style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                 Warnings</h4> | |||
|             <p | |||
|                     style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | |||
|                 Warning on updating invoice twice or more in a selected interest | |||
|                 period. | |||
|             </p> | |||
|             <img src="assets/screenshots/6.png" | |||
|                  class="img-responsive img-thumbnail border" width="100%" | |||
|                  height="auto"/> | |||
|         </div> | |||
|         <div class="col-lg-12 my-3"> | |||
|             <h4 class="mt-3" | |||
|                 style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                 Invoice PDF</h4> | |||
|             <p | |||
|                     style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | |||
|                 The interest details are included in new invoices | |||
|             </p> | |||
|             <img src="assets/screenshots/7.png" | |||
|                  class="img-responsive img-thumbnail border" width="100%" | |||
|                  height="auto"/> | |||
|         </div> | |||
|     </div> | |||
|     <!-- SUGGESTED PRODUCTS --> | |||
|    <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/odoo_sale_order_line_views/" | |||
|                            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/odoo_picking_order_line_views/#" | |||
|                            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/sale_discount_total/"> | |||
|                             <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/customer_product_qrcode/" | |||
|                            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/base_accounting_kit/" | |||
|                            target="_blank"> | |||
|                             <div style="border-radius:10px"> | |||
|                                 <img class="img img-responsive center-block" | |||
|                                      style="border-radius: 0px;" | |||
|                                      src="assets/modules/5.gif"> | |||
|                             </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/hr_payroll_community/" | |||
|                            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 SUGGESTED PRODUCTS --> | |||
|     <!-- OUR SERVICES --> | |||
|     <section class="container" style="margin-top: 6rem !important;"> | |||
|         <div class="row"> | |||
|             <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center"> | |||
|                 <h2 style="color: #212529 !important;">Our Services</h2> | |||
|                 <hr | |||
|                         style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/> | |||
|             </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: #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> | |||
|     </section> | |||
|     <!-- END OF OUR SERVICES --> | |||
|     <!-- OUR INDUSTRIES --> | |||
|     <section class="container" style="margin-top: 6rem !important;"> | |||
|         <div class="row"> | |||
|             <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center"> | |||
|                 <h2 style="color: #212529 !important;">Our Industries</h2> | |||
|                 <hr | |||
|                         style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/> | |||
|             </div> | |||
|             <div class="col-lg-3"> | |||
|                 <div class="my-4 d-flex flex-column justify-content-center" | |||
|                      style="background-color: #f6f8f9 !important; border-radius: 10px; 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: 10px; 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: 10px; 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: 10px; 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: 10px; 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 & 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: 10px; 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: 10px; 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: 10px; 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> | |||
|     </section> | |||
|     <!-- END OF OUR INDUSTRIES --> | |||
|     <!-- FOOTER --> | |||
|     <!-- Footer Section --> | |||
|     <section class="container" style="margin: 5rem auto 2rem;"> | |||
|         <div class="row" style="max-width:1540px;"> | |||
|             <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center"> | |||
|                 <h2 style="color: #212529 !important;">Need Help?</h2> | |||
|                 <hr | |||
|                         style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/> | |||
|             </div> | |||
|         </div> | |||
|         <!-- Contact Cards --> | |||
|         <div class="row d-flex justify-content-center align-items-center" | |||
|              style="max-width:1540px; margin: 0 auto 2rem auto;"> | |||
| 
 | |||
|             <div class="col-lg-12" | |||
|                  style="padding: 0rem 3rem 2rem; border-radius: 10px; margin-right: 3rem; "> | |||
|                 <div class="row mt-4"> | |||
|                     <div class="col-lg-6"> | |||
|                         <a href="mailto:odoo@cybrosys.com" target="_blank" | |||
|                            class="btn btn-block mb-2 deep_hover" | |||
|                            style="text-decoration: none;  background-color: #4d4d4d; color: #FFF;  border-radius: 4px;"><i | |||
|                                 class="fa fa-envelope mr-2"></i>odoo@cybrosys.com</a> | |||
|                     </div> | |||
|                     <div class="col-lg-6"> | |||
|                         <a href="https://api.whatsapp.com/send?phone=918606827707" | |||
|                            target="_blank" | |||
|                            class="btn btn-block mb-2 deep_hover" | |||
|                            style="text-decoration: none;  background-color: #25D366; color: #FFF;  border-radius: 4px;"><i | |||
|                                 class="fa fa-whatsapp mr-2"></i>+91 86068 27707</a> | |||
|                     </div> | |||
|                 </div> | |||
|             </div> | |||
| 
 | |||
|         </div> | |||
|         <!-- End of Contact Cards --> | |||
|     </section> | |||
|     <!-- Footer --> | |||
|     <section class="oe_container" style="padding: 2rem 3rem 1rem;"> | |||
|         <div class="row" | |||
|              style="max-width:1540px; margin: 0 auto; margin-right: 3rem; "> | |||
|             <!-- Logo --> | |||
|             <div class="col-lg-12 d-flex justify-content-center align-items-center" | |||
|                  style="margin-top: 3rem;"> | |||
|                 <img src="https://www.cybrosys.com/images/logo.png" | |||
|                      width="200px" height="auto"/> | |||
|             </div> | |||
|             <!-- End of Logo --> | |||
|             <div class="col-lg-12"> | |||
|                 <hr | |||
|                         style="margin-top: 3rem;background: linear-gradient(90deg, rgba(2,0,36,0) 0%, rgba(229,229,229,1) 33%, rgba(229,229,229,1) 58%, rgba(0,212,255,0) 100%); height: 2px; border-style: none;"> | |||
|                 <!-- End of Footer Section --> | |||
|             </div> | |||
|         </div> | |||
|     </section> | |||
|     <!-- END OF FOOTER --> | |||
| </div> | |||
| @ -0,0 +1,26 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <odoo> | |||
|     <!--    Inheriting account move model for adding interest fields --> | |||
|     <record id="view_move_form" model="ir.ui.view"> | |||
|         <field name="name">account.move.view.form.inherit.account.interest.on.overdue.invoice</field> | |||
|         <field name="model">account.move</field> | |||
|         <field name="inherit_id" ref="account.view_move_form"/> | |||
|         <field name="arch" type="xml"> | |||
|             <xpath expr="//field[@name='tax_totals']" position="before"> | |||
|                 <field name="interest_overdue_act" invisible="1"/> | |||
|                 <button name="action_interest_compute" | |||
|                         string='(Update Interest)' | |||
|                         type='object' groups="account.group_account_invoice" | |||
|                         attrs="{'invisible': ['|','|',('interest_overdue_act', '=', False),('state','in',('posted','cancel')),('move_type','!=','out_invoice')]}" | |||
|                         class="oe_edit_only"/> | |||
|                 <button name="action_interest_reset" string='(Reset)' | |||
|                         type='object' | |||
|                         groups="sales_team.group_sale_manager,account.group_account_invoice" | |||
|                         attrs="{'invisible': ['|','|',('interest_overdue_act', '=', False),('state','in',('posted','cancel')),('move_type','!=','out_invoice')]}" | |||
|                         class="oe_edit_only"/> | |||
|                 <field name="interest_amount" widget="monetary" | |||
|                        attrs="{'invisible': ['|',('interest_overdue_act', '=', False),('move_type','!=','out_invoice')]}"/> | |||
|             </xpath> | |||
|         </field> | |||
|     </record> | |||
| </odoo> | |||
| @ -0,0 +1,20 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <odoo> | |||
|     <!--    Inheriting account payment model for adding interest overdue fields --> | |||
|     <record id="view_payment_term_form" model="ir.ui.view"> | |||
|         <field name="name">account.payment.term.view.form.inherit.account.interest.on.overdue.invoice</field> | |||
|         <field name="model">account.payment.term</field> | |||
|         <field name="inherit_id" ref="account.view_payment_term_form"/> | |||
|         <field name="arch" type="xml"> | |||
|             <xpath expr="//field[@name='name']" position="after"> | |||
|                 <field name="interest_overdue_act"/> | |||
|                 <field name="interest_type" | |||
|                        attrs="{'required': [('interest_overdue_act', '=', True)], 'invisible': [('interest_overdue_act', '=', False)]}"/> | |||
|                 <field name="interest_percentage" | |||
|                        attrs="{'required': [('interest_overdue_act', '=', True)],'invisible': [('interest_overdue_act', '=', False)]}"/> | |||
|                 <field name="interest_account_id" | |||
|                        attrs="{'invisible': [('interest_overdue_act', '=', False)]}"/> | |||
|             </xpath> | |||
|         </field> | |||
|     </record> | |||
| </odoo> | |||
| @ -0,0 +1,26 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | |||
| <odoo> | |||
|     <!--    Inheriting invoice pdf template for adding interest overdue fields --> | |||
|     <template id="report_invoice_document_inherit_interest" | |||
|               inherit_id="account.report_invoice_document"> | |||
|         <xpath expr="//p[@name='payment_communication']" position="before"> | |||
|             <t t-if="o.interest_amount != 0"> | |||
|                 <table border="0"> | |||
|                     <tr> | |||
|                         <td>Interest Type :</td> | |||
|                         <td class="text-right"> | |||
|                             <span t-field="o.interest_type"/> | |||
|                         </td> | |||
|                     </tr> | |||
|                     <tr> | |||
|                         <td>Interest Ratio :</td> | |||
|                         <td class="text-right"> | |||
|                             <span t-field="o.interest_percentage"/> | |||
|                             % | |||
|                         </td> | |||
|                     </tr> | |||
|                 </table> | |||
|             </t> | |||
|         </xpath> | |||
|     </template> | |||
| </odoo> | |||