Skip to content

Commit d458682

Browse files
committed
[IMP] payment_ceca: precommit auto fixes
1 parent 9ce1735 commit d458682

10 files changed

Lines changed: 219 additions & 185 deletions

File tree

payment_ceca/__manifest__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"name": "Ceca Payment Acquirer",
66
"version": "15.0.1.0.0",
77
"category": "Payment",
8-
"website": "https://www.sygel.es",
8+
"website": "https://github.com/sygel-technology/sy-l10n-spain",
99
"author": "Sygel, Odoo Community Association (OCA)",
1010
"license": "AGPL-3",
1111
"depends": [
@@ -16,7 +16,7 @@
1616
"data": [
1717
"views/payment_ceca_templates.xml",
1818
"views/payment_acquirer_view.xml",
19-
"data/payment_ceca_data.xml"
19+
"data/payment_ceca_data.xml",
2020
],
21-
"installable": True
21+
"installable": True,
2222
}

payment_ceca/controllers/main.py

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,54 @@
11
# Copyright 2022 Manuel Regidor <manuel.regidor@sygel.es>
22
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
33

4+
import logging
5+
46
from odoo import http
57
from odoo.http import request
68

7-
import logging
89
_logger = logging.getLogger(__name__)
910

1011

1112
class PaymentTransacionCecaController(http.Controller):
1213

13-
_return_url = '/payment/ceca/feedback'
14-
_error_url = '/payment/ceca/error'
15-
_transaction_answer_url = '/payment/ceca/notify'
14+
_return_url = "/payment/ceca/feedback"
15+
_error_url = "/payment/ceca/error"
16+
_transaction_answer_url = "/payment/ceca/notify"
1617

17-
@http.route(_return_url, type='http', auth='public', methods=['GET'], website=True)
18+
@http.route(_return_url, type="http", auth="public", methods=["GET"], website=True)
1819
def ceca_form_feedback(self, **post):
19-
return request.redirect('/payment/status')
20+
return request.redirect("/payment/status")
2021

21-
@http.route(_error_url, type='http', auth='public', methods=['GET'], website=True)
22+
@http.route(_error_url, type="http", auth="public", methods=["GET"], website=True)
2223
def ceca_form_error(self, **post):
23-
if post.get('transaction'):
24-
_logger.info("Cancelling CECA Transaction {}.".format(post.get('transaction')))
25-
transaction = request.env['payment.transaction'].sudo().search([
26-
('provider', '=', 'ceca'),
27-
('reference', '=', post.get('transaction')),
28-
('state', '=', 'draft'),
29-
], limit=1)
24+
if post.get("transaction"):
25+
_logger.info(
26+
"Cancelling CECA Transaction {}.".format(post.get("transaction"))
27+
)
28+
transaction = (
29+
request.env["payment.transaction"]
30+
.sudo()
31+
.search(
32+
[
33+
("provider", "=", "ceca"),
34+
("reference", "=", post.get("transaction")),
35+
("state", "=", "draft"),
36+
],
37+
limit=1,
38+
)
39+
)
3040
if transaction:
3141
transaction._set_canceled()
32-
return request.redirect('/payment/status')
33-
34-
@http.route(_transaction_answer_url, type='http', auth='public', methods=['POST'], csrf=False)
42+
return request.redirect("/payment/status")
43+
44+
@http.route(
45+
_transaction_answer_url,
46+
type="http",
47+
auth="public",
48+
methods=["POST"],
49+
csrf=False,
50+
)
3551
def ceca_notify(self, **post):
3652
_logger.info("CECA Online Notification: {}".format(post))
37-
request.env['payment.transaction']._handle_feedback_data('ceca', post)
38-
return 'success'
53+
request.env["payment.transaction"]._handle_feedback_data("ceca", post)
54+
return "success"

payment_ceca/data/payment_ceca_data.xml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,28 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8" ?>
22
<!-- Copyright 2022 Manuel Regidor <manuel.regidor@sygel.es>
33
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
44
<odoo noupdate="1">
55
<record id="payment_acquirer_ceca" model="payment.acquirer">
66
<field name="name">Ceca</field>
77
<field name="provider">ceca</field>
8-
<field name="image_128" type="base64" file="payment_ceca/static/src/img/ceca_icon.png"/>
8+
<field
9+
name="image_128"
10+
type="base64"
11+
file="payment_ceca/static/src/img/ceca_icon.png"
12+
/>
913
<field name="description" type="html">
1014
<p>
1115
CECA Virtual TPV.
12-
</p>
16+
</p>
1317
</field>
14-
<field name="redirect_form_view_id" ref="ceca_acquirer_button"/>
18+
<field name="redirect_form_view_id" ref="ceca_acquirer_button" />
1519
<field name="ceca_acquirer_bin">XXXXXXXXXX</field>
1620
<field name="ceca_merchant_id">XXXXXXXXXX</field>
1721
<field name="ceca_terminal_id">XXXXXXXXXX</field>
1822
<field name="ceca_business_name">XXXXX</field>
1923
<field name="ceca_encriptation_key">XXXXXXXX</field>
2024
<field name="ceca_exponente">0</field>
21-
<field name="ceca_tipo_moneda">0</field>
25+
<field name="ceca_tipo_moneda">0</field>
2226
</record>
2327
<record id="payment_method_ceca" model="account.payment.method">
2428
<field name="name">Ceca</field>

