Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
l10n_mx
Facturacion
Commits
fb6bd50b
Commit
fb6bd50b
authored
6 years ago
by
Cuauhtémoc Díaz Minor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
style(xpd_tu_factura): isort y black
parent
ed5f8992
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
31 deletions
+34
-31
l10n_mx_params_pac/pacs/expide_tu_factura.py
l10n_mx_params_pac/pacs/expide_tu_factura.py
+34
-31
No files found.
l10n_mx_params_pac/pacs/expide_tu_factura.py
View file @
fb6bd50b
...
...
@@ -5,32 +5,24 @@ import base64
import
logging
import
re
import
string
import
tempfile
from
datetime
import
datetime
from
lxml
import
etree
from
pytz
import
timezone
,
utc
from
requests
import
Request
,
Session
import
xmltodict
from
SOAPpy
import
Types
,
WSDL
from
openerp
import
api
,
fields
,
models
from
openerp.addons.l10n_mx_ir_attachment_facturae.lib
import
pyxmldsig
from
openerp.exceptions
import
Warning
as
UserError
from
openerp.tools.translate
import
_
from
..lib
import
xpd_envelopes
from
..lib.pac_answer
import
PacCancelAnswer
,
PacConsultAnswer
from
..models
import
exceptions
as
pac_exceptions
from
..lib
import
xpd_envelopes
_logger
=
logging
.
getLogger
(
__name__
)
TIMEOUT
=
60
_ACTIONS
=
{
"timbrar"
:
"timbrar"
,
"cancelar"
:
""
,
"consultar"
:
""
}
_ACTIONS
=
{
"timbrar"
:
"timbrar"
,
"cancelar"
:
""
,
"consultar"
:
""
}
class
ParamsPac
(
models
.
Model
):
...
...
@@ -80,7 +72,10 @@ class ParamsPac(models.Model):
return
factura_mx_type__fc
def
create_header
(
self
,
method
):
return
{
"SOAPAction"
:
"%s"
%
(
_ACTIONS
[
method
]),
"Content-Type"
:
"text/xml;charset=UTF-8"
}
return
{
"SOAPAction"
:
"%s"
%
(
_ACTIONS
[
method
]),
"Content-Type"
:
"text/xml;charset=UTF-8"
,
}
@
api
.
one
def
sign_file
(
self
,
fdata
=
None
):
...
...
@@ -94,10 +89,13 @@ class ParamsPac(models.Model):
msg
+=
_
(
"WARNING, SIGNED IN TEST!!!!
\n\n
"
)
data
=
xpd_envelopes
.
_SOAPENV
%
(
self
.
namespace_sign
,
self
.
user
,
self
.
password
,
fdata
self
.
namespace_sign
,
self
.
user
,
self
.
password
,
fdata
,
)
_logger
.
debug
(
data
)
headers
=
self
.
create_header
(
method
)
headers
=
self
.
create_header
(
method
)
s
=
Session
()
req
=
Request
(
"POST"
,
self
.
url_webservice_sign
,
data
=
data
,
headers
=
headers
)
prepped
=
req
.
prepare
()
...
...
@@ -161,8 +159,7 @@ class ParamsPac(models.Model):
:param uuid: UUID of CFDI to consult
"""
method
=
"consultar"
msg
=
""
cfdi
=
self
.
env
[
'ir.attachment.facturae.mx'
].
search
([[
"uuid"
,
"="
,
uuid
]])
cfdi
=
self
.
env
[
"ir.attachment.facturae.mx"
].
search
([[
"uuid"
,
"="
,
uuid
]])
try
:
data
=
xpd_envelopes
.
_SOAPENV_CONSULTAR
%
(
self
.
user
,
...
...
@@ -174,12 +171,12 @@ class ParamsPac(models.Model):
cfdi
.
uuid
.
encode
(
"utf-8"
).
lower
(),
)
except
Exception
as
e
:
e
.
message
=
"Error al crear ENVELOPE"
e
.
message
=
"Error al crear ENVELOPE"
_logger
.
info
(
e
)
raise
e
else
:
_logger
.
debug
(
data
)
headers
=
self
.
create_header
(
method
)
headers
=
self
.
create_header
(
method
)
s
=
Session
()
req
=
Request
(
"POST"
,
self
.
url_webservice_cancel
,
data
=
data
,
headers
=
headers
)
prepped
=
req
.
prepare
()
...
...
@@ -194,10 +191,15 @@ class ParamsPac(models.Model):
raise
e
# Procesar los resultados obtenidos del PAC
try
:
resultado
=
res
[
"soapenv:Envelope"
][
"soapenv:Body"
][
"ns2:consultarCfdiResponse"
][
"ns2:consultarCfdiResponse"
]
# noqa
resultado
=
res
[
"soapenv:Envelope"
][
"soapenv:Body"
][
"ns2:consultarCfdiResponse"
][
"ns2:consultarCfdiResponse"
]
# noqa
except
KeyError
as
e
:
resultado
=
res
[
"soapenv:Envelope"
][
"soapenv:Body"
][
"ns2:consultarCfdiResponse"
][
resultado
=
res
[
"soapenv:Envelope"
][
"soapenv:Body"
][
"ns2:consultarCfdiResponse"
][
"ns2:consultarCfdiResponse"
]
# noqa
_logger
.
debug
(
e
)
...
...
@@ -208,7 +210,7 @@ class ParamsPac(models.Model):
res
=
resultado
[
"ns2:responseGenericoQr"
][
"ns2:servicio"
]
res
=
res
.
popitem
(
True
)
res
=
res
[
1
]
res
=
xmltodict
.
parse
(
res
.
encode
(
"utf-8"
))
res
=
xmltodict
.
parse
(
res
.
encode
(
"utf-8"
))
resultado
=
res
[
"s:Envelope"
][
"s:Body"
][
"ConsultaResponse"
][
"ConsultaResult"
]
estatus_cancelacion
=
resultado
[
"a:EstatusCancelacion"
]
estado_cfdi
=
resultado
[
"a:Estado"
]
...
...
@@ -218,13 +220,12 @@ class ParamsPac(models.Model):
@
api
.
model
def
cancel_xpd_cfdi
(
self
,
uuid
):
""" Cancel CFDI
:param uuid: uuid of cfdi to cancel
:type uuid: string
"""
method
=
"cancelar"
msg
=
""
cfdi
=
self
.
env
[
'ir.attachment.facturae.mx'
].
search
([[
"uuid"
,
"="
,
uuid
]])
cfdi
=
self
.
env
[
"ir.attachment.facturae.mx"
].
search
([[
"uuid"
,
"="
,
uuid
]])
try
:
data
=
xpd_envelopes
.
_SOAPENV_CANCEL
%
(
self
.
user
,
...
...
@@ -236,12 +237,12 @@ class ParamsPac(models.Model):
cfdi
.
uuid
.
encode
(
"utf-8"
).
lower
(),
)
except
Exception
as
e
:
e
.
message
=
"Error while create ENVELOPE"
e
.
message
=
"Error while create ENVELOPE"
_logger
.
info
(
e
)
raise
e
else
:
_logger
.
debug
(
data
)
headers
=
self
.
create_header
(
method
)
headers
=
self
.
create_header
(
method
)
s
=
Session
()
req
=
Request
(
"POST"
,
self
.
url_webservice_cancel
,
data
=
data
,
headers
=
headers
)
prepped
=
req
.
prepare
()
...
...
@@ -256,11 +257,15 @@ class ParamsPac(models.Model):
raise
e
# Procesar los resultados obtenidos del PAC
try
:
resultado
=
res
[
"soapenv:Envelope"
][
"soapenv:Body"
][
"ns2:cancelarCfdiResponse"
][
resultado
=
res
[
"soapenv:Envelope"
][
"soapenv:Body"
][
"ns2:cancelarCfdiResponse"
][
"ns2:cancelarCfdiResponse"
]
# noqa
except
KeyError
as
e
:
resultado
=
res
[
"soapenv:Envelope"
][
"soapenv:Body"
][
"ns2:cancelarCfdiResponse"
][
resultado
=
res
[
"soapenv:Envelope"
][
"soapenv:Body"
][
"ns2:cancelarCfdiResponse"
][
"ns2:canselarCfdiResponse"
]
# noqa
_logger
.
debug
(
e
)
...
...
@@ -271,9 +276,7 @@ class ParamsPac(models.Model):
codigo
=
resultado
[
"ns2:codigo"
]
# Procesar los resultados obtenidos del PAC
if
codigo
not
in
"200"
:
raise
Exception
(
" "
.
join
([
"Code"
,
codigo
,
mensaje
])
)
raise
Exception
(
" "
.
join
([
"Code"
,
codigo
,
mensaje
]))
consulta
=
self
.
consult_xpd_cfdi
(
uuid
)
answer
=
PacCancelAnswer
(
uuid
,
codigo
,
consulta
.
estatus_cancelacion
)
return
answer
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment