33
44import 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
87from odoo .exceptions import ValidationError
98
9+ from odoo .addons .payment_ceca .controllers .main import PaymentTransacionCecaController
10+
1011
1112class 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