payment_ceca/models/account_payment_method.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Copyright 2022 Manuel Regidor <manuel.regidor@sygel.es>
22
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
33

4-
from odoo import models, api
4+
from odoo import api, models
55

66

77
class AccountPaymentMethod(models.Model):
8-
_inherit = 'account.payment.method'
8+
_inherit = "account.payment.method"
99

1010
@api.model
1111
def _get_payment_method_information(self):

payment_ceca/models/payment_acquirer.py

Lines changed: 67 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -3,116 +3,89 @@
33

44
import hashlib
55

6-
from odoo import models, fields, api, _
7-
from odoo.addons.payment_ceca.controllers.main import PaymentTransacionCecaController
6+
from odoo import _, api, fields, models
87
from odoo.exceptions import ValidationError
98

9+
from odoo.addons.payment_ceca.controllers.main import PaymentTransacionCecaController
10+
1011

1112
class PaymentAcquirer(models.Model):
12-
_inherit = 'payment.acquirer'
13+
_inherit = "payment.acquirer"
1314

1415
def _get_ceca_url(self, env):
15-
if env == 'prod':
16-
return 'https://pgw.ceca.es/tpvweb/tpv/compra.action'
16+
if env == "prod":
17+
return "https://pgw.ceca.es/tpvweb/tpv/compra.action"
1718
else:
18-
return 'https://tpv.ceca.es/tpvweb/tpv/compra.action'
19+
return "https://tpv.ceca.es/tpvweb/tpv/compra.action"
1920

2021
provider = fields.Selection(
21-
selection_add=[('ceca', 'Ceca')],
22-
ondelete={'ceca': 'set default'}
22+
selection_add=[("ceca", "Ceca")], ondelete={"ceca": "set default"}
2323
)
2424
ceca_acquirer_bin = fields.Char(
25-
string='Ceca Acquirer Bin',
26-
required_if_provider='ceca'
25+
string="Ceca Acquirer Bin", required_if_provider="ceca"
2726
)
2827
ceca_merchant_id = fields.Char(
29-
string='Ceca Merchant Id',
30-
required_if_provider='ceca'
28+
string="Ceca Merchant Id", required_if_provider="ceca"
3129
)
3230
ceca_terminal_id = fields.Char(
33-
string='Ceca Terminal Id',
34-
required_if_provider='ceca'
31+
string="Ceca Terminal Id", required_if_provider="ceca"
3532
)
3633
ceca_business_name = fields.Char(
37-
string='Ceca Business Name',
38-
required_if_provider='ceca'
34+
string="Ceca Business Name", required_if_provider="ceca"
3935
)
4036
ceca_encriptation_key = fields.Char(
41-
string='Ceca Encriptation Key',
42-
required_if_provider='ceca'
43-
)
44-
ceca_exponente = fields.Char(
45-
string='Ceca Exponente',
46-
required_if_provider='ceca'
37+
string="Ceca Encriptation Key", required_if_provider="ceca"
4738
)
39+
ceca_exponente = fields.Char(string="Ceca Exponente", required_if_provider="ceca")
4840
ceca_tipo_moneda = fields.Char(
49-
string='Ceca Tipo Moneda',
50-
required_if_provider='ceca'
51-
)
52-
ceca_force_bizum = fields.Boolean(
53-
string="Force Bizum"
41+
string="Ceca Tipo Moneda", required_if_provider="ceca"
5442
)
55-
ceca_force_card = fields.Boolean(
56-
string="Force Card"
57-
)
58-
ceca_force_google = fields.Boolean(
59-
string="Force Google Pay"
60-
)
61-
ceca_force_apple = fields.Boolean(
62-
string="Force Apple Pay"
63-
)
43+
ceca_force_bizum = fields.Boolean(string="Force Bizum")
44+
ceca_force_card = fields.Boolean(string="Force Card")
45+
ceca_force_google = fields.Boolean(string="Force Google Pay")
46+
ceca_force_apple = fields.Boolean(string="Force Apple Pay")
6447

6548
@api.constrains(
66-
"ceca_force_bizum",
67-
"ceca_force_card",
68-
"ceca_force_google",
69-
"ceca_force_apple"
49+
"ceca_force_bizum", "ceca_force_card", "ceca_force_google", "ceca_force_apple"
7050
)
7151
def _check_unique_force_method(self):
7252
for sel in self:
73-
if sel.provider == 'ceca' and [
74-
sel.ceca_force_bizum,
75-
sel.ceca_force_card,
76-
sel.ceca_force_google,
77-
sel.ceca_force_apple
78-
].count(True) > 1:
79-
raise ValidationError(
80-
_(
81-
"Only one payment mode can be forced."
82-
)
83-
)
53+
if (
54+
sel.provider == "ceca"
55+
and [
56+
sel.ceca_force_bizum,
57+
sel.ceca_force_card,
58+
sel.ceca_force_google,
59+
sel.ceca_force_apple,
60+
].count(True)
61+
> 1
62+
):
63+
raise ValidationError(_("Only one payment mode can be forced."))
8464

