Merge lp:~acysos-team/openerp-spain/openerp-spain-6.0-mod303 into lp:~openerp-spain-team/openerp-spain/6.0

Proposed by Ignacio Ibeas (www.acysos.com) on 2013-10-10
Status: Merged
Approved by: Ignacio Ibeas (www.acysos.com) on 2013-10-20
Approved revision: 349
Merged at revision: 351
Proposed branch: lp:~acysos-team/openerp-spain/openerp-spain-6.0-mod303
Merge into: lp:~openerp-spain-team/openerp-spain/6.0
Diff against target: 2018 lines (+1963/-0)
10 files modified
l10n_es_aeat_mod303/__init__.py (+26/-0)
l10n_es_aeat_mod303/__openerp__.py (+52/-0)
l10n_es_aeat_mod303/i18n/es.po (+555/-0)
l10n_es_aeat_mod303/i18n/l10n_es_aeat_mod303.pot (+535/-0)
l10n_es_aeat_mod303/mod303.py (+245/-0)
l10n_es_aeat_mod303/mod303_view.xml (+164/-0)
l10n_es_aeat_mod303/mod303_workflow.xml (+72/-0)
l10n_es_aeat_mod303/security/ir.model.access.csv (+6/-0)
l10n_es_aeat_mod303/wizard/__init__.py (+26/-0)
l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py (+282/-0)
To merge this branch: bzr merge lp:~acysos-team/openerp-spain/openerp-spain-6.0-mod303
Reviewer Review Type Date Requested Status
Pedro Manuel Baeza code review 2013-10-10 Approve on 2013-10-10
Review via email: mp+190428@code.launchpad.net

Description of the change

Downgrade del AEAT Modelo 303.

To post a comment you must log in.
Pedro Manuel Baeza (pedro.baeza) wrote :

Yo ya no tengo ningún cliente en 6.0, por lo que no puedo probarlo, pero al ser un nuevo módulo, creo que puedes hacer el merge si en unos días nadie lo puede examinar, y luego si surge algún problema que se reporte vía bug. Algo que tengo pendiente es mejorar el módulo para también genere el asiento de IVA deudor/acreedor según el resultado. Ya te avisaré para hacer luego el backport si quieres.

Un saludo.

