@ -0,0 +1,32 @@ | 
				
			|||
Odoo Paytm Payment Gateway | 
				
			|||
========================== | 
				
			|||
Paytm Payment Gateway. | 
				
			|||
 | 
				
			|||
Installation | 
				
			|||
============ | 
				
			|||
- www.odoo.com/documentation/12.0/setup/install.html | 
				
			|||
- Install our custom addon | 
				
			|||
 | 
				
			|||
License | 
				
			|||
======= | 
				
			|||
GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) | 
				
			|||
(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 <https://www.cybrosys.com> | 
				
			|||
 | 
				
			|||
 | 
				
			|||
Developer: Afras Habis - odoo@cybrosys.com | 
				
			|||
 | 
				
			|||
Maintainer | 
				
			|||
---------- | 
				
			|||
 | 
				
			|||
This module is maintained by Cybrosys Technologies. | 
				
			|||
 | 
				
			|||
For support and more information, please visit https://www.cybrosys.com. | 
				
			|||
 | 
				
			|||
@ -0,0 +1,23 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
################################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			|||
#    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 <https://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
################################################################################### | 
				
			|||
 | 
				
			|||
from . import controllers | 
				
			|||
from . import models | 
				
			|||
@ -0,0 +1,47 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
################################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			|||
#    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 <https://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
################################################################################### | 
				
			|||
 | 
				
			|||
{ | 
				
			|||
    'name': 'Odoo Paytm Payment Gateway', | 
				
			|||
    'version': '12.0.1.0.0', | 
				
			|||
    'category': 'eCommerce', | 
				
			|||
    'summary': 'Paytm Payment Gateway Integration for Odoo 12', | 
				
			|||
    'description': 'Paytm Payment Gateway Integration, paytm, payment gateway,Payment Gateway Integration,paytm payment, odoo 12, odoo payment gateway', | 
				
			|||
    'author': 'Cybrosys Techno Solutions', | 
				
			|||
    'company': 'Cybrosys Techno Solutions', | 
				
			|||
    'maintainer': 'Cybrosys Techno Solutions', | 
				
			|||
    'images': ['static/description/banner.gif'], | 
				
			|||
    'website': 'https://www.cybrosys.com', | 
				
			|||
    'depends': ['payment'], | 
				
			|||
    'data': [ | 
				
			|||
        'views/views.xml', | 
				
			|||
        'views/templates.xml', | 
				
			|||
        'data/data.xml' | 
				
			|||
    ], | 
				
			|||
    'license': 'AGPL-3', | 
				
			|||
    'installable': True, | 
				
			|||
    'auto_install': False, | 
				
			|||
    'application': False, | 
				
			|||
 | 
				
			|||
} | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
@ -0,0 +1,22 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
################################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			|||
#    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 <https://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
################################################################################### | 
				
			|||
 | 
				
			|||
from . import controllers | 
				
			|||
@ -0,0 +1,41 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
################################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			|||
#    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 <https://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
################################################################################### | 
				
			|||
 | 
				
			|||
import logging | 
				
			|||
import pprint | 
				
			|||
import werkzeug | 
				
			|||
from werkzeug.utils import redirect | 
				
			|||
from odoo import http | 
				
			|||
from odoo.http import request | 
				
			|||
_logger = logging.getLogger(__name__) | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class AtomController(http.Controller): | 
				
			|||
    @http.route(['/payment/paytm/return/', '/payment/paytm/cancel/', '/payment/paytm/error/'], | 
				
			|||
                type='http', auth='public', csrf=False) | 
				
			|||
    def paytm_return(self, **post): | 
				
			|||
        """ Paytm.""" | 
				
			|||
 | 
				
			|||
        _logger.info( | 
				
			|||
            'Paytm: entering form_feedback with post data %s', pprint.pformat(post)) | 
				
			|||
        if post: | 
				
			|||
            request.env['payment.transaction'].sudo().form_feedback(post, 'paytm') | 
				
			|||
        return werkzeug.utils.redirect('/payment/process') | 
				
			|||
@ -0,0 +1,17 @@ | 
				
			|||
<odoo> | 
				
			|||
    <data noupdate="1"> | 
				
			|||
        <record id="payment_acquirer_atom" model="payment.acquirer"> | 
				
			|||
            <field name="name">Paytm</field> | 
				
			|||
            <field name="provider">paytm</field> | 
				
			|||
            <field name="company_id" ref="base.main_company"/> | 
				
			|||
            <field name="image" type="base64" file="paytm_payment_gateway/static/description/icon.png"/> | 
				
			|||
            <field name="view_template_id" ref="paytm_form"/> | 
				
			|||
            <field name="environment">test</field> | 
				
			|||
            <field name="pre_msg"><![CDATA[ | 
				
			|||
                <p>You will be redirected to the Paytm website after clicking on the payment button.</p>]]> | 
				
			|||
            </field> | 
				
			|||
            <field name="paytm_merchant_id">demo</field> | 
				
			|||
            <field name="paytm_merchant_key">demo</field> | 
				
			|||
        </record> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
## Module <paytm_payment_gateway> | 
				
			|||
 | 
				
			|||
#### 22.11.2019 | 
				
			|||
#### Version 12.0.1.1.0 | 
				
			|||
@ -0,0 +1,22 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
################################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			|||
#    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 <https://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
################################################################################### | 
				
			|||
 | 
				
			|||
from . import models | 
				
			|||
@ -0,0 +1,241 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
################################################################################### | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			|||
#    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 <https://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
################################################################################### | 
				
			|||
 | 
				
			|||
import base64 | 
				
			|||
import string | 
				
			|||
import random | 
				
			|||
import hashlib | 
				
			|||
 | 
				
			|||
 | 
				
			|||
from Crypto.Cipher import AES | 
				
			|||
from odoo.exceptions import ValidationError | 
				
			|||
from odoo import api, fields, models | 
				
			|||
from datetime import datetime | 
				
			|||
from werkzeug import urls | 
				
			|||
import hashlib | 
				
			|||
import json | 
				
			|||
 | 
				
			|||
import hmac | 
				
			|||
import base64 | 
				
			|||
 | 
				
			|||
import logging | 
				
			|||
 | 
				
			|||
_logger = logging.getLogger(__name__) | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class PaymentAcquirerAtom(models.Model): | 
				
			|||
    _inherit = 'payment.acquirer' | 
				
			|||
 | 
				
			|||
    provider = fields.Selection(selection_add=[('paytm', 'Paytm')]) | 
				
			|||
    paytm_merchant_id = fields.Char('Merchant ID', required_if_provider='Paytm', | 
				
			|||
                                        groups='base.group_user') | 
				
			|||
    paytm_merchant_key = fields.Char('Merchent Key', required_if_provider='Paytm', | 
				
			|||
                                        groups='base.group_user') | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    @api.model | 
				
			|||
    def _get_paytm_urls(self): | 
				
			|||
        """ Atom URLS """ | 
				
			|||
        return { | 
				
			|||
            'paytm_form_url':'https://securegw-stage.paytm.in/order/process' | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def paytm_get_form_action_url(self): | 
				
			|||
        return self._get_paytm_urls () ['paytm_form_url'] | 
				
			|||
 | 
				
			|||
    # def _paytm_generate_sign(self ,inout ,values): | 
				
			|||
    #     if inout not in ('in' ,'out'): | 
				
			|||
    #         raise Exception ("Type must be 'in' or 'out'") | 
				
			|||
    # | 
				
			|||
    #     if inout == 'in': | 
				
			|||
    #         keys="merchant_id|merchant_key|txnid|ttype|prodid|amt||||||||||".split ('|') | 
				
			|||
    #         sign=''.join ('%s|' % (values.get (k) or '') for k in keys) | 
				
			|||
    #         sign+=self.paytm_merchant_key or '' | 
				
			|||
    #     else: | 
				
			|||
    #         keys="|status|||||||||||amt|prodid|ttype|txnid".split ('|') | 
				
			|||
    #         sign=''.join ('%s|' % (values.get (k) or '') for k in keys) | 
				
			|||
    #         sign=self.paytm_merchant_key + sign + self.paytm_merchant_id | 
				
			|||
    # | 
				
			|||
    #     shasign=hashlib.sha512 (sign.encode ('utf-8')).hexdigest () | 
				
			|||
    #     return shasign | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def paytm_form_generate_values(self ,values): | 
				
			|||
        self.ensure_one () | 
				
			|||
        print("values", values) | 
				
			|||
        base_url=self.env ['ir.config_parameter'].sudo ().get_param ('web.base.url') | 
				
			|||
        now=datetime.now () | 
				
			|||
 | 
				
			|||
        paytm_values=dict ( | 
				
			|||
                          MID=self.paytm_merchant_id , | 
				
			|||
                          ORDER_ID=str(values ['reference']) , | 
				
			|||
                          CUST_ID = str(values.get('partner_id')), | 
				
			|||
                          INDUSTRY_TYPE_ID='Retail' , | 
				
			|||
                          CHANNEL_ID = 'WEB', | 
				
			|||
                          TXN_AMOUNT=str(values ['amount']) , | 
				
			|||
                          WEBSITE='WEBSTAGING', | 
				
			|||
                          EMAIL=str(values.get ('partner_email')) , | 
				
			|||
                          MOBILE_NO = str(values.get('partner_phone')), | 
				
			|||
                          CALL_BACK_URL=urls.url_join (base_url ,'/payment/paytm/return/') , | 
				
			|||
                          ) | 
				
			|||
 | 
				
			|||
        paytm_values ['reqHashKey']=self.generate_checksum(paytm_values, self.paytm_merchant_key) | 
				
			|||
        print(paytm_values ['reqHashKey']) | 
				
			|||
        return paytm_values | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def __encode__(self,to_encode ,iv ,key): | 
				
			|||
        __pad__=lambda s:s + (16 - len (s) % 16) * chr (16 - len (s) % 16) | 
				
			|||
        # Pad | 
				
			|||
        to_encode=__pad__ (to_encode) | 
				
			|||
        # Encrypt | 
				
			|||
        c=AES.new (key ,AES.MODE_CBC ,iv) | 
				
			|||
        to_encode=c.encrypt (to_encode) | 
				
			|||
        # Encode | 
				
			|||
        to_encode=base64.b64encode (to_encode) | 
				
			|||
        return to_encode.decode ("UTF-8") | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def __decode__(self,to_decode ,iv ,key): | 
				
			|||
        # Decode | 
				
			|||
        to_decode=base64.b64decode (to_decode) | 
				
			|||
        # Decrypt | 
				
			|||
        c=AES.new (key ,AES.MODE_CBC ,iv) | 
				
			|||
        to_decode=c.decrypt (to_decode) | 
				
			|||
        if type (to_decode) == bytes: | 
				
			|||
            # convert bytes array to str. | 
				
			|||
            to_decode=to_decode.decode () | 
				
			|||
        # remove pad | 
				
			|||
        return self.__unpad__ (to_decode) | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def __id_generator__(self,size=6 ,chars=string.ascii_uppercase + string.digits + string.ascii_lowercase): | 
				
			|||
        return ''.join (random.choice (chars) for _ in range (size)) | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def __get_param_string__(self,params ,escape_refund=True): | 
				
			|||
        params_string=[] | 
				
			|||
        print(params) | 
				
			|||
        for key in sorted (params.keys ()): | 
				
			|||
            print(key) | 
				
			|||
            if ("|" in params [key] or (escape_refund == True and "REFUND" in params [key])): | 
				
			|||
                respons_dict={} | 
				
			|||
                exit () | 
				
			|||
            value=params [key] | 
				
			|||
            params_string.append ('' if value == 'null' else str (value)) | 
				
			|||
        return '|'.join (params_string) | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def generate_checksum(self,param_dict ,merchant_key ,salt=None): | 
				
			|||
        params_string=self.__get_param_string__ (param_dict) | 
				
			|||
        return self.generate_checksum_by_str (params_string ,merchant_key ,salt) | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def generate_refund_checksum(self,param_dict ,merchant_key ,salt=None): | 
				
			|||
        for i in param_dict: | 
				
			|||
            if ("|" in param_dict [i]): | 
				
			|||
                param_dict={} | 
				
			|||
                exit () | 
				
			|||
        params_string=self.__get_param_string__ (param_dict ,False) | 
				
			|||
        return self.generate_checksum_by_str (params_string ,merchant_key ,salt) | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def generate_checksum_by_str(self,param_str ,merchant_key ,salt=None): | 
				
			|||
        IV="@@@@&&&&####$$$$" | 
				
			|||
        params_string=param_str | 
				
			|||
        salt=salt if salt else self.__id_generator__ (4) | 
				
			|||
        final_string='%s|%s' % (params_string ,salt) | 
				
			|||
 | 
				
			|||
        hasher=hashlib.sha256 (final_string.encode ()) | 
				
			|||
        hash_string=hasher.hexdigest () | 
				
			|||
 | 
				
			|||
        hash_string+=salt | 
				
			|||
 | 
				
			|||
        return self.__encode__ (hash_string ,IV ,merchant_key) | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def verify_checksum(self,param_dict ,merchant_key ,checksum): | 
				
			|||
        # Remove checksum | 
				
			|||
        if 'CHECKSUMHASH' in param_dict: | 
				
			|||
            param_dict.pop ('CHECKSUMHASH') | 
				
			|||
 | 
				
			|||
        params_string=self.__get_param_string__ (param_dict ,False) | 
				
			|||
        return self.verify_checksum_by_str (params_string ,merchant_key ,checksum) | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def verify_checksum_by_str(self,param_str ,merchant_key ,checksum): | 
				
			|||
        IV="@@@@&&&&####$$$$" | 
				
			|||
        paytm_hash=self.__decode__ (checksum ,IV ,merchant_key) | 
				
			|||
        salt=paytm_hash [-4:] | 
				
			|||
        calculated_checksum=self.generate_checksum_by_str (param_str ,merchant_key ,salt=salt) | 
				
			|||
        return calculated_checksum == checksum | 
				
			|||
 | 
				
			|||
class PaymentTransactionAtom(models.Model): | 
				
			|||
    _inherit = 'payment.transaction' | 
				
			|||
 | 
				
			|||
    paytm_txn_type = fields.Char('Transaction type') | 
				
			|||
 | 
				
			|||
    @api.model | 
				
			|||
    def _paytm_form_get_tx_from_data(self ,data): | 
				
			|||
        print ("dataa" ,data) | 
				
			|||
        reference =data.get ('ORDERID') | 
				
			|||
        if not reference: | 
				
			|||
            error_msg=_ ('Paytm: received data with missing reference (%s)') % (reference) | 
				
			|||
            _logger.info (error_msg) | 
				
			|||
            raise ValidationError (error_msg) | 
				
			|||
 | 
				
			|||
        txs=self.env ['payment.transaction'].search ([('reference' ,'=' ,reference)]) | 
				
			|||
        if not txs or len (txs) > 1: | 
				
			|||
            error_msg='Paytm: received data for reference %s' % (reference) | 
				
			|||
            if not txs: | 
				
			|||
                error_msg+='; no order found' | 
				
			|||
            else: | 
				
			|||
                error_msg+='; multiple order found' | 
				
			|||
            _logger.info (error_msg) | 
				
			|||
            raise ValidationError (error_msg) | 
				
			|||
        return txs [0] | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def _paytm_form_get_invalid_parameters(self ,data): | 
				
			|||
        invalid_parameters=[] | 
				
			|||
        if self.acquirer_reference and data.get ('mmp_txn') != self.acquirer_reference: | 
				
			|||
            invalid_parameters.append (('ORDERID' ,data.get ('ORDERID') ,self.acquirer_reference)) | 
				
			|||
 | 
				
			|||
        return invalid_parameters | 
				
			|||
 | 
				
			|||
    @api.multi | 
				
			|||
    def _paytm_form_validate(self ,data): | 
				
			|||
        print (data) | 
				
			|||
        status=data.get ('STATUS') | 
				
			|||
        result=self.write ({ | 
				
			|||
            'acquirer_reference':self.env ['payment.acquirer'].search ([]) , | 
				
			|||
            'date':fields.Datetime.now () , | 
				
			|||
 | 
				
			|||
        }) | 
				
			|||
        print (status) | 
				
			|||
        if status == 'TXN_SUCCESS': | 
				
			|||
            self._set_transaction_done () | 
				
			|||
        elif status != 'TXN_FAILED': | 
				
			|||
            self._set_transaction_cancel () | 
				
			|||
        else: | 
				
			|||
            self._set_transaction_pending () | 
				
			|||
        return result | 
				
			|||
		
		
			
  | 
| 
		 After Width: | Height: | Size: 452 KiB  | 
| 
		 After Width: | Height: | Size: 33 KiB  | 
| 
		 After Width: | Height: | Size: 124 KiB  | 
| 
		 After Width: | Height: | Size: 112 KiB  | 
| 
		 After Width: | Height: | Size: 212 KiB  | 
| 
		 After Width: | Height: | Size: 52 KiB  | 
| 
		 After Width: | Height: | Size: 15 KiB  | 
| 
		 After Width: | Height: | Size: 74 KiB  | 
| 
		 After Width: | Height: | Size: 51 KiB  | 
| 
		 After Width: | Height: | Size: 57 KiB  | 
| 
		 After Width: | Height: | Size: 53 KiB  | 
| 
		 After Width: | Height: | Size: 891 KiB  | 
| 
		 After Width: | Height: | Size: 101 KiB  | 
| 
		 After Width: | Height: | Size: 130 KiB  | 
| 
		 After Width: | Height: | Size: 130 KiB  | 
@ -0,0 +1,308 @@ | 
				
			|||
<div class="row" style="margin: 0;position: relative;color: #000;background-position: center;background: #ffffff;border-bottom: 1px solid #e4e4e4;text-align: center; margin: auto; display: flex;justify-content: center;">  <a  href="https://www.cybrosys.com/" target="_blank"><img src="images/cybrosys.png" style=" width: 293px; padding: 1rem 0rem; margin: auto" alt="cybrosys-logo"></a> </div> | 
				
			|||
<div class="row" style="margin:75px 0;position: relative;color: #000;background-position: center;background: #ffffff;border-bottom: 1px solid #e4e4e4; padding-bottom: 30px;"> | 
				
			|||
   <div class="col-md-7 col-sm-12 col-xs-12" style="padding: 0px"> | 
				
			|||
      <div style=" margin: 0 0 0px;padding: 20px 0 10;font-size: 23px;line-height: 35px;font-weight: 400;color: #000;border-top: 1px solid rgba(255,255,255,0.1);border-bottom: 1px solid rgba(255,255,255,0.11);text-align: left;"> | 
				
			|||
         <h1 style="font-size: 39px;font-weight: 600;margin: 0px !important;">Odoo - Paytm Payment Gateway</h1> | 
				
			|||
      </div> | 
				
			|||
      <h2 style="font-weight: 600;font-size: 1.8rem;margin-top: 15px;">Key Highlights</h2> | 
				
			|||
      <ul style=" padding: 0 1px; list-style: none; "> | 
				
			|||
         <li style="display: flex;align-items: center;padding: 8px 0;font-size: 18px;"><img src="images/checked.png" style=" width: 22px; margin-right: 6px; " alt="check">Paytm Payment Gateway in eCommerce</li> | 
				
			|||
      </ul> | 
				
			|||
   </div> | 
				
			|||
   <div class="col-md-5 col-sm-12 col-xs-12"> <img src="images/paytm.gif" class="img-responsive" alt=""> </div> | 
				
			|||
</div> | 
				
			|||
<div> | 
				
			|||
   <section class="oe_container" style="padding: 1rem 0rem 1rem; background-color: #ffffff !important;"> | 
				
			|||
      <div class="row py-4 px-3"> | 
				
			|||
         <div class="w-100" style="padding-top:30px;padding-bottom:45px;border-radius: 10px;"> | 
				
			|||
            <ul role="tablist" class="nav nav-pills justify-content-center" data-tabs="tabs" id="pills-tab" style="border: none;background: unset;"> | 
				
			|||
               <li class="nav-item mr-1 mb-3" style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #d31c22;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> <a id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true" class="nav-link active show" style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400;text-align: center; | 
				
			|||
                  color: #fff;">Overview </a> </li> | 
				
			|||
               <li class="nav-item mr-1 mb-3" style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #d31c22;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> <a id="pills-home-tab" data-toggle="pill" href="#pills-home1" role="tab" aria-controls="pills-home" aria-selected="true" class="nav-link " style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400; text-align: center; | 
				
			|||
                  color: #fff;" >Features </a> </li> | 
				
			|||
               <li class="nav-item mr-1 mb-3" style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #ffffff;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> <a class="nav-link" id="pills-profile-tab" data-toggle="pill" href="#pills-profile" role="tab" aria-controls="pills-profile" aria-selected="false" style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400; text-align: center; | 
				
			|||
                  color: #fff;">Screenshots </a> </li> | 
				
			|||
               <li class="nav-item mr-1 mb-3" style="font-size: 1.05rem;font-weight: 400;transition: all .15s ease;color: #ffffff;background-color: #d31c22;box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);border: 0;font-family: 'Open Sans',sans-serif;width: 140px;border-radius: 0.30rem;"> <a class="nav-link" id="pills-profile-tab" data-toggle="pill" href="#pills-video" role="tab" aria-controls="pills-profile" aria-selected="false" style="color: #000000;line-height: 33px;border: 0;border-radius: .25rem;font-weight: 400; text-align: center; | 
				
			|||
                  color: #fff;">Video </a> </li> | 
				
			|||
            </ul> | 
				
			|||
            <div class="tab-content" id="pills-tabContent" | 
				
			|||
               style="padding-top: 30px; padding-bottom: 30px; padding: 30px;"> | 
				
			|||
               <div class="px-3 pt-1 tab-pane fade active show" id="pills-home" role="tabpanel" aria-labelledby=" | 
				
			|||
                  pills-home-tab"> | 
				
			|||
                  <!-- Overview--> | 
				
			|||
                  <h2 style="font-weight: 600;text-align: center;width: 100%;">Overview</h2> | 
				
			|||
                  <hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> | 
				
			|||
                  <h3 class="oe_slogan" style="text-align: center;font-size: 19px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;opacity: 1 !important;line-height: 31px;font-weight: 400;letter-spacing: .5px;margin-bottom: 21px;"> | 
				
			|||
                     Paytm is an Indian e-commerce payment system and financial technology company, based out of Noida, India. | 
				
			|||
                     This Module helps to integrate Paytm Payment Gateway with your eCommerce Website . Hence Allow us to make  | 
				
			|||
                     payments via Paytm Payment Gateway. | 
				
			|||
                  </h3> | 
				
			|||
               </div> | 
				
			|||
               <div class="px-3 pt-1 tab-pane fade " id="pills-home1" role="tabpanel" aria-labelledby=" | 
				
			|||
                  pills-home-tab"> | 
				
			|||
                  <!-- feature tab--> | 
				
			|||
                  <h2 style="font-weight: 600;text-align: center;width: 100%;">Paytm Payment Gateway</h2> | 
				
			|||
                  <hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> | 
				
			|||
                  <ul> | 
				
			|||
                     <li class="mb8" style="font-family: Roboto;color: #000;list-style-type: square;font-size: 19px;line-height: 50px; background-color: #3a34380d;padding-left: 20px;border-radius: 7px;list-style: none;">  | 
				
			|||
                        <img src="images/checked.png" style=" width: 22px; margin-right: 6px; " alt="check">Payments via Paytm Payment Gateway  | 
				
			|||
                     </li> | 
				
			|||
                  </ul> | 
				
			|||
               </div> | 
				
			|||
               <!-- Screenshot tab--> | 
				
			|||
               <div class="px-3 tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab" > | 
				
			|||
                  <div class="tab-pane"> | 
				
			|||
                     <h2 style="font-weight: 600;text-align: center;width: 100%;">Screenshots</h2> | 
				
			|||
                     <hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> | 
				
			|||
                     <div> | 
				
			|||
                        <section class="oe_container"> | 
				
			|||
                           <div id="demo" class="row carousel slide  mb32" data-ride="carousel"> | 
				
			|||
                              <div class="carousel-inner"> | 
				
			|||
                                 <div class="carousel-item active" style="min-height: 0px;"> | 
				
			|||
                                    <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;"> | 
				
			|||
                                       <h3 class="alert" style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;"> <img src="images/checked.png" style=" width: 22px; margin-right: 6px; " alt="check"> After installation, open Invoicing and click on Paytm.</h3> | 
				
			|||
                                       <div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/paytm.png"> </div> | 
				
			|||
                                    </div> | 
				
			|||
                                 </div> | 
				
			|||
                                  | 
				
			|||
                                 <div class="carousel-item" style="min-height: 0px;"> | 
				
			|||
                                    <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;"> | 
				
			|||
                                       <h3 class="alert" style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;"> <img src="images/checked.png" style=" width: 22px; margin-right: 6px; " alt="check"> Enable the Payment Acquirer in Website . For Testing purpose you can select the state as test.</h3> | 
				
			|||
                                       <div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/enable.png"> </div> | 
				
			|||
                                    </div> | 
				
			|||
                                 </div> | 
				
			|||
                                  | 
				
			|||
                                 <div class="carousel-item" style="min-height: 0px;"> | 
				
			|||
                                    <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;"> | 
				
			|||
                                       <h3 class="mb32 alert" style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px; "> <img src="images/checked.png" style=" width: 22px; margin-right: 6px; " alt="check"> At the time of check out you can choose to Pay with Paytm.</h3> | 
				
			|||
                                       <div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/checkout.png"> </div> | 
				
			|||
                                    </div> | 
				
			|||
                                 </div> | 
				
			|||
                                   <div class="carousel-item" style="min-height: 0px;"> | 
				
			|||
                                    <div class="col-xs-12 col-sm-12 col-md-12 mb16 mt16" style="float: left;"> | 
				
			|||
                                       <h3 class="alert" style="font-weight:400;color: #091E42;background: #fff;text-align: left;border-radius: 0; font-size: 18px;"> <img src="images/checked.png" style=" width: 22px; margin-right: 6px; " alt="check"> The customer can fill the necessary details to pay.</h3> | 
				
			|||
                                       <div style=""> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/check_out_details.png"> </div> | 
				
			|||
                                    </div> | 
				
			|||
                                 </div> | 
				
			|||
                              </div> | 
				
			|||
                              <a class="carousel-control-prev" href="#demo" data-slide="prev" style="left:-25px;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="#demo" data-slide="next" style="right:-25px;width: 35px;color: #000;"> <span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span> </a>  | 
				
			|||
                           </div> | 
				
			|||
                        </section> | 
				
			|||
                     </div> | 
				
			|||
                  </div> | 
				
			|||
               </div> | 
				
			|||
               <div class="px-3 pt-1 tab-pane fade" id="pills-video" role="tabpanel" aria-labelledby=" | 
				
			|||
                  pills-home-tab"> | 
				
			|||
                  <!-- Video--> | 
				
			|||
                  <h2 style="font-weight: 600;text-align: center;width: 100%;">Video</h2> | 
				
			|||
                  <hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> | 
				
			|||
                  <center> | 
				
			|||
                     <p>Paytm Payment Gateway Demo</p> | 
				
			|||
                     <!--<a href="https://www.youtube.com/watch?v=57QWXrMYe84&feature=youtu.be" target="_blank"> <img src="addon-youtube.png" style="width:80%;"></a>--> | 
				
			|||
                     <div class="s_panel_video" data-video-id="7PFB7FpMFyM?rel=0" style="cursor:pointer;"> | 
				
			|||
                        <img class="img-fluid s_tooltip_tabs_tooltip_image s_figure_link pb0" src="images/task_timer_youtube.png" alt="Cybrosys Cover Video" style="max-width:100%;"> | 
				
			|||
                     </div> | 
				
			|||
                  </center> | 
				
			|||
               </div> | 
				
			|||
               <!-- faq tab--> | 
				
			|||
               <div class="px-2 px-lg-4 pt-3 tab-pane fade" id="pills-contact" role="tabpanel" aria-labelledby="pills-contact-tab"> | 
				
			|||
                  <ul class="list-unstyled"> | 
				
			|||
                  </ul> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
         </div> | 
				
			|||
      </div> | 
				
			|||
   </section> | 
				
			|||
   <section class="oe_container" style="padding: 2rem 3rem 1rem;"> | 
				
			|||
      <h2 style="font-weight: 600;text-align: center;margin-bottom: 25px;width: 100%;">Suggested Products</h2> | 
				
			|||
      <hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> | 
				
			|||
      <div id="demo1" class="row carousel slide" data-ride="carousel"> | 
				
			|||
         <!-- The slideshow --> | 
				
			|||
         <div class="carousel-inner"> | 
				
			|||
            <div class="carousel-item active" style="min-height: 0px;"> | 
				
			|||
               <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> | 
				
			|||
                  <a href="https://www.odoo.com/apps/modules/11.0/payment_2_checkout/" target="_blank"> | 
				
			|||
                     <div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/we2.jpeg"> </div> | 
				
			|||
                  </a> | 
				
			|||
               </div> | 
				
			|||
               <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> | 
				
			|||
                  <a href="https://www.odoo.com/apps/modules/13.0/accounting_dynamic_reports/" target="_blank"> | 
				
			|||
                     <div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/Dynamic.png"> </div> | 
				
			|||
                  </a> | 
				
			|||
               </div> | 
				
			|||
               <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> | 
				
			|||
                  <a href="https://www.odoo.com/apps/modules/13.0/account_reports_xlsx/" target="_blank"> | 
				
			|||
                     <div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/AccountingreportsExcel.png"> </div> | 
				
			|||
                  </a> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="carousel-item" style="min-height: 0px;"> | 
				
			|||
               <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> | 
				
			|||
                  <a href="https://www.odoo.com/apps/modules/12.0/mobile_service_shop_pro/" target="_blank"> | 
				
			|||
                     <div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/mobile_service.jpeg"> </div> | 
				
			|||
                  </a> | 
				
			|||
               </div> | 
				
			|||
               <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> | 
				
			|||
                  <a href="https://www.odoo.com/apps/modules/13.0/sales_incentive_calculation/" target="_blank"> | 
				
			|||
                     <div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/sales_incentives.png"> </div> | 
				
			|||
                  </a> | 
				
			|||
               </div> | 
				
			|||
               <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float: left;"> | 
				
			|||
                  <a href="https://www.odoo.com/apps/modules/12.0/ohrmspro_zk_attendance/" target="_blank"> | 
				
			|||
                     <div style="box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);border-radius: 10px;"> <img class="img img-responsive center-block" style="border-top-left-radius: 10px;border-top-right-radius: 10px;" src="images/biometric.jpeg"> </div> | 
				
			|||
                  </a> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
         </div> | 
				
			|||
         <!-- Left and right controls -->  | 
				
			|||
         <a class="carousel-control-prev" href="#demo1" data-slide="prev" style="left:-25px;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="right:-25px;width: 35px;color: #000;"> <span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span> </a>  | 
				
			|||
      </div> | 
				
			|||
   </section> | 
				
			|||
   <section class="row" style="padding: 2rem 3rem 1rem;margin:0px"> | 
				
			|||
      <h2 style="font-weight: 600;margin-bottom: 20px;text-align: center;width: 100%;">Our Service</h2> | 
				
			|||
      <hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> | 
				
			|||
      <div class="row" style=" display: flex; justify-content: center; flex-wrap: wrap;width: 100%; "> | 
				
			|||
         <!-- <div style="display:flex;padding-top: 20px;justify-content: space-between;"> --> | 
				
			|||
         <div class="col-md-2 col-sm-6 col-xs-12"> | 
				
			|||
            <div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> <a href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-customization.png" style="width: 100%;border-radius: 100%;"/> </a> </div> | 
				
			|||
            <h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> <a href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Odoo Customization </a> </h3> | 
				
			|||
         </div> | 
				
			|||
         <div class="col-md-2 col-sm-6 col-xs-12"> | 
				
			|||
            <div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> <a href="https://www.cybrosys.com/odoo-erp-implementation/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-erp-implementation.png" style="width: 100%;border-radius: 100%;"/> </a> </div> | 
				
			|||
            <h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> <a href="https://www.cybrosys.com/odoo-erp-implementation/" target="_blank" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Odoo Implementation </a> </h3> | 
				
			|||
         </div> | 
				
			|||
         <div class="col-md-2 col-sm-6 col-xs-12"> | 
				
			|||
            <div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> <a href="https://www.cybrosys.com/odoo-erp-integration/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-erp-integration.png" style="width: 100%;border-radius: 100%;"/> </a> </div> | 
				
			|||
            <h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> <a href="https://www.cybrosys.com/odoo-erp-integration/" target="_blank" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Odoo Integration </a> </h3> | 
				
			|||
         </div> | 
				
			|||
         <div class="col-md-2 col-sm-6 col-xs-12"> | 
				
			|||
            <div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> <a href="https://www.cybrosys.com/odoo-erp-support/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-erp-support.png" style="width: 100%;border-radius: 100%;"/> </a> </div> | 
				
			|||
            <h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> <a href="https://www.cybrosys.com/odoo-erp-support/" target="_blank" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Odoo Support</a> </h3> | 
				
			|||
         </div> | 
				
			|||
         <div class="col-md-2 col-sm-6 col-xs-12"> | 
				
			|||
            <div style="width:75px;height:75px;background:#fff; border-radius:100%;margin: auto;"> <a href="https://www.cybrosys.com/hire-odoo-developer/" target="_blank"> <img src="https://www.cybrosys.com/images/hire-odoo-developer.png" style="width: 100%;border-radius: 100%;"/> </a> </div> | 
				
			|||
            <h3 class="oe_slogan" style="font-weight: 800;text-align: center;font-size: 14px;width: 100%;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;"> <a href="https://www.cybrosys.com/hire-odoo-developer/" target="_blank" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Hire Odoo Developers</a> </h3> | 
				
			|||
            </a>  | 
				
			|||
         </div> | 
				
			|||
         <!-- </div> -->  | 
				
			|||
      </div> | 
				
			|||
   </section> | 
				
			|||
   <section class="row"  style="padding: 2rem 3rem 1rem;margin:0px"> | 
				
			|||
      <div class="row" style="margin: 0"> | 
				
			|||
         <h2 style="font-weight: 600;margin-bottom: 20px;text-align: center;width: 100%;">Our Industries</h2> | 
				
			|||
         <hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> | 
				
			|||
         <!-- <div style="display:flex;justify-content: space-between;flex-wrap:wrap;"> --> | 
				
			|||
         <div class="row" style="width: 100%"> | 
				
			|||
            <div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> | 
				
			|||
               <div  > | 
				
			|||
                  <div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> <a href="https://www.cybrosys.com/odoo/industries/best-trading-erp/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-index-industry-1.png" alt="Odoo Industry" style="    border-radius: 100%;width:100%;"/> </a> </div> | 
				
			|||
               </div> | 
				
			|||
               <div style="width:70%;float:left;"> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> <a href="https://www.cybrosys.com/odoo/industries/best-trading-erp/" target="_blank" style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> Trading </a> </h3> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 12px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px; font-family: 'Montserrat',sans-serif;"> Easily procure and sell your products. </h3> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> | 
				
			|||
               <div  > | 
				
			|||
                  <div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> <a href="https://www.cybrosys.com/odoo/industries/manufacturing-erp-software/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-index-industry-2.png" alt="Odoo Industry" style="    border-radius: 100%;width:100%;"/> </a> </div> | 
				
			|||
               </div> | 
				
			|||
               <div style="width:70%;float:left;" style=" margin-bottom: 10px; "> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> <a href="https://www.cybrosys.com/odoo/industries/manufacturing-erp-software/" target="_blank" style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> Manufacturing</a> </h3> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 12px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;font-family: 'Montserrat',sans-serif;"> Plan, track and schedule your operations. </h3> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> | 
				
			|||
               <div  > | 
				
			|||
                  <div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> <a href="https://www.cybrosys.com/odoo/industries/restaurant-management/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-index-industry-3.png" alt="Odoo Industry" style="    border-radius: 100%;width:100%;"/> </a> </div> | 
				
			|||
               </div> | 
				
			|||
               <div style="width:70%;float:left;"> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> <a href="https://www.cybrosys.com/odoo/industries/restaurant-management/" target="_blank" style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> Restaurant</a> </h3> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 12px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;font-family: 'Montserrat',sans-serif;"> Run your bar or restaurant methodical. </h3> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> | 
				
			|||
               <div  > | 
				
			|||
                  <div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> <a href="https://www.cybrosys.com/odoo/industries/pos/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-index-industry-4.png" alt="Odoo Industry" style="    border-radius: 100%;width:100%;"/> </a> </div> | 
				
			|||
               </div> | 
				
			|||
               <div style="width:70%;float:left;"> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> <a href="https://www.cybrosys.com/odoo/industries/pos/" target="_blank" style="list-style: none; color:#000; text-decoration: none;font-family: 'Montserrat',sans-serif;"> POS</a> </h3> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 12px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px;font-family: 'Montserrat',sans-serif;"> Easy configuring and convivial selling. </h3> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> | 
				
			|||
               <div  > | 
				
			|||
                  <div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> <a href="https://www.cybrosys.com/odoo/industries/ecommerce-website/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-index-industry-5.png" alt="Odoo Industry" style="    border-radius: 100%;width:100%;"/> </a> </div> | 
				
			|||
               </div> | 
				
			|||
               <div style="width:70%;float:left;"> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 0px;margin-left: 16px;"> <a href="https://www.cybrosys.com/odoo/industries/ecommerce-website/" target="_blank" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> E-commerce & Website</a> </h3> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 12px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px; font-family: 'Montserrat',sans-serif;"> Mobile friendly, awe-inspiring product pages. </h3> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> | 
				
			|||
               <div  > | 
				
			|||
                  <div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> <a href="https://www.cybrosys.com/odoo/industries/hotel-management-erp/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-index-industry-6.png" alt="Odoo Industry" style="    border-radius: 100%;width:100%;"/> </a> </div> | 
				
			|||
               </div> | 
				
			|||
               <div style="width:70%;float:left;"> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> <a href="https://www.cybrosys.com/odoo/industries/hotel-management-erp/" target="_blank" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Hotel Management</a> </h3> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 12px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px; font-family: 'Montserrat',sans-serif;"> An all-inclusive hotel management application. </h3> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> | 
				
			|||
               <div  > | 
				
			|||
                  <div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> <a href="https://www.cybrosys.com/odoo/industries/education-erp-software/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-index-industry-7.png" alt="Odoo Industry" style="    border-radius: 100%;width:100%;"/> </a> </div> | 
				
			|||
               </div> | 
				
			|||
               <div style="width:70%;float:left;"> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> <a href="https://www.cybrosys.com/odoo/industries/education-erp-software/" target="_blank" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Education</a> </h3> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 12px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px; font-family: 'Montserrat',sans-serif;"> A Collaborative platform for educational management. </h3> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="col-md-4 col-sm-6 col-xs-12" style=" margin-bottom: 10px; "> | 
				
			|||
               <div  > | 
				
			|||
                  <div style="width:75px;height:75px;background:#CE2D48; border-radius:100%;float: left;text-align: left;"> <a href="https://www.cybrosys.com/odoo/industries/service-management/" target="_blank"> <img src="https://www.cybrosys.com/images/odoo-index-industry-8.png" alt="Odoo Industry" style="    border-radius: 100%;width:100%;"/> </a> </div> | 
				
			|||
               </div> | 
				
			|||
               <div style="width:70%;float:left;"> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 14px;font-weight:800;width: auto;margin: 0;margin-top: 14px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 4px;margin-left: 16px;"> <a href="https://www.cybrosys.com/odoo/industries/service-management/" target="_blank" style="list-style: none; color:#000; text-decoration: none; font-family: 'Montserrat',sans-serif;"> Service Management</a> </h3> | 
				
			|||
                  <h3 class="oe_slogan" style=" text-align: left;font-size: 12px;width: auto;margin: 0;margin-top:5px;color: #000 !important;margin-top: 5px;opacity: 1 !important;line-height: 17px;float: left;margin-top: 5px;margin-left: 16px; font-family: 'Montserrat',sans-serif;"> Keep track of services and invoice accordingly. </h3> | 
				
			|||
               </div> | 
				
			|||
            </div> | 
				
			|||
         </div> | 
				
			|||
      </div> | 
				
			|||
</div> | 
				
			|||
</section> | 
				
			|||
<section class="oe_container" style="padding: 0% 0% 6% 0%;"> | 
				
			|||
   <center> | 
				
			|||
      <div class="col-md-12" style="margin: auto !important; | 
				
			|||
         width: 70%; | 
				
			|||
         padding: 30px;"> | 
				
			|||
         <h2 style="font-weight: 600;text-align: center;width: 100%;">Need Any Help?</h2> | 
				
			|||
         <hr style="margin-top: 0px;margin-bottom: 2%;border: 0;text-align: center;border-top: 3px solid #d21c22;width: 5%;"> | 
				
			|||
         <h4 style="font-size:16px;"> If you have anything to share with us based on your use of this module, please let us know. We are ready to offer our support. </h4> | 
				
			|||
         <div class="col-md-6" style="float:left; padding:20px;"> | 
				
			|||
            <h4><i class="fa fa-envelope"></i>Email us </h4> | 
				
			|||
            <p>odoo@cybrosys.com  / info@cybrosys.com</p> | 
				
			|||
         </div> | 
				
			|||
         <div class="col-md-6" style="float:left; padding:20px;"> | 
				
			|||
            <h4><i class="fa fa-phone"></i> Contact Us </h4> | 
				
			|||
            <a href="https://www.cybrosys.com/contact/" target="_blank"> www.cybrosys.com</a> | 
				
			|||
         </div> | 
				
			|||
      </div> | 
				
			|||
   </center> | 
				
			|||
</section> | 
				
			|||
<section class="oe_container" style="padding: 0% 0% 6% 0%;"> | 
				
			|||
   <div class="oe_slogan" style="margin-bottom: 0px;"> | 
				
			|||
      <div style=" display: flex; justify-content: center; flex-wrap: wrap; "> | 
				
			|||
      </div> | 
				
			|||
      <br> | 
				
			|||
      <img src="https://www.cybrosys.com/images/logo.png" style="width: 190px; margin-bottom: 25px;margin-top: 30px;" class="center-block"> | 
				
			|||
      <div style=" display: flex; justify-content: center; flex-wrap: wrap; "> <a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a> | 
				
			|||
         </td> | 
				
			|||
         <a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a> | 
				
			|||
         </td> | 
				
			|||
         <a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;  height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a> | 
				
			|||
         </td> | 
				
			|||
         <a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;height: 35px;padding-top: 7px;font-size: 21px;margin-right: 6px;border-radius: 100%;"></i></a> | 
				
			|||
         </td> | 
				
			|||
      </div> | 
				
			|||
   </div> | 
				
			|||
</section> | 
				
			|||
</div> | 
				
			|||
@ -0,0 +1,16 @@ | 
				
			|||
<odoo> | 
				
			|||
      <template id="paytm_form" name="Paytm Payment Form" > | 
				
			|||
            <input type="hidden" name="data_set" t-att-data-action-url="tx_url" data-remove-me=""/> | 
				
			|||
            <input type="hidden" name="MID" t-att-value='MID' /> | 
				
			|||
            <input type="hidden" name="ORDER_ID" t-att-value='ORDER_ID' /> | 
				
			|||
            <input type="hidden" name="CUST_ID" t-att-value='CUST_ID' /> | 
				
			|||
            <input type="hidden" name="INDUSTRY_TYPE_ID" t-att-value='INDUSTRY_TYPE_ID' /> | 
				
			|||
            <input type="hidden" name="CHANNEL_ID" t-att-value='CHANNEL_ID' /> | 
				
			|||
            <input type="hidden" name="TXN_AMOUNT" t-att-value='TXN_AMOUNT' /> | 
				
			|||
            <input type="hidden" name="WEBSITE" t-att-value='WEBSITE' /> | 
				
			|||
            <input type="hidden" name="EMAIL" t-att-value='EMAIL' /> | 
				
			|||
            <input type="hidden" name="MOBILE_NO" t-att-value='MOBILE_NO' /> | 
				
			|||
            <input type="hidden" name="CALLBACK_URL" t-att-value='CALL_BACK_URL' /> | 
				
			|||
            <input type="hidden" name="CHECKSUMHASH" t-att-value='reqHashKey'/> | 
				
			|||
        </template> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,29 @@ | 
				
			|||
<?xml version="1.0" encoding="utf-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <data> | 
				
			|||
        <record id="payment_acquirer_form_paytm" model="ir.ui.view"> | 
				
			|||
            <field name="name">payment.acquirer.inherit</field> | 
				
			|||
            <field name="model">payment.acquirer</field> | 
				
			|||
            <field name="inherit_id" ref="payment.acquirer_form"/> | 
				
			|||
            <field name="arch" type="xml"> | 
				
			|||
                <xpath expr='//group[@name="acquirer"]' position='after'> | 
				
			|||
                    <group attrs="{'invisible': [('provider', '!=', 'paytm')]}"> | 
				
			|||
                        <field name="paytm_merchant_id"/> | 
				
			|||
                        <field name="paytm_merchant_key" password="True"/> | 
				
			|||
                    </group> | 
				
			|||
                </xpath> | 
				
			|||
            </field> | 
				
			|||
        </record> | 
				
			|||
 | 
				
			|||
        <record id="transaction_form_paytm" model="ir.ui.view"> | 
				
			|||
                <field name="name">acquirer.transaction.form.paytm</field> | 
				
			|||
                <field name="model">payment.transaction</field> | 
				
			|||
                <field name="inherit_id" ref="payment.transaction_form"/> | 
				
			|||
                <field name="arch" type="xml"> | 
				
			|||
                    <xpath expr="//field[@name='acquirer_reference']" position="after"> | 
				
			|||
                        <field name="paytm_txn_type" readonly="1" attrs="{'invisible': [('provider', '!=', 'paytm')]}"/> | 
				
			|||
                    </xpath> | 
				
			|||
                </field> | 
				
			|||
        </record> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||