8565
def ceca_values(self, values):
8666

87-
base_url = self.env['ir.config_parameter'].get_param('web.base.url')
67+
base_url = self.env["ir.config_parameter"].get_param("web.base.url")
8868

89-
api_url = self._get_ceca_url(
90-
"prod" if self.state == "enabled" else "test"
91-
)
69+
api_url = self._get_ceca_url("prod" if self.state == "enabled" else "test")
9270
MerchantID = self.ceca_merchant_id
9371
AcquirerBIN = self.ceca_acquirer_bin
9472
TerminalID = self.ceca_terminal_id
9573
Exponente = self.ceca_exponente
9674
TipoMoneda = self.ceca_tipo_moneda
97-
URL_OK = "{}{}".format(
98-
base_url,
99-
PaymentTransacionCecaController._return_url
100-
)
75+
URL_OK = "{}{}".format(base_url, PaymentTransacionCecaController._return_url)
10176
URL_NOK = "{}{}?transaction={}".format(
102-
base_url,
103-
PaymentTransacionCecaController._error_url,
104-
values['reference']
77+
base_url, PaymentTransacionCecaController._error_url, values["reference"]
10578
)
106-
Num_operacion = values['reference']
79+
Num_operacion = values["reference"]
10780
# REVISAR ESTO COPIADO DEL OTRO MÓDULO
108-
amount_split = str(values['amount']).split('.')
109-
Importe = str(amount_split[0])+str(amount_split[1])
81+
amount_split = str(values["amount"]).split(".")
82+
Importe = str(amount_split[0]) + str(amount_split[1])
11083
# Fix ad 0 final
11184
if len(amount_split[1]) == 1:
112-
Importe = str(Importe)+'0'
85+
Importe = str(Importe) + "0"
11386
Idioma = 1
114-
Pago_soportado = 'SSL'
115-
Cifrado = 'SHA2'
87+
Pago_soportado = "SSL"
88+
Cifrado = "SHA2"
11689
Clave = self.ceca_encriptation_key
11790
Firma = "{}{}{}{}{}{}{}{}{}{}{}".format(
11891
Clave,
@@ -125,46 +98,40 @@ def ceca_values(self, values):
12598
Exponente,
12699
Cifrado,
127100
URL_OK,
128-
URL_NOK
101+
URL_NOK,
129102
)
130103
Firma = hashlib.sha256(Firma.encode()).hexdigest()
131-
values.update({
132-
'api_url': api_url,
133-
'MerchantID': MerchantID,
134-
'AcquirerBIN': AcquirerBIN,
135-
'TerminalID': TerminalID,
136-
'Exponente': Exponente,
137-
'TipoMoneda': TipoMoneda,
138-
'URL_OK': URL_OK,
139-
'URL_NOK': URL_NOK,
140-
'Num_operacion': Num_operacion,
141-
'Importe': Importe,
142-
'Idioma': Idioma,
143-
'Pago_soportado': Pago_soportado,
144-
'Descripcion': values['reference'],
145-
'Firma': Firma,
146-
'Cifrado': Cifrado
147-
})
104+
values.update(
105+
{
106+
"api_url": api_url,
107+
"MerchantID": MerchantID,
108+
"AcquirerBIN": AcquirerBIN,
109+
"TerminalID": TerminalID,
110+
"Exponente": Exponente,
111+
"TipoMoneda": TipoMoneda,
112+
"URL_OK": URL_OK,
113+
"URL_NOK": URL_NOK,
114+
"Num_operacion": Num_operacion,
115+
"Importe": Importe,
116+
"Idioma": Idioma,
117+
"Pago_soportado": Pago_soportado,
118+
"Descripcion": values["reference"],
119+
"Firma": Firma,
120+
"Cifrado": Cifrado,
121+
}
122+
)
148123
if self.ceca_force_card:
149-
values.update({
150-
'inicioTarjeta': "1"
151-
})
124+
values.update({"inicioTarjeta": "1"})
152125
elif self.ceca_force_bizum:
153-
values.update({
154-
'inicioBizum': "1"
155-
})
126+
values.update({"inicioBizum": "1"})
156127
elif self.ceca_force_google:
157-
values.update({
158-
'inicioGoogle': "1"
159-
})
128+
values.update({"inicioGoogle": "1"})
160129
elif self.ceca_force_apple:
161-
values.update({
162-
'inicioApple': "1"
163-
})
130+
values.update({"inicioApple": "1"})
164131
return values
165132

166133
def _get_default_payment_method_id(self):
167134
self.ensure_one()
168-
if self.provider != 'ceca':
135+
if self.provider != "ceca":
169136
return super()._get_default_payment_method_id()
170-
return self.env.ref('payment_ceca.payment_method_ceca').id
137+
return self.env.ref("payment_ceca.payment_method_ceca").id

0 commit comments

Comments
 (0)