facturapi 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Guardfile +14 -0
- data/README.md +113 -16
- data/config/locales/es.yml +21 -0
- data/facturapi.gemspec +4 -3
- data/lib/facturapi.rb +4 -2
- data/lib/facturapi/client.rb +30 -18
- data/lib/facturapi/helpers.rb +2 -0
- data/lib/facturapi/helpers/descuento_global.rb +10 -0
- data/lib/facturapi/helpers/detalle.rb +132 -13
- data/lib/facturapi/helpers/dsc_rcg_global.rb +47 -6
- data/lib/facturapi/helpers/dte.rb +52 -7
- data/lib/facturapi/helpers/emisor.rb +38 -7
- data/lib/facturapi/helpers/encabezado.rb +1 -1
- data/lib/facturapi/helpers/id_doc.rb +147 -14
- data/lib/facturapi/helpers/recargo_global.rb +10 -0
- data/lib/facturapi/helpers/receptor.rb +39 -4
- data/lib/facturapi/helpers/referencia.rb +62 -1
- data/lib/facturapi/helpers/totales.rb +119 -14
- data/lib/facturapi/services.rb +2 -0
- data/lib/facturapi/services/obtener_link.rb +50 -0
- data/lib/facturapi/services/procesar.rb +30 -0
- data/lib/facturapi/services/responses.rb +1 -0
- data/lib/facturapi/services/responses/obtener_link.rb +17 -0
- data/lib/facturapi/services/responses/procesar.rb +33 -0
- data/lib/facturapi/utils.rb +1 -0
- data/lib/facturapi/utils/dte_types.rb +38 -0
- data/lib/facturapi/version.rb +1 -1
- metadata +47 -12
- data/foo.xml +0 -119
- data/lala.html +0 -1
- data/lib/facturapi/service.rb +0 -1
- data/lib/facturapi/service/procesar.rb +0 -24
- data/todo.rb +0 -246
data/foo.xml
DELETED
@@ -1,119 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<DTE version="1.0">
|
3
|
-
<Documento ID="F100T39">
|
4
|
-
<Encabezado>
|
5
|
-
<IdDoc>
|
6
|
-
<TipoDTE>39</TipoDTE>
|
7
|
-
<Folio>100</Folio>
|
8
|
-
<FchEmis>2008-09-01</FchEmis>
|
9
|
-
<IndServicio>1</IndServicio>
|
10
|
-
<IndMntNeto>2</IndMntNeto>
|
11
|
-
<PeriodoDesde>2008-08-01</PeriodoDesde>
|
12
|
-
<PeriodoHasta>2008-08-31</PeriodoHasta>
|
13
|
-
<FchVenc>2008-09-20</FchVenc>
|
14
|
-
</IdDoc>
|
15
|
-
<Emisor>
|
16
|
-
<RUTEmisor>1-9</RUTEmisor>
|
17
|
-
<RznSocEmisor>EMPRESA DE PRUEBA</RznSocEmisor>
|
18
|
-
<GiroEmisor>DESARROLLO DE SISTEMAS</GiroEmisor>
|
19
|
-
<DirOrigen>Avenida del Software #11001101</DirOrigen>
|
20
|
-
<CmnaOrigen>PROVIDENCIA</CmnaOrigen>
|
21
|
-
<CiudadOrigen>SANTIAGO</CiudadOrigen>
|
22
|
-
</Emisor>
|
23
|
-
<Receptor>
|
24
|
-
<RUTRecep>11111111-1</RUTRecep>
|
25
|
-
<CdgIntRecep>1000215-220</CdgIntRecep>
|
26
|
-
<RznSocRecep>CLIENTE DE PRUEBA</RznSocRecep>
|
27
|
-
<Contacto>correo@prueba.cl</Contacto>
|
28
|
-
<DirRecep>CALLE A 50</DirRecep>
|
29
|
-
<CmnaRecep>SANTIAGO</CmnaRecep>
|
30
|
-
<CiudadRecep>SANTIAGO</CiudadRecep>
|
31
|
-
</Receptor>
|
32
|
-
<Totales>
|
33
|
-
<MntNeto>10000</MntNeto>
|
34
|
-
<MntExe>1500</MntExe>
|
35
|
-
<IVA>1900</IVA>
|
36
|
-
<MntTotal>13400</MntTotal>
|
37
|
-
<MontoNF>2000</MontoNF>
|
38
|
-
<TotalPeriodo>15400</TotalPeriodo>
|
39
|
-
<SaldoAnterior>5000</SaldoAnterior>
|
40
|
-
<VlrPagar>20400</VlrPagar>
|
41
|
-
</Totales>
|
42
|
-
</Encabezado>
|
43
|
-
<Detalle>
|
44
|
-
<NroLinDet>1</NroLinDet>
|
45
|
-
<CdgItem>
|
46
|
-
<TpoCodigo>INT1</TpoCodigo>
|
47
|
-
<VlrCodigo>WWW</VlrCodigo>
|
48
|
-
</CdgItem>
|
49
|
-
<NmbItem>Descripción de producto 1</NmbItem>
|
50
|
-
<DscItem>Serie ABC</DscItem>
|
51
|
-
<QtyItem>1</QtyItem>
|
52
|
-
<UnmdItem>M3</UnmdItem>
|
53
|
-
<PrcItem>6000</PrcItem>
|
54
|
-
<MontoItem>6000</MontoItem>
|
55
|
-
</Detalle>
|
56
|
-
<Detalle>
|
57
|
-
<NroLinDet>2</NroLinDet>
|
58
|
-
<CdgItem>
|
59
|
-
<TpoCodigo>INT1</TpoCodigo>
|
60
|
-
<VlrCodigo>WWW</VlrCodigo>
|
61
|
-
</CdgItem>
|
62
|
-
<NmbItem>Descripción de producto 1</NmbItem>
|
63
|
-
<DscItem>Serie ABC</DscItem>
|
64
|
-
<QtyItem>1</QtyItem>
|
65
|
-
<UnmdItem>M3</UnmdItem>
|
66
|
-
<PrcItem>12000</PrcItem>
|
67
|
-
<MontoItem>12000</MontoItem>
|
68
|
-
</Detalle>
|
69
|
-
<Detalle>
|
70
|
-
<NroLinDet>3</NroLinDet>
|
71
|
-
<CdgItem>
|
72
|
-
<TpoCodigo>INT1</TpoCodigo>
|
73
|
-
<VlrCodigo>WWW</VlrCodigo>
|
74
|
-
</CdgItem>
|
75
|
-
<NmbItem>Descripción de producto 1</NmbItem>
|
76
|
-
<DscItem>Serie ABC</DscItem>
|
77
|
-
<QtyItem>1</QtyItem>
|
78
|
-
<UnmdItem>M3</UnmdItem>
|
79
|
-
<PrcItem>18000</PrcItem>
|
80
|
-
<MontoItem>18000</MontoItem>
|
81
|
-
</Detalle>
|
82
|
-
<Detalle>
|
83
|
-
<NroLinDet>4</NroLinDet>
|
84
|
-
<CdgItem>
|
85
|
-
<TpoCodigo>INT1</TpoCodigo>
|
86
|
-
<VlrCodigo>WWW</VlrCodigo>
|
87
|
-
</CdgItem>
|
88
|
-
<NmbItem>Descripción de producto 1</NmbItem>
|
89
|
-
<DscItem>Serie ABC</DscItem>
|
90
|
-
<QtyItem>1</QtyItem>
|
91
|
-
<UnmdItem>M3</UnmdItem>
|
92
|
-
<PrcItem>24000</PrcItem>
|
93
|
-
<MontoItem>24000</MontoItem>
|
94
|
-
</Detalle>
|
95
|
-
<DscRcgGlobal>
|
96
|
-
<NroLinDR>1</NroLinDR>
|
97
|
-
<TpoMov>D</TpoMov>
|
98
|
-
<GlosaDR>Cobro de ventas o servicios previo</GlosaDR>
|
99
|
-
<TpoValor>$</TpoValor>
|
100
|
-
<ValorDR>2000</ValorDR>
|
101
|
-
<IndExeDR>2</IndExeDR>
|
102
|
-
</DscRcgGlobal>
|
103
|
-
<Referencia>
|
104
|
-
<NroLinRef>1</NroLinRef>
|
105
|
-
<CodRef>NROMEDIDOR</CodRef>
|
106
|
-
<RazonRef>152445596-6655215</RazonRef>
|
107
|
-
</Referencia>
|
108
|
-
<Referencia>
|
109
|
-
<NroLinRef>2</NroLinRef>
|
110
|
-
<CodRef>NROMEDIDOR</CodRef>
|
111
|
-
<RazonRef>152445596-6655215</RazonRef>
|
112
|
-
</Referencia>
|
113
|
-
<Referencia>
|
114
|
-
<NroLinRef>3</NroLinRef>
|
115
|
-
<CodRef>NROMEDIDOR</CodRef>
|
116
|
-
<RazonRef>152445596-6655215</RazonRef>
|
117
|
-
</Referencia>
|
118
|
-
</Documento>
|
119
|
-
</DTE>
|
data/lala.html
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version="1.0"?><WSPLANO><Resultado>False</Resultado><Mensaje>Posee documentos con error.</Mensaje><Detalle><Documento><Folio>0</Folio><TipoDte>0</TipoDte><Operacion></Operacion><Fecha>2017-02-02T15:16:57</Fecha><Resultado>False</Resultado><Error>El archivo no es un XML. Tipo Formato=2 Debe ser un archivo *.xml que inicie con las etiquetas &lt;DTE&gt; o &lt;LibroCompraVenta&gt;</Error></Documento></Detalle></WSPLANO>
|
data/lib/facturapi/service.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'facturapi/service/procesar'
|
@@ -1,24 +0,0 @@
|
|
1
|
-
module Facturapi
|
2
|
-
module Service
|
3
|
-
class Procesar
|
4
|
-
attr_accessor :dte
|
5
|
-
attr_reader :client
|
6
|
-
|
7
|
-
def initialize(dte)
|
8
|
-
@dte = dte
|
9
|
-
@client = Facturapi::Client.new
|
10
|
-
end
|
11
|
-
|
12
|
-
def send
|
13
|
-
file = Base64.strict_encode64(dte.as_node.to_s)
|
14
|
-
params = { file: file, formato: 2 }
|
15
|
-
response = client.call(:procesar, params)
|
16
|
-
Nokogiri::XML(response)
|
17
|
-
# doc = Nokogiri::XML(response)
|
18
|
-
# ok = doc.css('WSPLANO>Resultado').text
|
19
|
-
# mensaje = doc.css('WSPLANO>Mensaje').text
|
20
|
-
# error = doc.css('Documento>Error').text
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
data/todo.rb
DELETED
@@ -1,246 +0,0 @@
|
|
1
|
-
# 3 feb
|
2
|
-
# 1:18-1:55
|
3
|
-
# 14:10-14:59
|
4
|
-
|
5
|
-
# http://ws1.facturacion.cl/WSDS/wsplano.asmx
|
6
|
-
|
7
|
-
|
8
|
-
# Enlace: https://www.facturacion.cl/plano/
|
9
|
-
# Usuario: MELONCARGO
|
10
|
-
# Clave: 87ac1e2ccf
|
11
|
-
|
12
|
-
|
13
|
-
# RUT Empresa: 1-9
|
14
|
-
# Clave: plano91098
|
15
|
-
# Usuario: MELONCARGO
|
16
|
-
# Puerto: 9350
|
17
|
-
|
18
|
-
# Agregar opcion de IncluyeLink en config
|
19
|
-
|
20
|
-
require 'savon'
|
21
|
-
require 'xml'
|
22
|
-
require 'base64'
|
23
|
-
|
24
|
-
|
25
|
-
doc = XML::Document.new
|
26
|
-
|
27
|
-
doc.root = create_node('DTE', version: '1.0') do |dte|
|
28
|
-
dte << create_node('Documento', 'ID' => 'F100T39') do |documento|
|
29
|
-
documento << create_node('Encabezado') do |encabezado|
|
30
|
-
encabezado << create_node('IdDoc') do |id_doc|
|
31
|
-
id_doc << create_node('TipoDTE') { |n| n << 39 }
|
32
|
-
id_doc << create_node('Folio') { |n| n << 100 }
|
33
|
-
id_doc << create_node('FchEmis') { |n| n << '2008-09-01' }
|
34
|
-
id_doc << create_node('IndServicio') { |n| n << 1 }
|
35
|
-
id_doc << create_node('IndMntNeto') { |n| n << 2 }
|
36
|
-
id_doc << create_node('PeriodoDesde') { |n| n << '2008-08-01' }
|
37
|
-
id_doc << create_node('PeriodoHasta') { |n| n << '2008-08-31' }
|
38
|
-
id_doc << create_node('FchVenc') { |n| n << '2008-09-20' }
|
39
|
-
end
|
40
|
-
encabezado << create_node('Emisor') do |emisor|
|
41
|
-
emisor << create_node('RUTEmisor') { |n| n << '1-9' }
|
42
|
-
emisor << create_node('RznSocEmisor') { |n| n << 'EMPRESA DE PRUEBA' }
|
43
|
-
emisor << create_node('GiroEmisor') { |n| n << 'DESARROLLO DE SISTEMAS' }
|
44
|
-
emisor << create_node('DirOrigen') { |n| n << 'Avenida del Software #11001101' }
|
45
|
-
emisor << create_node('CmnaOrigen') { |n| n << 'PROVIDENCIA' }
|
46
|
-
emisor << create_node('CiudadOrigen') { |n| n << 'SANTIAGO' }
|
47
|
-
end
|
48
|
-
encabezado << create_node('Receptor') do |receptor|
|
49
|
-
receptor << create_node('RUTRecep') { |n| n << '11111111-1' }
|
50
|
-
receptor << create_node('CdgIntRecep') { |n| n << '1000215-220' }
|
51
|
-
receptor << create_node('RznSocRecep') { |n| n << 'CLIENTE DE PRUEBA' }
|
52
|
-
receptor << create_node('Contacto') { |n| n << 'correo@prueba.cl' }
|
53
|
-
receptor << create_node('DirRecep') { |n| n << 'CALLE A 50' }
|
54
|
-
receptor << create_node('CmnaRecep') { |n| n << 'SANTIAGO' }
|
55
|
-
receptor << create_node('CiudadRecep') { |n| n << 'SANTIAGO' }
|
56
|
-
end
|
57
|
-
encabezado << create_node('Totales') do |totales|
|
58
|
-
totales << create_node('MntNeto') { |n| n << '10000' }
|
59
|
-
totales << create_node('MntExe') { |n| n << '1500' }
|
60
|
-
totales << create_node('IVA') { |n| n << '1900' }
|
61
|
-
totales << create_node('MntTotal') { |n| n << '13400' }
|
62
|
-
totales << create_node('MontoNF') { |n| n << '2000' }
|
63
|
-
totales << create_node('TotalPeriodo') { |n| n << '15400' }
|
64
|
-
totales << create_node('SaldoAnterior') { |n| n << '5000' }
|
65
|
-
totales << create_node('VlrPagar') { |n| n << '20400' }
|
66
|
-
end
|
67
|
-
end
|
68
|
-
(1..4).to_a.each do |i|
|
69
|
-
documento << create_node('Detalle') do |detalle|
|
70
|
-
detalle << create_node('NroLinDet') { |n| n << i }
|
71
|
-
detalle << create_node('CdgItem') do |cdg_item|
|
72
|
-
cdg_item << create_node('TpoCodigo') { |n| n << 'INT1' }
|
73
|
-
cdg_item << create_node('VlrCodigo') { |n| n << 'WWW' }
|
74
|
-
end
|
75
|
-
detalle << create_node('NmbItem') { |n| n << "Descripción de producto #{1}" }
|
76
|
-
detalle << create_node('DscItem') { |n| n << 'Serie ABC' }
|
77
|
-
detalle << create_node('QtyItem') { |n| n << '1' }
|
78
|
-
detalle << create_node('UnmdItem') { |n| n << 'M3' }
|
79
|
-
detalle << create_node('PrcItem') { |n| n << 6000 * i }
|
80
|
-
detalle << create_node('MontoItem') { |n| n << 6000 * i }
|
81
|
-
end
|
82
|
-
end
|
83
|
-
documento << create_node('DscRcgGlobal') do |dsc_rcg_global|
|
84
|
-
dsc_rcg_global << create_node('NroLinDR') { |n| n << '1' }
|
85
|
-
dsc_rcg_global << create_node('TpoMov') { |n| n << 'D' }
|
86
|
-
dsc_rcg_global << create_node('GlosaDR') { |n| n << 'Cobro de ventas o servicios previo' }
|
87
|
-
dsc_rcg_global << create_node('TpoValor') { |n| n << '$' }
|
88
|
-
dsc_rcg_global << create_node('ValorDR') { |n| n << '2000' }
|
89
|
-
dsc_rcg_global << create_node('IndExeDR') { |n| n << '2' }
|
90
|
-
end
|
91
|
-
(1..3).to_a.each do |i|
|
92
|
-
documento << create_node('Referencia') do |referencia|
|
93
|
-
referencia << create_node('NroLinRef') { |n| n << i }
|
94
|
-
referencia << create_node('CodRef') { |n| n << 'NROMEDIDOR' }
|
95
|
-
referencia << create_node('RazonRef') { |n| n << '152445596-6655215' }
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
client = Savon.client(
|
102
|
-
wsdl: 'http://ws1.facturacion.cl/WSDS/wsplano.asmx?wsdl'
|
103
|
-
)
|
104
|
-
|
105
|
-
client.operations
|
106
|
-
# => [:procesar, :obtener_link, :get_boleta_ticket, :get_xml_dte, :alt_num,
|
107
|
-
# :reg_ip, :get_ip, :eliminar_doc, :anular_guia, :online, :version]
|
108
|
-
|
109
|
-
login = {
|
110
|
-
'Usuario' => Base64.strict_encode64('MELONCARGO'),
|
111
|
-
'Rut' => Base64.strict_encode64('1-9'),
|
112
|
-
'Clave' => Base64.strict_encode64('plano91098'),
|
113
|
-
'Puerto' => Base64.strict_encode64('9350')
|
114
|
-
}
|
115
|
-
params = {
|
116
|
-
login: login,
|
117
|
-
file: Base64.strict_encode64(doc.to_s),
|
118
|
-
formato: 2
|
119
|
-
}
|
120
|
-
response = client.call(:procesar, message: params)
|
121
|
-
response.body[:procesar_response][:procesar_result]
|
122
|
-
# <?xml version=\"1.0\"?>
|
123
|
-
# <WSPLANO>
|
124
|
-
# <Resultado>False</Resultado>
|
125
|
-
# <Mensaje>Posee documentos con error.</Mensaje>
|
126
|
-
# <Detalle>
|
127
|
-
# <Documento>
|
128
|
-
# <Folio>100</Folio>
|
129
|
-
# <TipoDte>39</TipoDte>
|
130
|
-
# <Operacion>VENTA</Operacion>
|
131
|
-
# <Fecha>2017-02-02T17:00:05</Fecha>
|
132
|
-
# <Resultado>False</Resultado>
|
133
|
-
# <Error>ERROR: P0001: Ya existe la Boleta con TipoDTE = 39 y Folio = 100</Error>
|
134
|
-
# </Documento>
|
135
|
-
# </Detalle>
|
136
|
-
# </WSPLANO>
|
137
|
-
|
138
|
-
# ops = client.operation(:procesar)
|
139
|
-
|
140
|
-
# # build the body of the xml inside the message here
|
141
|
-
# ops.build(message: params).to_s
|
142
|
-
|
143
|
-
doc.save('foo.xml', :indent => true, :encoding => XML::Encoding::UTF_8)
|
144
|
-
|
145
|
-
doc.save('foo.xml', :indent => false, :encoding => XML::Encoding::UTF_8)
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
include Facturapi::Helpers
|
150
|
-
|
151
|
-
Facturapi.configure do |config|
|
152
|
-
config.fact_rut '1-9'
|
153
|
-
config.fact_user 'MELONCARGO'
|
154
|
-
config.fact_password 'plano91098'
|
155
|
-
config.fact_port 9350
|
156
|
-
end
|
157
|
-
|
158
|
-
detalle = []
|
159
|
-
(1..4).to_a.each do |i|
|
160
|
-
detalle << Detalle.new(
|
161
|
-
nro_lin_det: i,
|
162
|
-
tpo_codigo: 'INT1',
|
163
|
-
vlr_codigo: 'WWW',
|
164
|
-
ind_exe: i,
|
165
|
-
rut_mandante: '11111111-1',
|
166
|
-
nmb_item: "Descripción de producto #{i}",
|
167
|
-
dsc_item: 'Serie ABC',
|
168
|
-
qty_item: '1',
|
169
|
-
unmd_item: 'M3',
|
170
|
-
prc_item: 6000 * i,
|
171
|
-
monto_item: 6000 * i
|
172
|
-
)
|
173
|
-
end
|
174
|
-
|
175
|
-
dsc_rcg_global = []
|
176
|
-
(1..2).to_a.each do |i|
|
177
|
-
dsc_rcg_global << DscRcgGlobal.new(
|
178
|
-
nro_lin_dr: i,
|
179
|
-
tpo_mov: 'D',
|
180
|
-
glosa_dr: 'Cobro de ventas o servicios previo',
|
181
|
-
tpo_valor: '$',
|
182
|
-
valor_dr: '2000',
|
183
|
-
ind_exe_dr: '2'
|
184
|
-
)
|
185
|
-
end
|
186
|
-
|
187
|
-
referencia = []
|
188
|
-
(1..3).to_a.each do |i|
|
189
|
-
referencia << Referencia.new(
|
190
|
-
nro_lin_ref: i,
|
191
|
-
cod_ref: 'NROMEDIDOR',
|
192
|
-
razon_ref: '152445596-6655215'
|
193
|
-
)
|
194
|
-
end
|
195
|
-
|
196
|
-
dte = Dte.new(
|
197
|
-
encabezado: Encabezado.new(
|
198
|
-
id_doc: IdDoc.new(
|
199
|
-
tipo_dte: 39,
|
200
|
-
folio: rand(999_999_999),
|
201
|
-
fch_emis: '2008-09-01',
|
202
|
-
ind_servicio: 1,
|
203
|
-
ind_mnt_neto: 2,
|
204
|
-
periodo_desde: '2008-08-01',
|
205
|
-
periodo_hasta: '2008-08-31',
|
206
|
-
fch_venc: '2008-09-20'
|
207
|
-
),
|
208
|
-
emisor: Emisor.new(
|
209
|
-
rut_emisor: '1-9',
|
210
|
-
rzn_soc_emisor: 'EMPRESA DE PRUEBA',
|
211
|
-
giro_emisor: 'DESARROLLO DE SISTEMAS',
|
212
|
-
dir_origen: 'Avenida del Software #11001101',
|
213
|
-
cmna_origen: 'PROVIDENCIA',
|
214
|
-
ciudad_origen: 'SANTIAGO'
|
215
|
-
),
|
216
|
-
receptor: Receptor.new(
|
217
|
-
rut_recep: '11111111-1',
|
218
|
-
cdg_int_recep: '1000215-220',
|
219
|
-
rzn_soc_recep: 'CLIENTE DE PRUEBA',
|
220
|
-
contacto: 'correo@prueba.cl',
|
221
|
-
dir_recep: 'CALLE A 50',
|
222
|
-
cmna_recep: 'SANTIAGO',
|
223
|
-
ciudad_recep: 'SANTIAGO'
|
224
|
-
),
|
225
|
-
totales: Totales.new(
|
226
|
-
mnt_neto: '10000',
|
227
|
-
mnt_exe: '1500',
|
228
|
-
iva: '1900',
|
229
|
-
mnt_total: '13400',
|
230
|
-
monto_nf: '2000',
|
231
|
-
total_periodo: '15400',
|
232
|
-
saldo_anterior: '5000',
|
233
|
-
vlr_pagar: '20400'
|
234
|
-
)
|
235
|
-
),
|
236
|
-
detalle: detalle,
|
237
|
-
dsc_rcg_global: dsc_rcg_global,
|
238
|
-
referencia: referencia
|
239
|
-
)
|
240
|
-
|
241
|
-
procesar = Facturapi::Service::Procesar.new(dte)
|
242
|
-
|
243
|
-
doc = procesar.send
|
244
|
-
ok = doc.css('WSPLANO>Resultado').text
|
245
|
-
mensaje = doc.css('WSPLANO>Mensaje').text
|
246
|
-
error = doc.css('Documento>Error').text
|