@ -0,0 +1,53 @@ |
|||||
|
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
||||
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html |
||||
|
:alt: License: AGPL-3 |
||||
|
|
||||
|
Myfatoorah Payment Gateway |
||||
|
=========================== |
||||
|
* This module helps users to pay online through MyFatoorah payment gateway from Odoo Website. |
||||
|
|
||||
|
Installation |
||||
|
============ |
||||
|
- www.odoo.com/documentation/14.0/setup/install.html |
||||
|
- Install our custom addon |
||||
|
|
||||
|
Features |
||||
|
======== |
||||
|
* Easily pay for the website order in odoo through MyFatoorah payment gateway. |
||||
|
* Myfatoorah is a fast and reliable payment gateway and can make payment by entering card details online. |
||||
|
* Install the app , provide the token and make the payment. |
||||
|
|
||||
|
Company |
||||
|
======= |
||||
|
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__ |
||||
|
|
||||
|
License |
||||
|
======= |
||||
|
GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) |
||||
|
(http://www.gnu.org/licenses/agpl-3.0-standalone.html) |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
* Developer: (V14) RAHUL C K, Contact: odoo@cybrosys.com |
||||
|
|
||||
|
Contacts |
||||
|
======== |
||||
|
* Mail Contact : odoo@cybrosys.com |
||||
|
* Website : https://cybrosys.com |
||||
|
|
||||
|
Bug Tracker |
||||
|
=========== |
||||
|
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. |
||||
|
|
||||
|
Maintainer |
||||
|
---------- |
||||
|
.. image:: https://cybrosys.com/images/logo.png |
||||
|
:target: https://cybrosys.com |
||||
|
|
||||
|
This module is maintained by Cybrosys Technologies. |
||||
|
|
||||
|
For support and more information, please visit https://www.cybrosys.com. |
||||
|
|
||||
|
Further information |
||||
|
=================== |
||||
|
HTML Description: `<static/description/index.html>`__ |
@ -0,0 +1,28 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2023-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: Rahul CK(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO GENERAL |
||||
|
# PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC |
||||
|
# LICENSE (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
from . import controllers |
||||
|
from . import models |
||||
|
from odoo.addons.payment.models.payment_acquirer import create_missing_journal_for_acquirers |
||||
|
from odoo.addons.payment import reset_payment_provider |
||||
|
|
||||
|
def uninstall_hook(cr, registry): |
||||
|
reset_payment_provider(cr, registry, 'myfatoorah') |
@ -0,0 +1,47 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2023-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: Rahul CK(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO GENERAL |
||||
|
# PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC |
||||
|
# LICENSE (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
{ |
||||
|
'name': 'Myfatoorah Payment Gateway', |
||||
|
'version': '14.0.1.0.0', |
||||
|
'category': 'Accounting/Payment Acquirers', |
||||
|
'Summary': """Payment Acquirer: MyFatoorah Payment Implementation""", |
||||
|
'description': """Pay online through MyFatoorah Payment Gateway in odoo.""", |
||||
|
'author': "Cybrosys Techno Solutions", |
||||
|
'company': 'Cybrosys Techno Solutions', |
||||
|
'maintainer': 'Cybrosys Techno Solutions', |
||||
|
'website': "https://www.cybrosys.com", |
||||
|
'depends': ['website', 'website_sale', 'payment', 'account', |
||||
|
'account_payment'], |
||||
|
'data': [ |
||||
|
'views/payment_acquirer_views.xml', |
||||
|
'views/myfatoorah_payment_gateway_templates.xml', |
||||
|
'views/myfatoorah_payment_template.xml', |
||||
|
'data/payment_provider_data.xml', |
||||
|
], |
||||
|
'post_init_hook': 'create_missing_journal_for_acquirers', |
||||
|
'uninstall_hook': 'uninstall_hook', |
||||
|
'images': ['static/description/banner.png'], |
||||
|
'license': 'AGPL-3', |
||||
|
'installable': True, |
||||
|
'application': True, |
||||
|
'auto_install': False, |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2023-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: Rahul CK(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO GENERAL |
||||
|
# PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC |
||||
|
# LICENSE (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
from . import myfatoorah_payment_gateway |
@ -0,0 +1,70 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2023-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: Rahul CK(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO GENERAL |
||||
|
# PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC |
||||
|
# LICENSE (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
import logging |
||||
|
import pprint |
||||
|
from odoo import http |
||||
|
from odoo.http import request |
||||
|
|
||||
|
_logger = logging.getLogger(__name__) |
||||
|
|
||||
|
|
||||
|
class PaymentMyFatoorahController(http.Controller): |
||||
|
"""Controller handling MyFatoorah payments.""" |
||||
|
_return_url = '/payment/myfatoorah/_return_url' |
||||
|
|
||||
|
@http.route('/payment/myfatoorah/response', type='http', auth='public', |
||||
|
website=True, methods=['POST'], csrf=False, save_session=False) |
||||
|
def myfatoorah_payment_response(self, **data): |
||||
|
"""This route is called to send response for the payment requested.""" |
||||
|
last_tx_id = request.session.get('__website_sale_last_tx_id') |
||||
|
transaction_id = request.env['payment.transaction'].sudo().browse(last_tx_id) |
||||
|
payment_data = transaction_id.execute_payment() |
||||
|
vals = { |
||||
|
'customer': payment_data["CustomerName"], |
||||
|
'currency': payment_data["DisplayCurrencyIso"], |
||||
|
'mobile': payment_data["CustomerMobile"], |
||||
|
'invoice_amount': payment_data["InvoiceValue"], |
||||
|
'address': payment_data["CustomerAddress"]["Address"], |
||||
|
'payment_url': payment_data["PaymentURL"], |
||||
|
|
||||
|
} |
||||
|
return request.render( |
||||
|
"myfatoorah_payment_gateway.myfatoorah_payment_gateway_form", vals) |
||||
|
|
||||
|
@http.route(_return_url, type='http', auth='public', |
||||
|
methods=['GET']) |
||||
|
def myfatoorah__checkout(self, **data): |
||||
|
"""This route is called to return the url to redirect to the checkout |
||||
|
page of payment.""" |
||||
|
_logger.info("Received MyFatoorah return data:\n%s", |
||||
|
pprint.pformat(data)) |
||||
|
tx_sudo = request.env['payment.transaction'].sudo()._get_tx_from_notification_data( 'myfatoorah', data) |
||||
|
tx_sudo._handle_notification_data('myfatoorah', data) |
||||
|
return request.redirect('/payment/status') |
||||
|
|
||||
|
@http.route('/payment/myfatoorah/failed', type='http', auth='user', |
||||
|
website=True, ) |
||||
|
def payment_failed(self, redirect=None): |
||||
|
"""This route is called to redirect to the payment failed page, |
||||
|
if the payment is failed.""" |
||||
|
return request.render( |
||||
|
"myfatoorah_payment_gateway.myfatoorah_payment_gateway_failed_form") |
@ -0,0 +1,13 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8" ?> |
||||
|
<odoo> |
||||
|
<!-- New Payment acquirer is added in payment.acquirer model--> |
||||
|
<record id="payment_acquirer_fatoorah" model="payment.acquirer"> |
||||
|
<field name="name">MyFatoorah</field> |
||||
|
<field name="image_128" type="base64" file="myfatoorah_payment_gateway/static/description/icon.png"/> |
||||
|
<field name="provider">myfatoorah</field> |
||||
|
<field name="state">test</field> |
||||
|
<field name="company_id" ref="base.main_company"/> |
||||
|
<field name="view_template_id" ref="myfatoorah_form"/> |
||||
|
<field name="module_id" ref="base.module_myfatoorah_payment_gateway"/> |
||||
|
</record> |
||||
|
</odoo> |
@ -0,0 +1,6 @@ |
|||||
|
## Module <myfatoorah_payment_gateway> |
||||
|
|
||||
|
#### 18.12.2023 |
||||
|
#### Version 14.0.1.0.0 |
||||
|
#### ADD |
||||
|
- Initial commit for MyFatoorah Payment Gateway |
@ -0,0 +1,23 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2023-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: Rahul CK(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO GENERAL |
||||
|
# PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC |
||||
|
# LICENSE (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
from . import payment_acquirer |
||||
|
from . import payment_transaction |
@ -0,0 +1,73 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2023-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: Rahul CK(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO GENERAL |
||||
|
# PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC |
||||
|
# LICENSE (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
from odoo import fields, models, api, _ |
||||
|
|
||||
|
|
||||
|
class PaymentAcquirer(models.Model): |
||||
|
"""New fields are added in payment_acquirer model and compute payment |
||||
|
information.""" |
||||
|
_inherit = 'payment.acquirer' |
||||
|
|
||||
|
provider = fields.Selection( |
||||
|
selection_add=[('myfatoorah', "MyFatoorah")], |
||||
|
ondelete={'myfatoorah': 'set default'} |
||||
|
) |
||||
|
myfatoorah_token = fields.Char(string='Token') |
||||
|
|
||||
|
@api.model |
||||
|
def _get_payment_method_information(self): |
||||
|
"""Fetch the payment method details""" |
||||
|
res = super()._get_payment_method_information() |
||||
|
res['mfatoorah'] = {'mode': 'unique', 'domain': [('type', '=', 'bank')]} |
||||
|
return res |
||||
|
|
||||
|
def _myfatoorah_get_api_url(self): |
||||
|
""" Return the API URL according to the provider state. |
||||
|
Note: self.ensure_one() |
||||
|
:return: The API URL |
||||
|
:rtype: str |
||||
|
""" |
||||
|
self.ensure_one() |
||||
|
if self.state == 'enabled': |
||||
|
return 'https://api.myfatoorah.com/' |
||||
|
else: |
||||
|
return 'https://apitest.myfatoorah.com/' |
||||
|
|
||||
|
@api.model |
||||
|
def _create_missing_journal_for_acquirers(self, company=None): |
||||
|
"""Create the missing journals for payment acquirers.""" |
||||
|
company = company or self.env.company |
||||
|
acquirers = self.env['payment.acquirer'].search( |
||||
|
[('provider', '=', 'myfatoorah'), ('journal_id', '=', False), |
||||
|
('company_id', '=', company.id)]) |
||||
|
|
||||
|
bank_journal = self.env['account.journal'].search( |
||||
|
[('type', '=', 'bank'), ('company_id', '=', company.id)], limit=1) |
||||
|
if bank_journal: |
||||
|
acquirers.write({'journal_id': bank_journal.id}) |
||||
|
return super(PaymentAcquirer, |
||||
|
self)._create_missing_journal_for_acquirers( |
||||
|
company=company) |
||||
|
|
||||
|
def myfatoorah_get_form_action_url(self): |
||||
|
"""Get the url for the form""" |
||||
|
return '/payment/myfatoorah/response' |
@ -0,0 +1,147 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2023-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
||||
|
# Author: Rahul CK(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO GENERAL |
||||
|
# PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC |
||||
|
# LICENSE (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
import json |
||||
|
import logging |
||||
|
import requests |
||||
|
from odoo import _, models |
||||
|
from odoo.exceptions import ValidationError |
||||
|
# Import required libraries (make sure it is installed!) |
||||
|
|
||||
|
_logger = logging.getLogger(__name__) |
||||
|
|
||||
|
|
||||
|
class PaymentTransaction(models.Model): |
||||
|
"""Extend and customize payment transactions for MyFatoorah integration.""" |
||||
|
_inherit = 'payment.transaction' |
||||
|
|
||||
|
def execute_payment(self): |
||||
|
"""Fetching data and Executing Payment""" |
||||
|
base_api_url = self.env['payment.acquirer'].search( |
||||
|
[('provider', '=', 'myfatoorah')])._myfatoorah_get_api_url() |
||||
|
api_url = f"{base_api_url}v2/ExecutePayment" |
||||
|
api_key = self.env['payment.acquirer'].search( |
||||
|
[('provider', '=', 'myfatoorah')]).myfatoorah_token |
||||
|
odoo_base_url = self.env['ir.config_parameter'].get_param( |
||||
|
'web.base.url') |
||||
|
sale_order = self.env['payment.transaction'].search( |
||||
|
[('id', '=', self.id)]).sale_order_ids |
||||
|
order_line = self.env['payment.transaction'].search( |
||||
|
[('id', '=', self.id)]).sale_order_ids.order_line |
||||
|
invoice_items = [ |
||||
|
{ |
||||
|
'ItemName': rec.product_id.name, |
||||
|
'Quantity': int(rec.product_uom_qty), |
||||
|
'UnitPrice': rec.price_unit, |
||||
|
} |
||||
|
for rec in order_line |
||||
|
] |
||||
|
MobileCountryCode = self.partner_id.country_id.phone_code |
||||
|
phone_number = self.partner_phone |
||||
|
if not phone_number: |
||||
|
raise ValueError("Please provide the phone number.") |
||||
|
if phone_number: |
||||
|
phone_number = phone_number.replace(str(MobileCountryCode), '') |
||||
|
if phone_number.startswith('+'): |
||||
|
phone_number = phone_number[1:] |
||||
|
payment_details = { |
||||
|
"PaymentMethodId": 6, |
||||
|
"CustomerName": self.partner_name, |
||||
|
"DisplayCurrencyIso": self.currency_id.name, |
||||
|
"MobileCountryCode": MobileCountryCode, |
||||
|
"CustomerMobile": phone_number, |
||||
|
"CustomerEmail": self.partner_email, |
||||
|
"InvoiceValue": (self.amount - sale_order.amount_tax), |
||||
|
"CallBackUrl": f"{odoo_base_url}/payment/myfatoorah/_return_url", |
||||
|
"ErrorUrl": f"{odoo_base_url}/payment/myfatoorah/failed", |
||||
|
"Language": "en", |
||||
|
"CustomerReference": self.reference, |
||||
|
"CustomerAddress": { |
||||
|
"Address": f'{self.partner_address},' |
||||
|
f'{self.partner_city}, {self.partner_zip},' |
||||
|
f'{self.partner_country_id.name}', |
||||
|
}, |
||||
|
"InvoiceItems": |
||||
|
invoice_items |
||||
|
} |
||||
|
headers = { |
||||
|
'Content-Type': 'application/json', |
||||
|
'Accept': 'application/json', |
||||
|
'Authorization': f'Bearer {api_key}', |
||||
|
} |
||||
|
payload = json.dumps(payment_details) |
||||
|
response = requests.request("POST", api_url, headers=headers, |
||||
|
data=payload) |
||||
|
response_data = response.json() |
||||
|
payment_url = response_data.get('Data')['PaymentURL'] |
||||
|
payment_details['PaymentURL'] = payment_url |
||||
|
return payment_details |
||||
|
def _get_tx_from_notification_data(self, provider, notification_data): |
||||
|
"""Getting payment status from myfatoorah""" |
||||
|
api_key = self.env['payment.acquirer'].search( |
||||
|
[('provider', '=', 'myfatoorah')]).myfatoorah_token |
||||
|
base_api_url = self.env['payment.acquirer'].search( |
||||
|
[('provider', '=', 'myfatoorah')])._myfatoorah_get_api_url() |
||||
|
url = f"{base_api_url}v2/GetPaymentStatus" |
||||
|
paymentid = notification_data.get('paymentId') |
||||
|
payload = json.dumps({ |
||||
|
"Key": f"{paymentid}", |
||||
|
"KeyType": "paymentId" |
||||
|
}) |
||||
|
headers = { |
||||
|
'Content-Type': 'application/json', |
||||
|
'Accept': 'application/json', |
||||
|
'Authorization': f'Bearer {api_key}', |
||||
|
} |
||||
|
response = requests.request("POST", url, headers=headers, data=payload) |
||||
|
response_data = response.json() |
||||
|
tx = super()._get_tx_from_notification_data(provider, |
||||
|
notification_data) |
||||
|
if provider != 'myfatoorah' or len(tx) == 1: |
||||
|
return tx |
||||
|
reference = response_data["Data"]["CustomerReference"] |
||||
|
tx = self.search( |
||||
|
[ |
||||
|
('reference', '=', reference), |
||||
|
('provider', '=', 'myfatoorah')]) |
||||
|
if not tx: |
||||
|
raise ValidationError( |
||||
|
"myfatoorah: " + _( |
||||
|
"No transaction found matching reference %s.", |
||||
|
reference) |
||||
|
) |
||||
|
return tx |
||||
|
|
||||
|
def _handle_notification_data(self, provider, notification_data): |
||||
|
"""Handle notification data from MyFatoorah and process transaction.""" |
||||
|
tx = self._get_tx_from_notification_data(provider, |
||||
|
notification_data) |
||||
|
tx._process_notification_data(notification_data) |
||||
|
tx._execute_callback() |
||||
|
return tx |
||||
|
|
||||
|
def _process_notification_data(self, notification_data): |
||||
|
"""Process notification data, specifically for MyFatoorah transactions.""" |
||||
|
super()._process_notification_data(notification_data) |
||||
|
if self.provider != 'myfatoorah': |
||||
|
return |
||||
|
else: |
||||
|
self._set_done() |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 222 KiB |
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 211 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 122 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 40 KiB |
@ -0,0 +1,489 @@ |
|||||
|
<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="cybro_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;"> |
||||
|
Myfatoorah Payment Gateway</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;"> |
||||
|
Pay online for website orders through Myfatoorah Payment Gateway |
||||
|
</p> |
||||
|
<img src="images/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 module helps users to pay online through Myfatoorah payment gateway from Odoo Website.</p> |
||||
|
</div> |
||||
|
</p> |
||||
|
|
||||
|
</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> |
||||
|
<h4 |
||||
|
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> |
||||
|
Community & Enterprise Support</h4> |
||||
|
<p |
||||
|
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> |
||||
|
Available in Odoo 14.0 Community and Enterprise.</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
<br/> |
||||
|
<div class="col-md-6 pl-3 py-3 d-flex"> |
||||
|
<div> |
||||
|
<span style="font-family: 'Roboto', sans-serif; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> |
||||
|
- Easily pay for the website order in odoo through Myfatoorah payment gateway.</span> |
||||
|
<p |
||||
|
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> |
||||
|
- Myfatoorah is a fast and reliable payment gateway and can make payment by entering card details online.</p> |
||||
|
</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"> |
||||
|
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: 600;"> |
||||
|
Website</h3> |
||||
|
<img src="images/image_1.png" |
||||
|
class="img-responsive img-thumbnail border" width="100%" |
||||
|
height="auto"/> |
||||
|
</div> |
||||
|
|
||||
|
<div class="col-lg-12 my-3"> |
||||
|
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: 600;"> |
||||
|
Payment Acquirer Kanban |
||||
|
</h3> |
||||
|
<img src="images/image_2.png" |
||||
|
class="img-responsive img-thumbnail border" width="100%" |
||||
|
height="auto"/> |
||||
|
</div> |
||||
|
|
||||
|
<div class="col-lg-12 my-3"> |
||||
|
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: 600;"> |
||||
|
Payment Acquirer Form |
||||
|
</h3> |
||||
|
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: 400;"> |
||||
|
Enable the payment acquirer and provide the token for payment.<br/> |
||||
|
(Test tokens are available in myfatoorah docs page in website) |
||||
|
</h3> |
||||
|
<img src="images/image_3.png" |
||||
|
class="img-responsive img-thumbnail border" width="100%" |
||||
|
height="auto"/> |
||||
|
</div> |
||||
|
|
||||
|
<div class="col-lg-12 my-3"> |
||||
|
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: 600;"> |
||||
|
Website shop |
||||
|
</h3> |
||||
|
<img src="images/image_4.png" |
||||
|
class="img-responsive img-thumbnail border" width="100%" |
||||
|
height="auto"/> |
||||
|
</div> |
||||
|
|
||||
|
<div class="col-lg-12 my-3"> |
||||
|
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: 400;"> |
||||
|
In the payment section choose myfatoorah payment acquirer and click on Pay Now. |
||||
|
</h3> |
||||
|
<img src="images/image_5.png" |
||||
|
class="img-responsive img-thumbnail border" width="100%" |
||||
|
height="auto"/> |
||||
|
</div> |
||||
|
|
||||
|
<div class="col-lg-12 my-3"> |
||||
|
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: 400;"> |
||||
|
The deatils of sale will be automatically added to payment form. |
||||
|
</h3> |
||||
|
<img src="images/image_6.png" |
||||
|
class="img-responsive img-thumbnail border" width="100%" |
||||
|
height="auto"/> |
||||
|
</div> |
||||
|
|
||||
|
<div class="col-lg-12 my-3"> |
||||
|
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: 400;"> |
||||
|
Provide the card details. |
||||
|
</h3> |
||||
|
<img src="images/image_7.png" |
||||
|
class="img-responsive img-thumbnail border" width="100%" |
||||
|
height="auto"/> |
||||
|
</div> |
||||
|
|
||||
|
<div class="col-lg-12 my-3"> |
||||
|
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: 400;"> |
||||
|
Complete the payment by providing the details. |
||||
|
</h3> |
||||
|
<img src="images/image_8.png" |
||||
|
class="img-responsive img-thumbnail border" width="100%" |
||||
|
height="auto"/> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
<!-- SUGGESTED PRODUCTS --> |
||||
|
<div class="row"> |
||||
|
<div class="col-lg-12 d-flex flex-column justify-content-center" |
||||
|
style="text-align: center; padding: 2.5rem 1rem !important;"> |
||||
|
<h2 style="color: #212529 !important;">Suggested Products</h2> |
||||
|
<hr |
||||
|
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/> |
||||
|
|
||||
|
<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://apps.odoo.com/apps/modules/14.0/whatsapp_redirect/" |
||||
|
target="_blank"> |
||||
|
<div style="border-radius:10px"> |
||||
|
<img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius:10px; border-top-right-radius:10px" |
||||
|
src="images/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/14.0/user_weather_notification/" |
||||
|
target="_blank"> |
||||
|
<div style="border-radius:10px"> |
||||
|
<img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius:10px; border-top-right-radius:10px" |
||||
|
src="images/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/14.0/openai_odoo_base/" |
||||
|
target="_blank"> |
||||
|
<div style="border-radius:10px"> |
||||
|
<img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius:10px; border-top-right-radius:10px" |
||||
|
src="images/3.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://apps.odoo.com/apps/modules/14.0/product_return_pos/" |
||||
|
target="_blank"> |
||||
|
<div style="border-radius:10px"> |
||||
|
<img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius:10px; border-top-right-radius:10px" |
||||
|
src="images/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/14.0/login_using_qr/" |
||||
|
target="_blank"> |
||||
|
<div style="border-radius:10px"> |
||||
|
<img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius:10px; border-top-right-radius:10px" |
||||
|
src="images/5.png"> |
||||
|
</div> |
||||
|
</a> |
||||
|
</div> |
||||
|
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" |
||||
|
style="float:left"> |
||||
|
<a href="https://apps.odoo.com/apps/modules/14.0/invoice_format_editor/" |
||||
|
target="_blank"> |
||||
|
<div style="border-radius:10px"> |
||||
|
<img class="img img-responsive center-block" |
||||
|
style="border-top-left-radius:10px; border-top-right-radius:10px" |
||||
|
src="images/6.png"> |
||||
|
</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> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- END OF SUGGESTED PRODUCTS --> |
||||
|
|
||||
|
<!-- OUR SERVICES --> |
||||
|
<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> |
||||
|
</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</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> |
||||
|
</div> |
@ -0,0 +1,24 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<!-- Payment Redirect Form--> |
||||
|
<template id="myfatoorah_form"> |
||||
|
<form t-att-action="api_url" method="post"> |
||||
|
<input type="hidden" name="data_set" t-att-data-action-url="tx_url" data-remove-me=""/> |
||||
|
<input type="hidden" name="csrf_token" |
||||
|
t-att-value="request.csrf_token()"/> |
||||
|
<input type="hidden" name="headers" t-att-value="headers"/> |
||||
|
<input type="hidden" name="data" t-att-value="data"/> |
||||
|
<input type="hidden" name="CustomerName" |
||||
|
t-att-value="CustomerName"/> |
||||
|
<input type="hidden" name="InvoiceValue" |
||||
|
t-att-value="InvoiceValue"/> |
||||
|
<input type="hidden" name="DisplayCurrencyIso" |
||||
|
t-att-value="DisplayCurrencyIso"/> |
||||
|
<input type="hidden" name="CustomerReference" |
||||
|
t-att-value="CustomerReference"/> |
||||
|
<input type="hidden" name="CallBackUrl" t-att-value="CallBackUrl"/> |
||||
|
<input type="hidden" name="ErrorUrl" t-att-value="ErrorUrl"/> |
||||
|
<input t-if="complete_url" type="hidden" name='complete_url' t-att-value="complete_url"/> |
||||
|
</form> |
||||
|
</template> |
||||
|
</odoo> |
@ -0,0 +1,107 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<!-- MyFatoorah payment page form template--> |
||||
|
<template id="myfatoorah_payment_gateway_form" |
||||
|
name="Myfatoorah Payment confirm form"> |
||||
|
<t t-call="website.layout"> |
||||
|
<div id="wrap"> |
||||
|
<div class="container"> |
||||
|
<div class="d-flex justify-content-center"> |
||||
|
<div class="mt-5"> |
||||
|
<h2 class="text-center">Payment Details</h2> |
||||
|
<br/> |
||||
|
<div class="form-label-group"> |
||||
|
<table class="table table-borderless"> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td> |
||||
|
<label for="customer"> |
||||
|
Customer |
||||
|
</label> |
||||
|
<input type="text" |
||||
|
class="form-control shadow-none" |
||||
|
name="customer" |
||||
|
t-att-value="customer" |
||||
|
readonly="1"/> |
||||
|
</td> |
||||
|
<td> |
||||
|
<label for="currency"> |
||||
|
Currency |
||||
|
</label> |
||||
|
<input type="text" |
||||
|
class="form-control shadow-none" |
||||
|
name="currency" |
||||
|
t-att-value="currency" |
||||
|
readonly="1"/> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
<label for="mobile"> |
||||
|
Mobile |
||||
|
</label> |
||||
|
<input type="text" |
||||
|
class="form-control shadow-none" |
||||
|
name="mobile" |
||||
|
t-att-value="mobile" |
||||
|
readonly="1"/> |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
<label for="invoice_amount"> |
||||
|
Invoice Amount |
||||
|
</label> |
||||
|
<input type="text" |
||||
|
class="form-control shadow-none" |
||||
|
name="invoice_amount" |
||||
|
t-att-value="invoice_amount" |
||||
|
readonly="1"/> |
||||
|
</td> |
||||
|
<td> |
||||
|
<label for="address"> |
||||
|
Address |
||||
|
</label> |
||||
|
<input type="text" |
||||
|
class="form-control shadow-none" |
||||
|
name="address" |
||||
|
t-att-value="address" |
||||
|
readonly="1"/> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
<tfoot> |
||||
|
<tr> |
||||
|
<td colspan="2" |
||||
|
class="text-center"> |
||||
|
<a class="btn btn-primary" |
||||
|
t-attf-href="{{payment_url}}"> |
||||
|
Confirm |
||||
|
</a> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</tfoot> |
||||
|
</table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</t> |
||||
|
</template> |
||||
|
|
||||
|
<template id="myfatoorah_payment_gateway_failed_form" |
||||
|
name="Myfatoorah Payment confirm failed form"> |
||||
|
<t t-call="website.layout"> |
||||
|
<div id="wrap"> |
||||
|
<div class="container"> |
||||
|
<div class="col-md-12"> |
||||
|
<div class="alert alert-danger"> |
||||
|
Payment Failed! Please try again. |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</t> |
||||
|
</template> |
||||
|
</odoo> |
@ -0,0 +1,18 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<!-- Field token is added in payment.acquirer model for myfatoorah payment acquirer--> |
||||
|
<record id="acquirer_form" model="ir.ui.view"> |
||||
|
<field name="name">payment_acquirer_view_form_inherit_myfatoorah_payment_gateway</field> |
||||
|
<field name="model">payment.acquirer</field> |
||||
|
<field name="inherit_id" ref="payment.acquirer_form"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<group name="acquirer" position='inside'> |
||||
|
<group attrs="{'invisible': [('provider', '!=', 'myfatoorah')]}"> |
||||
|
<field name="myfatoorah_token" |
||||
|
string="Token" |
||||
|
attrs="{'required': [('provider', '=', 'myfatoorah'), ('state', '!=', 'disabled')]}"/> |
||||
|
</group> |
||||
|
</group> |
||||
|
</field> |
||||
|
</record> |
||||
|
</odoo> |