review: Approve (code review)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'l10n_es_aeat_mod303'
2=== added file 'l10n_es_aeat_mod303/__init__.py'
3--- l10n_es_aeat_mod303/__init__.py 1970-01-01 00:00:00 +0000
4+++ l10n_es_aeat_mod303/__init__.py 2013-10-10 17:06:51 +0000
5@@ -0,0 +1,26 @@
6+# -*- encoding: utf-8 -*-
7+##############################################################################
8+#
9+# OpenERP, Open Source Management Solution
10+# Copyright (C) 2012 Guadaltech. All Rights Reserved
11+# Author: Isaac De la Barrera
12+#
13+# This program is free software: you can redistribute it and/or modify
14+# it under the terms of the GNU General Public License as published by
15+# the Free Software Foundation, either version 3 of the License, or
16+# (at your option) any later version.
17+#
18+# This program is distributed in the hope that it will be useful,
19+# but WITHOUT ANY WARRANTY; without even the implied warranty of
20+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21+# GNU General Public License for more details.
22+#
23+# You should have received a copy of the GNU General Public License
24+# along with this program. If not, see http://www.gnu.org/licenses/.
25+#
26+##############################################################################
27+
28+import mod303
29+import wizard
30+
31+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
32\ No newline at end of file
33
34=== added file 'l10n_es_aeat_mod303/__openerp__.py'
35--- l10n_es_aeat_mod303/__openerp__.py 1970-01-01 00:00:00 +0000
36+++ l10n_es_aeat_mod303/__openerp__.py 2013-10-10 17:06:51 +0000
37@@ -0,0 +1,52 @@
38+# -*- encoding: utf-8 -*-
39+##############################################################################
40+#
41+# OpenERP, Open Source Management Solution
42+# Copyright (C) 2013 Guadaltech. All Rights Reserved
43+# Author: Alberto Martín Cortada
44+#
45+# This program is free software: you can redistribute it and/or modify
46+# it under the terms of the GNU General Public License as published by
47+# the Free Software Foundation, either version 3 of the License, or
48+# (at your option) any later version.
49+#
50+# This program is distributed in the hope that it will be useful,
51+# but WITHOUT ANY WARRANTY; without even the implied warranty of
52+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
53+# GNU General Public License for more details.
54+#
55+# You should have received a copy of the GNU General Public License
56+# along with this program. If not, see http://www.gnu.org/licenses/.
57+#
58+##############################################################################
59+
60+{
61+ "name" : "AEAT Model 303",
62+ "version" : "1.0",
63+ "author" : "GuadalTech",
64+ "license" : "AGPL-3",
65+ "website" : "http://www.guadaltech.es",
66+ "category" : "Localisation/Accounting",
67+ "description" :
68+
69+ """
70+Módulo para la presentación del modelo 303. Exportación a formato AEAT.
71+
72+ """,
73+
74+ "init_xml" : [],
75+ "depends" : [
76+ "l10n_es_aeat","l10n_es_aeat_mod347"
77+ ],
78+ "update_xml" : [
79+ "mod303_view.xml",
80+ "mod303_workflow.xml",
81+ "security/ir.model.access.csv",
82+
83+ ],
84+ "demo_xml" : [],
85+ "test" : [],
86+ "installable" : True,
87+ "active" : False,
88+}
89+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
90
91=== added directory 'l10n_es_aeat_mod303/i18n'
92=== added file 'l10n_es_aeat_mod303/i18n/es.po'
93--- l10n_es_aeat_mod303/i18n/es.po 1970-01-01 00:00:00 +0000
94+++ l10n_es_aeat_mod303/i18n/es.po 2013-10-10 17:06:51 +0000
95@@ -0,0 +1,555 @@
96+# Translation of OpenERP Server.
97+# This file contains the translation of the following modules:
98+# * l10n_es_aeat_mod303
99+#
100+msgid ""
101+msgstr ""
102+"Project-Id-Version: OpenERP Server 6.1-20120617-233256\n"
103+"Report-Msgid-Bugs-To: \n"
104+"POT-Creation-Date: 2013-03-18 10:22+0000\n"
105+"PO-Revision-Date: 2013-03-18 10:22+0000\n"
106+"Last-Translator: <>\n"
107+"Language-Team: \n"
108+"MIME-Version: 1.0\n"
109+"Content-Type: text/plain; charset=UTF-8\n"
110+"Content-Transfer-Encoding: \n"
111+"Plural-Forms: \n"
112+
113+#. module: l10n_es_aeat_mod303
114+#: view:l10n.es.aeat.mod303.report:0
115+msgid "Confirmed models"
116+msgstr "Modelos confirmados"
117+
118+#. module: l10n_es_aeat_mod303
119+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:267
120+#, python-format
121+msgid "The 303 report must be 1353 characters long and are %s"
122+msgstr "La declaración del modelo 303 debe tener 1353 caracteres, y actuamente son %s"
123+
124+#. module: l10n_es_aeat_mod303
125+#: view:l10n.es.aeat.mod303.report:0
126+msgid "AEAT 303 Reports"
127+msgstr "Declaraciones AEAT 303"
128+
129+#. module: l10n_es_aeat_mod303
130+#: field:l10n.es.aeat.mod303.report,representative_vat:0
131+msgid "L.R. VAT number"
132+msgstr "L.R. VAT number"
133+
134+#. module: l10n_es_aeat_mod303
135+#: view:l10n.es.aeat.mod303.report:0
136+msgid "Devolución"
137+msgstr "Devolución"
138+
139+#. module: l10n_es_aeat_mod303
140+#: model:ir.model,name:l10n_es_aeat_mod303.model_l10n_es_aeat_mod303_report
141+#: view:l10n.es.aeat.mod303.report:0
142+msgid "AEAT 303 Report"
143+msgstr "Declaración AEAT 303"
144+
145+#. module: l10n_es_aeat_mod303
146+#: selection:l10n.es.aeat.mod303.report,period:0
147+msgid "March"
148+msgstr "Marzo"
149+
150+#. module: l10n_es_aeat_mod303
151+#: view:l10n.es.aeat.mod303.report:0
152+#: field:l10n.es.aeat.mod303.report,company_id:0
153+msgid "Company"
154+msgstr "Company"
155+
156+#. module: l10n_es_aeat_mod303
157+#: field:l10n.es.aeat.mod303.report,devolver:0
158+msgid "Devolver"
159+msgstr "Devolver"
160+
161+#. module: l10n_es_aeat_mod303
162+#: code:addons/l10n_es_aeat_mod303/mod303.py:227
163+#, python-format
164+msgid "Seleccione una cuenta para ingresar el importe"
165+msgstr "Seleccione una cuenta para ingresar el importe"
166+
167+#. module: l10n_es_aeat_mod303
168+#: selection:l10n.es.aeat.mod303.report,type:0
169+msgid "Substitutive"
170+msgstr "Substitutive"
171+
172+#. module: l10n_es_aeat_mod303
173+#: help:l10n.es.aeat.mod303.report,regularizacion_anual:0
174+msgid "En la última autoliquidación del año (la del período 4T o mes 12) se hará constar, con el signo que corresponda, el resultado de la regularización anual conforme disponen las Leyes por las que se aprueban el Concierto Económico entre el Estado y la Comunidad Autónoma del País Vasco y el Convenio Económico entre el Estado y la Comunidad Foral de Navarra."
175+msgstr "En la última autoliquidación del año (la del período 4T o mes 12) se hará constar, con el signo que corresponda, el resultado de la regularización anual conforme disponen las Leyes por las que se aprueban el Concierto Económico entre el Estado y la Comunidad Autónoma del País Vasco y el Convenio Económico entre el Estado y la Comunidad Foral de Navarra."
176+
177+#. module: l10n_es_aeat_mod303
178+#: model:ir.actions.act_window,help:l10n_es_aeat_mod303.action_l10n_es_aeat_mod303_report
179+msgid "Create and query AEAT Model 303 Reports"
180+msgstr "Permite crear y consultar las declaraciones sobre el modelo AEAT 303"
181+
182+#. module: l10n_es_aeat_mod303
183+#: field:l10n.es.aeat.mod303.report,cuota_compensar:0
184+msgid "Cuotas a Compensar"
185+msgstr "Cuotas a Compensar"
186+
187+#. module: l10n_es_aeat_mod303
188+#: code:addons/l10n_es_aeat_mod303/mod303.py:153
189+#, python-format
190+msgid "El periodo seleccionado no coincide con los periodos del año fiscal:"
191+msgstr "El periodo seleccionado no coincide con los periodos del año fiscal:"
192+
193+#. module: l10n_es_aeat_mod303
194+#: view:l10n.es.aeat.mod303.report:0
195+msgid "Cancelled"
196+msgstr "Cancelado"
197+
198+#. module: l10n_es_aeat_mod303
199+#: field:l10n.es.aeat.mod303.report,complementaria:0
200+#: help:l10n.es.aeat.mod303.report,complementaria:0
201+msgid "Autoliquidación Complementaria"
202+msgstr "Autoliquidación Complementaria"
203+
204+#. module: l10n_es_aeat_mod303
205+#: field:l10n.es.aeat.mod303.report,company_vat:0
206+msgid "VAT number"
207+msgstr "CIF/DNI"
208+
209+#. module: l10n_es_aeat_mod303
210+#: help:l10n.es.aeat.mod303.report,resultado_casilla_46:0
211+msgid "Atribuible a la admistracion [40] - Cuotas a compensar [41] + Regularización Anual [45]"
212+msgstr "Atribuible a la admistracion [40] - Cuotas a compensar [41] + Regularización Anual [45]"
213+
214+#. module: l10n_es_aeat_mod303
215+#: field:l10n.es.aeat.mod303.report,previus_result:0
216+msgid "A Deducir"
217+msgstr "A Deducir"
218+
219+#. module: l10n_es_aeat_mod303
220+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:182
221+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:204
222+#, python-format
223+msgid "Warning"
224+msgstr "Warning"
225+
226+#. module: l10n_es_aeat_mod303
227+#: help:l10n.es.aeat.mod303.report,previus_result:0
228+msgid "Resultado de la anterior o anteriores del mismo concepto, ejercicio y periodo"
229+msgstr "Resultado de la anterior o anteriores del mismo concepto, ejercicio y periodo"
230+
231+#. module: l10n_es_aeat_mod303
232+#: view:l10n.es.aeat.mod303.report:0
233+msgid "Confirm"
234+msgstr "Confirmar"
235+
236+#. module: l10n_es_aeat_mod303
237+#: help:l10n.es.aeat.mod303.report,porcentaje_atribuible_estado:0
238+msgid "Los sujetos pasivos que tributen conjuntamente a la Administración del Estado y a las Diputaciones Forales del País Vasco o a la ComunidadForal de Navarra, consignarán en esta casilla el porcentaje del volumen de operaciones en territorio común. Los demás sujetos pasivos consignarán en esta casilla el 100%"
239+msgstr "Los sujetos pasivos que tributen conjuntamente a la Administración del Estado y a las Diputaciones Forales del País Vasco o a la ComunidadForal de Navarra, consignarán en esta casilla el porcentaje del volumen de operaciones en territorio común. Los demás sujetos pasivos consignarán en esta casilla el 100%"
240+
241+#. module: l10n_es_aeat_mod303
242+#: view:l10n.es.aeat.mod303.report:0
243+msgid "Cancelled models"
244+msgstr "Modelos cancelados"
245+
246+#. module: l10n_es_aeat_mod303
247+#: field:l10n.es.aeat.mod303.report,state:0
248+msgid "State"
249+msgstr "Estado"
250+
251+#. module: l10n_es_aeat_mod303
252+#: selection:l10n.es.aeat.mod303.report,period:0
253+msgid "First quarter"
254+msgstr "1er Trimestre"
255+
256+#. module: l10n_es_aeat_mod303
257+#: model:ir.actions.act_window,name:l10n_es_aeat_mod303.action_l10n_es_aeat_mod303_report
258+msgid "AEAT Model 303"
259+msgstr "Modelo AEAT 303"
260+
261+#. module: l10n_es_aeat_mod303
262+#: view:l10n.es.aeat.mod303.report:0
263+msgid "AEAT 303"
264+msgstr "AEAT 303"
265+
266+#. module: l10n_es_aeat_mod303
267+#: code:addons/l10n_es_aeat_mod303/mod303.py:231
268+#, python-format
269+msgid "No hay actividad en el periodo seleccionado, marque la casilla correspondinte"
270+msgstr "No hay actividad en el periodo seleccionado, marque la casilla correspondinte"
271+
272+#. module: l10n_es_aeat_mod303
273+#: model:ir.ui.menu,name:l10n_es_aeat_mod303.menu_aeat_mod303_report
274+msgid "AEAT 303 Model"
275+msgstr "Modelo AEAT 303"
276+
277+#. module: l10n_es_aeat_mod303
278+#: field:l10n.es.aeat.mod303.report,support_type:0
279+msgid "Support Type"
280+msgstr "Tipo de Soporte"
281+
282+#. module: l10n_es_aeat_mod303
283+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:274
284+#, python-format
285+msgid "%Y-%m-%d"
286+msgstr "%Y-%m-%d"
287+
288+#. module: l10n_es_aeat_mod303
289+#: view:l10n.es.aeat.mod303.report:0
290+msgid "Export to BOE"
291+msgstr "Exportar a formato BOE"
292+
293+#. module: l10n_es_aeat_mod303
294+#: selection:l10n.es.aeat.mod303.report,period:0
295+msgid "July"
296+msgstr "Julio"
297+
298+#. module: l10n_es_aeat_mod303
299+#: code:addons/l10n_es_aeat_mod303/mod303.py:229
300+#, python-format
301+msgid "Seleccione una cuenta para realizar la devolución"
302+msgstr "Seleccione una cuenta para realizar la devolución"
303+
304+#. module: l10n_es_aeat_mod303
305+#: help:l10n.es.aeat.mod303.report,devolucion_mensual:0
306+msgid "Inscrito en el Registro de Devolución Mensual"
307+msgstr "Inscrito en el Registro de Devolución Mensual"
308+
309+#. module: l10n_es_aeat_mod303
310+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:182
311+#, python-format
312+msgid "CCC de devolución no válida \n"
313+"%s"
314+msgstr "CCC de devolución no válida \n"
315+"%s"
316+
317+#. module: l10n_es_aeat_mod303
318+#: field:l10n.es.aeat.mod303.report,calculation_date:0
319+msgid "Calculation date"
320+msgstr "Fecha de cálculo"
321+
322+#. module: l10n_es_aeat_mod303
323+#: field:l10n.es.aeat.mod303.report,contact_name:0
324+msgid "Full Name"
325+msgstr "Nombre Completo"
326+
327+#. module: l10n_es_aeat_mod303
328+#: view:l10n.es.aeat.mod303.report:0
329+msgid "Declaracion"
330+msgstr "Declaracion"
331+
332+#. module: l10n_es_aeat_mod303
333+#: field:l10n.es.aeat.mod303.report,ingresar:0
334+msgid "Ingresar"
335+msgstr "Ingresar"
336+
337+#. module: l10n_es_aeat_mod303
338+#: view:l10n.es.aeat.mod303.report:0
339+msgid "Draft models"
340+msgstr "Modelos borrador"
341+
342+#. module: l10n_es_aeat_mod303
343+#: selection:l10n.es.aeat.mod303.report,period:0
344+msgid "September"
345+msgstr "Septiembre"
346+
347+#. module: l10n_es_aeat_mod303
348+#: selection:l10n.es.aeat.mod303.report,period:0
349+msgid "December"
350+msgstr "Diciembre"
351+
352+#. module: l10n_es_aeat_mod303
353+#: field:l10n.es.aeat.mod303.report,number:0
354+msgid "Declaration Number"
355+msgstr "Número Declaración"
356+
357+#. module: l10n_es_aeat_mod303
358+#: field:l10n.es.aeat.mod303.report,total_deducir:0
359+msgid "IVA a Deducir"
360+msgstr "IVA a Deducir"
361+
362+#. module: l10n_es_aeat_mod303
363+#: selection:l10n.es.aeat.mod303.report,state:0
364+msgid "Canceled"
365+msgstr "Cancelado"
366+
367+#. module: l10n_es_aeat_mod303
368+#: field:l10n.es.aeat.mod303.report,regularizacion_anual:0
369+msgid "Regularización Anual"
370+msgstr "Regularización Anual"
371+
372+#. module: l10n_es_aeat_mod303
373+#: view:l10n.es.aeat.mod303.report:0
374+msgid "Ingreso"
375+msgstr "Ingreso"
376+
377+#. module: l10n_es_aeat_mod303
378+#: view:l10n.es.aeat.mod303.report:0
379+msgid "Calculate"
380+msgstr "Calcular"
381+
382+#. module: l10n_es_aeat_mod303
383+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:250
384+#, python-format
385+msgid "AEAT Model is necessary"
386+msgstr "Es necesario el modelo AEAT"
387+
388+#. module: l10n_es_aeat_mod303
389+#: selection:l10n.es.aeat.mod303.report,support_type:0
390+msgid "DVD"
391+msgstr "DVD"
392+
393+#. module: l10n_es_aeat_mod303
394+#: view:l10n.es.aeat.mod303.report:0
395+msgid "In process"
396+msgstr "En proceso"
397+
398+#. module: l10n_es_aeat_mod303
399+#: code:addons/l10n_es_aeat_mod303/mod303.py:214
400+#, python-format
401+msgid "El valor añadido para la regularizacion anual no se ha tendio en cuenta por no ser un periodo de cierre (12 o 4T)"
402+msgstr "El valor añadido para la regularizacion anual no se ha tendio en cuenta por no ser un periodo de cierre (12 o 4T)"
403+
404+#. module: l10n_es_aeat_mod303
405+#: view:l10n.es.aeat.mod303.report:0
406+#: selection:l10n.es.aeat.mod303.report,state:0
407+msgid "Draft"
408+msgstr "Borrador"
409+
410+#. module: l10n_es_aeat_mod303
411+#: field:l10n.es.aeat.mod303.report,diferencia:0
412+msgid "Diferencia"
413+msgstr "Diferencia"
414+
415+#. module: l10n_es_aeat_mod303
416+#: help:l10n.es.aeat.mod303.report,cuota_compensar:0
417+msgid "Cuota a compensar de periodos anteriores"
418+msgstr "Cuota a compensar de periodos anteriores"
419+
420+#. module: l10n_es_aeat_mod303
421+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:73
422+#, python-format
423+msgid "The identification (1) and income (2) must be 72 characters long"
424+msgstr "The identification (1) and income (2) must be 72 characters long"
425+
426+#. module: l10n_es_aeat_mod303
427+#: field:l10n.es.aeat.mod303.report,sin_actividad:0
428+msgid "Sin Actividad"
429+msgstr "Sin Actividad"
430+
431+#. module: l10n_es_aeat_mod303
432+#: selection:l10n.es.aeat.mod303.report,period:0
433+msgid "August"
434+msgstr "Agosto"
435+
436+#. module: l10n_es_aeat_mod303
437+#: selection:l10n.es.aeat.mod303.report,type:0
438+msgid "Normal"
439+msgstr "Normal"
440+
441+#. module: l10n_es_aeat_mod303
442+#: selection:l10n.es.aeat.mod303.report,state:0
443+msgid "Processing"
444+msgstr "Procesando"
445+
446+#. module: l10n_es_aeat_mod303
447+#: selection:l10n.es.aeat.mod303.report,period:0
448+msgid "June"
449+msgstr "Junio"
450+
451+#. module: l10n_es_aeat_mod303
452+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:167
453+#, python-format
454+msgid "The vat records must be 749 characters long and are %s"
455+msgstr "The vat records must be 749 characters long and are %s"
456+
457+#. module: l10n_es_aeat_mod303
458+#: field:l10n.es.aeat.mod303.report,atribuible_estado:0
459+msgid "Atribuible a la Administracion"
460+msgstr "Atribuible a la Administracion"
461+
462+#. module: l10n_es_aeat_mod303
463+#: selection:l10n.es.aeat.mod303.report,period:0
464+msgid "November"
465+msgstr "Noviembre"
466+
467+#. module: l10n_es_aeat_mod303
468+#: field:l10n.es.aeat.mod303.report,resultado_liquidacion:0
469+msgid "Resultado Liquidación"
470+msgstr "Resultado Liquidación"
471+
472+#. module: l10n_es_aeat_mod303
473+#: field:l10n.es.aeat.mod303.report,devolucion_mensual:0
474+msgid "Devolución Mensual"
475+msgstr "Devolución Mensual"
476+
477+#. module: l10n_es_aeat_mod303
478+#: selection:l10n.es.aeat.mod303.report,period:0
479+msgid "January"
480+msgstr "Enero"
481+
482+#. module: l10n_es_aeat_mod303
483+#: selection:l10n.es.aeat.mod303.report,state:0
484+msgid "Processed"
485+msgstr "Procesado"
486+
487+#. module: l10n_es_aeat_mod303
488+#: selection:l10n.es.aeat.mod303.report,period:0
489+msgid "Third quarter"
490+msgstr "3er Trimestre"
491+
492+#. module: l10n_es_aeat_mod303
493+#: help:l10n.es.aeat.mod303.report,diferencia:0
494+msgid "( IVA devengado - IVA deducible )"
495+msgstr "( IVA devengado - IVA deducible )"
496+
497+#. module: l10n_es_aeat_mod303
498+#: field:l10n.es.aeat.mod303.report,compensar:0
499+msgid "Compensar"
500+msgstr "Compensar"
501+
502+#. module: l10n_es_aeat_mod303
503+#: field:l10n.es.aeat.mod303.report,period:0
504+msgid "Periodo"
505+msgstr "Periodo"
506+
507+#. module: l10n_es_aeat_mod303
508+#: field:l10n.es.aeat.mod303.report,type:0
509+msgid "Statement Type"
510+msgstr "Tipo de Declaración"
511+
512+#. module: l10n_es_aeat_mod303
513+#: view:l10n.es.aeat.mod303.report:0
514+msgid "General"
515+msgstr "General"
516+
517+#. module: l10n_es_aeat_mod303
518+#: view:l10n.es.aeat.mod303.report:0
519+msgid "In process models"
520+msgstr "Modelos en Proceso"
521+
522+#. module: l10n_es_aeat_mod303
523+#: view:l10n.es.aeat.mod303.report:0
524+#: selection:l10n.es.aeat.mod303.report,state:0
525+msgid "Done"
526+msgstr "Realizada"
527+
528+#. module: l10n_es_aeat_mod303
529+#: view:l10n.es.aeat.mod303.report:0
530+msgid "Cancel"
531+msgstr "Cancelar"
532+
533+#. module: l10n_es_aeat_mod303
534+#: view:l10n.es.aeat.mod303.report:0
535+msgid "Recalculate"
536+msgstr "Recalcular"
537+
538+#. module: l10n_es_aeat_mod303
539+#: view:l10n.es.aeat.mod303.report:0
540+msgid "Importe"
541+msgstr "Importe"
542+
543+#. module: l10n_es_aeat_mod303
544+#: selection:l10n.es.aeat.mod303.report,period:0
545+msgid "Fourth quarter"
546+msgstr "4to Trimestre"
547+
548+#. module: l10n_es_aeat_mod303
549+#: view:l10n.es.aeat.mod303.report:0
550+msgid "Compensación"
551+msgstr "Compensación"
552+
553+#. module: l10n_es_aeat_mod303
554+#: selection:l10n.es.aeat.mod303.report,period:0
555+msgid "October"
556+msgstr "Octubre"
557+
558+#. module: l10n_es_aeat_mod303
559+#: field:l10n.es.aeat.mod303.report,porcentaje_atribuible_estado:0
560+msgid "%"
561+msgstr "%"
562+
563+#. module: l10n_es_aeat_mod303
564+#: selection:l10n.es.aeat.mod303.report,type:0
565+msgid "Complementary"
566+msgstr "Complementary"
567+
568+#. module: l10n_es_aeat_mod303
569+#: selection:l10n.es.aeat.mod303.report,period:0
570+msgid "May"
571+msgstr "Mayo"
572+
573+#. module: l10n_es_aeat_mod303
574+#: field:l10n.es.aeat.mod303.report,cuenta_ingreso_id:0
575+msgid "CCC Ingreso"
576+msgstr "CCC Ingreso"
577+
578+#. module: l10n_es_aeat_mod303
579+#: help:l10n.es.aeat.mod303.report,representative_vat:0
580+msgid "Legal Representative VAT number."
581+msgstr "Legal Representative VAT number."
582+
583+#. module: l10n_es_aeat_mod303
584+#: field:l10n.es.aeat.mod303.report,previous_number:0
585+msgid "Previous Declaration Number"
586+msgstr "Número Declaración anterior"
587+
588+#. module: l10n_es_aeat_mod303
589+#: selection:l10n.es.aeat.mod303.report,period:0
590+msgid "February"
591+msgstr "Febrero"
592+
593+#. module: l10n_es_aeat_mod303
594+#: view:l10n.es.aeat.mod303.report:0
595+msgid "Complementaria"
596+msgstr "Complementaria"
597+
598+#. module: l10n_es_aeat_mod303
599+#: view:l10n.es.aeat.mod303.report:0
600+#: field:l10n.es.aeat.mod303.report,resultado_casilla_46:0
601+msgid "Resultado"
602+msgstr "Resultado"
603+
604+#. module: l10n_es_aeat_mod303
605+#: field:l10n.es.aeat.mod303.report,total_devengado:0
606+msgid "IVA Devengado"
607+msgstr "IVA Devengado"
608+
609+#. module: l10n_es_aeat_mod303
610+#: selection:l10n.es.aeat.mod303.report,period:0
611+msgid "April"
612+msgstr "Abril"
613+
614+#. module: l10n_es_aeat_mod303
615+#: view:l10n.es.aeat.mod303.report:0
616+#: field:l10n.es.aeat.mod303.report,fiscalyear_id:0
617+msgid "Fiscal Year"
618+msgstr "Año Fiscal"
619+
620+#. module: l10n_es_aeat_mod303
621+#: field:l10n.es.aeat.mod303.report,cuenta_devolucion_id:0
622+msgid "CCC Devolución"
623+msgstr "CCC Devolución"
624+
625+#. module: l10n_es_aeat_mod303
626+#: selection:l10n.es.aeat.mod303.report,support_type:0
627+msgid "Telematics"
628+msgstr "Telematics"
629+
630+#. module: l10n_es_aeat_mod303
631+#: model:ir.model,name:l10n_es_aeat_mod303.model_l10n_es_aeat_mod303_export_to_boe
632+msgid "Export AEAT Model 303 to BOE format"
633+msgstr "Exportar el modelo AEAT 303 a formato BOE"
634+
635+#. module: l10n_es_aeat_mod303
636+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:204
637+#, python-format
638+msgid "CCC de ingreso no válido %s"
639+msgstr "CCC de ingreso no válido %s"
640+
641+#. module: l10n_es_aeat_mod303
642+#: selection:l10n.es.aeat.mod303.report,period:0
643+msgid "Second quarter"
644+msgstr "2do Trimestre"
645+
646+#. module: l10n_es_aeat_mod303
647+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:274
648+#, python-format
649+msgid "%s_report_%s.txt"
650+msgstr "%s_report_%s.txt"
651
652=== added file 'l10n_es_aeat_mod303/i18n/l10n_es_aeat_mod303.pot'
653--- l10n_es_aeat_mod303/i18n/l10n_es_aeat_mod303.pot 1970-01-01 00:00:00 +0000
654+++ l10n_es_aeat_mod303/i18n/l10n_es_aeat_mod303.pot 2013-10-10 17:06:51 +0000
655@@ -0,0 +1,535 @@
656+# Translation of OpenERP Server.
657+# This file contains the translation of the following modules:
658+# * l10n_es_aeat_mod303
659+#
660+msgid ""
661+msgstr ""
662+"Project-Id-Version: OpenERP Server 6.0.3\n"
663+"Report-Msgid-Bugs-To: support@openerp.com\n"
664+"POT-Creation-Date: 2013-10-10 17:03+0000\n"
665+"PO-Revision-Date: 2013-10-10 17:03+0000\n"
666+"Last-Translator: <>\n"
667+"Language-Team: \n"
668+"MIME-Version: 1.0\n"
669+"Content-Type: text/plain; charset=UTF-8\n"
670+"Content-Transfer-Encoding: \n"
671+"Plural-Forms: \n"
672+
673+#. module: l10n_es_aeat_mod303
674+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:266
675+#, python-format
676+msgid "The 303 report must be 1353 characters long and are %s"
677+msgstr ""
678+
679+#. module: l10n_es_aeat_mod303
680+#: view:l10n.es.aeat.mod303.report:0
681+msgid "AEAT 303 Reports"
682+msgstr ""
683+
684+#. module: l10n_es_aeat_mod303
685+#: field:l10n.es.aeat.mod303.report,representative_vat:0
686+msgid "L.R. VAT number"
687+msgstr ""
688+
689+#. module: l10n_es_aeat_mod303
690+#: view:l10n.es.aeat.mod303.report:0
691+msgid "Devolución"
692+msgstr ""
693+
694+#. module: l10n_es_aeat_mod303
695+#: model:ir.model,name:l10n_es_aeat_mod303.model_l10n_es_aeat_mod303_report
696+#: view:l10n.es.aeat.mod303.report:0
697+msgid "AEAT 303 Report"
698+msgstr ""
699+
700+#. module: l10n_es_aeat_mod303
701+#: selection:l10n.es.aeat.mod303.report,period:0
702+msgid "March"
703+msgstr ""
704+
705+#. module: l10n_es_aeat_mod303
706+#: view:l10n.es.aeat.mod303.report:0
707+#: field:l10n.es.aeat.mod303.report,company_id:0
708+msgid "Company"
709+msgstr ""
710+
711+#. module: l10n_es_aeat_mod303
712+#: field:l10n.es.aeat.mod303.report,devolver:0
713+msgid "Devolver"
714+msgstr ""
715+
716+#. module: l10n_es_aeat_mod303
717+#: code:addons/l10n_es_aeat_mod303/mod303.py:225
718+#, python-format
719+msgid "Seleccione una cuenta para ingresar el importe"
720+msgstr ""
721+
722+#. module: l10n_es_aeat_mod303
723+#: selection:l10n.es.aeat.mod303.report,type:0
724+msgid "Substitutive"
725+msgstr ""
726+
727+#. module: l10n_es_aeat_mod303
728+#: help:l10n.es.aeat.mod303.report,regularizacion_anual:0
729+msgid "En la última autoliquidación del año (la del período 4T o mes 12) se hará constar, con el signo que corresponda, el resultado de la regularización anual conforme disponen las Leyes por las que se aprueban el Concierto Económico entre el Estado y la Comunidad Autónoma del País Vasco y el Convenio Económico entre el Estado y la Comunidad Foral de Navarra."
730+msgstr ""
731+
732+#. module: l10n_es_aeat_mod303
733+#: model:ir.actions.act_window,help:l10n_es_aeat_mod303.action_l10n_es_aeat_mod303_report
734+msgid "Create and query AEAT Model 303 Reports"
735+msgstr ""
736+
737+#. module: l10n_es_aeat_mod303
738+#: field:l10n.es.aeat.mod303.report,cuota_compensar:0
739+msgid "Cuotas a Compensar"
740+msgstr ""
741+
742+#. module: l10n_es_aeat_mod303
743+#: code:addons/l10n_es_aeat_mod303/mod303.py:153
744+#, python-format
745+msgid "El periodo seleccionado no coincide con los periodos del año fiscal:"
746+msgstr ""
747+
748+#. module: l10n_es_aeat_mod303
749+#: view:l10n.es.aeat.mod303.report:0
750+msgid "Cancelled"
751+msgstr ""
752+
753+#. module: l10n_es_aeat_mod303
754+#: field:l10n.es.aeat.mod303.report,complementaria:0
755+#: help:l10n.es.aeat.mod303.report,complementaria:0
756+msgid "Autoliquidación Complementaria"
757+msgstr ""
758+
759+#. module: l10n_es_aeat_mod303
760+#: field:l10n.es.aeat.mod303.report,company_vat:0
761+msgid "VAT number"
762+msgstr ""
763+
764+#. module: l10n_es_aeat_mod303
765+#: help:l10n.es.aeat.mod303.report,resultado_casilla_46:0
766+msgid "Atribuible a la admistracion [40] - Cuotas a compensar [41] + Regularización Anual [45]"
767+msgstr ""
768+
769+#. module: l10n_es_aeat_mod303
770+#: field:l10n.es.aeat.mod303.report,previus_result:0
771+msgid "A Deducir"
772+msgstr ""
773+
774+#. module: l10n_es_aeat_mod303
775+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:181
776+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:203
777+#, python-format
778+msgid "Warning"
779+msgstr ""
780+
781+#. module: l10n_es_aeat_mod303
782+#: help:l10n.es.aeat.mod303.report,previus_result:0
783+msgid "Resultado de la anterior o anteriores del mismo concepto, ejercicio y periodo"
784+msgstr ""
785+
786+#. module: l10n_es_aeat_mod303
787+#: view:l10n.es.aeat.mod303.report:0
788+msgid "Confirm"
789+msgstr ""
790+
791+#. module: l10n_es_aeat_mod303
792+#: help:l10n.es.aeat.mod303.report,porcentaje_atribuible_estado:0
793+msgid "Los sujetos pasivos que tributen conjuntamente a la Administración del Estado y a las Diputaciones Forales del País Vasco o a la ComunidadForal de Navarra, consignarán en esta casilla el porcentaje del volumen de operaciones en territorio común. Los demás sujetos pasivos consignarán en esta casilla el 100%"
794+msgstr ""
795+
796+#. module: l10n_es_aeat_mod303
797+#: selection:l10n.es.aeat.mod303.report,period:0
798+msgid "February"
799+msgstr ""
800+
801+#. module: l10n_es_aeat_mod303
802+#: field:l10n.es.aeat.mod303.report,state:0
803+msgid "State"
804+msgstr ""
805+
806+#. module: l10n_es_aeat_mod303
807+#: selection:l10n.es.aeat.mod303.report,period:0
808+msgid "First quarter"
809+msgstr ""
810+
811+#. module: l10n_es_aeat_mod303
812+#: model:ir.actions.act_window,name:l10n_es_aeat_mod303.action_l10n_es_aeat_mod303_report
813+msgid "AEAT Model 303"
814+msgstr ""
815+
816+#. module: l10n_es_aeat_mod303
817+#: view:l10n.es.aeat.mod303.report:0
818+msgid "AEAT 303"
819+msgstr ""
820+
821+#. module: l10n_es_aeat_mod303
822+#: code:addons/l10n_es_aeat_mod303/mod303.py:229
823+#, python-format
824+msgid "No hay actividad en el periodo seleccionado, marque la casilla correspondinte"
825+msgstr ""
826+
827+#. module: l10n_es_aeat_mod303
828+#: model:ir.ui.menu,name:l10n_es_aeat_mod303.menu_aeat_mod303_report
829+msgid "AEAT 303 Model"
830+msgstr ""
831+
832+#. module: l10n_es_aeat_mod303
833+#: field:l10n.es.aeat.mod303.report,support_type:0
834+msgid "Support Type"
835+msgstr ""
836+
837+#. module: l10n_es_aeat_mod303
838+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:273
839+#, python-format
840+msgid "%Y-%m-%d"
841+msgstr ""
842+
843+#. module: l10n_es_aeat_mod303
844+#: view:l10n.es.aeat.mod303.report:0
845+msgid "Export to BOE"
846+msgstr ""
847+
848+#. module: l10n_es_aeat_mod303
849+#: selection:l10n.es.aeat.mod303.report,period:0
850+msgid "July"
851+msgstr ""
852+
853+#. module: l10n_es_aeat_mod303
854+#: code:addons/l10n_es_aeat_mod303/mod303.py:227
855+#, python-format
856+msgid "Seleccione una cuenta para realizar la devolución"
857+msgstr ""
858+
859+#. module: l10n_es_aeat_mod303
860+#: help:l10n.es.aeat.mod303.report,devolucion_mensual:0
861+msgid "Inscrito en el Registro de Devolución Mensual"
862+msgstr ""
863+
864+#. module: l10n_es_aeat_mod303
865+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:181
866+#, python-format
867+msgid "CCC de devolución no válida \n"
868+"%s"
869+msgstr ""
870+
871+#. module: l10n_es_aeat_mod303
872+#: field:l10n.es.aeat.mod303.report,calculation_date:0
873+msgid "Calculation date"
874+msgstr ""
875+
876+#. module: l10n_es_aeat_mod303
877+#: field:l10n.es.aeat.mod303.report,contact_name:0
878+msgid "Full Name"
879+msgstr ""
880+
881+#. module: l10n_es_aeat_mod303
882+#: view:l10n.es.aeat.mod303.report:0
883+msgid "Declaracion"
884+msgstr ""
885+
886+#. module: l10n_es_aeat_mod303
887+#: field:l10n.es.aeat.mod303.report,ingresar:0
888+msgid "Ingresar"
889+msgstr ""
890+
891+#. module: l10n_es_aeat_mod303
892+#: selection:l10n.es.aeat.mod303.report,period:0
893+msgid "September"
894+msgstr ""
895+
896+#. module: l10n_es_aeat_mod303
897+#: selection:l10n.es.aeat.mod303.report,period:0
898+msgid "December"
899+msgstr ""
900+
901+#. module: l10n_es_aeat_mod303
902+#: field:l10n.es.aeat.mod303.report,number:0
903+msgid "Declaration Number"
904+msgstr ""
905+
906+#. module: l10n_es_aeat_mod303
907+#: field:l10n.es.aeat.mod303.report,total_deducir:0
908+msgid "IVA a Deducir"
909+msgstr ""
910+
911+#. module: l10n_es_aeat_mod303
912+#: selection:l10n.es.aeat.mod303.report,state:0
913+msgid "Canceled"
914+msgstr ""
915+
916+#. module: l10n_es_aeat_mod303
917+#: field:l10n.es.aeat.mod303.report,regularizacion_anual:0
918+msgid "Regularización Anual"
919+msgstr ""
920+
921+#. module: l10n_es_aeat_mod303
922+#: view:l10n.es.aeat.mod303.report:0
923+msgid "Ingreso"
924+msgstr ""
925+
926+#. module: l10n_es_aeat_mod303
927+#: view:l10n.es.aeat.mod303.report:0
928+msgid "Calculate"
929+msgstr ""
930+
931+#. module: l10n_es_aeat_mod303
932+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:249
933+#, python-format
934+msgid "AEAT Model is necessary"
935+msgstr ""
936+
937+#. module: l10n_es_aeat_mod303
938+#: selection:l10n.es.aeat.mod303.report,support_type:0
939+msgid "DVD"
940+msgstr ""
941+
942+#. module: l10n_es_aeat_mod303
943+#: view:l10n.es.aeat.mod303.report:0
944+msgid "In process"
945+msgstr ""
946+
947+#. module: l10n_es_aeat_mod303
948+#: code:addons/l10n_es_aeat_mod303/mod303.py:212
949+#, python-format
950+msgid "El valor añadido para la regularizacion anual no se ha tendio en cuenta por no ser un periodo de cierre (12 o 4T)"
951+msgstr ""
952+
953+#. module: l10n_es_aeat_mod303
954+#: view:l10n.es.aeat.mod303.report:0
955+#: selection:l10n.es.aeat.mod303.report,state:0
956+msgid "Draft"
957+msgstr ""
958+
959+#. module: l10n_es_aeat_mod303
960+#: field:l10n.es.aeat.mod303.report,diferencia:0
961+msgid "Diferencia"
962+msgstr ""
963+
964+#. module: l10n_es_aeat_mod303
965+#: help:l10n.es.aeat.mod303.report,cuota_compensar:0
966+msgid "Cuota a compensar de periodos anteriores"
967+msgstr ""
968+
969+#. module: l10n_es_aeat_mod303
970+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:74
971+#, python-format
972+msgid "The identification (1) and income (2) must be 72 characters long"
973+msgstr ""
974+
975+#. module: l10n_es_aeat_mod303
976+#: field:l10n.es.aeat.mod303.report,sin_actividad:0
977+msgid "Sin Actividad"
978+msgstr ""
979+
980+#. module: l10n_es_aeat_mod303
981+#: selection:l10n.es.aeat.mod303.report,period:0
982+msgid "August"
983+msgstr ""
984+
985+#. module: l10n_es_aeat_mod303
986+#: selection:l10n.es.aeat.mod303.report,type:0
987+msgid "Normal"
988+msgstr ""
989+
990+#. module: l10n_es_aeat_mod303
991+#: selection:l10n.es.aeat.mod303.report,state:0
992+msgid "Processing"
993+msgstr ""
994+
995+#. module: l10n_es_aeat_mod303
996+#: selection:l10n.es.aeat.mod303.report,period:0
997+msgid "June"
998+msgstr ""
999+
1000+#. module: l10n_es_aeat_mod303
1001+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:166
1002+#, python-format
1003+msgid "The vat records must be 749 characters long and are %s"
1004+msgstr ""
1005+
1006+#. module: l10n_es_aeat_mod303
1007+#: field:l10n.es.aeat.mod303.report,atribuible_estado:0
1008+msgid "Atribuible a la Administracion"
1009+msgstr ""
1010+
1011+#. module: l10n_es_aeat_mod303
1012+#: selection:l10n.es.aeat.mod303.report,period:0
1013+msgid "November"
1014+msgstr ""
1015+
1016+#. module: l10n_es_aeat_mod303
1017+#: field:l10n.es.aeat.mod303.report,resultado_liquidacion:0
1018+msgid "Resultado Liquidación"
1019+msgstr ""
1020+
1021+#. module: l10n_es_aeat_mod303
1022+#: field:l10n.es.aeat.mod303.report,devolucion_mensual:0
1023+msgid "Devolución Mensual"
1024+msgstr ""
1025+
1026+#. module: l10n_es_aeat_mod303
1027+#: selection:l10n.es.aeat.mod303.report,period:0
1028+msgid "January"
1029+msgstr ""
1030+
1031+#. module: l10n_es_aeat_mod303
1032+#: selection:l10n.es.aeat.mod303.report,state:0
1033+msgid "Processed"
1034+msgstr ""
1035+
1036+#. module: l10n_es_aeat_mod303
1037+#: selection:l10n.es.aeat.mod303.report,period:0
1038+msgid "Third quarter"
1039+msgstr ""
1040+
1041+#. module: l10n_es_aeat_mod303
1042+#: help:l10n.es.aeat.mod303.report,diferencia:0
1043+msgid "( IVA devengado - IVA deducible )"
1044+msgstr ""
1045+
1046+#. module: l10n_es_aeat_mod303
1047+#: field:l10n.es.aeat.mod303.report,compensar:0
1048+msgid "Compensar"
1049+msgstr ""
1050+
1051+#. module: l10n_es_aeat_mod303
1052+#: field:l10n.es.aeat.mod303.report,period:0
1053+msgid "Periodo"
1054+msgstr ""
1055+
1056+#. module: l10n_es_aeat_mod303
1057+#: field:l10n.es.aeat.mod303.report,type:0
1058+msgid "Statement Type"
1059+msgstr ""
1060+
1061+#. module: l10n_es_aeat_mod303
1062+#: view:l10n.es.aeat.mod303.report:0
1063+msgid "General"
1064+msgstr ""
1065+
1066+#. module: l10n_es_aeat_mod303
1067+#: view:l10n.es.aeat.mod303.report:0
1068+#: selection:l10n.es.aeat.mod303.report,state:0
1069+msgid "Done"
1070+msgstr ""
1071+
1072+#. module: l10n_es_aeat_mod303
1073+#: view:l10n.es.aeat.mod303.report:0
1074+msgid "Cancel"
1075+msgstr ""
1076+
1077+#. module: l10n_es_aeat_mod303
1078+#: view:l10n.es.aeat.mod303.report:0
1079+msgid "Recalculate"
1080+msgstr ""
1081+
1082+#. module: l10n_es_aeat_mod303
1083+#: view:l10n.es.aeat.mod303.report:0
1084+msgid "Importe"
1085+msgstr ""
1086+
1087+#. module: l10n_es_aeat_mod303
1088+#: selection:l10n.es.aeat.mod303.report,period:0
1089+msgid "Fourth quarter"
1090+msgstr ""
1091+
1092+#. module: l10n_es_aeat_mod303
1093+#: view:l10n.es.aeat.mod303.report:0
1094+msgid "Compensación"
1095+msgstr ""
1096+
1097+#. module: l10n_es_aeat_mod303
1098+#: selection:l10n.es.aeat.mod303.report,period:0
1099+msgid "October"
1100+msgstr ""
1101+
1102+#. module: l10n_es_aeat_mod303
1103+#: field:l10n.es.aeat.mod303.report,porcentaje_atribuible_estado:0
1104+msgid "%"
1105+msgstr ""
1106+
1107+#. module: l10n_es_aeat_mod303
1108+#: selection:l10n.es.aeat.mod303.report,type:0
1109+msgid "Complementary"
1110+msgstr ""
1111+
1112+#. module: l10n_es_aeat_mod303
1113+#: selection:l10n.es.aeat.mod303.report,period:0
1114+msgid "May"
1115+msgstr ""
1116+
1117+#. module: l10n_es_aeat_mod303
1118+#: field:l10n.es.aeat.mod303.report,cuenta_ingreso_id:0
1119+msgid "CCC Ingreso"
1120+msgstr ""
1121+
1122+#. module: l10n_es_aeat_mod303
1123+#: help:l10n.es.aeat.mod303.report,representative_vat:0
1124+msgid "Legal Representative VAT number."
1125+msgstr ""
1126+
1127+#. module: l10n_es_aeat_mod303
1128+#: field:l10n.es.aeat.mod303.report,previous_number:0
1129+msgid "Previous Declaration Number"
1130+msgstr ""
1131+
1132+#. module: l10n_es_aeat_mod303
1133+#: view:l10n.es.aeat.mod303.report:0
1134+msgid "Complementaria"
1135+msgstr ""
1136+
1137+#. module: l10n_es_aeat_mod303
1138+#: view:l10n.es.aeat.mod303.report:0
1139+#: field:l10n.es.aeat.mod303.report,resultado_casilla_46:0
1140+msgid "Resultado"
1141+msgstr ""
1142+
1143+#. module: l10n_es_aeat_mod303
1144+#: field:l10n.es.aeat.mod303.report,total_devengado:0
1145+msgid "IVA Devengado"
1146+msgstr ""
1147+
1148+#. module: l10n_es_aeat_mod303
1149+#: selection:l10n.es.aeat.mod303.report,period:0
1150+msgid "April"
1151+msgstr ""
1152+
1153+#. module: l10n_es_aeat_mod303
1154+#: view:l10n.es.aeat.mod303.report:0
1155+#: field:l10n.es.aeat.mod303.report,fiscalyear_id:0
1156+msgid "Fiscal Year"
1157+msgstr ""
1158+
1159+#. module: l10n_es_aeat_mod303
1160+#: field:l10n.es.aeat.mod303.report,cuenta_devolucion_id:0
1161+msgid "CCC Devolución"
1162+msgstr ""
1163+
1164+#. module: l10n_es_aeat_mod303
1165+#: selection:l10n.es.aeat.mod303.report,support_type:0
1166+msgid "Telematics"
1167+msgstr ""
1168+
1169+#. module: l10n_es_aeat_mod303
1170+#: model:ir.model,name:l10n_es_aeat_mod303.model_l10n_es_aeat_mod303_export_to_boe
1171+msgid "Export AEAT Model 303 to BOE format"
1172+msgstr ""
1173+
1174+#. module: l10n_es_aeat_mod303
1175+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:203
1176+#, python-format
1177+msgid "CCC de ingreso no válido %s"
1178+msgstr ""
1179+
1180+#. module: l10n_es_aeat_mod303
1181+#: selection:l10n.es.aeat.mod303.report,period:0
1182+msgid "Second quarter"
1183+msgstr ""
1184+
1185+#. module: l10n_es_aeat_mod303
1186+#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:273
1187+#, python-format
1188+msgid "%s_report_%s.txt"
1189+msgstr ""
1190+
1191
1192=== added file 'l10n_es_aeat_mod303/mod303.py'
1193--- l10n_es_aeat_mod303/mod303.py 1970-01-01 00:00:00 +0000
1194+++ l10n_es_aeat_mod303/mod303.py 2013-10-10 17:06:51 +0000
1195@@ -0,0 +1,245 @@
1196+# -*- encoding: utf-8 -*-
1197+##############################################################################
1198+#
1199+# OpenERP, Open Source Management Solution
1200+# Copyright (C) 2013 Guadaltech. All Rights Reserved
1201+# Author: Alberto Martín Cortada
1202+#
1203+# This program is free software: you can redistribute it and/or modify
1204+# it under the terms of the GNU General Public License as published by
1205+# the Free Software Foundation, either version 3 of the License, or
1206+# (at your option) any later version.
1207+#
1208+# This program is distributed in the hope that it will be useful,
1209+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1210+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1211+# GNU General Public License for more details.
1212+#
1213+# You should have received a copy of the GNU General Public License
1214+# along with this program. If not, see http://www.gnu.org/licenses/.
1215+#
1216+##############################################################################
1217+
1218+
1219+import re
1220+import time
1221+from datetime import datetime
1222+from dateutil.relativedelta import relativedelta
1223+
1224+
1225+from osv import osv, fields
1226+from tools.translate import _
1227+from account.report.account_tax_report import tax_report
1228+
1229+
1230+class l10n_es_aeat_mod303_report(osv.osv):
1231+
1232+ _inherit = "l10n.es.aeat.report"
1233+ _name = "l10n.es.aeat.mod303.report"
1234+ _description = "AEAT 303 Report"
1235+ _rec_name = "number"
1236+
1237+ def button_calculate(self, cr, uid, ids, context=None):
1238+ if not context:
1239+ context = {}
1240+
1241+ self.action_confirm(cr, uid, ids, context)
1242+
1243+ return True
1244+
1245+ def button_recalculate(self, cr, uid, ids, context=None):
1246+ if context is None:
1247+ context = {}
1248+
1249+ self.action_confirm(cr, uid, ids, context)
1250+
1251+ return True
1252+
1253+ def button_export(self, cr, uid, ids, context=None):
1254+ if context is None:
1255+ context = {}
1256+
1257+ export_obj = self.pool.get("l10n.es.aeat.mod303.export_to_boe")
1258+ export_obj._export_boe_file(cr, uid, ids, self.browse(cr, uid, ids and ids[0]),'303')
1259+
1260+ return True
1261+
1262+
1263+ _columns = {
1264+
1265+ 'period': fields.selection([
1266+ ('1T','First quarter'),('2T','Second quarter'),('3T','Third quarter'),
1267+ ('4T','Fourth quarter'),('01','January'),('02','February'),('03','March'),('04','April'),
1268+ ('05','May'),('06','June'),('07','July'),('08','August'),('09','September'),('10','October'),
1269+ ('11','November'),('12','December')
1270+ ], 'Periodo',states={'done':[('readonly',True)]}),
1271+ 'devolucion_mensual' : fields.boolean("Devolución Mensual",help="Inscrito en el Registro de Devolución Mensual",states={'done':[('readonly',True)]}),
1272+ 'complementaria' : fields.boolean("Autoliquidación Complementaria",help="Autoliquidación Complementaria",states={'done':[('readonly',True)]}),
1273+ 'contact_name': fields.char("Full Name", size=40),
1274+ 'total_devengado' : fields.float("IVA Devengado",readonly=True), ## 21
1275+ 'total_deducir' : fields.float("IVA a Deducir",readonly=True), ## 37
1276+ 'diferencia' : fields.float("Diferencia",readonly=True,help="( IVA devengado - IVA deducible )"), ## 38
1277+ 'porcentaje_atribuible_estado' : fields.float("%", help="""Los sujetos pasivos que tributen conjuntamente a la Administración del Estado y a las Diputaciones Forales del País Vasco o a la ComunidadForal de Navarra, consignarán en esta casilla el porcentaje del volumen de operaciones en territorio común. Los demás sujetos pasivos consignarán en esta casilla el 100%""",states={'done':[('readonly',True)]}), ## 39
1278+ 'atribuible_estado' : fields.float("Atribuible a la Administracion",readonly=True), ## 40
1279+ 'cuota_compensar' : fields.float("Cuotas a Compensar",help="Cuota a compensar de periodos anteriores",states={'done':[('readonly',True)]}), ## 41
1280+ 'regularizacion_anual' : fields.float("Regularización Anual",help="""En la última autoliquidación del año (la del período 4T o mes 12) se hará constar, con el signo que corresponda, el resultado de la regularización anual conforme disponen las Leyes por las que se aprueban el Concierto Económico entre el Estado y la Comunidad Autónoma del País Vasco y el Convenio Económico entre el Estado y la Comunidad Foral de Navarra.""",states={'done':[('readonly',True)]}), ## 45
1281+ 'resultado_casilla_46' : fields.float("Resultado",help="""Atribuible a la admistracion [40] - Cuotas a compensar [41] + Regularización Anual [45]""",readonly=True), ## 46
1282+
1283+ 'previus_result' : fields.float("A Deducir",help="Resultado de la anterior o anteriores del mismo concepto, ejercicio y periodo",states={'done':[('readonly',True)]}), ## 47
1284+ 'resultado_liquidacion' : fields.float("Resultado Liquidación",readonly=True), ## 48
1285+
1286+ 'compensar' : fields.float("Compensar",states={'done':[('readonly',True)]}), ## 49
1287+
1288+ "devolver" : fields.float("Devolver",states={'done':[('readonly',True)]}),
1289+ "ingresar" : fields.float("Ingresar",states={'done':[('readonly',True)]}),
1290+
1291+ 'cuenta_devolucion_id' : fields.many2one("res.partner.bank","CCC Devolución",states={'done':[('readonly',True)]}),
1292+ 'cuenta_ingreso_id' : fields.many2one("res.partner.bank","CCC Ingreso",states={'done':[('readonly',True)]}),
1293+
1294+ 'sin_actividad' : fields.boolean("Sin Actividad",states={'done':[('readonly',True)]}),
1295+
1296+
1297+# 'type': fields.selection([
1298+# ('C','Solicitud de compensación'),
1299+# ('D','Devolución'),
1300+# ('G','CC Tributaria-Ingreso'),
1301+# ('I','Ingreso'),
1302+# ('N','Sin Actividad'),
1303+# ('V','CC Tributaria-Devolución'),
1304+# ('U','Domicilación de CCC'),], 'Statement Type',
1305+# required=True),
1306+
1307+ }
1308+ _defaults = {
1309+ 'number' : lambda *a: '303',
1310+ 'porcentaje_atribuible_estado': lambda *a: 100,
1311+ 'cuota_compensar' : lambda *a: 0
1312+ }
1313+
1314+
1315+ def _get_period(self,cr,uid,ids,context=None):
1316+
1317+ period_obj = self.pool.get("account.period")
1318+ quarter_dict = {"1T" : 'first',
1319+ "2T" : 'second',
1320+ "3T" : 'third',
1321+ "4T" : 'fourth',
1322+ }
1323+ account_period_id = []
1324+
1325+ for mod303 in self.browse(cr, uid, ids, context):
1326+
1327+ fecha_ini = False
1328+ fecha_fin = False
1329+
1330+ dec_year = mod303.fiscalyear_id.date_start.split('-')[0]
1331+
1332+ mod = mod303.period
1333+
1334+ if mod >= '01' and mod <= '12':
1335+ fecha_ini = datetime.strptime('%s-%s-01' % (dec_year, mod), '%Y-%m-%d')
1336+ fecha_fin = fecha_ini + relativedelta(months=+1, days=-1)
1337+ account_period_id = period_obj.search(cr,uid,[('date_start','=',fecha_ini),('date_stop','=',fecha_fin)])
1338+
1339+ if mod in ('1T', '2T', '3T', '4T'):
1340+ month = ( ( int(mod[0])-1 ) * 3 ) + 1
1341+ fecha_ini = datetime.strptime('%s-%s-01' % (dec_year, month), '%Y-%m-%d')
1342+ fecha_fin = fecha_ini + relativedelta(months=+3, days=-1)
1343+
1344+ account_period_id = period_obj.search(cr,uid,[('date_start','=',fecha_ini),('date_stop','=',fecha_fin)])
1345+ if not account_period_id:
1346+ account_period_id = period_obj.search(cr,uid,[('quarter','=',quarter_dict[mod])])
1347+ if not account_period_id:
1348+ raise osv.except_osv(_('El periodo seleccionado no coincide con los periodos del año fiscal:'), dec_year)
1349+
1350+ return account_period_id
1351+
1352+
1353+ def _get_report_lines(self, cr, uid, ids, context=None):
1354+ """get report lines"""
1355+
1356+
1357+ dict_code_values = {}
1358+ for i in range(1,51):
1359+ dict_code_values["[%.2d]" % i] = 0
1360+
1361+ for mod303 in self.browse(cr, uid, ids, context):
1362+
1363+ generate_line = tax_report(cr,uid,"account.vat.declaration")
1364+ generate_line.period_ids = self._get_period(cr,uid,[mod303.id],context)
1365+ generate_line.display_detail = False
1366+ lines = generate_line._get_lines( 'invoices', mod303.company_id.id)
1367+
1368+ ordered_lines = sorted(lines, key=lambda k: k['code'])
1369+
1370+
1371+ for code in dict_code_values.keys():
1372+ for line in ordered_lines:
1373+ if code == line["code"]:
1374+ dict_code_values[code] += line["tax_amount"]
1375+
1376+ return dict_code_values
1377+
1378+
1379+
1380+
1381+ def action_confirm(self, cr, uid, ids, context=None):
1382+ """set to done the report and check its records"""
1383+ if context is None: context = {}
1384+ for mod303 in self.browse(cr, uid, ids, context):
1385+ report_lines = self._get_report_lines(cr, uid, ids, context)
1386+ regularizacion_anual = mod303.regularizacion_anual if ( mod303.period == "4T" or mod303.period == "12" ) else 0
1387+ total_devengado = report_lines.get("[21]")
1388+ total_deducir = report_lines.get("[37]")
1389+ atribuible_estado = (total_devengado - total_deducir) * mod303.porcentaje_atribuible_estado / 100 ## casilla 40
1390+ casilla_46 = atribuible_estado - mod303.cuota_compensar + regularizacion_anual
1391+ previus_result = mod303.previus_result if mod303.complementaria else 0
1392+ resultado_liquidacion = casilla_46 - previus_result
1393+ vals = {
1394+ 'state': 'calculated',
1395+ 'calculation_date':time.strftime('%Y-%m-%d'),
1396+ 'total_devengado':total_devengado,
1397+ 'total_deducir':total_deducir,
1398+ 'diferencia': total_devengado - total_deducir,
1399+ 'atribuible_estado' : atribuible_estado,
1400+ 'resultado_casilla_46' : casilla_46,
1401+ 'resultado_liquidacion' : resultado_liquidacion,
1402+ 'compensar' : abs(resultado_liquidacion) if resultado_liquidacion < 0 and mod303.devolver == 0 else 0,
1403+ 'ingresar' : resultado_liquidacion if resultado_liquidacion > 0 else 0
1404+ }
1405+
1406+ if mod303.regularizacion_anual > 0 and not ( mod303.period == "4T" and mod303.period == "12" ):
1407+ self.log(cr,uid,mod303.id,_("El valor añadido para la regularizacion anual no se ha tendio en cuenta por no ser un periodo de cierre (12 o 4T)"),context)
1408+
1409+ self.write(cr, uid, mod303.id, vals)
1410+
1411+ return True
1412+
1413+ def confirm(self, cr, uid, ids, context=None):
1414+ """set to done the report and check its records"""
1415+
1416+ msg_validation = ""
1417+ for mod303 in self.browse(cr,uid,ids,context):
1418+
1419+ if mod303.ingresar > 0 and not mod303.cuenta_ingreso_id:
1420+ msg_validation = _('Seleccione una cuenta para ingresar el importe')
1421+ if mod303.devolver > 0 and not mod303.cuenta_devolucion_id:
1422+ msg_validation = _('Seleccione una cuenta para realizar la devolución')
1423+ if mod303.resultado_liquidacion == 0 and not mod303.sin_actividad:
1424+ msg_validation = _("No hay actividad en el periodo seleccionado, marque la casilla correspondinte")
1425+
1426+
1427+ if msg_validation:
1428+ raise osv.except_osv("",msg_validation)
1429+
1430+ self.write(cr, uid, ids, {'state': 'done'})
1431+
1432+ return True
1433+
1434+ def cancel(self, cr, uid, ids, context=None):
1435+ """set to done the report and check its records"""
1436+ self.write(cr, uid, ids, {'state': 'canceled'})
1437+
1438+ return True
1439+
1440+l10n_es_aeat_mod303_report()
1441
1442=== added file 'l10n_es_aeat_mod303/mod303_view.xml'
1443--- l10n_es_aeat_mod303/mod303_view.xml 1970-01-01 00:00:00 +0000
1444+++ l10n_es_aeat_mod303/mod303_view.xml 2013-10-10 17:06:51 +0000
1445@@ -0,0 +1,164 @@
1446+<?xml version="1.0" encoding="utf-8"?>
1447+<openerp>
1448+ <data>
1449+
1450+
1451+ ######################
1452+ ### AEAT MODEL 303 ###
1453+ ######################
1454+
1455+ <!-- Tree view -->
1456+ <record id="view_l10n_es_aeat_mod303_report_tree" model="ir.ui.view">
1457+ <field name="name">AEAT Model 303 (tree)</field>
1458+ <field name="model">l10n.es.aeat.mod303.report</field>
1459+ <field name="type">tree</field>
1460+ <field name="arch" type="xml">
1461+ <tree string="AEAT 303 Reports">
1462+ <field name="number"/>
1463+ <field name="company_id"/>
1464+ <field name="fiscalyear_id"/>
1465+ <field name="period" />
1466+ <field name="state" />
1467+ <!-- <field name="type"/> -->
1468+ <!-- <field name="previous_number"/> -->
1469+ <!-- <field name="support_type"/> -->
1470+ </tree>
1471+ </field>
1472+ </record>
1473+
1474+ <!-- Form view -->
1475+ <record id="view_l10n_es_aeat_mod303_report_form" model="ir.ui.view">
1476+ <field name="name">AEAT Model 303 (form)</field>
1477+ <field name="model">l10n.es.aeat.mod303.report</field>
1478+ <field name="type">form</field>
1479+ <field name="arch" type="xml">
1480+ <form string="AEAT 303 Report" >
1481+
1482+ <group string="Declaracion" colspan="4" >
1483+ <field name="company_id" on_change="on_change_company_id(company_id)" required="1" select="1"/>
1484+ <field name="company_vat" required="1"/>
1485+ <field name="fiscalyear_id" select="1"/>
1486+ <field name="period" required="True"/>
1487+ <!-- <field name="type" selection="1"/> -->
1488+ <group colspan="6" col="6">
1489+ <field name="devolucion_mensual" />
1490+ <field name="complementaria" />
1491+ <field name="sin_actividad" />
1492+ </group>
1493+ </group>
1494+ <notebook>
1495+ <page string ="General">
1496+ <group string="Complementaria" attrs="{'invisible':[('complementaria','=',False)]}" colspan="4">
1497+ <field name="previus_result" attrs="{'required':[('complementaria','=',True)]}" />
1498+ <field name="previous_number" attrs="{'required':[('complementaria','=',True)]}"/>
1499+ </group>
1500+ <group string="Resultado" colspan="4" col="4">
1501+ <group colspan="6" col="6">
1502+ <field name="total_devengado"/>
1503+ <field name="total_deducir" />
1504+ <field name="diferencia" />
1505+ <group colspan="2" ></group>
1506+ <field name="porcentaje_atribuible_estado" />
1507+ <field name="atribuible_estado"/>
1508+ <field name="cuota_compensar" />
1509+ <field name="regularizacion_anual" />
1510+ <field name="resultado_casilla_46" />
1511+ <group colspan="4" ></group>
1512+ <field name="resultado_liquidacion" />
1513+ </group>
1514+ </group>
1515+ <group attrs="{'invisible':[('resultado_liquidacion','=',0)]}">
1516+ <group colspan="6" col="6" attrs="{'invisible':['|',('resultado_liquidacion','&gt;',0),('state','=','draft')]}" >
1517+ <group colspan="2" string="Compensación">
1518+ <field name="compensar" string="Importe"></field>
1519+ </group>
1520+ <group string="Devolución" >
1521+
1522+ <field name="devolver" colspan="2" string="Importe"/>
1523+ <field name="cuenta_devolucion_id" colspan="2"
1524+ attrs="{'required':[('devolver','&gt;',0)]}"/>
1525+ </group>
1526+ </group>
1527+ <group string="Ingreso" attrs="{'invisible':['|',('resultado_liquidacion','&lt;',0),('state','=','draft')]}">
1528+ <field name="ingresar" colspan="2" string="Importe"/>
1529+ <field name="cuenta_ingreso_id" colspan="2"
1530+ attrs="{'required':[('ingresar','&gt;',0)]}"/>
1531+ </group>
1532+ </group>
1533+ <group colspan="4" >
1534+ <group>
1535+ <field name="state" select="2" readonly="1" />
1536+ <field name="calculation_date" readonly="1"/>
1537+ </group>
1538+ <group colspan="4" col="10">
1539+ <button name="button_calculate"
1540+ type="object"
1541+ string="Calculate"
1542+ states="draft"
1543+ icon="terp-stock_format-scientific"
1544+ />
1545+ <button name="button_recalculate"
1546+ type="object"
1547+ string="Recalculate"
1548+ states="calculating,calculated"
1549+ icon="gtk-execute"/>
1550+ <button name="button_export"
1551+ type="object"
1552+ string="Export to BOE"
1553+ states="done"
1554+ icon="gtk-execute"/>
1555+ <button name="confirm" string="Confirm" type="object" states="calculated" icon="gtk-ok"/>
1556+ <button name="cancel" string="Cancel" type="object" states="calculated,done" icon="gtk-cancel"/>
1557+ <button name="action_recover" string="Draft" type="object" states="canceled" icon="gtk-undo"/>
1558+ </group>
1559+ </group>
1560+ </page>
1561+ </notebook>
1562+ </form>
1563+ </field>
1564+ </record>
1565+
1566+ <record id="view_l10n_es_aeat_mod303_report_search" model="ir.ui.view">
1567+ <field name="name">AEAT Model 303 (search)</field>
1568+ <field name="model">l10n.es.aeat.mod303.report</field>
1569+ <field name="type">search</field>
1570+ <field name="arch" type="xml">
1571+ <search string="AEAT 303">
1572+ <group col="8" colspan="4">
1573+ <filter icon="terp-gtk-media-pause" string="Draft" domain="[('state','=','draft')]" help="Draft models"/>
1574+ <filter icon="gtk-execute" string="In process" domain="[('state','in',('calculating', 'calculated'))]" help="In process models"/>
1575+ <filter icon="terp-camera_test" string="Done" domain="[('state','=','done')]" help="Confirmed models"/>
1576+ <filter icon="gtk-cancel" string="Cancelled" domain="[('state', '=', 'canceled')]" help="Cancelled models"/>
1577+ <separator orientation="vertical"/>
1578+ <filter string="Fiscal Year" icon="terp-folder-orange" domain="[]" context="{'group_by':'fiscalyear_id'}"/>
1579+ <separator orientation="vertical"/>
1580+ <filter string="Company" icon="terp-personal" domain="[]" context="{'group_by':'company_id'}"/>
1581+ </group>
1582+ <newline/>
1583+ </search>
1584+ </field>
1585+ </record>
1586+
1587+ <!-- Window action -->
1588+ <record id="action_l10n_es_aeat_mod303_report" model="ir.actions.act_window">
1589+ <field name="name">AEAT Model 303</field>
1590+ <field name="res_model">l10n.es.aeat.mod303.report</field>
1591+ <field name="view_type">form</field>
1592+ <field name="view_mode">tree,form</field>
1593+ <field name="help">Create and query AEAT Model 303 Reports</field>
1594+ </record>
1595+
1596+
1597+
1598+
1599+ <!-- ### MENU ACCESS ### -->
1600+
1601+ <menuitem
1602+ id="menu_aeat_mod303_report"
1603+ parent="l10n_es_aeat.menu_root_aeat"
1604+ action="action_l10n_es_aeat_mod303_report"
1605+ sequence="50"
1606+ name="AEAT 303 Model"/>
1607+
1608+ </data>
1609+</openerp>
1610
1611=== added file 'l10n_es_aeat_mod303/mod303_workflow.xml'
1612--- l10n_es_aeat_mod303/mod303_workflow.xml 1970-01-01 00:00:00 +0000
1613+++ l10n_es_aeat_mod303/mod303_workflow.xml 2013-10-10 17:06:51 +0000
1614@@ -0,0 +1,72 @@
1615+<?xml version="1.0" encoding="utf-8"?>
1616+<openerp>
1617+ <data>
1618+
1619+ <record id="wkf_l10n_es_aeat_mod303_report" model="workflow">
1620+ <field name="name">AEAT 303 Report</field>
1621+ <field name="osv">l10n.es.aeat.mod303.report</field>
1622+ <field name="on_create">True</field>
1623+ </record>
1624+
1625+
1626+ <!--
1627+ ### NODES ###
1628+ -->
1629+ <record id="act_draft" model="workflow.activity">
1630+ <field name="wkf_id" ref="wkf_l10n_es_aeat_mod303_report"/>
1631+ <field name="flow_start">True</field>
1632+ <field name="name">draft</field>
1633+ </record>
1634+
1635+ <record id="act_calculate" model="workflow.activity">
1636+ <field name="wkf_id" ref="wkf_l10n_es_aeat_mod303_report"/>
1637+ <field name="name">calculated</field>
1638+ <field name="action">write({'state':'calculated'})</field>
1639+ <field name="kind">function</field>
1640+ </record>
1641+
1642+ <record id="act_confirm" model="workflow.activity">
1643+ <field name="wkf_id" ref="wkf_l10n_es_aeat_mod303_report"/>
1644+ <field name="name">confirmed</field>
1645+ <field name="action">action_confirm()</field>
1646+ <field name="kind">function</field>
1647+ </record>
1648+
1649+ <record id="act_cancel" model="workflow.activity">
1650+ <field name="wkf_id" ref="wkf_l10n_es_aeat_mod303_report"/>
1651+ <field name="name">canceled</field>
1652+ <field name="flow_stop">True</field>
1653+ <field name="action">write({'state':'canceled'})</field>
1654+ <field name="kind">function</field>
1655+ </record>
1656+
1657+
1658+ <!--
1659+ ### TRANSITIONS ###
1660+ -->
1661+ <record id="trans_draft_calculate" model="workflow.transition">
1662+ <field name="act_from" ref="act_draft"/>
1663+ <field name="act_to" ref="act_calculate"/>
1664+ <field name="signal">calculate</field>
1665+ </record>
1666+
1667+ <record id="trans_calculate_confirm" model="workflow.transition">
1668+ <field name="act_from" ref="act_calculate"/>
1669+ <field name="act_to" ref="act_confirm"/>
1670+ <field name="signal">confirm</field>
1671+ </record>
1672+
1673+ <record id="trans_calculate_draft" model="workflow.transition">
1674+ <field name="act_from" ref="act_calculate"/>
1675+ <field name="act_to" ref="act_cancel"/>
1676+ <field name="signal">cancel</field>
1677+ </record>
1678+
1679+ <record id="trans_confirm_cancel" model="workflow.transition">
1680+ <field name="act_from" ref="act_confirm"/>
1681+ <field name="act_to" ref="act_cancel"/>
1682+ <field name="signal">cancel</field>
1683+ </record>
1684+
1685+ </data>
1686+</openerp>
1687
1688=== added directory 'l10n_es_aeat_mod303/security'
1689=== added file 'l10n_es_aeat_mod303/security/ir.model.access.csv'
1690--- l10n_es_aeat_mod303/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
1691+++ l10n_es_aeat_mod303/security/ir.model.access.csv 2013-10-10 17:06:51 +0000
1692@@ -0,0 +1,6 @@
1693+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
1694+"access_l10n_es_aeat_mod303","l10n_es_aeat_mod303","model_l10n_es_aeat_mod303_report","account.group_account_user",1,0,0,0
1695+"access_l10n_es_aeat_mod303_manager","l10n_es_aeat_mod303 manager","model_l10n_es_aeat_mod303_report","account.group_account_manager",1,1,1,1
1696+
1697+
1698+
1699
1700=== added directory 'l10n_es_aeat_mod303/wizard'
1701=== added file 'l10n_es_aeat_mod303/wizard/__init__.py'
1702--- l10n_es_aeat_mod303/wizard/__init__.py 1970-01-01 00:00:00 +0000
1703+++ l10n_es_aeat_mod303/wizard/__init__.py 2013-10-10 17:06:51 +0000
1704@@ -0,0 +1,26 @@
1705+# -*- encoding: utf-8 -*-
1706+##############################################################################
1707+#
1708+# OpenERP, Open Source Management Solution
1709+# Copyright (C) 2012 Guadaltech. All Rights Reserved
1710+# Author: Isaac De la Barrera
1711+#
1712+# This program is free software: you can redistribute it and/or modify
1713+# it under the terms of the GNU General Public License as published by
1714+# the Free Software Foundation, either version 3 of the License, or
1715+# (at your option) any later version.
1716+#
1717+# This program is distributed in the hope that it will be useful,
1718+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1719+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1720+# GNU General Public License for more details.
1721+#
1722+# You should have received a copy of the GNU General Public License
1723+# along with this program. If not, see http://www.gnu.org/licenses/.
1724+#
1725+##############################################################################
1726+
1727+
1728+import export_mod303_to_boe
1729+
1730+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
1731\ No newline at end of file
1732
1733=== added file 'l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py'
1734--- l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py 1970-01-01 00:00:00 +0000
1735+++ l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py 2013-10-10 17:06:51 +0000
1736@@ -0,0 +1,282 @@
1737+# -*- encoding: utf-8 -*-
1738+##############################################################################
1739+#
1740+# OpenERP, Open Source Management Solution
1741+# Copyright (C) 2013 Guadaltech. All Rights Reserved
1742+# Author: Alberto Martín Cortada
1743+#
1744+# This program is free software: you can redistribute it and/or modify
1745+# it under the terms of the GNU General Public License as published by
1746+# the Free Software Foundation, either version 3 of the License, or
1747+# (at your option) any later version.
1748+#
1749+# This program is distributed in the hope that it will be useful,
1750+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1751+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1752+# GNU General Public License for more details.
1753+#
1754+# You should have received a copy of the GNU General Public License
1755+# along with this program. If not, see http://www.gnu.org/licenses/.
1756+#
1757+##############################################################################
1758+
1759+
1760+__author__ = "Alberto Martín Cortada"
1761+
1762+import base64
1763+import time
1764+from datetime import datetime
1765+
1766+
1767+from tools.translate import _
1768+from osv import osv
1769+from account.report.account_tax_report import tax_report
1770+
1771+
1772+class l10n_es_aeat_mod303_export_to_boe(osv.osv_memory):
1773+
1774+ _inherit = "l10n.es.aeat.report.export_to_boe"
1775+ _name = "l10n.es.aeat.mod303.export_to_boe"
1776+ _description = "Export AEAT Model 303 to BOE format"
1777+
1778+
1779+ def _get_formated_declaration(self,report):
1780+
1781+ file_contents = ''
1782+
1783+ ## cabecera
1784+
1785+ file_contents += "<T30301>" ## pos 1
1786+
1787+ file_contents += ' ' ## pos 9
1788+
1789+ ## pos 10
1790+ ## tipo de declaración - "Para impresión, cualquier caracter Alfanumerico o 'N' si la autoliquidación se declara SIN ACTIVIDAD"
1791+
1792+ file_contents += self._formatString("N" if report.sin_actividad else " ",1) ## pos 10
1793+
1794+ ## identificación (1)
1795+
1796+ file_contents += self._formatString(report.company_vat, 9) ## pos 19 # NIF del declarante
1797+
1798+ file_contents += self._formatString(report.company_id.name, 30) ## pos 49 # Apellidos o Razon Social.
1799+ file_contents += self._formatString("", 15) ## pos 64 # Nombre
1800+
1801+ file_contents += self._formatBoolean(report.devolucion_mensual, yes='1', no='2') # pos 65
1802+
1803+
1804+ ## devengo (2)
1805+
1806+ file_contents += self._formatNumber(report.fiscalyear_id.code, 4) ## 69
1807+ file_contents += self._formatString(report.period,2) ## 71
1808+
1809+
1810+ assert len(file_contents) == 71, _("The identification (1) and income (2) must be 72 characters long")
1811+ return file_contents
1812+
1813+ def _get_formated_vat(self,cr,uid,ids,report):
1814+
1815+
1816+ model_report_obj = self.pool.get("l10n.es.aeat.mod303.report")
1817+ file_contents = ''
1818+
1819+ ## lines obtenido de account_tax_report
1820+
1821+ lines = model_report_obj._get_report_lines(cr,uid,ids)
1822+
1823+ ## IVA devengado
1824+
1825+ # -- Regimen General y Recargo de Equivalencia - codes [1~18]
1826+
1827+ for codes in [('[01]','[03]'),('[04]','[06]'),('[07]','[09]'), ## regimen general
1828+ ('[10]','[12]'),('[13]','[15]'),('[16]','[18]')]: ## recargo equivalencia
1829+
1830+ base_imponible = lines.get(codes[0],0)
1831+ cuota = lines.get(codes[1],0)
1832+
1833+ file_contents += self._formatNumber(base_imponible, 15,2) # base imponible X % -- codes [1,4,7,10,13,16]
1834+ file_contents += self._formatNumber(cuota / base_imponible * 100 if base_imponible else 0, 3,2) # tipo % codes - [2,5,8,11,14,17]
1835+ file_contents += self._formatNumber(cuota, 15,2) # cuota X % -- codes [3,6,9,12,15,18]
1836+
1837+
1838+ # -- Adquisiciones Intracomunitarias - codes [19,20]
1839+
1840+ file_contents += self._formatNumber(lines.get("[19]"), 15,2) ## base imponible
1841+ file_contents += self._formatNumber(lines.get("[20]"), 15,2) ## cuota
1842+
1843+ # -- Total Cuota Devengada - code [21]
1844+
1845+ file_contents += self._formatNumber(report.total_devengado, 15,2) ## cuota
1846+
1847+ ## IVA deducible
1848+
1849+ # -- Por Cuotas soportadas ... - codes [22~25]
1850+ # -- Por Cuotas satisfechas en ... - codes [26~29]
1851+ # -- En adquisiciones intracomunitarias de bienes ... - codes [30~33]
1852+
1853+ for i in range(22,34):
1854+ file_contents += self._formatNumber(lines.get("[%s]" % i), 15,2)
1855+
1856+ # --
1857+
1858+ file_contents += self._formatNumber(lines.get("[34]"), 15,2) # Compesaciones Regimen Especial AG y P
1859+ file_contents += self._formatNumber(lines.get("[35]"), 15,2) # Regularización Inversiones
1860+ file_contents += self._formatNumber(lines.get("[36]"), 15,2) # Regularización Inversiones por aplicación del porcentage def de prorrata
1861+
1862+ # -- Total a deducir
1863+
1864+ file_contents += self._formatNumber(report.total_deducir, 15,2)
1865+
1866+ ## Diferencia [21] - [37]
1867+ file_contents += self._formatNumber(report.diferencia, 15,2)
1868+
1869+ ## Atribuible a la administracion ...
1870+
1871+ file_contents += self._formatNumber(report.porcentaje_atribuible_estado, 3,2) ## TODO Navarra y País Vasco
1872+ file_contents += self._formatNumber(report.atribuible_estado, 15,2)
1873+
1874+
1875+ file_contents += self._formatNumber(report.cuota_compensar, 15,2) ## [41]
1876+
1877+
1878+ ## Entregas intracomunitarias [42], Exportaciones y operaciones asimiladas ... [43], Derecho a deucción [44]
1879+
1880+ file_contents += self._formatNumber(lines.get("[42]"), 15,2)
1881+ file_contents += self._formatNumber(lines.get("[43]"), 15,2)
1882+ file_contents += self._formatNumber(lines.get("[44]"), 15,2)
1883+
1884+ ## Estado y Comunidades Forales
1885+
1886+ file_contents += self._formatNumber(report.regularizacion_anual, 15,2)
1887+
1888+ file_contents += self._formatNumber(report.resultado_casilla_46, 15,2) ## [40] - [41]
1889+
1890+ ## A deducir - autoliquidación complementaria .... pedir campo
1891+
1892+ file_contents += self._formatNumber(report.previus_result if report.complementaria else 0, 15,2)
1893+ file_contents += self._formatNumber(report.resultado_liquidacion, 15,2) ## [48]
1894+
1895+ ## A compensar
1896+ file_contents += self._formatNumber(report.compensar, 15,2) ## [49]
1897+
1898+ ## Marca SIN ACTIVIDAD
1899+
1900+ file_contents += self._formatBoolean( report.sin_actividad , yes='1', no='2') #
1901+
1902+ assert len(file_contents) == 822 - 72, _("The vat records must be 749 characters long and are %s") % len(file_contents)
1903+ return file_contents
1904+
1905+ def _get_formated_last_info(self, report):
1906+
1907+ file_contents = ''
1908+
1909+ ## devolucion (6)
1910+
1911+ file_contents += self._formatNumber(report.devolver,15,2) ## devolucion [50]
1912+
1913+ ccc = ""
1914+ if report.cuenta_devolucion_id and report.devolver:
1915+ ccc = report.cuenta_devolucion_id.acc_number.replace("-","").replace(" ","")
1916+ if not (len(ccc) == 20 and ccc.isdigit()):
1917+ raise osv.except_osv(_('Warning'), _("CCC de devolución no válida \n%s") % ccc)
1918+
1919+ file_contents += self._formatString(ccc,20) ## no hay devolución
1920+
1921+ """
1922+ ## ingreso (7)
1923+
1924+ 859 1 Num Ingreso (7) - Forma de pago
1925+ 860 17 N Ingreso (7) - Importe [I]
1926+ 877 4 An Ingreso (7) - Código cuenta cliente - Entidad
1927+ 881 4 An Ingreso (7) - Código cuenta cliente - Oficina
1928+ 885 2 An Ingreso (7) - Código cuenta cliente - DC
1929+ 887 10 An Ingreso (7) - Código cuenta cliente - Número de cuenta
1930+ """
1931+
1932+ file_contents += self._formatString("0",1) ## NO SE USA ??? Forma de Pago - "0" No consta, "1" Efectivo,"2" Adeudo en cuenta, "3" Domiciliación
1933+ file_contents += self._formatNumber(report.ingresar,15,2) ## devolucion [50]
1934+
1935+ ccc = ""
1936+ if report.cuenta_ingreso_id and report.ingresar:
1937+ ccc = report.cuenta_ingreso_id.acc_number.replace("-","").replace(" ","")
1938+ if not (len(ccc) == 20 and ccc.isdigit()):
1939+ raise osv.except_osv(_('Warning'), _("CCC de ingreso no válido %s") % ccc)
1940+
1941+ file_contents += self._formatString(ccc,20) ## no hay devolución
1942+
1943+
1944+ """
1945+ 897 1 Num Complementaria (8) Indicador Autoliquidación complementaria
1946+ 898 13 An Complementaria (8) - no justificante declaración anterior
1947+ """
1948+
1949+ file_contents += self._formatBoolean(report.complementaria, yes='1', no='0') #
1950+ file_contents += self._formatString(report.previous_number if report.complementaria else "" ,13)
1951+
1952+
1953+ ## TODO -- hardcode por ahora ...
1954+ """ Autorización Conjunta """
1955+ file_contents += self._formatBoolean(False, yes='1', no=' ')
1956+ file_contents += self._formatString(' ',1) ## 77 autodeclaracion del concurso .... -- ' ' , '1' o '2'
1957+
1958+
1959+ file_contents += ' '*398 ## campo reservado
1960+
1961+ ## firma (9)
1962+
1963+ file_contents += self._formatString(report.company_id.partner_id.city,16) ## Localidad
1964+
1965+
1966+ calculation_date = datetime.strptime(report.calculation_date,"%Y-%m-%d %H:%M:%S")
1967+ file_contents += self._formatString(calculation_date.strftime("%d"),2) ## fecha: Dia
1968+ file_contents += self._formatString(_(calculation_date.strftime("%B")),10) ## fecha: Mes
1969+ file_contents += self._formatString(calculation_date.strftime("%Y"),4) ## fecha: Anio
1970+
1971+ file_contents += self._formatString("</T30301>",9)
1972+ file_contents += "\r\n".encode("ascii")
1973+
1974+# print file_contents
1975+ return file_contents
1976+
1977+
1978+ def _export_boe_file(self, cr, uid, ids, report, model=None, context=None):
1979+ """
1980+ Action that exports the data into a BOE formated text file
1981+ """
1982+ if context is None:
1983+ context = {}
1984+
1985+ assert model , _("AEAT Model is necessary")
1986+
1987+ file_contents = ''
1988+
1989+ ##
1990+ ## IDENTIFICACION (1) y DEVENGO (2)
1991+ file_contents += self._get_formated_declaration(report)
1992+
1993+ ##
1994+ ## LIQUIDACIÓN (3) y COMPENSACION(4)
1995+
1996+ file_contents += self._get_formated_vat(cr,uid,ids,report)
1997+
1998+ ##
1999+ ## DEVOLUCION (6), INGRESO (7), COMPLEMENTARIA (8) Y FIRMA (9)
2000+ file_contents += self._get_formated_last_info(report)
2001+
2002+ assert len(file_contents) == 1353, _("The 303 report must be 1353 characters long and are %s") % len(file_contents)
2003+
2004+
2005+ ##
2006+ ## Generate the file and save as attachment
2007+ file = base64.encodestring(file_contents)
2008+
2009+ file_name = _("%s_report_%s.txt") % (model, time.strftime(_("%Y-%m-%d")))
2010+ self.pool.get("ir.attachment").create(cr, uid, {
2011+ "name" : file_name,
2012+ "datas" : file,
2013+ "datas_fname" : file_name,
2014+ "res_model" : "l10n.es.aeat.mod%s.report" % model,
2015+ "res_id" : ids and ids[0]
2016+ }, context=context)
2017+
2018+l10n_es_aeat_mod303_export_to_boe()