Merge lp:~txerpa-openerp/openerp-spain/7.0-l10n_es_aeat_modelo303 into lp:~openerp-spain-team/openerp-spain/7.0

Proposed by Pedro Manuel Baeza
Status: Rejected
Rejected by: Pedro Manuel Baeza
Proposed branch: lp:~txerpa-openerp/openerp-spain/7.0-l10n_es_aeat_modelo303
Merge into: lp:~openerp-spain-team/openerp-spain/7.0
Prerequisite: lp:~pedro.baeza/openerp-spain/7.0-l10n_es-refactorized
Diff against target: 4928 lines (+3118/-1369) (has conflicts)
20 files modified
l10n_es/taxes_data_pymes.xml (+236/-64)
l10n_es_aeat_mod303/__init__.py (+0/-19)
l10n_es_aeat_mod303/__openerp__.py (+0/-51)
l10n_es_aeat_mod303/i18n/es.po (+705/-0)
l10n_es_aeat_mod303/i18n/l10n_es_aeat_mod303.pot (+0/-522)
l10n_es_aeat_mod303/migrations/1.1/pre-migration.py (+0/-73)
l10n_es_aeat_mod303/mod303.py (+0/-218)
l10n_es_aeat_mod303/mod303_view.xml (+0/-112)
l10n_es_aeat_mod303/modelo303.py (+351/-0)
l10n_es_aeat_mod303/modelo303_casillas.xml (+967/-0)
l10n_es_aeat_mod303/modelo303_view.xml (+210/-0)
l10n_es_aeat_mod303/security/ir.model.access.csv (+0/-2)
l10n_es_aeat_mod303/static/src/img/icon_source.svg (+0/-99)
l10n_es_aeat_mod303/wizard/__init__.py (+0/-18)
l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py (+0/-173)
l10n_es_aeat_mod303/wizard/export_mod303_to_boe.xml (+0/-18)
l10n_es_aeat_mod303/wizard/export_modelo303_to_boe.py (+125/-0)
l10n_es_aeat_mod303/wizard/export_modelo303_to_boe.xml (+18/-0)
l10n_es_aeat_mod303/wizard/wizard_chart_update.py (+444/-0)
l10n_es_aeat_mod303/wizard/wizard_chart_update_view.xml (+62/-0)
Conflict: can't delete l10n_es_aeat_mod303.moved because it is not empty.  Not deleting.
Conflict adding file l10n_es_aeat_mod303.  Moved existing file to l10n_es_aeat_mod303.moved.
Conflict because l10n_es_aeat_mod303.moved is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete l10n_es_aeat_mod303.moved/i18n because it is not empty.  Not deleting.
Conflict because l10n_es_aeat_mod303.moved/i18n is not versioned, but has versioned children.  Versioned directory.
Contents conflict in l10n_es_aeat_mod303.moved/i18n/gl.po
To merge this branch: bzr merge lp:~txerpa-openerp/openerp-spain/7.0-l10n_es_aeat_modelo303
Reviewer Review Type Date Requested Status
Pedro Manuel Baeza Needs Resubmitting
Ignacio Ibeas (www.acysos.com) Needs Fixing
Biel - txerpa.com Pending
Review via email: mp+216049@code.launchpad.net

This proposal supersedes a proposal from 2014-04-16.

Description of the change

Actualización al formato 2014 del modelo 303 de la AEAT. Los cambios han sido propuestos por Biel Massot de Txerpa.

Hilo de la conversación en el grupo openerp-spain:

https://groups.google.com/forum/#!searchin/openerp-spain/Modelo$20303$202014/openerp-spain/RMbfuOjt-To/5CpghE7FGdAJ

To post a comment you must log in.
Revision history for this message
Pedro Manuel Baeza (pedro.baeza) wrote :

Biel, ¿podrías por favor colocar tu módulo en la misma carpeta que estaba el antiguo (l10n_es_aeat_mod303) para así poder ver bien el diff?

Un saludo.

review: Needs Fixing
Revision history for this message
Biel - txerpa.com (txerpa) wrote :

Hola Pedro, muchas gracias por realizar este mp.

El nombre de l10n_es_aeat_modelo303 es para que no entre en conflicto con el anterior l10n_es_aeat_mod303 ya que son radicalmente diferentes. El nuevo 303 también depende de algunos cambios que hay en l10n_es y no tengo claro como procedéis en estos casos.

Pero no hay problema, cuando tenga un momento le cambio el nombre a l10n_es_aeat_mod303.

Aprovecho para agradecerte la labor que estas realizando.

Saludos

Revision history for this message
Ignacio Ibeas (www.acysos.com) (ignacio-acysos) wrote :

Hola,

No importa, debe hacerse con la misma carpeta no solo por ver el Diff, sino también para facilitar la actualización de versiones.

Saludos

review: Needs Fixing
450. By Biel - txerpa.com

l10n_es_aeat_modelo303 -> l10n_es_aeat_mod303

Revision history for this message
Pedro Manuel Baeza (pedro.baeza) wrote :

Buenas, Biel,

Ya he visto que has renombrado el módulo. Muchas gracias. Pero estoy viendo que hay que hacer cambios más profundos por dos cosas:

- Los modelos que has creado son independientes de los antiguos, provocando que se pierda todo el histórico anterior y que además hay tablas en la BD que se queden colgadas. Lo que habría que hacer es utilizar el mismo modelo base (l10n.es.aeat.mod303.report) y crear un script de migración para compatibilizar lo antiguo con lo nuevo.

- Los impuestos los has definido sobre el l10n_es antiguo, y de hecho tu modificación sólo cubre los impuestos de las PYMEs, no el resto. En la refactorización, ahora se comparten todos los impuestos, por lo que sólo es necesario definir una vez las cosas en todos sitios.

Lo que voy a hacer es incluir los nuevos impuestos que has definido tú en la refactorización de l10n_es y que desbloqueemos ya de una vez el MP. Te agradecería si pudieras poner tu revisión en el mismo.

Después de eso, trabajaré en una revisión de tu MP que solucione los problemas que he comentado, y cuando esté listo y revisado por vuestra, incluimos a la vez tu MP y el mío. ¿Te parece bien?

Un saludo.

Revision history for this message
Pedro Manuel Baeza (pedro.baeza) wrote :

El proyecto está hospedado ahora en https://github.com/OCA/l10n-spain.

Mueve por favor tu propuesta allí. Esta guía puede ayudarte: https://github.com/OCA/maintainers-tools/wiki/How-to-move-a-Merge-Proposal-to-GitHub

Un saludo.

review: Needs Resubmitting

Unmerged revisions

450. By Biel - txerpa.com

l10n_es_aeat_modelo303 -> l10n_es_aeat_mod303

449. By Biel - txerpa.com

[FIX] l10n_es_aeat_modelo303: arreglo bug con periodo inicial repetido

448. By Biel - txerpa.com

l10n_es_aeat_modelo303: arreglo bug con resultados negativos y con iban

447. By Biel - txerpa.com

l10n_es_aeat_modelo303: traducciones de nuevos terminos

446. By Biel - txerpa.com

l10n_es_aeat_modelo303: calculo en función de periodo inicial y final

445. By Biel - txerpa.com

l10n_es: Modificación iva servicios

444. By Biel - txerpa.com

l10n_es: Nuevos impuestos para retenciones alquileres

443. By Biel - txerpa.com

Nuevo l10n_es_aeat_modelo303

442. By Biel - txerpa.com

l10n_es: nuevo "IVA No Sujeto", IVA Para servicios y modificación sujeto pasivo para usar con l10n_es_aeat_modelo303

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'l10n_es/taxes_data_pymes.xml'
2--- l10n_es/taxes_data_pymes.xml 2013-09-10 20:35:37 +0000
3+++ l10n_es/taxes_data_pymes.xml 2014-04-16 11:51:06 +0000
4@@ -1595,8 +1595,186 @@
5 <field eval="-1.0" name="ref_base_sign"/>
6 <field name="type_tax_use">sale</field>
7 </record>
8-
9- <!-- Inversión del sujeto pasivo -->
10+
11+ <!-- IVA No sujeto (Ventas) -->
12+ <record id="iva_pymes_no_sujeto" model="account.tax.template">
13+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
14+ <field name="name">IVA No Sujeto</field>
15+ <field name="description">IVA No Sujeto</field>
16+ <field name="amount" eval="0.00"/>
17+ <field name="type">percent</field>
18+ <field name="account_collected_id" ref="pgc_pymes_477000"/>
19+ <field name="account_paid_id" ref="pgc_pymes_477000"/>
20+ <field name="base_code_id" ref="base_pymes_extra_44"/>
21+ <field name="ref_base_code_id" ref="base_pymes_extra_44"/>
22+ <field name="child_depend" eval="0"/>
23+ <field name="base_sign" eval="1.0"/>
24+ <field name="tax_sign" eval="1.0"/>
25+ <field name="ref_base_sign" eval="-1.0"/>
26+ <field name="ref_tax_sign" eval="-1.0"/>
27+ <field name="type_tax_use">sale</field>
28+ </record>
29+
30+ <!-- IVA Intracomunitario Servicios -->
31+ <record id="iva_pymes_dev_base_intra_serv" model="account.tax.code.template">
32+ <field name="name">Base adquisiciones intracomunitarias de bienes y servicios</field>
33+ <field name="code">[Base Serv]</field>
34+ <field name="parent_id" ref="vat_code_chart_pymes_root"/>
35+ <field name="sign">1.0</field>
36+ </record>
37+ <record id="iva_pymes_dev_quota_intra_serv" model="account.tax.code.template">
38+ <field name="name">Quota adquisiciones intracomunitarias de bienes y servicios</field>
39+ <field name="code">[Quota Serv]</field>
40+ <field name="parent_id" ref="vat_code_chart_pymes_root"/>
41+ <field name="sign">1.0</field>
42+ </record>
43+
44+ <!-- IVA 4% Intracomunitario. Servicios -->
45+ <record id="iva_pymes_IC_compras_4_serv" model="account.tax.template">
46+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
47+ <field name="name">IVA 4% Intracomunitario. Servicios</field>
48+ <field name="description">IVA 4% Intracomunitario. Servicios</field>
49+ <field eval="1.00" name="amount"/>
50+ <field name="type">percent</field>
51+ <field eval="1" name="child_depend"/>
52+ <field name="type_tax_use">purchase</field>
53+ </record>
54+ <record id="iva_pymes_IC_compras_4_serv_1" model="account.tax.template">
55+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
56+ <field name="parent_id" ref="iva_pymes_IC_compras_4_serv"/>
57+ <field name="name">IVA 4% Intracomunitario. Servicios (1)</field>
58+ <field eval="0.04" name="amount"/>
59+ <field name="type">percent</field>
60+ <field name="account_paid_id" ref="pgc_pymes_472000"/>
61+ <field name="account_collected_id" ref="pgc_pymes_472000"/>
62+ <field name="base_code_id" ref="iva_pymes_ded_30_4"/>
63+ <field name="tax_code_id" ref="iva_pymes_ded_31_4"/>
64+ <field name="ref_base_code_id" ref="iva_pymes_ded_30_4"/>
65+ <field eval="-1.0" name="ref_base_sign"/>
66+ <field name="ref_tax_code_id" ref="iva_pymes_ded_31_4"/>
67+ <field eval="-1.0" name="ref_tax_sign"/>
68+ <field name="type_tax_use">purchase</field>
69+ </record>
70+ <record id="iva_pymes_IC_compras_4_serv_2" model="account.tax.template">
71+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
72+ <field name="parent_id" ref="iva_pymes_IC_compras_4_serv"/>
73+ <field name="name">IVA 4% Intracomunitario. Servicios (2)</field>
74+ <field eval="-0.04" name="amount"/>
75+ <field name="type">percent</field>
76+ <field name="account_paid_id" ref="pgc_pymes_477000"/>
77+ <field name="account_collected_id" ref="pgc_pymes_477000"/>
78+ <field name="base_code_id" ref="iva_pymes_dev_base_intra_serv"/>
79+ <field name="tax_code_id" ref="iva_pymes_dev_quota_intra_serv"/>
80+ <field eval="-1.0" name="tax_sign"/>
81+ <field name="ref_base_code_id" ref="iva_pymes_dev_base_intra_serv"/>
82+ <field eval="-1.0" name="ref_base_sign"/>
83+ <field name="ref_tax_code_id" ref="iva_pymes_dev_quota_intra_serv"/>
84+ <field eval="1.0" name="ref_tax_sign"/>
85+ <field name="type_tax_use">purchase</field>
86+ </record>
87+
88+ <!-- IVA 10% Intracomunitario. Servicios -->
89+ <record id="iva_pymes_IC_compras_10_serv" model="account.tax.template">
90+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
91+ <field name="name">IVA 10% Intracomunitario. Servicios</field>
92+ <field name="description">IVA 10% Intracomunitario. Servicios</field>
93+ <field eval="1.00" name="amount"/>
94+ <field name="type">percent</field>
95+ <field eval="1" name="child_depend"/>
96+ <field name="type_tax_use">purchase</field>
97+ </record>
98+ <record id="iva_pymes_IC_compras_10_serv_1" model="account.tax.template">
99+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
100+ <field name="parent_id" ref="iva_pymes_IC_compras_10_serv"/>
101+ <field name="name">IVA 10% Intracomunitario. Servicios (1)</field>
102+ <field eval="0.10" name="amount"/>
103+ <field name="type">percent</field>
104+ <field name="account_paid_id" ref="pgc_pymes_472000"/>
105+ <field name="account_collected_id" ref="pgc_pymes_472000"/>
106+ <field name="base_code_id" ref="iva_pymes_ded_30_10"/>
107+ <field name="tax_code_id" ref="iva_pymes_ded_31_10"/>
108+ <field name="ref_base_code_id" ref="iva_pymes_ded_30_10"/>
109+ <field eval="-1.0" name="ref_base_sign"/>
110+ <field name="ref_tax_code_id" ref="iva_pymes_ded_31_10"/>
111+ <field eval="-1.0" name="ref_tax_sign"/>
112+ <field name="type_tax_use">purchase</field>
113+ </record>
114+ <record id="iva_pymes_IC_compras_10_serv_2" model="account.tax.template">
115+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
116+ <field name="parent_id" ref="iva_pymes_IC_compras_10_serv"/>
117+ <field name="name">IVA 10% Intracomunitario. Servicios (2)</field>
118+ <field eval="-0.10" name="amount"/>
119+ <field name="type">percent</field>
120+ <field name="account_paid_id" ref="pgc_pymes_477000"/>
121+ <field name="account_collected_id" ref="pgc_pymes_477000"/>
122+ <field name="base_code_id" ref="iva_pymes_dev_base_intra_serv"/>
123+ <field name="tax_code_id" ref="iva_pymes_dev_quota_intra_serv"/>
124+ <field eval="-1.0" name="tax_sign"/>
125+ <field name="ref_base_code_id" ref="iva_pymes_dev_base_intra_serv"/>
126+ <field eval="-1.0" name="ref_base_sign"/>
127+ <field name="ref_tax_code_id" ref="iva_pymes_dev_quota_intra_serv"/>
128+ <field eval="1.0" name="ref_tax_sign"/>
129+ <field name="type_tax_use">purchase</field>
130+ </record>
131+
132+ <!-- IVA 21% Intracomunitario. Servicios -->
133+ <record id="iva_pymes_IC_compras_21_serv" model="account.tax.template">
134+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
135+ <field name="name">IVA 21% Intracomunitario. Servicios</field>
136+ <field name="description">IVA 21% Intracomunitario. Servicios</field>
137+ <field eval="1.00" name="amount"/>
138+ <field name="type">percent</field>
139+ <field eval="1" name="child_depend"/>
140+ <field name="type_tax_use">purchase</field>
141+ </record>
142+ <record id="iva_pymes_IC_compras_21_serv_1" model="account.tax.template">
143+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
144+ <field name="parent_id" ref="iva_pymes_IC_compras_21_serv"/>
145+ <field name="name">IVA 21% Intracomunitario. Servicios (1)</field>
146+ <field eval="0.21" name="amount"/>
147+ <field name="type">percent</field>
148+ <field name="account_paid_id" ref="pgc_pymes_472000"/>
149+ <field name="account_collected_id" ref="pgc_pymes_472000"/>
150+ <field name="base_code_id" ref="iva_pymes_ded_30_21"/>
151+ <field name="tax_code_id" ref="iva_pymes_ded_31_21"/>
152+ <field name="ref_base_code_id" ref="iva_pymes_ded_30_21"/>
153+ <field eval="-1.0" name="ref_base_sign"/>
154+ <field name="ref_tax_code_id" ref="iva_pymes_ded_31_21"/>
155+ <field eval="-1.0" name="ref_tax_sign"/>
156+ <field name="type_tax_use">purchase</field>
157+ </record>
158+ <record id="iva_pymes_IC_compras_21_serv_2" model="account.tax.template">
159+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
160+ <field name="parent_id" ref="iva_pymes_IC_compras_21_serv"/>
161+ <field name="name">IVA 21% Intracomunitario. Servicios (2)</field>
162+ <field eval="-0.21" name="amount"/>
163+ <field name="type">percent</field>
164+ <field name="account_paid_id" ref="pgc_pymes_477000"/>
165+ <field name="account_collected_id" ref="pgc_pymes_477000"/>
166+ <field name="base_code_id" ref="iva_pymes_dev_base_intra_serv"/>
167+ <field name="tax_code_id" ref="iva_pymes_dev_quota_intra_serv"/>
168+ <field eval="-1.0" name="tax_sign"/>
169+ <field name="ref_base_code_id" ref="iva_pymes_dev_base_intra_serv"/>
170+ <field eval="-1.0" name="ref_base_sign"/>
171+ <field name="ref_tax_code_id" ref="iva_pymes_dev_quota_intra_serv"/>
172+ <field eval="1.0" name="ref_tax_sign"/>
173+ <field name="type_tax_use">purchase</field>
174+ </record>
175+
176+ <!-- Inversión del sujeto pasivo -->
177+ <record id="iva_pymes_dev_base_isp" model="account.tax.code.template">
178+ <field name="name">Otras operaciones con inversión del sujeto pasivo. Base</field>
179+ <field name="code">[Base ISP]</field>
180+ <field name="parent_id" ref="vat_code_chart_pymes_root"/>
181+ <field name="sign">1.0</field>
182+ </record>
183+ <record id="iva_pymes_dev_quota_isp" model="account.tax.code.template">
184+ <field name="name">Otras operaciones con inversión del sujeto pasivo. Quota</field>
185+ <field name="code">[Quota ISP]</field>
186+ <field name="parent_id" ref="vat_code_chart_pymes_root"/>
187+ <field name="sign">1.0</field>
188+ </record>
189+
190 <record id="iva_pymes_ISP_compras_16" model="account.tax.template">
191 <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
192 <field name="name">IVA 16% Inversión del sujeto pasivo</field>
193@@ -1610,32 +1788,18 @@
194 <field name="ref_tax_sign" eval="-1.0"/>
195 <field name="type_tax_use">purchase</field>
196 </record>
197- <record id="iva_pymes_ISP_compras_16_1" model="account.tax.template">
198+ <record id="iva_pymes_ISP_compras_16_2" model="account.tax.template">
199 <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
200 <field name="name">IVA 16% Inversión del sujeto pasivo (1)</field>
201 <field name="parent_id" ref="iva_pymes_ISP_compras_16"/>
202- <field name="amount" eval="0.00"/>
203- <field name="type">percent</field>
204- <field name="base_code_id" ref="base_pymes_extra_44"/>
205- <field name="ref_base_code_id" ref="base_pymes_extra_44"/>
206- <field name="base_sign" eval="1.0"/>
207- <field name="tax_sign" eval="1.0"/>
208- <field name="ref_base_sign" eval="-1.0"/>
209- <field name="ref_tax_sign" eval="-1.0"/>
210- <field name="type_tax_use">purchase</field>
211- </record>
212- <record id="iva_pymes_ISP_compras_16_2" model="account.tax.template">
213- <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
214- <field name="name">IVA 16% Inversión del sujeto pasivo (2)</field>
215- <field name="parent_id" ref="iva_pymes_ISP_compras_16"/>
216 <field name="amount" eval="-0.16"/>
217 <field name="type">percent</field>
218 <field name="account_collected_id" ref="pgc_pymes_477000"/>
219 <field name="account_paid_id" ref="pgc_pymes_477000"/>
220- <field name="base_code_id" ref="iva_pymes_dev_07"/>
221- <field name="tax_code_id" ref="iva_pymes_dev_09"/>
222- <field name="ref_base_code_id" ref="iva_pymes_dev_07"/>
223- <field name="ref_tax_code_id" ref="iva_pymes_dev_09"/>
224+ <field name="base_code_id" ref="iva_pymes_dev_base_isp"/>
225+ <field name="tax_code_id" ref="iva_pymes_dev_quota_isp"/>
226+ <field name="ref_base_code_id" ref="iva_pymes_dev_base_isp"/>
227+ <field name="ref_tax_code_id" ref="iva_pymes_dev_quota_isp"/>
228 <field name="tax_sign" eval="-1.0"/>
229 <field name="base_sign" eval="1.0"/>
230 <field name="ref_tax_sign" eval="1.0"/>
231@@ -1644,7 +1808,7 @@
232 </record>
233 <record id="iva_pymes_ISP_compras_16_3" model="account.tax.template">
234 <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
235- <field name="name">IVA 16% Inversión del sujeto pasivo (3)</field>
236+ <field name="name">IVA 16% Inversión del sujeto pasivo (2)</field>
237 <field name="parent_id" ref="iva_pymes_ISP_compras_16"/>
238 <field name="amount" eval="0.16"/>
239 <field name="type">percent</field>
240@@ -1674,32 +1838,18 @@
241 <field name="ref_tax_sign" eval="-1.0"/>
242 <field name="type_tax_use">purchase</field>
243 </record>
244- <record id="iva_pymes_ISP_compras_18_1" model="account.tax.template">
245+ <record id="iva_pymes_ISP_compras_18_2" model="account.tax.template">
246 <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
247 <field name="name">IVA 18% Inversión del sujeto pasivo (1)</field>
248 <field name="parent_id" ref="iva_pymes_ISP_compras_18"/>
249- <field name="amount" eval="0.00"/>
250- <field name="type">percent</field>
251- <field name="base_code_id" ref="base_pymes_extra_44"/>
252- <field name="ref_base_code_id" ref="base_pymes_extra_44"/>
253- <field name="base_sign" eval="1.0"/>
254- <field name="tax_sign" eval="1.0"/>
255- <field name="ref_base_sign" eval="-1.0"/>
256- <field name="ref_tax_sign" eval="-1.0"/>
257- <field name="type_tax_use">purchase</field>
258- </record>
259- <record id="iva_pymes_ISP_compras_18_2" model="account.tax.template">
260- <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
261- <field name="name">IVA 18% Inversión del sujeto pasivo (2)</field>
262- <field name="parent_id" ref="iva_pymes_ISP_compras_18"/>
263 <field name="amount" eval="-0.18"/>
264 <field name="type">percent</field>
265 <field name="account_collected_id" ref="pgc_pymes_477000"/>
266 <field name="account_paid_id" ref="pgc_pymes_477000"/>
267- <field name="base_code_id" ref="iva_pymes_dev_07_18"/>
268- <field name="tax_code_id" ref="iva_pymes_dev_09_18"/>
269- <field name="ref_base_code_id" ref="iva_pymes_dev_07_18"/>
270- <field name="ref_tax_code_id" ref="iva_pymes_dev_09_18"/>
271+ <field name="base_code_id" ref="iva_pymes_dev_base_isp"/>
272+ <field name="tax_code_id" ref="iva_pymes_dev_quota_isp"/>
273+ <field name="ref_base_code_id" ref="iva_pymes_dev_base_isp"/>
274+ <field name="ref_tax_code_id" ref="iva_pymes_dev_quota_isp"/>
275 <field name="tax_sign" eval="-1.0"/>
276 <field name="base_sign" eval="1.0"/>
277 <field name="ref_tax_sign" eval="1.0"/>
278@@ -1708,7 +1858,7 @@
279 </record>
280 <record id="iva_pymes_ISP_compras_18_3" model="account.tax.template">
281 <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
282- <field name="name">IVA 18% Inversión del sujeto pasivo (3)</field>
283+ <field name="name">IVA 18% Inversión del sujeto pasivo (2)</field>
284 <field name="parent_id" ref="iva_pymes_ISP_compras_18"/>
285 <field name="amount" eval="0.18"/>
286 <field name="type">percent</field>
287@@ -1724,7 +1874,8 @@
288 <field name="ref_base_sign" eval="-1.0"/>
289 <field name="type_tax_use">purchase</field>
290 </record>
291-<record id="iva_pymes_ISP_compras_21" model="account.tax.template">
292+
293+ <record id="iva_pymes_ISP_compras_21" model="account.tax.template">
294 <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
295 <field name="name">IVA 21% Inversión del sujeto pasivo</field>
296 <field name="description">IVA 21% Inversión del sujeto pasivo</field>
297@@ -1737,32 +1888,18 @@
298 <field name="ref_tax_sign" eval="-1.0"/>
299 <field name="type_tax_use">purchase</field>
300 </record>
301- <record id="iva_pymes_ISP_compras_21_1" model="account.tax.template">
302+ <record id="iva_pymes_ISP_compras_21_2" model="account.tax.template">
303 <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
304 <field name="name">IVA 21% Inversión del sujeto pasivo (1)</field>
305 <field name="parent_id" ref="iva_pymes_ISP_compras_21"/>
306- <field name="amount" eval="0.00"/>
307- <field name="type">percent</field>
308- <field name="base_code_id" ref="base_pymes_extra_44"/>
309- <field name="ref_base_code_id" ref="base_pymes_extra_44"/>
310- <field name="base_sign" eval="1.0"/>
311- <field name="tax_sign" eval="1.0"/>
312- <field name="ref_base_sign" eval="-1.0"/>
313- <field name="ref_tax_sign" eval="-1.0"/>
314- <field name="type_tax_use">purchase</field>
315- </record>
316- <record id="iva_pymes_ISP_compras_21_2" model="account.tax.template">
317- <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
318- <field name="name">IVA 21% Inversión del sujeto pasivo (2)</field>
319- <field name="parent_id" ref="iva_pymes_ISP_compras_21"/>
320 <field name="amount" eval="-0.21"/>
321 <field name="type">percent</field>
322 <field name="account_collected_id" ref="pgc_pymes_477000"/>
323 <field name="account_paid_id" ref="pgc_pymes_477000"/>
324- <field name="base_code_id" ref="iva_pymes_dev_07_21"/>
325- <field name="tax_code_id" ref="iva_pymes_dev_09_21"/>
326- <field name="ref_base_code_id" ref="iva_pymes_dev_07_21"/>
327- <field name="ref_tax_code_id" ref="iva_pymes_dev_09_21"/>
328+ <field name="base_code_id" ref="iva_pymes_dev_base_isp"/>
329+ <field name="tax_code_id" ref="iva_pymes_dev_quota_isp"/>
330+ <field name="ref_base_code_id" ref="iva_pymes_dev_base_isp"/>
331+ <field name="ref_tax_code_id" ref="iva_pymes_dev_quota_isp"/>
332 <field name="tax_sign" eval="-1.0"/>
333 <field name="base_sign" eval="1.0"/>
334 <field name="ref_tax_sign" eval="1.0"/>
335@@ -1771,7 +1908,7 @@
336 </record>
337 <record id="iva_pymes_ISP_compras_21_3" model="account.tax.template">
338 <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
339- <field name="name">IVA 21% Inversión del sujeto pasivo (3)</field>
340+ <field name="name">IVA 21% Inversión del sujeto pasivo (2)</field>
341 <field name="parent_id" ref="iva_pymes_ISP_compras_21"/>
342 <field name="amount" eval="0.21"/>
343 <field name="type">percent</field>
344@@ -1788,7 +1925,6 @@
345 <field name="type_tax_use">purchase</field>
346 </record>
347
348-
349 <!-- IVA REPERCUTIDO-->
350 <record id="iva_pymes_rep_4" model="account.tax.template">
351 <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
352@@ -3050,6 +3186,24 @@
353 <field eval="-1.0" name="ref_base_sign"/>
354 <field name="type_tax_use">purchase</field>
355 </record>
356+
357+ <record id="irpf_pymes_21_alquiler" model="account.tax.template">
358+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
359+ <field name="name">HP 21% RETENCIONES ALQUILER</field>
360+ <field eval="-0.21" name="amount"/>
361+ <field name="type">percent</field>
362+ <field name="account_collected_id" ref="pgc_pymes_475100"/>
363+ <field name="account_paid_id" ref="pgc_pymes_475100"/>
364+ <field name="base_code_id" ref="irpf_pymes_base_21"/>
365+ <field name="tax_code_id" ref="irpf_pymes_cuota_21"/>
366+ <field name="ref_base_code_id" ref="irpf_pymes_base_21"/>
367+ <field name="ref_tax_code_id" ref="irpf_pymes_cuota_21"/>
368+ <field eval="1.0" name="tax_sign"/>
369+ <field eval="1.0" name="base_sign"/>
370+ <field eval="-1.0" name="ref_tax_sign"/>
371+ <field eval="-1.0" name="ref_base_sign"/>
372+ <field name="type_tax_use">purchase</field>
373+ </record>
374
375 <!-- RETENCIONES DE IRPF: Hacienda pública, retenciones a cuenta como clientes -->
376
377@@ -3357,5 +3511,23 @@
378 <field eval="-1.0" name="ref_base_sign"/>
379 <field name="type_tax_use">sale</field>
380 </record>
381+
382+ <record id="irpf_pymes_sale_21_alquiler" model="account.tax.template">
383+ <field name="chart_template_id" ref="l10nES_chart_template_pymes"/>
384+ <field name="name">HP 21% RETENCIONES A CUENTA ALQUILER</field>
385+ <field eval="-0.21" name="amount"/>
386+ <field name="type">percent</field>
387+ <field name="account_collected_id" ref="pgc_pymes_473000"/>
388+ <field name="account_paid_id" ref="pgc_pymes_473000"/>
389+ <field name="base_code_id" ref="irpf_pymes_base_sale_21"/>
390+ <field name="tax_code_id" ref="irpf_pymes_cuota_sale_21"/>
391+ <field name="ref_base_code_id" ref="irpf_pymes_base_sale_21"/>
392+ <field name="ref_tax_code_id" ref="irpf_pymes_cuota_sale_21"/>
393+ <field eval="1.0" name="tax_sign"/>
394+ <field eval="1.0" name="base_sign"/>
395+ <field eval="-1.0" name="ref_tax_sign"/>
396+ <field eval="-1.0" name="ref_base_sign"/>
397+ <field name="type_tax_use">sale</field>
398+ </record>
399 </data>
400 </openerp>
401
402=== added directory 'l10n_es_aeat_mod303'
403=== renamed directory 'l10n_es_aeat_mod303' => 'l10n_es_aeat_mod303.moved'
404=== renamed file 'l10n_es_aeat_mod303/i18n/gl.po' => 'l10n_es_aeat_mod303.moved/i18n/gl.po.THIS'
405=== added file 'l10n_es_aeat_mod303/__init__.py'
406--- l10n_es_aeat_mod303/__init__.py 1970-01-01 00:00:00 +0000
407+++ l10n_es_aeat_mod303/__init__.py 2014-04-16 11:51:06 +0000
408@@ -0,0 +1,19 @@
409+# -*- encoding: utf-8 -*-
410+##############################################################################
411+#
412+# This program is free software: you can redistribute it and/or modify
413+# it under the terms of the GNU General Public License as published by
414+# the Free Software Foundation, either version 3 of the License, or
415+# (at your option) any later version.
416+#
417+# This program is distributed in the hope that it will be useful,
418+# but WITHOUT ANY WARRANTY; without even the implied warranty of
419+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
420+# GNU General Public License for more details.
421+#
422+# You should have received a copy of the GNU General Public License
423+# along with this program. If not, see http://www.gnu.org/licenses/.
424+#
425+##############################################################################
426+from . import wizard
427+from . import modelo303
428\ No newline at end of file
429
430=== removed file 'l10n_es_aeat_mod303/__init__.py'
431--- l10n_es_aeat_mod303/__init__.py 2014-01-17 01:03:03 +0000
432+++ l10n_es_aeat_mod303/__init__.py 1970-01-01 00:00:00 +0000
433@@ -1,19 +0,0 @@
434-# -*- encoding: utf-8 -*-
435-##############################################################################
436-#
437-# This program is free software: you can redistribute it and/or modify
438-# it under the terms of the GNU General Public License as published by
439-# the Free Software Foundation, either version 3 of the License, or
440-# (at your option) any later version.
441-#
442-# This program is distributed in the hope that it will be useful,
443-# but WITHOUT ANY WARRANTY; without even the implied warranty of
444-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
445-# GNU General Public License for more details.
446-#
447-# You should have received a copy of the GNU General Public License
448-# along with this program. If not, see http://www.gnu.org/licenses/.
449-#
450-##############################################################################
451-from . import mod303
452-from . import wizard
453
454=== added file 'l10n_es_aeat_mod303/__openerp__.py'
455--- l10n_es_aeat_mod303/__openerp__.py 1970-01-01 00:00:00 +0000
456+++ l10n_es_aeat_mod303/__openerp__.py 2014-04-16 11:51:06 +0000
457@@ -0,0 +1,54 @@
458+# -*- encoding: utf-8 -*-
459+##############################################################################
460+#
461+# Copyright (c) All rights reserved:
462+# 2014 Txerpa (https://www.txerpa.com)
463+# Biel Massot <biel.massot@txerpa.com>
464+# Copyright del antiguo l10n_es_aeat_mod303 sobre el que esta realizado
465+# este modulo
466+# 2013 Guadaltech (http://www.guadaltech.es)
467+# Alberto Martín Cortada
468+# 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com)
469+# Pedro M. Baeza <pedro.baeza@serviciobaeza.com>
470+#
471+# This program is free software: you can redistribute it and/or modify
472+# it under the terms of the GNU General Public License as published by
473+# the Free Software Foundation, either version 3 of the License, or
474+# (at your option) any later version.
475+#
476+# This program is distributed in the hope that it will be useful,
477+# but WITHOUT ANY WARRANTY; without even the implied warranty of
478+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
479+# GNU General Public License for more details.
480+#
481+# You should have received a copy of the GNU General Public License
482+# along with this program. If not, see http://www.gnu.org/licenses/.
483+#
484+##############################################################################
485+
486+{
487+ "name" : "Modelo 303 de la AEAT",
488+ "version" : "0.1",
489+ 'author' : "Biel Massot <biel.massot@txerpa.com>",
490+ "license" : "AGPL-3",
491+ "website" : "https://www.txerpa.com",
492+ "description": "Modelo 303 de la AEAT",
493+ 'contributors': [
494+ 'Biel Massot <biel.massot@txerpa.com>',
495+ ],
496+ 'category' : "Localisation/Accounting",
497+ "depends" : [
498+ "account",
499+ "l10n_es",
500+ "l10n_es_aeat",
501+ "account_chart_update"
502+ ],
503+ "data" : [
504+ "wizard/export_modelo303_to_boe.xml",
505+ "wizard/wizard_chart_update_view.xml",
506+ "modelo303_view.xml",
507+ "modelo303_casillas.xml",
508+ "security/ir.model.access.csv",
509+ ],
510+ "installable" : True,
511+}
512
513=== removed file 'l10n_es_aeat_mod303/__openerp__.py'
514--- l10n_es_aeat_mod303/__openerp__.py 2014-01-23 16:41:59 +0000
515+++ l10n_es_aeat_mod303/__openerp__.py 1970-01-01 00:00:00 +0000
516@@ -1,51 +0,0 @@
517-# -*- encoding: utf-8 -*-
518-##############################################################################
519-#
520-# OpenERP, Open Source Management Solution
521-# Copyright (c) All rights reserved:
522-# 2013 Guadaltech (http://www.guadaltech.es)
523-# Alberto Martín Cortada
524-# 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com)
525-# Pedro M. Baeza <pedro.baeza@serviciobaeza.com>
526-#
527-# This program is free software: you can redistribute it and/or modify
528-# it under the terms of the GNU General Public License as published by
529-# the Free Software Foundation, either version 3 of the License, or
530-# (at your option) any later version.
531-#
532-# This program is distributed in the hope that it will be useful,
533-# but WITHOUT ANY WARRANTY; without even the implied warranty of
534-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
535-# GNU General Public License for more details.
536-#
537-# You should have received a copy of the GNU General Public License
538-# along with this program. If not, see http://www.gnu.org/licenses/.
539-#
540-##############################################################################
541-
542-{
543- "name" : "AEAT modelo 303",
544- "version" : "1.1",
545- "author" : "GuadalTech",
546- "license" : "AGPL-3",
547- "website" : "http://www.guadaltech.es",
548- 'contributors': ["Pedro M. Baeza <pedro.baeza@serviciosbaeza.com"],
549- "category" : "Localisation/Accounting",
550- "description" : """
551-Módulo para la presentación del modelo 303 (IVA - Autodeclaración) de la
552-Agencia Española de Administración Tributaria.
553-
554-Instrucciones del modelo: http://goo.gl/pgVbXH
555-
556-Incluye la exportación al formato BOE para su uso telemático.
557- """,
558- "depends" : [
559- "l10n_es_aeat",
560- ],
561- "data" : [
562- "wizard/export_mod303_to_boe.xml",
563- "mod303_view.xml",
564- "security/ir.model.access.csv",
565- ],
566- "installable" : True,
567-}
568
569=== added directory 'l10n_es_aeat_mod303/i18n'
570=== added file 'l10n_es_aeat_mod303/i18n/es.po'
571--- l10n_es_aeat_mod303/i18n/es.po 1970-01-01 00:00:00 +0000
572+++ l10n_es_aeat_mod303/i18n/es.po 2014-04-16 11:51:06 +0000
573@@ -0,0 +1,705 @@
574+# Translation of OpenERP Server.
575+# This file contains the translation of the following modules:
576+# * l10n_es_aeat_modelo303
577+#
578+msgid ""
579+msgstr ""
580+"Project-Id-Version: OpenERP Server 7.0\n"
581+"Report-Msgid-Bugs-To: \n"
582+"POT-Creation-Date: 2014-03-20 14:43+0000\n"
583+"PO-Revision-Date: 2014-03-20 14:43+0000\n"
584+"Last-Translator: <>\n"
585+"Language-Team: \n"
586+"MIME-Version: 1.0\n"
587+"Content-Type: text/plain; charset=UTF-8\n"
588+"Content-Transfer-Encoding: \n"
589+"Plural-Forms: \n"
590+
591+#. module: l10n_es_aeat_modelo303
592+#: field:l10n.es.aeat.modelo303.report,sin_actividad:0
593+msgid "Sin actividad"
594+msgstr "Sin actividad"
595+
596+#. module: l10n_es_aeat_modelo303
597+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:205
598+#, python-format
599+msgid "The tax_codes_ids field is different.\n"
600+""
601+msgstr "El campo tax_codes_ids es diferente.\n"
602+""
603+
604+#. module: l10n_es_aeat_modelo303
605+#: model:ir.model,name:l10n_es_aeat_modelo303.model_wizard_update_charts_accounts_modelo303
606+msgid "wizard.update.charts.accounts.modelo303"
607+msgstr "wizard.update.charts.accounts.modelo303"
608+
609+#. module: l10n_es_aeat_modelo303
610+#: sql_constraint:l10n.es.aeat.modelo303.valor.casilla:0
611+msgid "Una casilla solo puede tener un valor"
612+msgstr "Una casilla solo puede tener un valor"
613+
614+#. module: l10n_es_aeat_modelo303
615+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:199
616+#, python-format
617+msgid "The code field is different.\n"
618+""
619+msgstr "El campo Codigo es diferente.\n"
620+""
621+
622+#. module: l10n_es_aeat_modelo303
623+#: view:l10n.es.aeat.modelo303.report:0
624+msgid "Declaración"
625+msgstr "Declaración"
626+
627+#. module: l10n_es_aeat_modelo303
628+#: field:l10n.es.aeat.modelo303.report,cuenta_devolucion_id:0
629+msgid "CCC devolución"
630+msgstr "CCC devolución"
631+
632+#. module: l10n_es_aeat_modelo303
633+#: selection:wizard.update.charts.accounts.casilla,type:0
634+#: selection:wizard.update.charts.accounts.modelo303,type:0
635+msgid "New template"
636+msgstr "Nueva plantilla"
637+
638+#. module: l10n_es_aeat_modelo303
639+#: field:l10n.es.aeat.modelo303,name:0
640+#: field:l10n.es.aeat.modelo303.casilla,name:0
641+#: field:l10n.es.aeat.modelo303.casilla.template,name:0
642+#: field:l10n.es.aeat.modelo303.template,name:0
643+msgid "Nombre"
644+msgstr "Nombre"
645+
646+#. module: l10n_es_aeat_modelo303
647+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:144
648+#, python-format
649+msgid "The date field is different.\n"
650+""
651+msgstr "El campo Fecha es diferente.\n"
652+""
653+
654+#. module: l10n_es_aeat_modelo303
655+#: selection:l10n.es.aeat.modelo303.report,period:0
656+msgid "March"
657+msgstr "Marzo"
658+
659+#. module: l10n_es_aeat_modelo303
660+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:208
661+#, python-format
662+msgid "The default_value field is different.\n"
663+""
664+msgstr "El campo \"Valor por defecto\" es diferente.\n"
665+""
666+
667+#. module: l10n_es_aeat_modelo303
668+#: view:l10n.es.aeat.modelo303.report:0
669+msgid "Casillas"
670+msgstr "Casillas"
671+
672+#. module: l10n_es_aeat_modelo303
673+#: field:l10n.es.aeat.modelo303.report,company_id:0
674+msgid "Company"
675+msgstr "Compañia"
676+
677+#. module: l10n_es_aeat_modelo303
678+#: field:wizard.update.charts.accounts,update_casilla:0
679+msgid "Update Casillas AEAT and 303"
680+msgstr "Actualizar Casillas AEAT y 303"
681+
682+#. module: l10n_es_aeat_modelo303
683+#: selection:l10n.es.aeat.modelo303.report,type:0
684+msgid "Substitutive"
685+msgstr "Sustitutivo"
686+
687+#. module: l10n_es_aeat_modelo303
688+#: field:l10n.es.aeat.modelo303.report,previous_number:0
689+msgid "Previous declaration number"
690+msgstr "Número de declaración anterior"
691+
692+#. module: l10n_es_aeat_modelo303
693+#: field:l10n.es.aeat.modelo303.casilla,default_value:0
694+#: field:l10n.es.aeat.modelo303.casilla.template,default_value:0
695+msgid "Valor por defecto"
696+msgstr "Valor por defecto"
697+
698+#. module: l10n_es_aeat_modelo303
699+#: view:l10n.es.aeat.modelo303.report:0
700+msgid "549"
701+msgstr "549"
702+
703+#. module: l10n_es_aeat_modelo303
704+#: model:ir.model,name:l10n_es_aeat_modelo303.model_l10n_es_aeat_modelo303
705+msgid "AEAT modelo 303"
706+msgstr "AEAT modelo 303"
707+
708+#. module: l10n_es_aeat_modelo303
709+#: selection:l10n.es.aeat.modelo303.export_to_boe,state:0
710+msgid "get"
711+msgstr "get"
712+
713+#. module: l10n_es_aeat_modelo303
714+#: field:wizard.update.charts.accounts.casilla,notes:0
715+#: field:wizard.update.charts.accounts.modelo303,notes:0
716+msgid "Notes"
717+msgstr "Notas"
718+
719+#. module: l10n_es_aeat_modelo303
720+#: field:l10n.es.aeat.modelo303.report,number:0
721+msgid "Declaration number"
722+msgstr "Número declaración"
723+
724+#. module: l10n_es_aeat_modelo303
725+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:352
726+#, python-format
727+msgid "Updated casillas %s.\n"
728+""
729+msgstr "Actualizadas %s casillas.\n"
730+""
731+
732+#. module: l10n_es_aeat_modelo303
733+#: field:wizard.update.charts.accounts,updated_modelos303:0
734+msgid "Updated Modelos303"
735+msgstr "Actualizado Modelos303"
736+
737+#. module: l10n_es_aeat_modelo303
738+#: selection:l10n.es.aeat.modelo303.report,state:0
739+msgid "Cancelled"
740+msgstr "Cancelado"
741+
742+#. module: l10n_es_aeat_modelo303
743+#: selection:l10n.es.aeat.modelo303.report,period:0
744+msgid "July"
745+msgstr "Julio"
746+
747+#. module: l10n_es_aeat_modelo303
748+#: model:ir.model,name:l10n_es_aeat_modelo303.model_l10n_es_aeat_modelo303_report
749+msgid "AEAT modelo 303 report"
750+msgstr "Informe AEAT Modelo 303"
751+
752+#. module: l10n_es_aeat_modelo303
753+#: model:ir.actions.act_window,name:l10n_es_aeat_modelo303.action_wizard_aeat_modelo303_export
754+msgid "Export AEAT 303 BOE file"
755+msgstr "Exportar archivo BOE AEAT 303"
756+
757+#. module: l10n_es_aeat_modelo303
758+#: field:l10n.es.aeat.modelo303.report,period_start_id:0
759+msgid "Period start"
760+msgstr "Periodo inicial"
761+
762+#. module: l10n_es_aeat_modelo303
763+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:291
764+#, python-format
765+msgid "Updated modelos303 %s.\n"
766+""
767+msgstr "Actualizados %s modelos303.\n"
768+""
769+
770+#. module: l10n_es_aeat_modelo303
771+#: model:ir.model,name:l10n_es_aeat_modelo303.model_l10n_es_aeat_modelo303_valor_casilla
772+msgid "AEAT modelo 303 valor casilla"
773+msgstr "AEAT modelo 303 valor casilla"
774+
775+#. module: l10n_es_aeat_modelo303
776+#: field:l10n.es.aeat.modelo303.report,company_partner_id:0
777+msgid "Partner"
778+msgstr "Empresa"
779+
780+#. module: l10n_es_aeat_modelo303
781+#: field:l10n.es.aeat.modelo303,template:0
782+#: field:l10n.es.aeat.modelo303.template,template:0
783+msgid "Template"
784+msgstr "Plantilla"
785+
786+#. module: l10n_es_aeat_modelo303
787+#: view:wizard.update.charts.accounts:0
788+msgid "Modelos 303"
789+msgstr "Modelos 303"
790+
791+#. module: l10n_es_aeat_modelo303
792+#: field:l10n.es.aeat.modelo303.report,destinatario_operaciones_cdc:0
793+msgid "Destinatario de operaciones con criterio de caja"
794+msgstr "Destinatario de operaciones con criterio de caja"
795+
796+#. module: l10n_es_aeat_modelo303
797+#: field:l10n.es.aeat.modelo303.valor.casilla,valor:0
798+msgid "Valor"
799+msgstr "Valor"
800+
801+#. module: l10n_es_aeat_modelo303
802+#: field:l10n.es.aeat.modelo303.report,state:0
803+msgid "State"
804+msgstr "Estado"
805+
806+#. module: l10n_es_aeat_modelo303
807+#: selection:l10n.es.aeat.modelo303.report,period:0
808+msgid "First quarter"
809+msgstr "Primer trimestre"
810+
811+#. module: l10n_es_aeat_modelo303
812+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:202
813+#, python-format
814+msgid "The evaluate_as field is different.\n"
815+""
816+msgstr "El campo \"Evaluar como\" es diferente.\n"
817+""
818+
819+#. module: l10n_es_aeat_modelo303
820+#: model:ir.model,name:l10n_es_aeat_modelo303.model_l10n_es_aeat_modelo303_casilla
821+msgid "Casillas AEAT modelo 303"
822+msgstr "Casillas AEAT modelo 303"
823+
824+#. module: l10n_es_aeat_modelo303
825+#: field:wizard.update.charts.accounts,updated_casillas:0
826+msgid "Updated Casillas"
827+msgstr "Actualizadas casillas"
828+
829+#. module: l10n_es_aeat_modelo303
830+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:356
831+#, python-format
832+msgid "Exception writing casilla %s: %s - %s.\n"
833+""
834+msgstr "Error escribiendo casilla %s: %s - %s.\n"
835+""
836+
837+#. module: l10n_es_aeat_modelo303
838+#: model:ir.model,name:l10n_es_aeat_modelo303.model_l10n_es_aeat_modelo303_template
839+msgid "AEAT modelo 303 template"
840+msgstr "AEAT modelo 303 template"
841+
842+#. module: l10n_es_aeat_modelo303
843+#: field:wizard.update.charts.accounts,modelo303_ids:0
844+msgid "Modelo303"
845+msgstr "Modelo303"
846+
847+#. module: l10n_es_aeat_modelo303
848+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:361
849+#, python-format
850+msgid "Created or updated casilla %s.\n"
851+""
852+msgstr "Casillas creadas o actualizadas %s.\n"
853+""
854+
855+#. module: l10n_es_aeat_modelo303
856+#: view:wizard.update.charts.accounts:0
857+msgid "Fiscal positions"
858+msgstr "Posiciones fiscales"
859+
860+#. module: l10n_es_aeat_modelo303
861+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:295
862+#, python-format
863+msgid "Exception writing modelo303 %s: %s - %s.\n"
864+""
865+msgstr "Error escribiendo modelo303 %s: %s - %s.\n"
866+""
867+
868+#. module: l10n_es_aeat_modelo303
869+#: field:l10n.es.aeat.modelo303.report,support_type:0
870+msgid "Support Type"
871+msgstr "Tipo de soporte"
872+
873+#. module: l10n_es_aeat_modelo303
874+#: field:l10n.es.aeat.modelo303.casilla,code:0
875+#: field:l10n.es.aeat.modelo303.casilla.template,code:0
876+#: field:l10n.es.aeat.modelo303.valor.casilla,casilla_id:0
877+#: field:l10n.es.aeat.modelo303.valor.casilla,code:0
878+#: field:wizard.update.charts.accounts,casilla_ids:0
879+msgid "Casilla"
880+msgstr "Casilla"
881+
882+#. module: l10n_es_aeat_modelo303
883+#: field:l10n.es.aeat.modelo303.valor.casilla,report_id:0
884+msgid "Report"
885+msgstr "Informe"
886+
887+#. module: l10n_es_aeat_modelo303
888+#: field:l10n.es.aeat.modelo303.report,complementaria:0
889+msgid "Autoliquidación complementaria"
890+msgstr "Autoliquidación complementaria"
891+
892+#. module: l10n_es_aeat_modelo303
893+#: help:l10n.es.aeat.modelo303.report,devolucion_mensual:0
894+msgid "Inscrito en el Registro de Devolución Mensual"
895+msgstr "Inscrito en el Registro de Devolución Mensual"
896+
897+#. module: l10n_es_aeat_modelo303
898+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:147
899+#, python-format
900+msgid "The template field is different.\n"
901+""
902+msgstr "El campo Plantilla es diferente.\n"
903+""
904+
905+#. module: l10n_es_aeat_modelo303
906+#: field:l10n.es.aeat.modelo303.report,calculation_date:0
907+msgid "Calculation date"
908+msgstr "Fecha de cálculo"
909+
910+#. module: l10n_es_aeat_modelo303
911+#: view:l10n.es.aeat.modelo303.report:0
912+msgid "Calculate formulas"
913+msgstr "Calcular fórmulas"
914+
915+#. module: l10n_es_aeat_modelo303
916+#: code:addons/l10n_es_aeat_modelo303/modelo303.py:175
917+#, python-format
918+msgid "El periodo inicial debe ser inferior o igual periodo final."
919+msgstr "El periodo inicial debe ser inferior o igual periodo final."
920+
921+#. module: l10n_es_aeat_modelo303
922+#: model:ir.actions.act_window,help:l10n_es_aeat_modelo303.action_l10n_es_aeat_modelo303_casilla_template_tree
923+#: model:ir.actions.act_window,help:l10n_es_aeat_modelo303.action_l10n_es_aeat_modelo303_casilla_tree
924+msgid "Definición de las casillas AEAT"
925+msgstr "Definición de las casillas AEAT"
926+
927+#. module: l10n_es_aeat_modelo303
928+#: selection:l10n.es.aeat.modelo303.report,period:0
929+msgid "September"
930+msgstr "Septiembre"
931+
932+#. module: l10n_es_aeat_modelo303
933+#: selection:l10n.es.aeat.modelo303.report,period:0
934+msgid "December"
935+msgstr "Diciembre"
936+
937+#. module: l10n_es_aeat_modelo303
938+#: view:l10n.es.aeat.modelo303.valor.casilla:0
939+msgid "Valor casilla"
940+msgstr "Valor casilla"
941+
942+#. module: l10n_es_aeat_modelo303
943+#: field:l10n.es.aeat.modelo303.casilla,evaluate_as:0
944+#: field:l10n.es.aeat.modelo303.casilla.template,evaluate_as:0
945+msgid "Evaluar como"
946+msgstr "Evaluar como"
947+
948+#. module: l10n_es_aeat_modelo303
949+#: model:ir.model,name:l10n_es_aeat_modelo303.model_wizard_update_charts_accounts_casilla
950+msgid "wizard.update.charts.accounts.casilla"
951+msgstr "wizard.update.charts.accounts.casilla"
952+
953+#. module: l10n_es_aeat_modelo303
954+#: selection:l10n.es.aeat.modelo303.report,support_type:0
955+msgid "DVD"
956+msgstr "DVD"
957+
958+#. module: l10n_es_aeat_modelo303
959+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:300
960+#, python-format
961+msgid "Created or updated modelo303 %s.\n"
962+""
963+msgstr "Modelos 303 creados o actualizados %s.\n"
964+""
965+
966+#. module: l10n_es_aeat_modelo303
967+#: selection:l10n.es.aeat.modelo303.report,state:0
968+msgid "Draft"
969+msgstr "Borrador"
970+
971+#. module: l10n_es_aeat_modelo303
972+#: field:l10n.es.aeat.modelo303.report,sujeto_a_cdc:0
973+msgid "Sujeto a criterio de caja"
974+msgstr "Sujeto a criterio de caja"
975+
976+#. module: l10n_es_aeat_modelo303
977+#: selection:wizard.update.charts.accounts.casilla,type:0
978+#: selection:wizard.update.charts.accounts.modelo303,type:0
979+msgid "Updated template"
980+msgstr "Plantilla actualizada"
981+
982+#. module: l10n_es_aeat_modelo303
983+#: selection:l10n.es.aeat.modelo303.export_to_boe,state:0
984+msgid "open"
985+msgstr "open"
986+
987+#. module: l10n_es_aeat_modelo303
988+#: selection:l10n.es.aeat.modelo303.report,period:0
989+msgid "August"
990+msgstr "Agosto"
991+
992+#. module: l10n_es_aeat_modelo303
993+#: selection:l10n.es.aeat.modelo303.report,type:0
994+msgid "Normal"
995+msgstr "Normal"
996+
997+#. module: l10n_es_aeat_modelo303
998+#: field:l10n.es.aeat.modelo303.casilla,tax_code_ids:0
999+#: field:l10n.es.aeat.modelo303.casilla.template,tax_code_ids:0
1000+#: field:l10n.es.aeat.modelo303.export_to_boe,state:0
1001+msgid "unknown"
1002+msgstr "unknown"
1003+
1004+#. module: l10n_es_aeat_modelo303
1005+#: selection:l10n.es.aeat.modelo303.report,period:0
1006+msgid "June"
1007+msgstr "Junio"
1008+
1009+#. module: l10n_es_aeat_modelo303
1010+#: view:l10n.es.aeat.modelo303.report:0
1011+msgid "AEAT 303 reports"
1012+msgstr "Informes AEAT 303"
1013+
1014+#. module: l10n_es_aeat_modelo303
1015+#: selection:l10n.es.aeat.modelo303.report,period:0
1016+msgid "November"
1017+msgstr "Noviembre"
1018+
1019+#. module: l10n_es_aeat_modelo303
1020+#: field:l10n.es.aeat.modelo303,date:0
1021+#: field:l10n.es.aeat.modelo303.template,date:0
1022+msgid "Fecha entrada en vigor"
1023+msgstr "Fecha entrada en vigor"
1024+
1025+#. module: l10n_es_aeat_modelo303
1026+#: selection:l10n.es.aeat.modelo303.report,period:0
1027+msgid "October"
1028+msgstr "Octubre"
1029+
1030+#. module: l10n_es_aeat_modelo303
1031+#: selection:l10n.es.aeat.modelo303.report,period:0
1032+msgid "January"
1033+msgstr "Enero"
1034+
1035+#. module: l10n_es_aeat_modelo303
1036+#: selection:l10n.es.aeat.modelo303.report,state:0
1037+msgid "Processed"
1038+msgstr "Procesado"
1039+
1040+#. module: l10n_es_aeat_modelo303
1041+#: selection:l10n.es.aeat.modelo303.report,period:0
1042+msgid "Third quarter"
1043+msgstr "Tercer trimestre"
1044+
1045+#. module: l10n_es_aeat_modelo303
1046+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:387
1047+#, python-format
1048+msgid "Error"
1049+msgstr "Error"
1050+
1051+#. module: l10n_es_aeat_modelo303
1052+#: model:ir.model,name:l10n_es_aeat_modelo303.model_l10n_es_aeat_modelo303_casilla_template
1053+msgid "Casillas AEAT modelo 303 template"
1054+msgstr "Plantilla Casillas AEAT modelo 303"
1055+
1056+#. module: l10n_es_aeat_modelo303
1057+#: field:l10n.es.aeat.modelo303.report,representative_vat:0
1058+msgid "L.R. VAT number"
1059+msgstr "CIF/NIF R.L."
1060+
1061+#. module: l10n_es_aeat_modelo303
1062+#: field:l10n.es.aeat.modelo303.report,period_end_id:0
1063+msgid "Period end"
1064+msgstr "Periodo final"
1065+
1066+#. module: l10n_es_aeat_modelo303
1067+#: field:l10n.es.aeat.modelo303.report,type:0
1068+msgid "Statement Type"
1069+msgstr "Tipo de instrucción"
1070+
1071+#. module: l10n_es_aeat_modelo303
1072+#: field:l10n.es.aeat.modelo303.report,period:0
1073+msgid "Period"
1074+msgstr "Periodo"
1075+
1076+#. module: l10n_es_aeat_modelo303
1077+#: field:l10n.es.aeat.modelo303.report,company_vat:0
1078+msgid "VAT number"
1079+msgstr "CIF/NIF"
1080+
1081+#. module: l10n_es_aeat_modelo303
1082+#: field:l10n.es.aeat.modelo303.report,fiscalyear_id:0
1083+msgid "Fiscal year"
1084+msgstr "Ejercicio"
1085+
1086+#. module: l10n_es_aeat_modelo303
1087+#: selection:l10n.es.aeat.modelo303.report,state:0
1088+msgid "Done"
1089+msgstr "Listo"
1090+
1091+#. module: l10n_es_aeat_modelo303
1092+#: model:ir.actions.act_window,name:l10n_es_aeat_modelo303.action_l10n_es_aeat_modelo303_casilla_template_tree
1093+msgid "Template Casillas AEAT"
1094+msgstr "Plantillas Casillas AEAT"
1095+
1096+#. module: l10n_es_aeat_modelo303
1097+#: model:ir.actions.act_window,name:l10n_es_aeat_modelo303.action_l10n_es_aeat_modelo303_report
1098+msgid "AEAT model 303"
1099+msgstr "Modelo AEAT 303"
1100+
1101+#. module: l10n_es_aeat_modelo303
1102+#: field:wizard.update.charts.accounts.modelo303,update_modelo303_id:0
1103+msgid "Modelo303 to update"
1104+msgstr "Modelo303 a actualizar"
1105+
1106+#. module: l10n_es_aeat_modelo303
1107+#: selection:l10n.es.aeat.modelo303.report,period:0
1108+msgid "Fourth quarter"
1109+msgstr "Cuarto trimestre"
1110+
1111+#. module: l10n_es_aeat_modelo303
1112+#: view:l10n.es.aeat.modelo303.casilla:0
1113+#: view:l10n.es.aeat.modelo303.casilla.template:0
1114+msgid "Definición de casillas AEAT"
1115+msgstr "Definición de casillas AEAT"
1116+
1117+#. module: l10n_es_aeat_modelo303
1118+#: code:addons/l10n_es_aeat_modelo303/modelo303.py:348
1119+#, python-format
1120+msgid "Inscrito en el Registro de devolución mensual (Art. 30 RIVA). No está permitido para periodos 1T,2T,3T o 4T."
1121+msgstr "Inscrito en el Registro de devolución mensual (Art. 30 RIVA). No está permitido para periodos 1T,2T,3T o 4T."
1122+
1123+#. module: l10n_es_aeat_modelo303
1124+#: field:l10n.es.aeat.modelo303.report,valor_casilla_ids:0
1125+msgid "Valores Casillas"
1126+msgstr "Valores Casillas"
1127+
1128+#. module: l10n_es_aeat_modelo303
1129+#: field:l10n.es.aeat.modelo303.report,devolucion_mensual:0
1130+msgid "Devolución Mensual"
1131+msgstr "Devolución Mensual"
1132+
1133+#. module: l10n_es_aeat_modelo303
1134+#: code:addons/l10n_es_aeat_modelo303/wizard/wizard_chart_update.py:387
1135+#, python-format
1136+msgid "One or more errors detected!\n"
1137+"\n"
1138+"%s"
1139+msgstr "Uno o mas errores detectados!\n"
1140+"\n"
1141+"%s"
1142+
1143+#. module: l10n_es_aeat_modelo303
1144+#: selection:l10n.es.aeat.modelo303.report,type:0
1145+msgid "Complementary"
1146+msgstr "Complementaria"
1147+
1148+#. module: l10n_es_aeat_modelo303
1149+#: selection:l10n.es.aeat.modelo303.report,period:0
1150+msgid "May"
1151+msgstr "Mayo"
1152+
1153+#. module: l10n_es_aeat_modelo303
1154+#: field:wizard.update.charts.accounts.casilla,type:0
1155+#: field:wizard.update.charts.accounts.modelo303,type:0
1156+msgid "Type"
1157+msgstr "Tipo"
1158+
1159+#. module: l10n_es_aeat_modelo303
1160+#: field:l10n.es.aeat.modelo303.report,cuenta_ingreso_id:0
1161+msgid "CCC Ingreso"
1162+msgstr "CCC Ingreso"
1163+
1164+#. module: l10n_es_aeat_modelo303
1165+#: field:l10n.es.aeat.modelo303.casilla,modelo303_id:0
1166+#: field:l10n.es.aeat.modelo303.casilla.template,modelo303_id:0
1167+#: field:l10n.es.aeat.modelo303.report,modelo303_id:0
1168+#: view:wizard.update.charts.accounts:0
1169+msgid "Modelo 303"
1170+msgstr "Modelo 303"
1171+
1172+#. module: l10n_es_aeat_modelo303
1173+#: help:l10n.es.aeat.modelo303.report,representative_vat:0
1174+msgid "Legal Representative VAT number."
1175+msgstr "CIF/NIF representante legal."
1176+
1177+#. module: l10n_es_aeat_modelo303
1178+#: field:l10n.es.aeat.modelo303.export_to_boe,name:0
1179+msgid "File name"
1180+msgstr "Nombre archivo"
1181+
1182+#. module: l10n_es_aeat_modelo303
1183+#: field:wizard.update.charts.accounts,new_casillas:0
1184+msgid "New Casillas"
1185+msgstr "Nuevas Casillas"
1186+
1187+#. module: l10n_es_aeat_modelo303
1188+#: field:wizard.update.charts.accounts,new_modelos303:0
1189+msgid "New Modelos303"
1190+msgstr "Nuevos Modelos 303"
1191+
1192+#. module: l10n_es_aeat_modelo303
1193+#: selection:l10n.es.aeat.modelo303.report,period:0
1194+msgid "February"
1195+msgstr "Febrero"
1196+
1197+#. module: l10n_es_aeat_modelo303
1198+#: field:wizard.update.charts.accounts.casilla,update_chart_wizard_id:0
1199+#: field:wizard.update.charts.accounts.modelo303,update_chart_wizard_id:0
1200+msgid "Update chart wizard"
1201+msgstr "Asistente de actualización"
1202+
1203+#. module: l10n_es_aeat_modelo303
1204+#: selection:l10n.es.aeat.modelo303.report,period:0
1205+msgid "April"
1206+msgstr "Abril"
1207+
1208+#. module: l10n_es_aeat_modelo303
1209+#: field:wizard.update.charts.accounts.casilla,update_casilla_id:0
1210+msgid "Casilla to update"
1211+msgstr "Casilla a actualizar"
1212+
1213+#. module: l10n_es_aeat_modelo303
1214+#: help:l10n.es.aeat.modelo303.report,sujeto_a_cdc:0
1215+msgid "¿Ha optado por el régimen especial del criterio de Caja (art. 163 undecies LIVA)?"
1216+msgstr "¿Ha optado por el régimen especial del criterio de Caja (art. 163 undecies LIVA)?"
1217+
1218+#. module: l10n_es_aeat_modelo303
1219+#: model:ir.actions.act_window,help:l10n_es_aeat_modelo303.action_l10n_es_aeat_modelo303_report
1220+msgid "Create and query AEAT Model 303 reports"
1221+msgstr "Crea y consulta declaración AEAT del modelo 303"
1222+
1223+#. module: l10n_es_aeat_modelo303
1224+#: selection:l10n.es.aeat.modelo303.report,support_type:0
1225+msgid "Telematics"
1226+msgstr "Telematico"
1227+
1228+#. module: l10n_es_aeat_modelo303
1229+#: model:ir.actions.act_window,name:l10n_es_aeat_modelo303.action_l10n_es_aeat_modelo303_casilla_tree
1230+#: model:ir.ui.menu,name:l10n_es_aeat_modelo303.menu_l10n_es_aeat_modelo303_casilla
1231+#: model:ir.ui.menu,name:l10n_es_aeat_modelo303.menu_l10n_es_aeat_modelo303_casilla_template
1232+#: view:l10n.es.aeat.modelo303.casilla:0
1233+#: view:l10n.es.aeat.modelo303.casilla.template:0
1234+#: view:wizard.update.charts.accounts:0
1235+msgid "Casillas AEAT"
1236+msgstr "Casillas AEAT"
1237+
1238+#. module: l10n_es_aeat_modelo303
1239+#: selection:l10n.es.aeat.modelo303.report,period:0
1240+msgid "Second quarter"
1241+msgstr "Segundo trimestre"
1242+
1243+#. module: l10n_es_aeat_modelo303
1244+#: model:ir.ui.menu,name:l10n_es_aeat_modelo303.menu_aeat_modelo303_report
1245+msgid "AEAT 303 model"
1246+msgstr "Declaración AEAT 303"
1247+
1248+#. module: l10n_es_aeat_modelo303
1249+#: model:ir.model,name:l10n_es_aeat_modelo303.model_l10n_es_aeat_modelo303_export_to_boe
1250+msgid "Export Report to BOE Format"
1251+msgstr "Exportar a formato BOE"
1252+
1253+#. module: l10n_es_aeat_modelo303
1254+#: help:l10n.es.aeat.modelo303.report,destinatario_operaciones_cdc:0
1255+msgid "¿Es destinatario de operaciones a las que se aplique el régimen especial del criterio de caja?"
1256+msgstr "¿Es destinatario de operaciones a las que se aplique el régimen especial del criterio de caja?"
1257+
1258+#. module: l10n_es_aeat_modelo303
1259+#: model:ir.model,name:l10n_es_aeat_modelo303.model_wizard_update_charts_accounts
1260+msgid "wizard.update.charts.accounts"
1261+msgstr "wizard.update.charts.accounts"
1262+
1263+#. module: l10n_es_aeat_modelo303
1264+#: field:wizard.update.charts.accounts.casilla,casilla_id:0
1265+#: field:wizard.update.charts.accounts.modelo303,modelo303_id:0
1266+msgid "Casillas template"
1267+msgstr "Plantilla de Casilla"
1268+
1269+#. module: l10n_es_aeat_modelo303
1270+#: field:l10n.es.aeat.modelo303.export_to_boe,data:0
1271+msgid "File"
1272+msgstr "Archivo"
1273+
1274+#. module: l10n_es_aeat_modelo303
1275+#: sql_constraint:l10n.es.aeat.modelo303.casilla:0
1276+#: sql_constraint:l10n.es.aeat.modelo303.casilla.template:0
1277+msgid "Las casillas deben ser unicas por modelo."
1278+msgstr "Las casillas deben ser unicas por modelo."
1279
1280=== removed file 'l10n_es_aeat_mod303/i18n/l10n_es_aeat_mod303.pot'
1281--- l10n_es_aeat_mod303/i18n/l10n_es_aeat_mod303.pot 2014-01-23 16:41:59 +0000
1282+++ l10n_es_aeat_mod303/i18n/l10n_es_aeat_mod303.pot 1970-01-01 00:00:00 +0000
1283@@ -1,522 +0,0 @@
1284-# Translation of OpenERP Server.
1285-# This file contains the translation of the following modules:
1286-# * l10n_es_aeat_mod303
1287-#
1288-msgid ""
1289-msgstr ""
1290-"Project-Id-Version: OpenERP Server 7.0\n"
1291-"Report-Msgid-Bugs-To: \n"
1292-"POT-Creation-Date: 2014-01-23 16:12+0000\n"
1293-"PO-Revision-Date: 2014-01-23 17:15+0100\n"
1294-"Last-Translator: Pedro Manuel Baeza <pedro.baeza@serviciosbaeza.com>\n"
1295-"Language-Team: \n"
1296-"MIME-Version: 1.0\n"
1297-"Content-Type: text/plain; charset=UTF-8\n"
1298-"Content-Transfer-Encoding: 8bit\n"
1299-"Plural-Forms: \n"
1300-
1301-#. module: l10n_es_aeat_mod303
1302-#: field:l10n.es.aeat.mod303.report,sin_actividad:0
1303-msgid "Sin actividad"
1304-msgstr ""
1305-
1306-#. module: l10n_es_aeat_mod303
1307-#: view:l10n.es.aeat.mod303.report:0
1308-msgid "Declaración"
1309-msgstr ""
1310-
1311-#. module: l10n_es_aeat_mod303
1312-#: help:l10n.es.aeat.mod303.report,diferencia:0
1313-msgid "( IVA devengado - IVA deducible )"
1314-msgstr ""
1315-
1316-#. module: l10n_es_aeat_mod303
1317-#: view:l10n.es.aeat.mod303.report:0
1318-msgid "Devolución"
1319-msgstr ""
1320-
1321-#. module: l10n_es_aeat_mod303
1322-#: model:ir.model,name:l10n_es_aeat_mod303.model_l10n_es_aeat_mod303_report
1323-msgid "AEAT 303 Report"
1324-msgstr ""
1325-
1326-#. module: l10n_es_aeat_mod303
1327-#: selection:l10n.es.aeat.mod303.report,period:0
1328-msgid "March"
1329-msgstr ""
1330-
1331-#. module: l10n_es_aeat_mod303
1332-#: field:l10n.es.aeat.mod303.report,company_id:0
1333-msgid "Company"
1334-msgstr ""
1335-
1336-#. module: l10n_es_aeat_mod303
1337-#: field:l10n.es.aeat.mod303.report,devolver:0
1338-msgid "Devolver"
1339-msgstr ""
1340-
1341-#. module: l10n_es_aeat_mod303
1342-#: code:addons/l10n_es_aeat_mod303/mod303.py:209
1343-#: code:addons/l10n_es_aeat_mod303/mod303.py:223
1344-#, python-format
1345-msgid "Seleccione una cuenta para ingresar el importe"
1346-msgstr ""
1347-
1348-#. module: l10n_es_aeat_mod303
1349-#: selection:l10n.es.aeat.mod303.report,type:0
1350-msgid "Substitutive"
1351-msgstr ""
1352-
1353-#. module: l10n_es_aeat_mod303
1354-#: field:l10n.es.aeat.mod303.report,previous_number:0
1355-msgid "Previous declaration number"
1356-msgstr ""
1357-
1358-#. module: l10n_es_aeat_mod303
1359-#: field:l10n.es.aeat.mod303.report,contact_name:0
1360-msgid "Full name"
1361-msgstr ""
1362-
1363-#. module: l10n_es_aeat_mod303
1364-#: code:addons/l10n_es_aeat_mod303/mod303.py:136
1365-#: code:addons/l10n_es_aeat_mod303/mod303.py:153
1366-#, python-format
1367-msgid "El periodo seleccionado no coincide con los periodos del ejercicio fiscal: "
1368-msgstr ""
1369-
1370-#. module: l10n_es_aeat_mod303
1371-#: selection:l10n.es.aeat.mod303.export_to_boe,state:0
1372-msgid "get"
1373-msgstr ""
1374-
1375-#. module: l10n_es_aeat_mod303
1376-#: field:l10n.es.aeat.mod303.export_to_boe,name:0
1377-msgid "File name"
1378-msgstr ""
1379-
1380-#. module: l10n_es_aeat_mod303
1381-#: field:l10n.es.aeat.mod303.report,number:0
1382-msgid "Declaration number"
1383-msgstr ""
1384-
1385-#. module: l10n_es_aeat_mod303
1386-#: field:l10n.es.aeat.mod303.report,previus_result:0
1387-msgid "A deducir"
1388-msgstr ""
1389-
1390-#. module: l10n_es_aeat_mod303
1391-#: selection:l10n.es.aeat.mod303.report,state:0
1392-msgid "Cancelled"
1393-msgstr ""
1394-
1395-#. module: l10n_es_aeat_mod303
1396-#: field:l10n.es.aeat.mod303.report,complementaria:0
1397-msgid "Autoliquidación complementaria"
1398-msgstr ""
1399-
1400-#. module: l10n_es_aeat_mod303
1401-#: model:ir.actions.act_window,name:l10n_es_aeat_mod303.action_wizard_aeat_mod303_export
1402-msgid "Export AEAT 303 BOE file"
1403-msgstr ""
1404-
1405-#. module: l10n_es_aeat_mod303
1406-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:126
1407-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:146
1408-#, python-format
1409-msgid "Warning"
1410-msgstr ""
1411-
1412-#. module: l10n_es_aeat_mod303
1413-#: view:l10n.es.aeat.mod303.report:0
1414-msgid "413"
1415-msgstr ""
1416-
1417-#. module: l10n_es_aeat_mod303
1418-#: field:l10n.es.aeat.mod303.report,company_partner_id:0
1419-msgid "Partner"
1420-msgstr ""
1421-
1422-#. module: l10n_es_aeat_mod303
1423-#: help:l10n.es.aeat.mod303.report,previus_result:0
1424-msgid "Resultado de la anterior o anteriores del mismo concepto, ejercicio y periodo"
1425-msgstr ""
1426-
1427-#. module: l10n_es_aeat_mod303
1428-#: selection:l10n.es.aeat.mod303.report,period:0
1429-msgid "February"
1430-msgstr ""
1431-
1432-#. module: l10n_es_aeat_mod303
1433-#: help:l10n.es.aeat.mod303.report,porcentaje_atribuible_estado:0
1434-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 Comunidad Foral 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%"
1435-msgstr ""
1436-
1437-#. module: l10n_es_aeat_mod303
1438-#: field:l10n.es.aeat.mod303.report,state:0
1439-msgid "State"
1440-msgstr ""
1441-
1442-#. module: l10n_es_aeat_mod303
1443-#: selection:l10n.es.aeat.mod303.report,period:0
1444-msgid "First quarter"
1445-msgstr ""
1446-
1447-#. module: l10n_es_aeat_mod303
1448-#: field:l10n.es.aeat.mod303.report,support_type:0
1449-msgid "Support Type"
1450-msgstr ""
1451-
1452-#. module: l10n_es_aeat_mod303
1453-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:193
1454-#, python-format
1455-msgid "%Y-%m-%d"
1456-msgstr ""
1457-
1458-#. module: l10n_es_aeat_mod303
1459-#: selection:l10n.es.aeat.mod303.report,period:0
1460-msgid "July"
1461-msgstr ""
1462-
1463-#. module: l10n_es_aeat_mod303
1464-#: code:addons/l10n_es_aeat_mod303/mod303.py:211
1465-#: code:addons/l10n_es_aeat_mod303/mod303.py:225
1466-#, python-format
1467-msgid "Seleccione una cuenta para realizar la devolución"
1468-msgstr ""
1469-
1470-#. module: l10n_es_aeat_mod303
1471-#: help:l10n.es.aeat.mod303.report,devolucion_mensual:0
1472-msgid "Inscrito en el Registro de Devolución Mensual"
1473-msgstr ""
1474-
1475-#. module: l10n_es_aeat_mod303
1476-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:127
1477-#, python-format
1478-msgid ""
1479-"CCC de devolución no válida \n"
1480-"%s"
1481-msgstr ""
1482-
1483-#. module: l10n_es_aeat_mod303
1484-#: field:l10n.es.aeat.mod303.report,calculation_date:0
1485-msgid "Calculation date"
1486-msgstr ""
1487-
1488-#. module: l10n_es_aeat_mod303
1489-#: field:l10n.es.aeat.mod303.report,cuenta_devolucion_id:0
1490-msgid "CCC devolución"
1491-msgstr ""
1492-
1493-#. module: l10n_es_aeat_mod303
1494-#: field:l10n.es.aeat.mod303.report,ingresar:0
1495-msgid "Ingresar"
1496-msgstr ""
1497-
1498-#. module: l10n_es_aeat_mod303
1499-#: code:addons/l10n_es_aeat_mod303/mod303.py:198
1500-#: code:addons/l10n_es_aeat_mod303/mod303.py:212
1501-#, python-format
1502-msgid "El valor añadido para la regularizacion anual no se ha tenido en cuenta por no ser un periodo de cierre (12 o 4T)"
1503-msgstr ""
1504-
1505-#. module: l10n_es_aeat_mod303
1506-#: selection:l10n.es.aeat.mod303.report,period:0
1507-msgid "September"
1508-msgstr ""
1509-
1510-#. module: l10n_es_aeat_mod303
1511-#: selection:l10n.es.aeat.mod303.report,period:0
1512-msgid "December"
1513-msgstr ""
1514-
1515-#. module: l10n_es_aeat_mod303
1516-#: view:l10n.es.aeat.mod303.report:0
1517-msgid "Compensación"
1518-msgstr ""
1519-
1520-#. module: l10n_es_aeat_mod303
1521-#: view:l10n.es.aeat.mod303.report:0
1522-msgid "Ingreso"
1523-msgstr ""
1524-
1525-#. module: l10n_es_aeat_mod303
1526-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:175
1527-#, python-format
1528-msgid "AEAT Model is necessary"
1529-msgstr ""
1530-
1531-#. module: l10n_es_aeat_mod303
1532-#: selection:l10n.es.aeat.mod303.report,support_type:0
1533-msgid "DVD"
1534-msgstr ""
1535-
1536-#. module: l10n_es_aeat_mod303
1537-#: selection:l10n.es.aeat.mod303.report,state:0
1538-msgid "Draft"
1539-msgstr ""
1540-
1541-#. module: l10n_es_aeat_mod303
1542-#: field:l10n.es.aeat.mod303.report,company_vat:0
1543-msgid "VAT number"
1544-msgstr ""
1545-
1546-#. module: l10n_es_aeat_mod303
1547-#: field:l10n.es.aeat.mod303.report,diferencia:0
1548-msgid "Diferencia"
1549-msgstr ""
1550-
1551-#. module: l10n_es_aeat_mod303
1552-#: help:l10n.es.aeat.mod303.report,cuota_compensar:0
1553-msgid "Cuota a compensar de periodos anteriores"
1554-msgstr ""
1555-
1556-#. module: l10n_es_aeat_mod303
1557-#: selection:l10n.es.aeat.mod303.export_to_boe,state:0
1558-msgid "open"
1559-msgstr ""
1560-
1561-#. module: l10n_es_aeat_mod303
1562-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:43
1563-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:44
1564-#, python-format
1565-msgid "The identification (1) and income (2) must be 72 characters long"
1566-msgstr ""
1567-
1568-#. module: l10n_es_aeat_mod303
1569-#: field:l10n.es.aeat.mod303.report,resultado_liquidacion:0
1570-msgid "Resultado liquidación"
1571-msgstr ""
1572-
1573-#. module: l10n_es_aeat_mod303
1574-#: selection:l10n.es.aeat.mod303.report,period:0
1575-msgid "August"
1576-msgstr ""
1577-
1578-#. module: l10n_es_aeat_mod303
1579-#: selection:l10n.es.aeat.mod303.report,type:0
1580-msgid "Normal"
1581-msgstr ""
1582-
1583-#. module: l10n_es_aeat_mod303
1584-#: field:l10n.es.aeat.mod303.export_to_boe,state:0
1585-msgid "unknown"
1586-msgstr ""
1587-
1588-#. module: l10n_es_aeat_mod303
1589-#: selection:l10n.es.aeat.mod303.report,period:0
1590-msgid "June"
1591-msgstr ""
1592-
1593-#. module: l10n_es_aeat_mod303
1594-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:115
1595-#, python-format
1596-msgid "The vat records must be 749 characters long and are %s"
1597-msgstr ""
1598-
1599-#. module: l10n_es_aeat_mod303
1600-#: view:l10n.es.aeat.mod303.report:0
1601-msgid "AEAT 303 reports"
1602-msgstr ""
1603-
1604-#. module: l10n_es_aeat_mod303
1605-#: selection:l10n.es.aeat.mod303.report,period:0
1606-msgid "November"
1607-msgstr ""
1608-
1609-#. module: l10n_es_aeat_mod303
1610-#: selection:l10n.es.aeat.mod303.report,period:0
1611-msgid "October"
1612-msgstr ""
1613-
1614-#. module: l10n_es_aeat_mod303
1615-#: selection:l10n.es.aeat.mod303.report,period:0
1616-msgid "January"
1617-msgstr ""
1618-
1619-#. module: l10n_es_aeat_mod303
1620-#: selection:l10n.es.aeat.mod303.report,state:0
1621-msgid "Processed"
1622-msgstr ""
1623-
1624-#. module: l10n_es_aeat_mod303
1625-#: selection:l10n.es.aeat.mod303.report,period:0
1626-msgid "Third quarter"
1627-msgstr ""
1628-
1629-#. module: l10n_es_aeat_mod303
1630-#: field:l10n.es.aeat.mod303.report,representative_vat:0
1631-msgid "L.R. VAT number"
1632-msgstr ""
1633-
1634-#. module: l10n_es_aeat_mod303
1635-#: field:l10n.es.aeat.mod303.report,compensar:0
1636-msgid "Compensar"
1637-msgstr ""
1638-
1639-#. module: l10n_es_aeat_mod303
1640-#: field:l10n.es.aeat.mod303.report,cuota_compensar:0
1641-msgid "Cuotas a compensar"
1642-msgstr ""
1643-
1644-#. module: l10n_es_aeat_mod303
1645-#: field:l10n.es.aeat.mod303.report,type:0
1646-msgid "Statement Type"
1647-msgstr ""
1648-
1649-#. module: l10n_es_aeat_mod303
1650-#: field:l10n.es.aeat.mod303.report,period:0
1651-msgid "Period"
1652-msgstr ""
1653-
1654-#. module: l10n_es_aeat_mod303
1655-#: field:l10n.es.aeat.mod303.report,atribuible_estado:0
1656-msgid "Atribuible a la Administración"
1657-msgstr ""
1658-
1659-#. module: l10n_es_aeat_mod303
1660-#: field:l10n.es.aeat.mod303.report,fiscalyear_id:0
1661-msgid "Fiscal year"
1662-msgstr ""
1663-
1664-#. module: l10n_es_aeat_mod303
1665-#: selection:l10n.es.aeat.mod303.report,state:0
1666-msgid "Done"
1667-msgstr ""
1668-
1669-#. module: l10n_es_aeat_mod303
1670-#: model:ir.actions.act_window,name:l10n_es_aeat_mod303.action_l10n_es_aeat_mod303_report
1671-msgid "AEAT model 303"
1672-msgstr ""
1673-
1674-#. module: l10n_es_aeat_mod303
1675-#: view:l10n.es.aeat.mod303.report:0
1676-msgid "Importe"
1677-msgstr ""
1678-
1679-#. module: l10n_es_aeat_mod303
1680-#: selection:l10n.es.aeat.mod303.report,period:0
1681-msgid "Fourth quarter"
1682-msgstr ""
1683-
1684-#. module: l10n_es_aeat_mod303
1685-#: field:l10n.es.aeat.mod303.report,devolucion_mensual:0
1686-msgid "Devolución Mensual"
1687-msgstr ""
1688-
1689-#. module: l10n_es_aeat_mod303
1690-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:171
1691-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:187
1692-#, python-format
1693-msgid "The 303 report must be 1353 characters long and are %s"
1694-msgstr ""
1695-
1696-#. module: l10n_es_aeat_mod303
1697-#: selection:l10n.es.aeat.mod303.report,type:0
1698-msgid "Complementary"
1699-msgstr ""
1700-
1701-#. module: l10n_es_aeat_mod303
1702-#: field:l10n.es.aeat.mod303.report,total_devengado:0
1703-msgid "IVA devengado"
1704-msgstr ""
1705-
1706-#. module: l10n_es_aeat_mod303
1707-#: field:l10n.es.aeat.mod303.report,cuenta_ingreso_id:0
1708-msgid "CCC Ingreso"
1709-msgstr ""
1710-
1711-#. module: l10n_es_aeat_mod303
1712-#: help:l10n.es.aeat.mod303.report,representative_vat:0
1713-msgid "Legal Representative VAT number."
1714-msgstr ""
1715-
1716-#. module: l10n_es_aeat_mod303
1717-#: view:l10n.es.aeat.mod303.report:0
1718-msgid "Complementaria"
1719-msgstr ""
1720-
1721-#. module: l10n_es_aeat_mod303
1722-#: view:l10n.es.aeat.mod303.report:0
1723-#: field:l10n.es.aeat.mod303.report,resultado_casilla_46:0
1724-msgid "Resultado"
1725-msgstr ""
1726-
1727-#. module: l10n_es_aeat_mod303
1728-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:192
1729-#, python-format
1730-msgid "%s_report_%s.txt"
1731-msgstr ""
1732-
1733-#. module: l10n_es_aeat_mod303
1734-#: help:l10n.es.aeat.mod303.report,regularizacion_anual:0
1735-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."
1736-msgstr ""
1737-
1738-#. module: l10n_es_aeat_mod303
1739-#: field:l10n.es.aeat.mod303.report,total_deducir:0
1740-msgid "IVA a deducir"
1741-msgstr ""
1742-
1743-#. module: l10n_es_aeat_mod303
1744-#: selection:l10n.es.aeat.mod303.report,period:0
1745-msgid "April"
1746-msgstr ""
1747-
1748-#. module: l10n_es_aeat_mod303
1749-#: field:l10n.es.aeat.mod303.report,regularizacion_anual:0
1750-msgid "Regularización anual"
1751-msgstr ""
1752-
1753-#. module: l10n_es_aeat_mod303
1754-#: model:ir.actions.act_window,help:l10n_es_aeat_mod303.action_l10n_es_aeat_mod303_report
1755-msgid "Create and query AEAT Model 303 reports"
1756-msgstr ""
1757-
1758-#. module: l10n_es_aeat_mod303
1759-#: selection:l10n.es.aeat.mod303.report,support_type:0
1760-msgid "Telematics"
1761-msgstr ""
1762-
1763-#. module: l10n_es_aeat_mod303
1764-#: code:addons/l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py:147
1765-#, python-format
1766-msgid "CCC de ingreso no válido %s"
1767-msgstr ""
1768-
1769-#. module: l10n_es_aeat_mod303
1770-#: selection:l10n.es.aeat.mod303.report,period:0
1771-msgid "Second quarter"
1772-msgstr ""
1773-
1774-#. module: l10n_es_aeat_mod303
1775-#: model:ir.ui.menu,name:l10n_es_aeat_mod303.menu_aeat_mod303_report
1776-msgid "AEAT 303 model"
1777-msgstr ""
1778-
1779-#. module: l10n_es_aeat_mod303
1780-#: model:ir.model,name:l10n_es_aeat_mod303.model_l10n_es_aeat_mod303_export_to_boe
1781-msgid "Export Report to BOE Format"
1782-msgstr ""
1783-
1784-#. module: l10n_es_aeat_mod303
1785-#: code:addons/l10n_es_aeat_mod303/mod303.py:213
1786-#: code:addons/l10n_es_aeat_mod303/mod303.py:227
1787-#, python-format
1788-msgid "No hay actividad en el periodo seleccionado. Marque la casilla correspondinte"
1789-msgstr ""
1790-
1791-#. module: l10n_es_aeat_mod303
1792-#: selection:l10n.es.aeat.mod303.report,period:0
1793-msgid "May"
1794-msgstr ""
1795-
1796-#. module: l10n_es_aeat_mod303
1797-#: field:l10n.es.aeat.mod303.export_to_boe,data:0
1798-msgid "File"
1799-msgstr ""
1800-
1801-#. module: l10n_es_aeat_mod303
1802-#: help:l10n.es.aeat.mod303.report,resultado_casilla_46:0
1803-msgid "Atribuible a la Administración [40] - Cuotas a compensar [41] + Regularización anual [45]"
1804-msgstr ""
1805-
1806
1807=== removed directory 'l10n_es_aeat_mod303/migrations'
1808=== removed directory 'l10n_es_aeat_mod303/migrations/1.1'
1809=== removed file 'l10n_es_aeat_mod303/migrations/1.1/pre-migration.py'
1810--- l10n_es_aeat_mod303/migrations/1.1/pre-migration.py 2014-01-23 16:41:59 +0000
1811+++ l10n_es_aeat_mod303/migrations/1.1/pre-migration.py 1970-01-01 00:00:00 +0000
1812@@ -1,73 +0,0 @@
1813-# -*- coding: utf-8 -*-
1814-##############################################################################
1815-#
1816-# This program is free software: you can redistribute it and/or modify
1817-# it under the terms of the GNU Affero General Public License as
1818-# published by the Free Software Foundation, either version 3 of the
1819-# License, or (at your option) any later version.
1820-#
1821-# This program is distributed in the hope that it will be useful,
1822-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1823-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1824-# GNU Affero General Public License for more details.
1825-#
1826-# You should have received a copy of the GNU Affero General Public License
1827-# along with this program. If not, see <http://www.gnu.org/licenses/>.
1828-#
1829-##############################################################################
1830-
1831-def migrate(cr, version):
1832- if not version:
1833- return
1834- models = [
1835- "workflow.transition",
1836- "workflow.activity",
1837- "workflow",
1838- ]
1839- models_dict = {
1840- "workflow.transition": "wkf_transition",
1841- "workflow.activity": "wkf_activity",
1842- "workflow": "wkf",
1843- }
1844- # Delete workflow workitems
1845- cr.execute("""DELETE FROM
1846- wkf_workitem
1847- WHERE
1848- act_id
1849- IN
1850- (SELECT id FROM
1851- wkf_activity
1852- WHERE
1853- wkf_id
1854- IN
1855- (SELECT id FROM wkf
1856- WHERE wkf.osv='l10n.es.aeat.mod303.report'))
1857- """)
1858- # Delete workflow instances
1859- cr.execute("""DELETE FROM
1860- wkf_instance
1861- WHERE
1862- wkf_id
1863- IN
1864- (SELECT id FROM wkf
1865- WHERE wkf.osv='l10n.es.aeat.mod303.report')
1866- """)
1867- # Delete rest of the data
1868- for model in models:
1869- cr.execute("""DELETE FROM
1870- %(table)s
1871- WHERE
1872- id
1873- IN
1874- (SELECT res_id FROM ir_model_data AS imd
1875- WHERE imd.module='l10n_es_aeat_mod303'
1876- AND imd.model='%(model)s')
1877- """ % ({'table': models_dict[model], 'model': model}))
1878- # Delete XML IDs
1879- cr.execute("""DELETE FROM
1880- ir_model_data
1881- WHERE
1882- module='l10n_es_aeat_mod303'
1883- AND
1884- model IN %s
1885- """, (tuple(models),))
1886
1887=== removed file 'l10n_es_aeat_mod303/mod303.py'
1888--- l10n_es_aeat_mod303/mod303.py 2014-01-23 16:41:59 +0000
1889+++ l10n_es_aeat_mod303/mod303.py 1970-01-01 00:00:00 +0000
1890@@ -1,218 +0,0 @@
1891-# -*- encoding: utf-8 -*-
1892-##############################################################################
1893-#
1894-# This program is free software: you can redistribute it and/or modify
1895-# it under the terms of the GNU General Public License as published by
1896-# the Free Software Foundation, either version 3 of the License, or
1897-# (at your option) any later version.
1898-#
1899-# This program is distributed in the hope that it will be useful,
1900-# but WITHOUT ANY WARRANTY; without even the implied warranty of
1901-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1902-# GNU General Public License for more details.
1903-#
1904-# You should have received a copy of the GNU General Public License
1905-# along with this program. If not, see http://www.gnu.org/licenses/.
1906-#
1907-##############################################################################
1908-from datetime import datetime
1909-from dateutil.relativedelta import relativedelta
1910-from openerp.osv import orm, fields
1911-from openerp.tools.translate import _
1912-from openerp.addons.account.report.account_tax_report import tax_report
1913-
1914-class l10n_es_aeat_mod303_report(orm.Model):
1915- _inherit = "l10n.es.aeat.report"
1916- _name = "l10n.es.aeat.mod303.report"
1917- _description = "AEAT 303 Report"
1918-
1919- _columns = {
1920- 'company_partner_id': fields.related('company_id', 'partner_id',
1921- type='many2one', relation='res.partner', string='Partner',
1922- store=True),
1923- 'period': fields.selection(
1924- [('1T', 'First quarter'), ('2T', 'Second quarter'),
1925- ('3T', 'Third quarter'), ('4T', 'Fourth quarter'),
1926- ('01', 'January'), ('02', 'February'), ('03', 'March'),
1927- ('04', 'April'), ('05', 'May'), ('06', 'June'),
1928- ('07', 'July'), ('08', 'August'), ('09', 'September'),
1929- ('10', 'October'), ('11', 'November'), ('12', 'December')],
1930- 'Period', states={'done':[('readonly',True)]}),
1931- 'devolucion_mensual': fields.boolean("Devolución Mensual",
1932- help="Inscrito en el Registro de Devolución Mensual",
1933- states={'done':[('readonly',True)]}),
1934- 'complementaria': fields.boolean("Autoliquidación complementaria",
1935- states={'done':[('readonly',True)]}),
1936- 'contact_name': fields.char("Full name", size=40),
1937- 'total_devengado': fields.float("IVA devengado", readonly=True), # 21
1938- 'total_deducir': fields.float("IVA a deducir", readonly=True), # 37
1939- 'diferencia': fields.float("Diferencia", readonly=True,
1940- help="( IVA devengado - IVA deducible )"), # 38
1941- 'porcentaje_atribuible_estado' : fields.float("%",
1942- help="Los sujetos pasivos que tributen conjuntamente a la "
1943- "Administración del Estado y a las Diputaciones Forales "
1944- "del País Vasco o a la Comunidad Foral de Navarra, "
1945- "consignarán en esta casilla el porcentaje del volumen "
1946- "de operaciones en territorio común. Los demás sujetos "
1947- "pasivos consignarán en esta casilla el 100%",
1948- states={'done':[('readonly',True)]}), ## 39
1949- 'atribuible_estado': fields.float("Atribuible a la Administración",
1950- readonly=True), ## 40
1951- 'cuota_compensar': fields.float("Cuotas a compensar",
1952- help="Cuota a compensar de periodos anteriores",
1953- states={'done':[('readonly',True)]}), ## 41
1954- 'regularizacion_anual': fields.float("Regularización anual",
1955- help="En la última autoliquidación del año (la del período "
1956- "4T o mes 12) se hará constar, con el signo que "
1957- "corresponda, el resultado de la regularización anual "
1958- "conforme disponen las Leyes por las que se aprueban el "
1959- "Concierto Económico entre el Estado y la Comunidad "
1960- "Autónoma del País Vasco y el Convenio Económico entre "
1961- "el Estado y la Comunidad Foral de Navarra.""",
1962- states={'done':[('readonly',True)]}), ## 45
1963- 'resultado_casilla_46': fields.float("Resultado",
1964- help="Atribuible a la Administración [40] - Cuotas a compensar "
1965- "[41] + Regularización anual [45]""", readonly=True), # 46
1966- 'previus_result': fields.float("A deducir",
1967- help="Resultado de la anterior o anteriores del mismo "
1968- "concepto, ejercicio y periodo",
1969- states={'done':[('readonly',True)]}), # 47
1970- 'resultado_liquidacion': fields.float("Resultado liquidación",
1971- readonly=True), # 48
1972- 'compensar': fields.float("Compensar",
1973- states={'done':[('readonly',True)]}), # 49
1974- "devolver": fields.float("Devolver",
1975- states={'done':[('readonly',True)]}),
1976- "ingresar": fields.float("Ingresar",
1977- states={'done':[('readonly',True)]}),
1978- 'cuenta_devolucion_id': fields.many2one("res.partner.bank",
1979- "CCC devolución", states={'done':[('readonly',True)]}),
1980- 'cuenta_ingreso_id': fields.many2one("res.partner.bank",
1981- "CCC Ingreso", states={'done':[('readonly',True)]}),
1982- 'sin_actividad': fields.boolean("Sin actividad",
1983- states={'done':[('readonly',True)]}),
1984- }
1985-
1986- _defaults = {
1987- 'number' : '303',
1988- 'porcentaje_atribuible_estado': 100,
1989- 'cuota_compensar' : 0,
1990- }
1991-
1992- def _get_period(self, cr, uid, ids, context=None):
1993- period_obj = self.pool.get("account.period")
1994- quarter_dict = {
1995- "1T": 'first',
1996- "2T": 'second',
1997- "3T": 'third',
1998- "4T": 'fourth',
1999- }
2000- account_period_id = []
2001- for mod303 in self.browse(cr, uid, ids, context=context):
2002- fecha_ini = False
2003- fecha_fin = False
2004- dec_year = mod303.fiscalyear_id.date_start.split('-')[0]
2005- mod = mod303.period
2006- if mod >= '01' and mod <= '12':
2007- fecha_ini = datetime.strptime('%s-%s-01' %(dec_year, mod), '%Y-%m-%d')
2008- fecha_fin = fecha_ini + relativedelta(months=+1, days=-1)
2009- account_period_id = period_obj.search(cr, uid,
2010- [('date_start', '=', fecha_ini),
2011- ('date_stop', '=', fecha_fin)],
2012- context=context)
2013- elif mod in ('1T', '2T', '3T', '4T'):
2014- month = ((int(mod[0]) - 1) * 3) + 1
2015- fecha_ini = datetime.strptime('%s-%s-01' %(dec_year, month), '%Y-%m-%d')
2016- fecha_fin = fecha_ini + relativedelta(months=3, days=-1)
2017- account_period_id = period_obj.search(cr, uid,
2018- [('date_start', '=', fecha_ini),
2019- ('date_stop', '=', fecha_fin)],
2020- context=context)
2021- if not account_period_id:
2022- account_period_id = period_obj.search(cr, uid,
2023- [('quarter', '=', quarter_dict[mod])],
2024- context=context)
2025- if not account_period_id:
2026- raise orm.except_orm(_('El periodo seleccionado no coincide '
2027- 'con los periodos del ejercicio fiscal: '), dec_year)
2028- return account_period_id
2029-
2030- def _get_report_lines(self, cr, uid, ids, context=None):
2031- if isinstance(ids, list):
2032- id = ids[0]
2033- else:
2034- id = ids
2035- dict_code_values = {}
2036- for i in range(1, 51):
2037- dict_code_values["[%.2d]" %i] = 0
2038- mod303 = self.browse(cr, uid, id, context=context)
2039- generated_report = tax_report(cr, uid, "account.vat.declaration")
2040- generated_report.period_ids = self._get_period(cr, uid, [mod303.id],
2041- context=context)
2042- generated_report.display_detail = False
2043- try:
2044- lines = generated_report._get_lines('invoices',
2045- company_id=mod303.company_id.id)
2046- except TypeError:
2047- # Este error ocurre en la rama OCB, ya que se ha añadido en la
2048- # revisión 9599 un nuevo parámetro posicional al método.
2049- # Publicado como bug #1269965, pendiente de resolución, esto
2050- # es un parche temporal
2051- lines = generated_report._get_lines('invoices', False,
2052- company_id=mod303.company_id.id)
2053- ordered_lines = sorted(lines, key=lambda k: k['code'])
2054- for code in dict_code_values.keys():
2055- for line in ordered_lines:
2056- if code == line["code"]:
2057- dict_code_values[code] += line["tax_amount"]
2058- return dict_code_values
2059-
2060- def calculate(self, cr, uid, ids, context=None):
2061- for mod303 in self.browse(cr, uid, ids, context=context):
2062- report_lines = self._get_report_lines(cr, uid, mod303.id,
2063- context=context)
2064- regularizacion_anual = (mod303.regularizacion_anual if
2065- (mod303.period == "4T" or
2066- mod303.period == "12") else 0)
2067- total_devengado = report_lines.get("[21]")
2068- total_deducir = report_lines.get("[37]")
2069- atribuible_estado = ((total_devengado - total_deducir) *
2070- mod303.porcentaje_atribuible_estado / 100)
2071- casilla_46 = (atribuible_estado - mod303.cuota_compensar +
2072- regularizacion_anual)
2073- previus_result = mod303.previus_result if mod303.complementaria else 0
2074- resultado_liquidacion = casilla_46 - previus_result
2075- vals = {
2076- 'total_devengado': total_devengado,
2077- 'total_deducir': total_deducir,
2078- 'diferencia': total_devengado - total_deducir,
2079- 'atribuible_estado': atribuible_estado,
2080- 'resultado_casilla_46': casilla_46,
2081- 'resultado_liquidacion': resultado_liquidacion,
2082- 'compensar': abs(resultado_liquidacion) if resultado_liquidacion < 0 and mod303.devolver == 0 else 0,
2083- 'ingresar': resultado_liquidacion if resultado_liquidacion > 0 else 0
2084- }
2085- if (mod303.regularizacion_anual > 0 and not
2086- (mod303.period == "4T" and mod303.period == "12")):
2087- self.log(cr, uid, mod303.id,
2088- _("El valor añadido para la regularizacion anual no se ha "
2089- "tenido en cuenta por no ser un periodo de cierre (12 o "
2090- "4T)"), context=context)
2091- self.write(cr, uid, mod303.id, vals, context=context)
2092- return True
2093-
2094- def button_confirm(self, cr, uid, ids, context=None):
2095- """Check its records"""
2096- msg = ""
2097- for mod303 in self.browse(cr, uid, ids, context=context):
2098- if mod303.ingresar > 0 and not mod303.cuenta_ingreso_id:
2099- msg = _('Seleccione una cuenta para ingresar el importe')
2100- if mod303.devolver > 0 and not mod303.cuenta_devolucion_id:
2101- msg = _('Seleccione una cuenta para realizar la devolución')
2102- if mod303.resultado_liquidacion == 0 and not mod303.sin_actividad:
2103- msg = _("No hay actividad en el periodo seleccionado. "
2104- "Marque la casilla correspondinte")
2105- if msg:
2106- raise orm.except_orm("", msg)
2107- return super(l10n_es_aeat_mod303_report, self).button_confirm(cr, uid,
2108- ids, context=context)
2109
2110=== removed file 'l10n_es_aeat_mod303/mod303_view.xml'
2111--- l10n_es_aeat_mod303/mod303_view.xml 2014-01-23 16:41:59 +0000
2112+++ l10n_es_aeat_mod303/mod303_view.xml 1970-01-01 00:00:00 +0000
2113@@ -1,112 +0,0 @@
2114-<?xml version="1.0" encoding="utf-8"?>
2115-<openerp>
2116- <data>
2117- <!-- Tree view -->
2118- <record id="view_l10n_es_aeat_mod303_report_tree" model="ir.ui.view">
2119- <field name="name">l10n_es.aeat.mod303.report.tree</field>
2120- <field name="model">l10n.es.aeat.mod303.report</field>
2121- <field name="inherit_id" ref="l10n_es_aeat.view_l10n_es_aeat_report_tree"/>
2122- <field name="arch" type="xml">
2123- <tree position="attributes">
2124- <attribute name="string">AEAT 303 reports</attribute>=
2125- </tree>
2126- <field name="fiscalyear_id" position="after">
2127- <field name="period"/>
2128- <field name="total_devengado"/>
2129- <field name="total_deducir"/>
2130- <field name="porcentaje_atribuible_estado"/>
2131- <field name="resultado_liquidacion"/>
2132- </field>
2133- </field>
2134- </record>
2135-
2136- <!-- Form view -->
2137- <record id="view_l10n_es_aeat_mod303_report_form" model="ir.ui.view">
2138- <field name="name">l10n_es.aeat.mod303.report.form</field>
2139- <field name="model">l10n.es.aeat.mod303.report</field>
2140- <field name="inherit_id" ref="l10n_es_aeat.view_l10n_es_aeat_report_form"/>
2141- <field name="arch" type="xml">
2142- <button name="%(l10n_es_aeat.action_wizard_aeat_export)d" position="attributes">
2143- <attribute name="name">%(action_wizard_aeat_mod303_export)d</attribute>
2144- </button>
2145- <field name="fiscalyear_id" position="after">
2146- <field name="period" required="True"/>
2147- </field>
2148- <field name="calculation_date" position="after">
2149- <field name="devolucion_mensual"/>
2150- <field name="complementaria"/>
2151- <field name="sin_actividad"/>
2152- </field>
2153- <group string="Declaración" position="after">
2154- <group string="Complementaria" attrs="{'invisible': [('complementaria', '=', False)]}" colspan="4">
2155- <field name="previus_result"
2156- attrs="{'required': [('complementaria', '=', True)]}" />
2157- <field name="previous_number"
2158- attrs="{'required': [('complementaria', '=', True)]}"/>
2159- </group>
2160- <group string="Resultado" colspan="4" col="6">
2161- <group>
2162- <field name="total_devengado"/>
2163- <field name="total_deducir"/>
2164- <field name="diferencia"/>
2165- </group>
2166- <group>
2167- <field name="porcentaje_atribuible_estado"/>
2168- <field name="atribuible_estado"/>
2169- <field name="cuota_compensar"/>
2170- </group>
2171- <group>
2172- <field name="regularizacion_anual"/>
2173- <field name="resultado_casilla_46"/>
2174- <field name="resultado_liquidacion"/>
2175- </group>
2176- </group>
2177- <group attrs="{'invisible':[('resultado_liquidacion', '=', 0)]}">
2178- <field name="company_partner_id" invisible="1"/>
2179- <group colspan="6" col="6" attrs="{'invisible': ['|', ('resultado_liquidacion', '>', 0),('state', '=', 'draft')]}">
2180- <group colspan="2" string="Compensación">
2181- <field name="compensar" string="Importe"/>
2182- </group>
2183- <group string="Devolución" col="4">
2184- <field name="devolver" colspan="2" string="Importe"/>
2185- <field name="cuenta_devolucion_id" colspan="2" attrs="{'required': [('devolver', '>', 0)]}" domain="[('partner_id', '=', company_partner_id)]"/>
2186- </group>
2187- </group>
2188- <group string="Ingreso" attrs="{'invisible': ['|', ('resultado_liquidacion', '&lt;', 0), ('state','=','draft')]}" col="4">
2189- <field name="ingresar" string="Importe"/>
2190- <field name="cuenta_ingreso_id" attrs="{'required': [('ingresar', '>', 0)]}" domain="[('partner_id', '=', company_partner_id)]"/>
2191- </group>
2192- </group>
2193- </group>
2194- </field>
2195- </record>
2196-
2197- <!-- Window action -->
2198- <record id="action_l10n_es_aeat_mod303_report" model="ir.actions.act_window">
2199- <field name="name">AEAT model 303</field>
2200- <field name="res_model">l10n.es.aeat.mod303.report</field>
2201- <field name="view_type">form</field>
2202- <field name="view_mode">tree,form</field>
2203- <field name="help">Create and query AEAT Model 303 reports</field>
2204- </record>
2205- <record model="ir.actions.act_window.view" id="action_l10n_es_aeat_mod303_report_tree">
2206- <field name="sequence" eval="2"/>
2207- <field name="view_mode">tree</field>
2208- <field name="view_id" ref="view_l10n_es_aeat_mod303_report_tree"/>
2209- <field name="act_window_id" ref="action_l10n_es_aeat_mod303_report"/>
2210- </record>
2211- <record model="ir.actions.act_window.view" id="action_l10n_es_aeat_mod303_report_form">
2212- <field name="sequence" eval="3"/>
2213- <field name="view_mode">form</field>
2214- <field name="view_id" ref="view_l10n_es_aeat_mod303_report_form"/>
2215- <field name="act_window_id" ref="action_l10n_es_aeat_mod303_report"/>
2216- </record>
2217-
2218- <!-- ### MENU ACCESS ### -->
2219- <menuitem id="menu_aeat_mod303_report"
2220- parent="l10n_es_aeat.menu_root_aeat"
2221- action="action_l10n_es_aeat_mod303_report"
2222- sequence="303"
2223- name="AEAT 303 model"/>
2224- </data>
2225-</openerp>
2226
2227=== added file 'l10n_es_aeat_mod303/modelo303.py'
2228--- l10n_es_aeat_mod303/modelo303.py 1970-01-01 00:00:00 +0000
2229+++ l10n_es_aeat_mod303/modelo303.py 2014-04-16 11:51:06 +0000
2230@@ -0,0 +1,351 @@
2231+# -*- encoding: utf-8 -*-
2232+##############################################################################
2233+#
2234+# This program is free software: you can redistribute it and/or modify
2235+# it under the terms of the GNU General Public License as published by
2236+# the Free Software Foundation, either version 3 of the License, or
2237+# (at your option) any later version.
2238+#
2239+# This program is distributed in the hope that it will be useful,
2240+# but WITHOUT ANY WARRANTY; without even the implied warranty of
2241+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2242+# GNU General Public License for more details.
2243+#
2244+# You should have received a copy of the GNU General Public License
2245+# along with this program. If not, see http://www.gnu.org/licenses/.
2246+#
2247+##############################################################################
2248+from datetime import datetime
2249+import re
2250+from dateutil.relativedelta import relativedelta
2251+
2252+from openerp.osv import orm, fields
2253+from openerp.tools.translate import _
2254+from openerp.tools.safe_eval import safe_eval
2255+from openerp.addons.account.report.account_tax_report import tax_report
2256+
2257+
2258+###### 303 templates ######
2259+
2260+class l10n_es_aeat_modelo303_template(orm.Model):
2261+ _name = "l10n.es.aeat.modelo303.template"
2262+ _description = "AEAT modelo 303 template"
2263+
2264+ _columns = {
2265+ 'name': fields.char('Nombre', size=256, required=True),
2266+ 'date': fields.date("Fecha entrada en vigor"),
2267+ 'template': fields.text('Template', readonly=True)
2268+ }
2269+
2270+l10n_es_aeat_modelo303_template()
2271+
2272+class l10n_es_aeat_modelo303_casilla_template(orm.Model):
2273+ _name = "l10n.es.aeat.modelo303.casilla.template"
2274+ _description = "Casillas AEAT modelo 303 template"
2275+
2276+ _columns = {
2277+ 'modelo303_id': fields.many2one('l10n.es.aeat.modelo303.template', 'Modelo 303', required=True, select=True),
2278+ 'name': fields.char('Nombre', size=256, required=True),
2279+ 'code': fields.char('Casilla', size=16, required=True),
2280+ 'tax_code_ids': fields.many2many('account.tax.code.template', 'rel_casilla_tax_codes_template', 'casilla_template_id', 'tax_code_template_id'),
2281+ 'evaluate_as': fields.char("Evaluar como", 128, required=False),
2282+ 'default_value': fields.float("Valor por defecto", required=False),
2283+ }
2284+
2285+ _defaults = {
2286+ 'evaluate_as': '',
2287+ }
2288+
2289+ _sql_constraints = [('casillas_aeat_code_fiscalyear_unique', 'unique(code, modelo303_id)', 'Las casillas deben ser unicas por modelo.')]
2290+
2291+l10n_es_aeat_modelo303_casilla_template()
2292+
2293+###### 303 objects #######
2294+
2295+class l10n_es_aeat_modelo303(orm.Model):
2296+ _name = "l10n.es.aeat.modelo303"
2297+ _description = "AEAT modelo 303"
2298+
2299+ _columns = {
2300+ 'name': fields.char('Nombre', size=256, required=True),
2301+ 'date': fields.date("Fecha entrada en vigor"),
2302+ 'template': fields.text('Template', readonly=True)
2303+ }
2304+
2305+l10n_es_aeat_modelo303()
2306+
2307+class l10n_es_aeat_modelo303_casilla(orm.Model):
2308+ _name = "l10n.es.aeat.modelo303.casilla"
2309+ _description = "Casillas AEAT modelo 303"
2310+
2311+ _columns = {
2312+ 'modelo303_id': fields.many2one('l10n.es.aeat.modelo303', 'Modelo 303', required=True, select=True),
2313+ 'name': fields.char('Nombre', size=256, required=True),
2314+ 'code': fields.char('Casilla', size=16, required=True),
2315+ 'tax_code_ids': fields.many2many('account.tax.code', 'rel_casilla_tax_codes', 'casilla_id', 'tax_code_id'),
2316+ 'evaluate_as': fields.char("Evaluar como", 128, required=False),
2317+ 'default_value': fields.float("Valor por defecto", required=False),
2318+ }
2319+
2320+ _defaults = {
2321+ 'evaluate_as': '',
2322+ }
2323+
2324+ _sql_constraints = [('casillas_aeat_code_fiscalyear_unique', 'unique(code, modelo303_id)', 'Las casillas deben ser unicas por modelo.')]
2325+
2326+ def name_get(self, cr, uid, ids, context=None):
2327+ if isinstance(ids, (int, long)):
2328+ ids = [ids]
2329+ if not ids:
2330+ return []
2331+ if isinstance(ids, (int, long)):
2332+ ids = [ids]
2333+ reads = self.read(cr, uid, ids, ['name','code', 'evaluate_as'], context, load='_classic_write')
2334+ return [(x['id'], x['name'] + (x['evaluate_as'] and (" [" + x['evaluate_as'] + ']') or '')) \
2335+ for x in reads]
2336+
2337+ def get_dependency_codes(self, cr, uid, ids, context=None):
2338+ result = {}
2339+ casilla_code_re = re.compile("c([0-9a-zA-Z]+)")
2340+ for casilla in self.browse(cr, uid, ids, context):
2341+ dep_codes = []
2342+ if casilla.evaluate_as:
2343+ dep_codes = casilla_code_re.findall(casilla.evaluate_as)
2344+ result[casilla.id] = dep_codes
2345+ return result
2346+
2347+l10n_es_aeat_modelo303_casilla()
2348+
2349+class l10n_es_aeat_modelo303_valor_casilla(orm.Model):
2350+ _name = "l10n.es.aeat.modelo303.valor.casilla"
2351+ _description = "AEAT modelo 303 valor casilla"
2352+ _order = 'code asc'
2353+
2354+ _columns = {
2355+ 'report_id': fields.many2one("l10n.es.aeat.modelo303.report", "Report", required=True),
2356+ 'casilla_id': fields.many2one("l10n.es.aeat.modelo303.casilla", "Casilla", required=True), # 1-1
2357+ 'code': fields.char('Casilla', size=16, required=True),
2358+ 'valor': fields.float("Valor"),
2359+ }
2360+ _sql_constraints = [('aeat_modelo303_report_casilla_unique', 'unique(report_id, casilla_id)',
2361+ 'Una casilla solo puede tener un valor')]
2362+
2363+l10n_es_aeat_modelo303_valor_casilla()
2364+
2365+
2366+class l10n_es_aeat_modelo303_report(orm.Model):
2367+ _inherit = "l10n.es.aeat.report"
2368+ _name = "l10n.es.aeat.modelo303.report"
2369+ _description = "AEAT modelo 303 report"
2370+
2371+ def _get_fiscalyear_id(self, cr, uid, context=None):
2372+ fiscalyear_obj = self.pool.get("account.fiscalyear")
2373+ today = datetime.today().date()
2374+ return fiscalyear_obj.search(cr, uid,
2375+ ['&', ('date_start', '<=', today),
2376+ ('date_stop', '>=', today)])[0] or False
2377+
2378+
2379+ def _get_modelo303_id(self, cr, uid, context=None):
2380+ modelo303_obj = self.pool.get("l10n.es.aeat.modelo303")
2381+ fiscalyear_obj = self.pool.get("account.fiscalyear")
2382+
2383+ mod303_id = None
2384+ mod303_date = None
2385+ fiscalyear_ids = self._get_fiscalyear_id(cr, uid, context)
2386+ if fiscalyear_ids:
2387+ fiscalyear = fiscalyear_obj.browse(cr, uid, fiscalyear_ids)
2388+ mod303_ids = modelo303_obj.search(cr, uid,
2389+ [('date', '<=', fiscalyear.date_start)])
2390+ if mod303_ids:
2391+ for m303 in modelo303_obj.browse(cr, uid, mod303_ids):
2392+ if not mod303_date or m303.date >= mod303_date:
2393+ mod303_id = m303.id
2394+ mod303_date = m303.date
2395+
2396+ return mod303_id or False
2397+
2398+ def _get_period(self, cr, uid, ids, context=None):
2399+ period_obj = self.pool.get("account.period")
2400+ account_period_id = []
2401+ for mod303 in self.browse(cr, uid, ids, context=context):
2402+ account_period_id.append(mod303.period_start_id.id)
2403+ if mod303.period_end_id:
2404+ if mod303.period_start_id.date_start > mod303.period_end_id.date_start:
2405+ raise orm.except_orm('', _('El periodo inicial debe ser inferior o igual periodo final.'))
2406+
2407+ if mod303.period_start_id.id <> mod303.period_end_id.id:
2408+ account_period_id.append(mod303.period_end_id.id)
2409+ account_period_id += period_obj.search(cr, uid,
2410+ [('date_start', '>', mod303.period_start_id.date_stop),
2411+ ('date_stop', '<', mod303.period_end_id.date_start),
2412+ ('id', 'not in', account_period_id),
2413+ ('special', '=', False),],
2414+ context=context)
2415+ return account_period_id
2416+
2417+ def _get_valores_casillas(self, cr, uid, ids, modelo303_id, default_values=None, context=None):
2418+ if default_values == None:
2419+ default_values = {}
2420+ casillas_obj = self.pool.get('l10n.es.aeat.modelo303.casilla')
2421+ tax_code_obj = self.pool.get('account.tax.code')
2422+ casillas = {}
2423+ periodos = self._get_period(cr, uid, ids, context)
2424+ casillas_ids = casillas_obj.search(cr, uid,
2425+ [('modelo303_id', '=', modelo303_id)],
2426+ context=context)
2427+
2428+ # Calculamos el valor de las casillas desde los impuestos
2429+ for c in casillas_obj.browse(cr, uid, casillas_ids):
2430+ if c.code in default_values:
2431+ casillas[c.code] = default_values[c.code]
2432+ else:
2433+ casillas[c.code] = 0.0
2434+ for tax_code in c.tax_code_ids:
2435+ for periodo in periodos:
2436+ ctx = {'period_id': periodo}
2437+ tax_code_period_sum = tax_code_obj._sum_period(cr, uid, [tax_code.id], '', {}, context=ctx)
2438+ casillas[c.code] += tax_code_period_sum[tax_code.id]
2439+
2440+ # Calculamos el valor de las casillas con formulas
2441+ for c in casillas_obj.browse(cr, uid, casillas_ids):
2442+ if c.evaluate_as:
2443+ self._calcular_casilla(cr, uid, modelo303_id, c.code, casillas, default_values, context)
2444+
2445+ return casillas
2446+
2447+ def _calcular_casilla(self, cr, uid, modelo303_id, code, valores_casillas, default_values=None, context=None):
2448+
2449+ if default_values == None:
2450+ default_values = {}
2451+
2452+ casillas_obj = self.pool.get('l10n.es.aeat.modelo303.casilla')
2453+ casillas_id = casillas_obj.search(cr, uid, [('modelo303_id', '=', modelo303_id),
2454+ ('code', '=', code)])
2455+ if not casillas_id:
2456+ valores_casillas[code] = 0.0
2457+ else:
2458+ casilla = casillas_obj.browse(cr, uid, casillas_id)[0]
2459+ if casilla and casilla.evaluate_as:
2460+ dep_codes = casillas_obj.get_dependency_codes(cr, uid, [casilla.id])[casilla.id]
2461+ for dep_code in dep_codes:
2462+ if dep_code not in valores_casillas or valores_casillas[dep_code] == 0 and dep_code != code:
2463+ self._calcular_casilla(cr, uid, modelo303_id, dep_code, valores_casillas, default_values, context)
2464+
2465+ if casilla.code in default_values:
2466+ valores_casillas[casilla.code] = default_values[casilla.code]
2467+ else:
2468+ eval_ctx = {}
2469+ for k, v in valores_casillas.iteritems():
2470+ eval_ctx['c%s' % k] = v
2471+ valores_casillas[casilla.code] = safe_eval(casilla.evaluate_as, eval_ctx)
2472+
2473+ _columns = {
2474+ 'company_partner_id': fields.related('company_id', 'partner_id',
2475+ type='many2one', relation='res.partner', string='Partner',
2476+ store=True),
2477+ 'period': fields.selection(
2478+ [('1T', 'First quarter'), ('2T', 'Second quarter'),
2479+ ('3T', 'Third quarter'), ('4T', 'Fourth quarter'),
2480+ ('01', 'January'), ('02', 'February'), ('03', 'March'),
2481+ ('04', 'April'), ('05', 'May'), ('06', 'June'),
2482+ ('07', 'July'), ('08', 'August'), ('09', 'September'),
2483+ ('10', 'October'), ('11', 'November'), ('12', 'December')],
2484+ 'Period', states={'done':[('readonly',True)]}),
2485+ 'period_start_id': fields.many2one("account.period", 'Period start', states={'done':[('readonly',True)]}),
2486+ 'period_end_id': fields.many2one("account.period", 'Period end', states={'done':[('readonly',True)]}),
2487+ 'devolucion_mensual': fields.boolean("Devolución Mensual",
2488+ help="Inscrito en el Registro de Devolución Mensual",
2489+ states={'done':[('readonly',True)]}),
2490+ 'sujeto_a_cdc': fields.boolean("Sujeto a criterio de caja",
2491+ help="¿Ha optado por el régimen especial del criterio de Caja (art. 163 undecies LIVA)?",
2492+ states={'done':[('readonly',True)]}),
2493+ 'destinatario_operaciones_cdc': fields.boolean("Destinatario de operaciones con criterio de caja",
2494+ help="¿Es destinatario de operaciones a las que se aplique el régimen especial del criterio de caja?",
2495+ states={'done':[('readonly',True)]}),
2496+ 'complementaria': fields.boolean("Autoliquidación complementaria",
2497+ states={'done':[('readonly',True)]}),
2498+ 'cuenta_devolucion_id': fields.many2one("res.partner.bank",
2499+ "CCC devolución", states={'done':[('readonly',True)]}),
2500+ 'cuenta_ingreso_id': fields.many2one("res.partner.bank",
2501+ "CCC Ingreso", states={'done':[('readonly',True)]}),
2502+ 'sin_actividad': fields.boolean("Sin actividad",
2503+ states={'done':[('readonly',True)]}),
2504+ 'valor_casilla_ids': fields.one2many("l10n.es.aeat.modelo303.valor.casilla", "report_id", "Valores Casillas",
2505+ states={'done':[('readonly',True)]}), # 1-1
2506+ 'modelo303_id': fields.many2one("l10n.es.aeat.modelo303", "Modelo 303",
2507+ states={'done':[('readonly',True)]}),
2508+ }
2509+
2510+ _defaults = {
2511+ 'number' : '303',
2512+ 'fiscalyear_id': _get_fiscalyear_id,
2513+ 'modelo303_id': _get_modelo303_id
2514+ }
2515+
2516+
2517+ def calculate(self, cr, uid, ids, context=None):
2518+ casilla_obj = self.pool.get('l10n.es.aeat.modelo303.casilla')
2519+ valor_casilla_obj = self.pool.get('l10n.es.aeat.modelo303.valor.casilla')
2520+ for report303 in self.browse(cr, uid, ids, context=context):
2521+
2522+ # Eliminamos los valores anteriores
2523+ valor_casillas_ids = [valor_casilla.id for valor_casilla in report303.valor_casilla_ids]
2524+ if valor_casillas_ids:
2525+ valor_casilla_obj.unlink(cr, uid, valor_casillas_ids)
2526+
2527+ # Valores por defecto
2528+ default_values = {}
2529+ casilla_ids = casilla_obj.search(cr, uid, [('modelo303_id','=', report303.modelo303_id.id)])
2530+ for c in casilla_obj.browse(cr, uid, casilla_ids):
2531+ if c.default_value and not c.tax_code_ids and not c.evaluate_as:
2532+ default_values[c.code] = c.default_value
2533+
2534+ valores_casillas = self._get_valores_casillas(cr, uid, ids,
2535+ report303.modelo303_id.id,
2536+ default_values=default_values,
2537+ context=context)
2538+ for casilla_code in valores_casillas.keys():
2539+ casilla_ids = casilla_obj.search(cr, uid, # TODO: *1 optimizar esto...
2540+ [('code', '=', casilla_code),
2541+ ('modelo303_id','=',
2542+ report303.modelo303_id.id)])
2543+ if casilla_ids:
2544+ valor_casilla = {
2545+ 'valor': valores_casillas[casilla_code],
2546+ 'code': casilla_code,
2547+ 'casilla_id': casilla_ids[0], # TODO: *1 optimizar esto...
2548+ 'report_id': report303.id,
2549+ }
2550+ valor_casilla_obj.create(cr, uid, valor_casilla)
2551+ return True
2552+
2553+ def button_calculate_formulas(self, cr, uid, ids, context=None):
2554+ valor_casilla_obj = self.pool.get('l10n.es.aeat.modelo303.valor.casilla')
2555+ for report303 in self.browse(cr, uid, ids, context=context):
2556+
2557+ default_values = {}
2558+ for casilla_valor in report303.valor_casilla_ids:
2559+ if not casilla_valor.casilla_id.evaluate_as:
2560+ default_values[casilla_valor.code] = casilla_valor.valor
2561+ valores_casillas = self._get_valores_casillas(cr, uid, ids,
2562+ report303.modelo303_id.id,
2563+ default_values=default_values,
2564+ context=context)
2565+ for casilla_valor in report303.valor_casilla_ids:
2566+ if casilla_valor.casilla_id.evaluate_as:
2567+ value = {'valor': valores_casillas[casilla_valor.code]}
2568+ valor_casilla_obj.write(cr, uid, [casilla_valor.id], value)
2569+
2570+ return True
2571+
2572+ def button_confirm(self, cr, uid, ids, context=None):
2573+ """Check its records"""
2574+ msg = ""
2575+ for modelo303 in self.browse(cr, uid, ids, context=context):
2576+ if modelo303.devolucion_mensual and modelo303.period in ('1T', '2T', '3T', '4T'):
2577+ msg = _('Inscrito en el Registro de devolución mensual (Art. 30 RIVA). No está permitido para periodos 1T,2T,3T o 4T.')
2578+ if msg:
2579+ raise orm.except_orm("", msg)
2580+ return super(l10n_es_aeat_modelo303_report, self).button_confirm(cr, uid,
2581+ ids, context=context)
2582
2583=== added file 'l10n_es_aeat_mod303/modelo303_casillas.xml'
2584--- l10n_es_aeat_mod303/modelo303_casillas.xml 1970-01-01 00:00:00 +0000
2585+++ l10n_es_aeat_mod303/modelo303_casillas.xml 2014-04-16 11:51:06 +0000
2586@@ -0,0 +1,967 @@
2587+<?xml version="1.0" encoding="utf-8"?>
2588+<openerp>
2589+ <data noupdate="0">
2590+
2591+ <!-- Modelo 303 2013 -->
2592+ <record id="modelo_303_2013" model="l10n.es.aeat.modelo303.template">
2593+ <field name="name">Modelo 303 2013</field>
2594+ <field name="date">1900-01-01</field>
2595+ <!--
2596+ formato de linea csv:
2597+ longitud,num_decimanles o 0 si tipo = a,tipo_formato,valor a evaluar
2598+ a: alfanumerico
2599+ n: numerico
2600+ -->
2601+ <field name="template">
2602+ 2,0,a,'&lt;T'
2603+ 3,0,a,'303'
2604+ 2,0,a,'01'
2605+ 1,0,a,'&gt;'
2606+ 1,0,a,' '
2607+ 1,0,a,'I' if c48 >= 0 else 'C'
2608+ 9,0,a,nif
2609+ 30,0,a,razon_social
2610+ 15,0,a,' ' * 15
2611+ 1,0,a,devolucion_mensual
2612+ 4,0,a,ejercicio
2613+ 2,0,a,periodo
2614+ 15,2,n,c01
2615+ 3,2,n,c02
2616+ 15,2,n,c03
2617+ 15,2,n,c04
2618+ 3,2,n,c05
2619+ 15,2,n,c06
2620+ 15,2,n,c07
2621+ 3,2,n,c08
2622+ 15,2,n,c09
2623+ 15,2,n,c10
2624+ 3,2,n,c11
2625+ 15,2,n,c12
2626+ 15,2,n,c13
2627+ 3,2,n,c14
2628+ 15,2,n,c15
2629+ 15,2,n,c16
2630+ 3,2,n,c17
2631+ 15,2,n,c18
2632+ 15,2,n,c19
2633+ 15,2,n,c20
2634+ 15,2,n,c21
2635+ 15,2,n,c22
2636+ 15,2,n,c23
2637+ 15,2,n,c24
2638+ 15,2,n,c25
2639+ 15,2,n,c26
2640+ 15,2,n,c27
2641+ 15,2,n,c28
2642+ 15,2,n,c29
2643+ 15,2,n,c30
2644+ 15,2,n,c31
2645+ 15,2,n,c32
2646+ 15,2,n,c33
2647+ 15,2,n,c34
2648+ 15,2,n,c35
2649+ 15,2,n,c36
2650+ 15,2,n,c37
2651+ 15,2,n,c38
2652+ 3,2,n,c39
2653+ 15,2,n,c40
2654+ 15,2,n,c41
2655+ 15,2,n,c42
2656+ 15,2,n,c43
2657+ 15,2,n,c44
2658+ 15,2,n,c45
2659+ 15,2,n,c46
2660+ 15,2,n,c47
2661+ 15,2,n,c48
2662+ 15,2,n,c49
2663+ 1,0,a,sin_actividad
2664+ 15,2,n,c50
2665+ 4,0,n,cc_ingreso_entidad
2666+ 4,0,n,cc_ingreso_oficina
2667+ 2,0,n,cc_ingreso_dc
2668+ 10,0,n,cc_ingreso_num
2669+ 1,0,a,'0'
2670+ 15,2,n,cI
2671+ 4,0,n,cc_devolucion_entidad
2672+ 4,0,n,cc_devolucion_oficina
2673+ 2,0,n,cc_devolucion_dc
2674+ 10,0,n,cc_devolucion_num
2675+ 1,0,a,complementaria
2676+ 13,0,a,numero_justificante
2677+ 400,0,a,' '*400
2678+ 16,0,a,localidad
2679+ 2,0,a,dia
2680+ 10,0,a,mes
2681+ 4,0,a,any
2682+ 9,0,a,'&lt;/T30301&gt;'
2683+ 2,0,a,clrf
2684+ </field>
2685+ </record>
2686+
2687+ <!-- Casillas modelo 303 2013 -->
2688+ <!-- IVA DEVENGADO -->
2689+ <!-- 4% -->
2690+ <record id="modelo_303_2013_casilla_01" model="l10n.es.aeat.modelo303.casilla.template">
2691+ <field name="name">IVA devengado - Régimen general - Base imponible 4%</field>
2692+ <field name="code">01</field>
2693+ <field name="modelo303_id" ref="modelo_303_2013"/>
2694+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_01')])]"/>
2695+ </record>
2696+ <record id="modelo_303_2013_casilla_02" model="l10n.es.aeat.modelo303.casilla.template">
2697+ <field name="name">IVA devengado - Régimen general - Tipo 4%</field>
2698+ <field name="code">02</field>
2699+ <field name="modelo303_id" ref="modelo_303_2013"/>
2700+ <field name="evaluate_as">c03 / c01 * 100.0 if c01 else 0.0</field>
2701+ </record>
2702+ <record id="modelo_303_2013_casilla_03" model="l10n.es.aeat.modelo303.casilla.template">
2703+ <field name="name">IVA devengado - Régimen general - Cuota 4%</field>
2704+ <field name="code">03</field>
2705+ <field name="modelo303_id" ref="modelo_303_2013"/>
2706+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_03')])]"/>
2707+ </record>
2708+ <!-- 10% -->
2709+ <record id="modelo_303_2013_casilla_04" model="l10n.es.aeat.modelo303.casilla.template">
2710+ <field name="name">IVA devengado - Régimen general - Base imponible 10%</field>
2711+ <field name="code">04</field>
2712+ <field name="modelo303_id" ref="modelo_303_2013"/>
2713+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_04_10')])]"/>
2714+ </record>
2715+ <record id="modelo_303_2013_casilla_05" model="l10n.es.aeat.modelo303.casilla.template">
2716+ <field name="name">IVA devengado - Régimen general - Tipo 10%</field>
2717+ <field name="code">05</field>
2718+ <field name="modelo303_id" ref="modelo_303_2013"/>
2719+ <field name="evaluate_as">c06 / c04 * 100.0 if c04 else 0</field>
2720+ </record>
2721+ <record id="modelo_303_2013_casilla_06" model="l10n.es.aeat.modelo303.casilla.template">
2722+ <field name="name">IVA devengado - Régimen general - Cuota 10%</field>
2723+ <field name="code">06</field>
2724+ <field name="modelo303_id" ref="modelo_303_2013"/>
2725+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_06_10')])]"/>
2726+ </record>
2727+ <!-- 21% -->
2728+ <record id="modelo_303_2013_casilla_07" model="l10n.es.aeat.modelo303.casilla.template">
2729+ <field name="name">IVA devengado - Régimen general - Base imponible 21%</field>
2730+ <field name="code">07</field>
2731+ <field name="modelo303_id" ref="modelo_303_2013"/>
2732+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_07_21'), ref('l10n_es.iva_pymes_dev_base_isp'), ref('l10n_es.iva_pymes_dev_base_intra_serv')])]"/>
2733+ </record>
2734+ <record id="modelo_303_2013_casilla_08" model="l10n.es.aeat.modelo303.casilla.template">
2735+ <field name="name">IVA devengado - Régimen general - Tipo 21%</field>
2736+ <field name="code">08</field>
2737+ <field name="modelo303_id" ref="modelo_303_2013"/>
2738+ <field name="evaluate_as">c09 / c07 * 100.0 if c07 else 0.0</field>
2739+ </record>
2740+ <record id="modelo_303_2013_casilla_09" model="l10n.es.aeat.modelo303.casilla.template">
2741+ <field name="name">IVA devengado - Régimen general - Cuota 21%</field>
2742+ <field name="code">09</field>
2743+ <field name="modelo303_id" ref="modelo_303_2013"/>
2744+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_09_21'), ref('l10n_es.iva_pymes_dev_quota_isp'), ref('l10n_es.iva_pymes_dev_quota_intra_serv')])]"/>
2745+ </record>
2746+ <!-- RE 0.5% -->
2747+ <record id="modelo_303_2013_casilla_10" model="l10n.es.aeat.modelo303.casilla.template">
2748+ <field name="name">IVA devengado - Recargo de equivalencia - Base imponible 0.5%</field>
2749+ <field name="code">10</field>
2750+ <field name="modelo303_id" ref="modelo_303_2013"/>
2751+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_10')])]"/>
2752+ </record>
2753+ <record id="modelo_303_2013_casilla_11" model="l10n.es.aeat.modelo303.casilla.template">
2754+ <field name="name">IVA devengado - Recargo de equivalencia - Tipo 0.5%</field>
2755+ <field name="code">11</field>
2756+ <field name="modelo303_id" ref="modelo_303_2013"/>
2757+ <field name="evaluate_as">c12 / c10 * 100.0 if c10 else 0.0</field>
2758+ </record>
2759+ <record id="modelo_303_2013_casilla_12" model="l10n.es.aeat.modelo303.casilla.template">
2760+ <field name="name">IVA devengado - Recargo de equivalencia - Cuota 0.5%</field>
2761+ <field name="code">12</field>
2762+ <field name="modelo303_id" ref="modelo_303_2013"/>
2763+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_12')])]"/>
2764+ </record>
2765+ <!-- RE 1.4% -->
2766+ <record id="modelo_303_2013_casilla_13" model="l10n.es.aeat.modelo303.casilla.template">
2767+ <field name="name">IVA devengado - Recargo de equivalencia - Base imponible 1.4%</field>
2768+ <field name="code">13</field>
2769+ <field name="modelo303_id" ref="modelo_303_2013"/>
2770+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_13_14')])]"/>
2771+ </record>
2772+ <record id="modelo_303_2013_casilla_14" model="l10n.es.aeat.modelo303.casilla.template">
2773+ <field name="name">IVA devengado - Recargo de equivalencia - Tipo 1.4%</field>
2774+ <field name="code">14</field>
2775+ <field name="modelo303_id" ref="modelo_303_2013"/>
2776+ <field name="evaluate_as">c15 / c13 * 100.0 if c13 else 0.0</field>
2777+ </record>
2778+ <record id="modelo_303_2013_casilla_15" model="l10n.es.aeat.modelo303.casilla.template">
2779+ <field name="name">IVA devengado - Recargo de equivalencia - Cuota 1.4%</field>
2780+ <field name="code">15</field>
2781+ <field name="modelo303_id" ref="modelo_303_2013"/>
2782+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_15_14')])]"/>
2783+ </record>
2784+ <!-- RE 5.2% -->
2785+ <record id="modelo_303_2013_casilla_16" model="l10n.es.aeat.modelo303.casilla.template">
2786+ <field name="name">IVA devengado - Recargo de equivalencia - Base imponible 5.2%</field>
2787+ <field name="code">16</field>
2788+ <field name="modelo303_id" ref="modelo_303_2013"/>
2789+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_16_52')])]"/>
2790+ </record>
2791+ <record id="modelo_303_2013_casilla_17" model="l10n.es.aeat.modelo303.casilla.template">
2792+ <field name="name">IVA devengado - Recargo de equivalencia - Tipo 5.2%</field>
2793+ <field name="code">17</field>
2794+ <field name="modelo303_id" ref="modelo_303_2013"/>
2795+ <field name="evaluate_as">c18 / c16 * 100.0 if c16 else 0.0</field>
2796+ </record>
2797+ <record id="modelo_303_2013_casilla_18" model="l10n.es.aeat.modelo303.casilla.template">
2798+ <field name="name">IVA devengado - Recargo de equivalencia - Cuota 5.2%</field>
2799+ <field name="code">18</field>
2800+ <field name="modelo303_id" ref="modelo_303_2013"/>
2801+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_18_52')])]"/>
2802+ </record>
2803+
2804+ <record id="modelo_303_2013_casilla_19" model="l10n.es.aeat.modelo303.casilla.template">
2805+ <field name="name">IVA devengado - Adquisiciones intracomunitarias - Base imponible</field>
2806+ <field name="code">19</field>
2807+ <field name="modelo303_id" ref="modelo_303_2013"/>
2808+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_19')])]"/>
2809+ </record>
2810+
2811+ <record id="modelo_303_2013_casilla_20" model="l10n.es.aeat.modelo303.casilla.template">
2812+ <field name="name">IVA devengado - Adquisiciones intracomunitarias - Cuota</field>
2813+ <field name="code">20</field>
2814+ <field name="modelo303_id" ref="modelo_303_2013"/>
2815+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_20')])]"/>
2816+ </record>
2817+
2818+ <record id="modelo_303_2013_casilla_21" model="l10n.es.aeat.modelo303.casilla.template">
2819+ <field name="name">IVA devengado - Total cuota devengada</field>
2820+ <field name="code">21</field>
2821+ <field name="modelo303_id" ref="modelo_303_2013"/>
2822+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_21')])]"/>
2823+ </record>
2824+
2825+ <!-- IVA DEDUCIBLE -->
2826+ <record id="modelo_303_2013_casilla_22" model="l10n.es.aeat.modelo303.casilla.template">
2827+ <field name="name">IVA Deducible - Por cuotas soportadas en operaciones interiores corrientes. BI</field>
2828+ <field name="code">22</field>
2829+ <field name="modelo303_id" ref="modelo_303_2013"/>
2830+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_22')])]"/>
2831+ </record>
2832+ <record id="modelo_303_2013_casilla_23" model="l10n.es.aeat.modelo303.casilla.template">
2833+ <field name="name">IVA Deducible - Por cuotas soportadas en operaciones interiores corrientes. Cuota</field>
2834+ <field name="code">23</field>
2835+ <field name="modelo303_id" ref="modelo_303_2013"/>
2836+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_23')])]"/>
2837+ </record>
2838+
2839+ <record id="modelo_303_2013_casilla_24" model="l10n.es.aeat.modelo303.casilla.template">
2840+ <field name="name">IVA Deducible - Por cuotas soportadas en operaciones interiores con bienes de inversión. BI</field>
2841+ <field name="code">24</field>
2842+ <field name="modelo303_id" ref="modelo_303_2013"/>
2843+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_24')])]"/>
2844+ </record>
2845+ <record id="modelo_303_2013_casilla_25" model="l10n.es.aeat.modelo303.casilla.template">
2846+ <field name="name">IVA Deducible - Por cuotas soportadas en operaciones interiores con bienes de inversión. Cuota</field>
2847+ <field name="code">25</field>
2848+ <field name="modelo303_id" ref="modelo_303_2013"/>
2849+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_25')])]"/>
2850+ </record>
2851+
2852+ <record id="modelo_303_2013_casilla_26" model="l10n.es.aeat.modelo303.casilla.template">
2853+ <field name="name">IVA Deducible - Por cuotas satisfechas en las importaciones de bienes corrientes. BI</field>
2854+ <field name="code">26</field>
2855+ <field name="modelo303_id" ref="modelo_303_2013"/>
2856+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_26')])]"/>
2857+ </record>
2858+ <record id="modelo_303_2013_casilla_27" model="l10n.es.aeat.modelo303.casilla.template">
2859+ <field name="name">IVA Deducible - Por cuotas satisfechas en las importaciones de bienes corrientes. Cuota</field>
2860+ <field name="code">27</field>
2861+ <field name="modelo303_id" ref="modelo_303_2013"/>
2862+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_27')])]"/>
2863+ </record>
2864+
2865+ <record id="modelo_303_2013_casilla_28" model="l10n.es.aeat.modelo303.casilla.template">
2866+ <field name="name">IVA Deducible - Por cuotas satisfechas en las importaciones de bienes de inversión. BI</field>
2867+ <field name="code">28</field>
2868+ <field name="modelo303_id" ref="modelo_303_2013"/>
2869+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_28')])]"/>
2870+ </record>
2871+ <record id="modelo_303_2013_casilla_29" model="l10n.es.aeat.modelo303.casilla.template">
2872+ <field name="name">IVA Deducible - Por cuotas satisfechas en las importaciones de bienes de inversión. Cuota</field>
2873+ <field name="code">29</field>
2874+ <field name="modelo303_id" ref="modelo_303_2013"/>
2875+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_29')])]"/>
2876+ </record>
2877+
2878+ <record id="modelo_303_2013_casilla_30" model="l10n.es.aeat.modelo303.casilla.template">
2879+ <field name="name">IVA Deducible - En adquisiciones intracomunitarias de bienes corrientes. BI</field>
2880+ <field name="code">30</field>
2881+ <field name="modelo303_id" ref="modelo_303_2013"/>
2882+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_30')])]"/>
2883+ </record>
2884+ <record id="modelo_303_2013_casilla_31" model="l10n.es.aeat.modelo303.casilla.template">
2885+ <field name="name">IVA Deducible - En adquisiciones intracomunitarias de bienes corrientes. Cuota</field>
2886+ <field name="code">31</field>
2887+ <field name="modelo303_id" ref="modelo_303_2013"/>
2888+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_31')])]"/>
2889+ </record>
2890+
2891+ <record id="modelo_303_2013_casilla_32" model="l10n.es.aeat.modelo303.casilla.template">
2892+ <field name="name">IVA Deducible - En adquisiciones intracomunitarias de bienes de inversión. BI</field>
2893+ <field name="code">32</field>
2894+ <field name="modelo303_id" ref="modelo_303_2013"/>
2895+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_32')])]"/>
2896+ </record>
2897+ <record id="modelo_303_2013_casilla_33" model="l10n.es.aeat.modelo303.casilla.template">
2898+ <field name="name">IVA Deducible - En adquisiciones intracomunitarias de bienes de inversión. Cuota</field>
2899+ <field name="code">33</field>
2900+ <field name="modelo303_id" ref="modelo_303_2013"/>
2901+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_33')])]"/>
2902+ </record>
2903+
2904+ <record id="modelo_303_2013_casilla_34" model="l10n.es.aeat.modelo303.casilla.template">
2905+ <field name="name">IVA Deducible - Compensaciones Régimen Especial A.G.y P.</field>
2906+ <field name="code">34</field>
2907+ <field name="modelo303_id" ref="modelo_303_2013"/>
2908+ </record>
2909+ <record id="modelo_303_2013_casilla_35" model="l10n.es.aeat.modelo303.casilla.template">
2910+ <field name="name">IVA Deducible - Regularización inversiones</field>
2911+ <field name="code">35</field>
2912+ <field name="modelo303_id" ref="modelo_303_2013"/>
2913+ </record>
2914+ <record id="modelo_303_2013_casilla_36" model="l10n.es.aeat.modelo303.casilla.template">
2915+ <field name="name">IVA Deducible - Regularización por aplicación del porcentaje def.de prorrata</field>
2916+ <field name="code">36</field>
2917+ <field name="modelo303_id" ref="modelo_303_2013"/>
2918+ </record>
2919+
2920+ <record id="modelo_303_2013_casilla_37" model="l10n.es.aeat.modelo303.casilla.template">
2921+ <field name="name">Deducible - Total a deducir</field>
2922+ <field name="code">37</field>
2923+ <field name="modelo303_id" ref="modelo_303_2013"/>
2924+ <field name="evaluate_as">c23+c25+c27+c29+c31+c33+c34+c35+c36</field>
2925+ </record>
2926+
2927+ <record id="modelo_303_2013_casilla_38" model="l10n.es.aeat.modelo303.casilla.template">
2928+ <field name="name">Diferencia</field>
2929+ <field name="code">38</field>
2930+ <field name="modelo303_id" ref="modelo_303_2013"/>
2931+ <field name="evaluate_as">c21 - c37</field>
2932+ </record>
2933+
2934+ <record id="modelo_303_2013_casilla_39" model="l10n.es.aeat.modelo303.casilla.template">
2935+ <field name="name">Atribuible a la Administración del Estado - %</field>
2936+ <field name="code">39</field>
2937+ <field name="modelo303_id" ref="modelo_303_2013"/>
2938+ <field name="default_value">100</field>
2939+ </record>
2940+
2941+ <record id="modelo_303_2013_casilla_40" model="l10n.es.aeat.modelo303.casilla.template">
2942+ <field name="name">Atribuible a la Administración del Estado</field>
2943+ <field name="code">40</field>
2944+ <field name="modelo303_id" ref="modelo_303_2013"/>
2945+ <field name="evaluate_as">c38 * (c39 / 100.0)</field>
2946+ </record>
2947+
2948+ <record id="modelo_303_2013_casilla_41" model="l10n.es.aeat.modelo303.casilla.template">
2949+ <field name="name">Cuotas a compensar de periodos anteriores</field>
2950+ <field name="code">41</field>
2951+ <field name="modelo303_id" ref="modelo_303_2013"/>
2952+ </record>
2953+
2954+ <record id="modelo_303_2013_casilla_42" model="l10n.es.aeat.modelo303.casilla.template">
2955+ <field name="name">Entregas intracomunitarias</field>
2956+ <field name="code">42</field>
2957+ <field name="modelo303_id" ref="modelo_303_2013"/>
2958+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.base_pymes_intra_42')])]"/>
2959+ </record>
2960+
2961+ <record id="modelo_303_2013_casilla_43" model="l10n.es.aeat.modelo303.casilla.template">
2962+ <field name="name">Exportaciones y operaciones asimiladas</field>
2963+ <field name="code">43</field>
2964+ <field name="modelo303_id" ref="modelo_303_2013"/>
2965+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.base_pymes_extra_43')])]"/>
2966+ </record>
2967+
2968+ <record id="modelo_303_2013_casilla_44" model="l10n.es.aeat.modelo303.casilla.template">
2969+ <field name="name">Operaciones no sujetas o con inversión del sujeto pasivo. Derecho a deducción</field>
2970+ <field name="code">44</field>
2971+ <field name="modelo303_id" ref="modelo_303_2013"/>
2972+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.base_pymes_extra_44')])]"/>
2973+ </record>
2974+
2975+ <record id="modelo_303_2013_casilla_45" model="l10n.es.aeat.modelo303.casilla.template">
2976+ <field name="name">Exclusivamente tributación conjunta Estado y Diputaciones Forales</field>
2977+ <field name="code">45</field>
2978+ <field name="modelo303_id" ref="modelo_303_2013"/>
2979+ </record>
2980+
2981+ <record id="modelo_303_2013_casilla_46" model="l10n.es.aeat.modelo303.casilla.template">
2982+ <field name="name">Resultado</field>
2983+ <field name="code">46</field>
2984+ <field name="modelo303_id" ref="modelo_303_2013"/>
2985+ <field name="evaluate_as">c40-c41+c45</field>
2986+ </record>
2987+
2988+ <record id="modelo_303_2013_casilla_47" model="l10n.es.aeat.modelo303.casilla.template">
2989+ <field name="name">A deducir</field>
2990+ <field name="code">47</field>
2991+ <field name="modelo303_id" ref="modelo_303_2013"/>
2992+ </record>
2993+
2994+ <record id="modelo_303_2013_casilla_48" model="l10n.es.aeat.modelo303.casilla.template">
2995+ <field name="name">Resultado de la liquidación</field>
2996+ <field name="code">48</field>
2997+ <field name="modelo303_id" ref="modelo_303_2013"/>
2998+ <field name="evaluate_as">c46-c47</field>
2999+ </record>
3000+
3001+ <record id="modelo_303_2013_casilla_49" model="l10n.es.aeat.modelo303.casilla.template">
3002+ <field name="name">Compensación - Importe a compensar ( si resulta negativa [48])</field>
3003+ <field name="code">49</field>
3004+ <field name="modelo303_id" ref="modelo_303_2013"/>
3005+ <field name="evaluate_as">abs(c48) if c48 &lt; 0 else 0.0</field>
3006+ </record>
3007+
3008+ <record id="modelo_303_2013_casilla_50" model="l10n.es.aeat.modelo303.casilla.template">
3009+ <field name="name">Devolución - Importe</field>
3010+ <field name="code">50</field>
3011+ <field name="modelo303_id" ref="modelo_303_2013"/>
3012+ </record>
3013+
3014+ <!-- INGRESO - IMPORTE -->
3015+ <record id="modelo_303_2013_casilla_I" model="l10n.es.aeat.modelo303.casilla.template">
3016+ <field name="name">Ingreso - Importe</field>
3017+ <field name="code">I</field>
3018+ <field name="modelo303_id" ref="modelo_303_2013"/>
3019+ <field name="evaluate_as">c48 if c48 >= 0 else 0.0</field>
3020+ </record>
3021+
3022+ <!-- Modelo 303 2014 -->
3023+ <record id="modelo_303_2014" model="l10n.es.aeat.modelo303.template">
3024+ <field name="name">Modelo 303 2014</field>
3025+ <field name="date">2014-01-01</field>
3026+ <field name="template">
3027+
3028+ ; Pagina 0
3029+ 2,0,a,'&lt;T'
3030+ 3,0,a,'303'
3031+ 1,0,a,'0'
3032+ 4,0,a,ejercicio
3033+ 2,0,a,periodo
3034+ 5,0,a,'0000&gt;'
3035+ 5,0,a,'&lt;AUX&gt;'
3036+ 70,0,a,' '*70
3037+ 4,0,a,'0001'
3038+ 4,0,a,' '
3039+ 9,0,a,nif
3040+ 213,0,a,' '*213
3041+ 6,0,a,'&lt;/AUX&gt;'
3042+ 8,0,a,'&lt;VECTOR&gt;'
3043+ ; Una pagina uno y una pagina tres
3044+ 17,0,a,'00100010030001FIN'
3045+ 283,0,a,' '*283
3046+ 9,0,a,'&lt;/VECTOR&gt;'
3047+
3048+ ; Pagina 1
3049+ 2,0,a,'&lt;T'
3050+ 3,0,a,'303'
3051+ 2,0,a,'01'
3052+ 1,0,a,'&gt;'
3053+ 1,0,a,'I' if c71 >= 0 else 'C'
3054+ 9,0,a,nif
3055+ 30,0,a,razon_social
3056+ 15,0,a,' '*15
3057+ 1,0,a,devolucion_mensual
3058+ 1,0,a,'2'
3059+ 1,0,a,'2'
3060+ 1,0,a,'2'
3061+ 8,0,a,' '
3062+ 1,0,a,' '
3063+ 1,0,a,sujeto_a_cdc
3064+ 1,0,a,destinatario_operaciones_cdc
3065+ 1,0,a,'2'
3066+ 1,0,a,'2'
3067+ 4,0,a,ejercicio
3068+ 2,0,a,periodo
3069+ 15,2,n,c01
3070+ 3,2,n,c02
3071+ 15,2,n,c03
3072+ 15,2,n,c04
3073+ 3,2,n,c05
3074+ 15,2,n,c06
3075+ 15,2,n,c07
3076+ 3,2,n,c08
3077+ 15,2,n,c09
3078+ 15,2,n,c10
3079+ 15,2,n,c11
3080+ 15,2,n,c12
3081+ 15,2,n,c13
3082+ 15,2,n,c14
3083+ 15,2,n,c15
3084+ 15,2,n,c16
3085+ 3,2,n,c17
3086+ 15,2,n,c18
3087+ 15,2,n,c19
3088+ 3,2,n,c20
3089+ 15,2,n,c21
3090+ 15,2,n,c22
3091+ 3,2,n,c23
3092+ 15,2,n,c24
3093+ 15,2,n,c25
3094+ 15,2,n,c26
3095+ 15,2,n,c27
3096+ 15,2,n,c28
3097+ 15,2,n,c29
3098+ 15,2,n,c30
3099+ 15,2,n,c31
3100+ 15,2,n,c32
3101+ 15,2,n,c33
3102+ 15,2,n,c34
3103+ 15,2,n,c35
3104+ 15,2,n,c36
3105+ 15,2,n,c37
3106+ 15,2,n,c38
3107+ 15,2,n,c39
3108+ 15,2,n,c40
3109+ 15,2,n,c41
3110+ 15,2,n,c42
3111+ 15,2,n,c43
3112+ 15,2,n,c44
3113+ 15,2,n,c45
3114+ 15,2,n,c46
3115+ 93,0,a,' '
3116+ 9,0,a,'&lt;/T30301&gt;'
3117+ 2,0,a,clrf
3118+
3119+ ; Pagina 3
3120+ 2,0,a,'&lt;T'
3121+ 3,0,a,'303'
3122+ 2,0,a,'03'
3123+ 1,0,a,'&gt;'
3124+ 15,2,n,c59
3125+ 15,2,n,c60
3126+ 15,2,n,c61
3127+ 15,2,n,c64
3128+ 3,2,n,c65
3129+ 15,2,n,c66
3130+ 15,2,n,c67
3131+ 15,2,n,c68
3132+ 15,2,n,c69
3133+ 15,2,n,c70
3134+ 15,2,n,c71
3135+ 15,2,n,c62
3136+ 15,2,n,c63
3137+ 15,2,n,c74
3138+ 15,2,n,c75
3139+ 1,0,a,'X' if complementaria == '1' else ' '
3140+ 13,0,a,numero_justificante
3141+ 1,0,a,'X' if complementaria == '1' else ' '
3142+ 34,0,a,cc_ingreso_iban
3143+ 289,0,a,' '*289
3144+ 9,0,a,'&lt;/T30303&gt;'
3145+ 2,0,a,clrf
3146+
3147+ ; FIN Pagina 0
3148+ 7,0,a,'&lt;/T3030'
3149+ 4,0,a,ejercicio
3150+ 2,0,a,periodo
3151+ 5,0,a,'0000&gt;'
3152+ 2,0,a,clrf
3153+ </field>
3154+ </record>
3155+
3156+ <!-- Casillas modelo 303 2014 -->
3157+ <!-- IVA DEVENGADO -->
3158+ <!-- 4% -->
3159+ <record id="modelo_303_2014_casilla_01" model="l10n.es.aeat.modelo303.casilla.template">
3160+ <field name="name">IVA devengado - Régimen general - Base imponible 4%</field>
3161+ <field name="code">01</field>
3162+ <field name="modelo303_id" ref="modelo_303_2014"/>
3163+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_01')])]"/>
3164+ </record>
3165+ <record id="modelo_303_2014_casilla_02" model="l10n.es.aeat.modelo303.casilla.template">
3166+ <field name="name">IVA devengado - Régimen general - Tipo 4%</field>
3167+ <field name="code">02</field>
3168+ <field name="modelo303_id" ref="modelo_303_2014"/>
3169+ <field name="evaluate_as">c03 / c01 * 100.0 if c01 else 0.0</field>
3170+ </record>
3171+ <record id="modelo_303_2014_casilla_03" model="l10n.es.aeat.modelo303.casilla.template">
3172+ <field name="name">IVA devengado - Régimen general - Cuota 4%</field>
3173+ <field name="code">03</field>
3174+ <field name="modelo303_id" ref="modelo_303_2014"/>
3175+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_03')])]"/>
3176+ </record>
3177+ <!-- 10% -->
3178+ <record id="modelo_303_2014_casilla_04" model="l10n.es.aeat.modelo303.casilla.template">
3179+ <field name="name">IVA devengado - Régimen general - Base imponible 10%</field>
3180+ <field name="code">04</field>
3181+ <field name="modelo303_id" ref="modelo_303_2014"/>
3182+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_04_10')])]"/>
3183+ </record>
3184+ <record id="modelo_303_2014_casilla_05" model="l10n.es.aeat.modelo303.casilla.template">
3185+ <field name="name">IVA devengado - Régimen general - Tipo 10%</field>
3186+ <field name="code">05</field>
3187+ <field name="modelo303_id" ref="modelo_303_2014"/>
3188+ <field name="evaluate_as">c06 / c04 * 100.0 if c04 else 0</field>
3189+ </record>
3190+ <record id="modelo_303_2014_casilla_06" model="l10n.es.aeat.modelo303.casilla.template">
3191+ <field name="name">IVA devengado - Régimen general - Cuota 10%</field>
3192+ <field name="code">06</field>
3193+ <field name="modelo303_id" ref="modelo_303_2014"/>
3194+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_06_10')])]"/>
3195+ </record>
3196+ <!-- 21% -->
3197+ <record id="modelo_303_2014_casilla_07" model="l10n.es.aeat.modelo303.casilla.template">
3198+ <field name="name">IVA devengado - Régimen general - Base imponible 21%</field>
3199+ <field name="code">07</field>
3200+ <field name="modelo303_id" ref="modelo_303_2014"/>
3201+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_07_21')])]"/>
3202+ </record>
3203+ <record id="modelo_303_2014_casilla_08" model="l10n.es.aeat.modelo303.casilla.template">
3204+ <field name="name">IVA devengado - Régimen general - Tipo 21%</field>
3205+ <field name="code">08</field>
3206+ <field name="modelo303_id" ref="modelo_303_2014"/>
3207+ <field name="evaluate_as">c09 / c07 * 100.0 if c07 else 0.0</field>
3208+ </record>
3209+ <record id="modelo_303_2014_casilla_09" model="l10n.es.aeat.modelo303.casilla.template">
3210+ <field name="name">IVA devengado - Régimen general - Cuota 21%</field>
3211+ <field name="code">09</field>
3212+ <field name="modelo303_id" ref="modelo_303_2014"/>
3213+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_09_21')])]"/>
3214+ </record>
3215+
3216+
3217+ <record id="modelo_303_2014_casilla_10" model="l10n.es.aeat.modelo303.casilla.template">
3218+ <field name="name">IVA Devengado - Adquisiciones intracomunitarias de bienes y servicios - Base imponible</field>
3219+ <field name="code">10</field>
3220+ <field name="modelo303_id" ref="modelo_303_2014"/>
3221+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_19'), ref('l10n_es.iva_pymes_dev_base_intra_serv')])]"/>
3222+ </record>
3223+ <record id="modelo_303_2014_casilla_11" model="l10n.es.aeat.modelo303.casilla.template">
3224+ <field name="name">IVA Devengado - Adquisiciones intracomunitarias de bienes y servicios - Cuota</field>
3225+ <field name="code">11</field>
3226+ <field name="modelo303_id" ref="modelo_303_2014"/>
3227+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_20'), ref('l10n_es.iva_pymes_dev_quota_intra_serv')])]"/>
3228+ </record>
3229+
3230+
3231+ <record id="modelo_303_2014_casilla_12" model="l10n.es.aeat.modelo303.casilla.template">
3232+ <field name="name">IVA Devengado - Otras operaciones con ISP (excepto. adq. intracom) - Base imponible</field>
3233+ <field name="code">12</field>
3234+ <field name="modelo303_id" ref="modelo_303_2014"/>
3235+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_base_isp')])]"/>
3236+ </record>
3237+ <record id="modelo_303_2014_casilla_13" model="l10n.es.aeat.modelo303.casilla.template">
3238+ <field name="name">IVA Devengado - Otras operaciones con ISP (excepto. adq. intracom) - Cuota</field>
3239+ <field name="code">13</field>
3240+ <field name="modelo303_id" ref="modelo_303_2014"/>
3241+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_quota_isp')])]"/>
3242+ </record>
3243+
3244+
3245+ <record id="modelo_303_2014_casilla_14" model="l10n.es.aeat.modelo303.casilla.template">
3246+ <field name="name">IVA Devengado - Modificación bases y cuotas- Base imponible</field>
3247+ <field name="code">14</field>
3248+ <field name="modelo303_id" ref="modelo_303_2014"/>
3249+ </record>
3250+ <record id="modelo_303_2014_casilla_15" model="l10n.es.aeat.modelo303.casilla.template">
3251+ <field name="name">IVA Devengado - Modificación bases y cuotas- Cuota</field>
3252+ <field name="code">15</field>
3253+ <field name="modelo303_id" ref="modelo_303_2014"/>
3254+ </record>
3255+
3256+ <!-- Recargo equivalencia 0.5% -->
3257+ <record id="modelo_303_2014_casilla_16" model="l10n.es.aeat.modelo303.casilla.template">
3258+ <field name="name">IVA devengado - Recargo de equivalencia - Base imponible 0.5%</field>
3259+ <field name="code">16</field>
3260+ <field name="modelo303_id" ref="modelo_303_2014"/>
3261+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_10')])]"/>
3262+ </record>
3263+ <record id="modelo_303_2014_casilla_17" model="l10n.es.aeat.modelo303.casilla.template">
3264+ <field name="name">IVA devengado - Recargo de equivalencia - Tipo 0.5%</field>
3265+ <field name="code">17</field>
3266+ <field name="modelo303_id" ref="modelo_303_2014"/>
3267+ <field name="evaluate_as">c18 / c16 * 100.0 if c16 else 0.0</field>
3268+ </record>
3269+ <record id="modelo_303_2014_casilla_18" model="l10n.es.aeat.modelo303.casilla.template">
3270+ <field name="name">IVA devengado - Recargo de equivalencia - Cuota 0.5%</field>
3271+ <field name="code">18</field>
3272+ <field name="modelo303_id" ref="modelo_303_2014"/>
3273+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_12')])]"/>
3274+ </record>
3275+ <!-- Recargo equivalencia 1.4% -->
3276+ <record id="modelo_303_2014_casilla_19" model="l10n.es.aeat.modelo303.casilla.template">
3277+ <field name="name">IVA devengado - Recargo de equivalencia - Base imponible 1.4%</field>
3278+ <field name="code">19</field>
3279+ <field name="modelo303_id" ref="modelo_303_2014"/>
3280+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_13_14')])]"/>
3281+ </record>
3282+ <record id="modelo_303_2014_casilla_20" model="l10n.es.aeat.modelo303.casilla.template">
3283+ <field name="name">IVA devengado - Recargo de equivalencia - Tipo 1.4%</field>
3284+ <field name="code">20</field>
3285+ <field name="modelo303_id" ref="modelo_303_2014"/>
3286+ <field name="evaluate_as">c21 / c19 * 100.0 if c19 else 0.0</field>
3287+ </record>
3288+ <record id="modelo_303_2014_casilla_21" model="l10n.es.aeat.modelo303.casilla.template">
3289+ <field name="name">IVA devengado - Recargo de equivalencia - Cuota 1.4%</field>
3290+ <field name="code">21</field>
3291+ <field name="modelo303_id" ref="modelo_303_2014"/>
3292+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_15_14')])]"/>
3293+ </record>
3294+ <!-- Recargo equivalencia 5.2% -->
3295+ <record id="modelo_303_2014_casilla_22" model="l10n.es.aeat.modelo303.casilla.template">
3296+ <field name="name">IVA devengado - Recargo de equivalencia - Base imponible 5.2%</field>
3297+ <field name="code">22</field>
3298+ <field name="modelo303_id" ref="modelo_303_2014"/>
3299+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_16_52')])]"/>
3300+ </record>
3301+ <record id="modelo_303_2014_casilla_23" model="l10n.es.aeat.modelo303.casilla.template">
3302+ <field name="name">IVA devengado - Recargo de equivalencia - Tipo 5.2%</field>
3303+ <field name="code">23</field>
3304+ <field name="modelo303_id" ref="modelo_303_2014"/>
3305+ <field name="evaluate_as">c24 / c22 * 100.0 if c22 else 0.0</field>
3306+ </record>
3307+ <record id="modelo_303_2014_casilla_24" model="l10n.es.aeat.modelo303.casilla.template">
3308+ <field name="name">IVA devengado - Recargo de equivalencia - Cuota 5.2%</field>
3309+ <field name="code">24</field>
3310+ <field name="modelo303_id" ref="modelo_303_2014"/>
3311+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_dev_18_52')])]"/>
3312+ </record>
3313+
3314+ <record id="modelo_303_2014_casilla_25" model="l10n.es.aeat.modelo303.casilla.template">
3315+ <field name="name">IVA Devengado - Modificaciones bases y cuotas del recargo de equivalencia - Base imponible</field>
3316+ <field name="code">25</field>
3317+ <field name="modelo303_id" ref="modelo_303_2014"/>
3318+ </record>
3319+ <record id="modelo_303_2014_casilla_26" model="l10n.es.aeat.modelo303.casilla.template">
3320+ <field name="name">IVA Devengado - Modificaciones bases y cuotas del recargo de equivalencia - Imponible</field>
3321+ <field name="code">26</field>
3322+ <field name="modelo303_id" ref="modelo_303_2014"/>
3323+ </record>
3324+
3325+ <record id="modelo_303_2014_casilla_27" model="l10n.es.aeat.modelo303.casilla.template">
3326+ <field name="name">IVA Devengado - Total cuota devengada</field>
3327+ <field name="code">27</field>
3328+ <field name="modelo303_id" ref="modelo_303_2014"/>
3329+ <field name="evaluate_as">c03+c06+c09+c11+c13+c15+c18+c21+c24+c26</field>
3330+ </record>
3331+
3332+ <!-- IVA DEDUCIBLE -->
3333+ <record id="modelo_303_2014_casilla_28" model="l10n.es.aeat.modelo303.casilla.template">
3334+ <field name="name">IVA Deducible - Por cuotas soportadas en operaciones interiores corrientes - Base</field>
3335+ <field name="code">28</field>
3336+ <field name="modelo303_id" ref="modelo_303_2014"/>
3337+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_22')])]"/>
3338+ </record>
3339+ <record id="modelo_303_2014_casilla_29" model="l10n.es.aeat.modelo303.casilla.template">
3340+ <field name="name">IVA Deducible - Por cuotas soportadas en operaciones interiores corrientes - Cuota</field>
3341+ <field name="code">29</field>
3342+ <field name="modelo303_id" ref="modelo_303_2014"/>
3343+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_23')])]"/>
3344+ </record>
3345+
3346+ <record id="modelo_303_2014_casilla_30" model="l10n.es.aeat.modelo303.casilla.template">
3347+ <field name="name">IVA Deducible - Por cuotas soportadas en operaciones interiores con bienes de inversión - Base</field>
3348+ <field name="code">30</field>
3349+ <field name="modelo303_id" ref="modelo_303_2014"/>
3350+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_24')])]"/>
3351+ </record>
3352+ <record id="modelo_303_2014_casilla_31" model="l10n.es.aeat.modelo303.casilla.template">
3353+ <field name="name">IVA Deducible - Por cuotas soportadas en operaciones interiores con bienes de inversión - Cuota</field>
3354+ <field name="code">31</field>
3355+ <field name="modelo303_id" ref="modelo_303_2014"/>
3356+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_25')])]"/>
3357+ </record>
3358+
3359+ <record id="modelo_303_2014_casilla_32" model="l10n.es.aeat.modelo303.casilla.template">
3360+ <field name="name">IVA Deducible - Por cuotas soportadas en las importaciones de bienes corrientes - Base</field>
3361+ <field name="code">32</field>
3362+ <field name="modelo303_id" ref="modelo_303_2014"/>
3363+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_26')])]"/>
3364+ </record>
3365+ <record id="modelo_303_2014_casilla_33" model="l10n.es.aeat.modelo303.casilla.template">
3366+ <field name="name">IVA Deducible - Por cuotas soportadas en las importaciones de bienes corrientes - Cuota</field>
3367+ <field name="code">33</field>
3368+ <field name="modelo303_id" ref="modelo_303_2014"/>
3369+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_27')])]"/>
3370+ </record>
3371+
3372+ <record id="modelo_303_2014_casilla_34" model="l10n.es.aeat.modelo303.casilla.template">
3373+ <field name="name">IVA Deducible - Por cuotas soportadas en las importaciones de bienes de inversión - Base</field>
3374+ <field name="code">34</field>
3375+ <field name="modelo303_id" ref="modelo_303_2014"/>
3376+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_28')])]"/>
3377+ </record>
3378+ <record id="modelo_303_2014_casilla_35" model="l10n.es.aeat.modelo303.casilla.template">
3379+ <field name="name">IVA Deducible - Por cuotas soportadas en las importaciones de bienes de inversión - Cuota</field>
3380+ <field name="code">35</field>
3381+ <field name="modelo303_id" ref="modelo_303_2014"/>
3382+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_29')])]"/>
3383+ </record>
3384+
3385+ <record id="modelo_303_2014_casilla_36" model="l10n.es.aeat.modelo303.casilla.template">
3386+ <field name="name">IVA Deducible - En adquisiciones intracomunitarias de bienes y servicios corrientes - Base</field>
3387+ <field name="code">36</field>
3388+ <field name="modelo303_id" ref="modelo_303_2014"/>
3389+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_30')])]"/>
3390+ </record>
3391+ <record id="modelo_303_2014_casilla_37" model="l10n.es.aeat.modelo303.casilla.template">
3392+ <field name="name">IVA Deducible - En adquisiciones intracomunitarias de bienes y servicios corrientes - Cuota</field>
3393+ <field name="code">37</field>
3394+ <field name="modelo303_id" ref="modelo_303_2014"/>
3395+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_31')])]"/>
3396+ </record>
3397+
3398+ <record id="modelo_303_2014_casilla_38" model="l10n.es.aeat.modelo303.casilla.template">
3399+ <field name="name">IVA Deducible - En adquisiciones intracomunitarias de bienes de inversión - Base</field>
3400+ <field name="code">38</field>
3401+ <field name="modelo303_id" ref="modelo_303_2014"/>
3402+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_32')])]"/>
3403+ </record>
3404+ <record id="modelo_303_2014_casilla_39" model="l10n.es.aeat.modelo303.casilla.template">
3405+ <field name="name">IVA Deducible - En adquisiciones intracomunitarias de bienes de inversión - Cuota</field>
3406+ <field name="code">39</field>
3407+ <field name="modelo303_id" ref="modelo_303_2014"/>
3408+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.iva_pymes_ded_33')])]"/>
3409+ </record>
3410+
3411+ <record id="modelo_303_2014_casilla_40" model="l10n.es.aeat.modelo303.casilla.template">
3412+ <field name="name">IVA Deducible - Rectificación de deducciones - Base</field>
3413+ <field name="code">40</field>
3414+ <field name="modelo303_id" ref="modelo_303_2014"/>
3415+ </record>
3416+
3417+ <record id="modelo_303_2014_casilla_41" model="l10n.es.aeat.modelo303.casilla.template">
3418+ <field name="name">IVA Deducible - Rectificación de deducciones - Cuota</field>
3419+ <field name="code">41</field>
3420+ <field name="modelo303_id" ref="modelo_303_2014"/>
3421+ </record>
3422+
3423+ <record id="modelo_303_2014_casilla_42" model="l10n.es.aeat.modelo303.casilla.template">
3424+ <field name="name">IVA Deducible - Compensaciones Régimen Especial A.G. y P. - Cuota</field>
3425+ <field name="code">42</field>
3426+ <field name="modelo303_id" ref="modelo_303_2014"/>
3427+ </record>
3428+
3429+ <record id="modelo_303_2014_casilla_43" model="l10n.es.aeat.modelo303.casilla.template">
3430+ <field name="name">IVA Deducible - Regularización inversiones - Cuota</field>
3431+ <field name="code">43</field>
3432+ <field name="modelo303_id" ref="modelo_303_2014"/>
3433+ </record>
3434+
3435+ <record id="modelo_303_2014_casilla_44" model="l10n.es.aeat.modelo303.casilla.template">
3436+ <field name="name">Regimen General - IVA Deducible - Regularización por aplicación del porcentaje definitivo de prorrata - Cuota</field>
3437+ <field name="code">44</field>
3438+ <field name="modelo303_id" ref="modelo_303_2014"/>
3439+ </record>
3440+
3441+ <record id="modelo_303_2014_casilla_45" model="l10n.es.aeat.modelo303.casilla.template">
3442+ <field name="name">Total a deducir</field>
3443+ <field name="code">45</field>
3444+ <field name="modelo303_id" ref="modelo_303_2014"/>
3445+ <field name="evaluate_as">c29+c31+c33+c35+c37+c39+c41+c42+c43+c44</field>
3446+ </record>
3447+
3448+ <record id="modelo_303_2014_casilla_46" model="l10n.es.aeat.modelo303.casilla.template">
3449+ <field name="name">IVA Deducible - Resultado régimen general</field>
3450+ <field name="code">46</field>
3451+ <field name="modelo303_id" ref="modelo_303_2014"/>
3452+ <field name="evaluate_as">c27-c45</field>
3453+ </record>
3454+
3455+ <record id="modelo_303_2014_casilla_59" model="l10n.es.aeat.modelo303.casilla.template">
3456+ <field name="name">Información adicional - Entregas intracomunitarias de bienes y servicios</field>
3457+ <field name="code">59</field>
3458+ <field name="modelo303_id" ref="modelo_303_2014"/>
3459+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.base_pymes_intra_42')])]"/>
3460+ </record>
3461+
3462+ <record id="modelo_303_2014_casilla_60" model="l10n.es.aeat.modelo303.casilla.template">
3463+ <field name="name">Información adicional - Exportaciones y operaciones asimiladas</field>
3464+ <field name="code">60</field>
3465+ <field name="modelo303_id" ref="modelo_303_2014"/>
3466+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.base_pymes_extra_43')])]"/>
3467+ </record>
3468+
3469+ <record id="modelo_303_2014_casilla_61" model="l10n.es.aeat.modelo303.casilla.template">
3470+ <field name="name">Información adicional - Operaciones no sujetas o con inversión del sujeto pasivo que originan el derecho a deducción</field>
3471+ <field name="code">61</field>
3472+ <field name="modelo303_id" ref="modelo_303_2014"/>
3473+ <field name="tax_code_ids" eval="[(6,0,[ref('l10n_es.base_pymes_extra_44')])]"/>
3474+ </record>
3475+
3476+ <record id="modelo_303_2014_casilla_64" model="l10n.es.aeat.modelo303.casilla.template">
3477+ <field name="name">Resultado - Suma de resultados</field>
3478+ <field name="code">64</field>
3479+ <field name="modelo303_id" ref="modelo_303_2014"/>
3480+ <field name="evaluate_as">c46+c58</field>
3481+ </record>
3482+
3483+ <record id="modelo_303_2013_casilla_65" model="l10n.es.aeat.modelo303.casilla.template">
3484+ <field name="name">% Atribuible a la Administración del Estado</field>
3485+ <field name="code">65</field>
3486+ <field name="modelo303_id" ref="modelo_303_2014"/>
3487+ <field name="default_value">100</field>
3488+ </record>
3489+
3490+ <record id="modelo_303_2013_casilla_66" model="l10n.es.aeat.modelo303.casilla.template">
3491+ <field name="name">Atribuible a la Administración del Estado</field>
3492+ <field name="code">66</field>
3493+ <field name="modelo303_id" ref="modelo_303_2014"/>
3494+ <field name="evaluate_as">c64 * (c65 / 100.0)</field>
3495+ </record>
3496+
3497+ <record id="modelo_303_2013_casilla_67" model="l10n.es.aeat.modelo303.casilla.template">
3498+ <field name="name">Resultado - Cuotas a compensar de periodos anteriores</field>
3499+ <field name="code">67</field>
3500+ <field name="modelo303_id" ref="modelo_303_2014"/>
3501+ </record>
3502+
3503+ <record id="modelo_303_2013_casilla_68" model="l10n.es.aeat.modelo303.casilla.template">
3504+ <field name="name">Resultado - Exclusivamente para sujetos pasivos que tributan conjuntamente a la Administración del Estado y a las Diputaciones Forales Resultado de la regularización anual</field>
3505+ <field name="code">68</field>
3506+ <field name="modelo303_id" ref="modelo_303_2014"/>
3507+ </record>
3508+
3509+ <record id="modelo_303_2013_casilla_69" model="l10n.es.aeat.modelo303.casilla.template">
3510+ <field name="name">Resultado - Resultado</field>
3511+ <field name="code">69</field>
3512+ <field name="modelo303_id" ref="modelo_303_2014"/>
3513+ <field name="evaluate_as">c66-c67+c68</field>
3514+ </record>
3515+
3516+ <record id="modelo_303_2013_casilla_70" model="l10n.es.aeat.modelo303.casilla.template">
3517+ <field name="name">Resultado - A deducir</field>
3518+ <field name="code">70</field>
3519+ <field name="modelo303_id" ref="modelo_303_2014"/>
3520+ </record>
3521+
3522+ <record id="modelo_303_2013_casilla_71" model="l10n.es.aeat.modelo303.casilla.template">
3523+ <field name="name">Resultado - Resultado de la liquidación</field>
3524+ <field name="code">71</field>
3525+ <field name="modelo303_id" ref="modelo_303_2014"/>
3526+ <field name="evaluate_as">c69-c70</field>
3527+ </record>
3528+
3529+ <record id="modelo_303_2013_casilla_62" model="l10n.es.aeat.modelo303.casilla.template">
3530+ <field name="name">Información adicional - Importes devengados en período de liquidación según art. 75 LIVA. - Base Imponible</field>
3531+ <field name="code">62</field>
3532+ <field name="modelo303_id" ref="modelo_303_2014"/>
3533+ </record>
3534+
3535+ <record id="modelo_303_2013_casilla_63" model="l10n.es.aeat.modelo303.casilla.template">
3536+ <field name="name">Información adicional - Importes devengados en período de liquidación según art. 75 LIVA. - Cuota</field>
3537+ <field name="code">63</field>
3538+ <field name="modelo303_id" ref="modelo_303_2014"/>
3539+ </record>
3540+
3541+ <record id="modelo_303_2013_casilla_74" model="l10n.es.aeat.modelo303.casilla.template">
3542+ <field name="name">Información adicional - Cuotas de IVA soportados en operaciones que tributen por el régimen especial del criterio de caja. - Base Imponible</field>
3543+ <field name="code">74</field>
3544+ <field name="modelo303_id" ref="modelo_303_2014"/>
3545+ </record>
3546+
3547+ <record id="modelo_303_2013_casilla_75" model="l10n.es.aeat.modelo303.casilla.template">
3548+ <field name="name">Información adicional - Cuotas de IVA soportados en operaciones que tributen por el régimen especial del criterio de caja. - Cuota</field>
3549+ <field name="code">75</field>
3550+ <field name="modelo303_id" ref="modelo_303_2014"/>
3551+ </record>
3552+ </data>
3553+</openerp>
3554
3555=== added file 'l10n_es_aeat_mod303/modelo303_view.xml'
3556--- l10n_es_aeat_mod303/modelo303_view.xml 1970-01-01 00:00:00 +0000
3557+++ l10n_es_aeat_mod303/modelo303_view.xml 2014-04-16 11:51:06 +0000
3558@@ -0,0 +1,210 @@
3559+<?xml version="1.0" encoding="utf-8"?>
3560+<openerp>
3561+ <data noupdate="0">
3562+ <!-- Template 303 -->
3563+ <record id="view_l10n_es_aeat_modelo303_casilla_template_tree" model="ir.ui.view">
3564+ <field name="name">l10n.es.aeat.modelo303.casilla.template.tree</field>
3565+ <field name="model">l10n.es.aeat.modelo303.casilla.template</field>
3566+ <field name="arch" type="xml">
3567+ <tree string="Casillas AEAT">
3568+ <field name="modelo303_id"/>
3569+ <field name="code"/>
3570+ <field name="name"/>
3571+ <field name="evaluate_as"/>
3572+ <field name="default_value"/>
3573+ </tree>
3574+ </field>
3575+ </record>
3576+
3577+ <record id="view_l10n_es_aeat_modelo303_casilla_template_form" model="ir.ui.view">
3578+ <field name="name">l10n.es.aeat.modelo303.casilla.template.form</field>
3579+ <field name="model">l10n.es.aeat.modelo303.casilla.template</field>
3580+ <field name="arch" type="xml">
3581+ <form string="Definición de casillas AEAT" version="7.0">
3582+ <sheet>
3583+ <group colspan="4">
3584+ <group>
3585+ <field name="code" required="1"/>
3586+ <field name="modelo303_id" required="1"/>
3587+ <field name="default_value"/>
3588+ </group>
3589+ <group>
3590+ <field name="name" required="1"/>
3591+ <field name="evaluate_as"/>
3592+ </group>
3593+ </group>
3594+ <group>
3595+ <field name="tax_code_ids" nolabel="1" colspan="4"/>
3596+ </group>
3597+ </sheet>
3598+ </form>
3599+ </field>
3600+ </record>
3601+
3602+ <record id="action_l10n_es_aeat_modelo303_casilla_template_tree" model="ir.actions.act_window">
3603+ <field name="name">Template Casillas AEAT</field>
3604+ <field name="res_model">l10n.es.aeat.modelo303.casilla.template</field>
3605+ <field name="view_type">form</field>
3606+ <field name="view_mode">tree,form</field>
3607+ <field name="view_id" ref="view_l10n_es_aeat_modelo303_casilla_template_tree"/>
3608+ <field name="help">Definición de las casillas AEAT</field>
3609+ </record>
3610+
3611+ <menuitem id="menu_l10n_es_aeat_modelo303_casilla_template"
3612+ parent="account.account_template_folder"
3613+ action="action_l10n_es_aeat_modelo303_casilla_template_tree"
3614+ sequence="9999"
3615+ name="Casillas AEAT"/>
3616+
3617+ <!-- Casillas 303 -->
3618+ <record id="view_l10n_es_aeat_modelo303_casilla_tree" model="ir.ui.view">
3619+ <field name="name">l10n.es.aeat.modelo303.casilla.tree</field>
3620+ <field name="model">l10n.es.aeat.modelo303.casilla</field>
3621+ <field name="arch" type="xml">
3622+ <tree string="Casillas AEAT">
3623+ <field name="modelo303_id"/>
3624+ <field name="code"/>
3625+ <field name="name"/>
3626+ <field name="evaluate_as"/>
3627+ <field name="default_value"/>
3628+ </tree>
3629+ </field>
3630+ </record>
3631+
3632+ <record id="view_l10n_es_aeat_modelo303_casilla_form" model="ir.ui.view">
3633+ <field name="name">l10n.es.aeat.modelo303.casilla.form</field>
3634+ <field name="model">l10n.es.aeat.modelo303.casilla</field>
3635+ <field name="arch" type="xml">
3636+ <form string="Definición de casillas AEAT" version="7.0">
3637+ <sheet>
3638+ <group colspan="4">
3639+ <group>
3640+ <field name="code" required="1"/>
3641+ <field name="modelo303_id" required="1"/>
3642+ <field name="default_value"/>
3643+ </group>
3644+ <group>
3645+ <field name="name" required="1"/>
3646+ <field name="evaluate_as"/>
3647+ </group>
3648+ </group>
3649+ <group>
3650+ <field name="tax_code_ids" nolabel="1" colspan="4"/>
3651+ </group>
3652+ </sheet>
3653+ </form>
3654+ </field>
3655+ </record>
3656+
3657+ <record id="action_l10n_es_aeat_modelo303_casilla_tree" model="ir.actions.act_window">
3658+ <field name="name">Casillas AEAT</field>
3659+ <field name="res_model">l10n.es.aeat.modelo303.casilla</field>
3660+ <field name="view_type">form</field>
3661+ <field name="view_mode">tree,form</field>
3662+ <field name="view_id" ref="view_l10n_es_aeat_modelo303_casilla_tree"/>
3663+ <field name="help">Definición de las casillas AEAT</field>
3664+ </record>
3665+
3666+ <menuitem id="menu_l10n_es_aeat_modelo303_casilla"
3667+ parent="account.account_account_menu"
3668+ action="action_l10n_es_aeat_modelo303_casilla_tree"
3669+ sequence="9998"
3670+ name="Casillas AEAT"/>
3671+
3672+ <!-- Informe modelo 303 -->
3673+ <record id="view_l10n_es_aeat_modelo303_report_tree" model="ir.ui.view">
3674+ <field name="name">l10n_es.aeat.modelo303.report.tree</field>
3675+ <field name="model">l10n.es.aeat.modelo303.report</field>
3676+ <field name="inherit_id" ref="l10n_es_aeat.view_l10n_es_aeat_report_tree"/>
3677+ <field name="arch" type="xml">
3678+ <tree position="attributes">
3679+ <attribute name="string">AEAT 303 reports</attribute>
3680+ </tree>
3681+ <field name="fiscalyear_id" position="after">
3682+ <field name="period"/>
3683+ </field>
3684+ </field>
3685+ </record>
3686+
3687+ <record id="view_l10n_es_aeat_modelo303_report_form" model="ir.ui.view">
3688+ <field name="name">l10n_es.aeat.modelo303.report.form</field>
3689+ <field name="model">l10n.es.aeat.modelo303.report</field>
3690+ <field name="inherit_id" ref="l10n_es_aeat.view_l10n_es_aeat_report_form"/>
3691+ <field name="arch" type="xml">
3692+ <button name="%(l10n_es_aeat.action_wizard_aeat_export)d" position="attributes">
3693+ <attribute name="name">%(action_wizard_aeat_modelo303_export)d</attribute>
3694+ </button>
3695+ <button name="%(action_wizard_aeat_modelo303_export)d" position="after">
3696+ <button name="button_calculate_formulas" string="Calculate formulas" type="object" states="calculated" icon="gtk-execute"/>
3697+ </button>
3698+ <button name="button_recalculate" position="replace"/>
3699+ <field name="fiscalyear_id" position="after">
3700+ <field name="company_partner_id" invisible="1"/>
3701+ <field name="period" required="True"/>
3702+ <field name="period_start_id" domain="[('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)]" required="True"/>
3703+ <field name="period_end_id" domain="[('fiscalyear_id', '=', fiscalyear_id), ('special', '=', False)]" required="False"/>
3704+ <field name="modelo303_id" required="True"/>
3705+ <field name="cuenta_ingreso_id" domain="[('partner_id', '=', company_partner_id)]" required="False"/>
3706+ <field name="cuenta_devolucion_id" domain="[('partner_id', '=', company_partner_id)]" required="False"/>
3707+ </field>
3708+ <field name="calculation_date" position="after">
3709+ <field name="devolucion_mensual"/>
3710+ <field name="sujeto_a_cdc"/>
3711+ <field name="destinatario_operaciones_cdc"/>
3712+ <field name="complementaria"/>
3713+ <field name="previous_number" attrs="{'required': [('complementaria', '=', True)]}"/>
3714+ <field name="sin_actividad"/>
3715+ </field>
3716+ <group string="Declaración" position="after">
3717+ <group colspan="4">
3718+ <field name="valor_casilla_ids" nolabel="1">
3719+ <tree string="Casillas" editable="bottom">
3720+ <field name="code" readonly="1"/>
3721+ <field name="valor"/>
3722+ <field name="casilla_id" readonly="1"/>
3723+ </tree>
3724+ </field>
3725+ </group>
3726+ </group>
3727+ </field>
3728+ </record>
3729+
3730+ <record id="action_l10n_es_aeat_modelo303_report" model="ir.actions.act_window">
3731+ <field name="name">AEAT model 303</field>
3732+ <field name="res_model">l10n.es.aeat.modelo303.report</field>
3733+ <field name="view_type">form</field>
3734+ <field name="view_mode">tree,form</field>
3735+ <field name="help">Create and query AEAT Model 303 reports</field>
3736+ </record>
3737+ <record model="ir.actions.act_window.view" id="action_l10n_es_aeat_modelo303_report_tree">
3738+ <field name="sequence" eval="2"/>
3739+ <field name="view_mode">tree</field>
3740+ <field name="view_id" ref="view_l10n_es_aeat_modelo303_report_tree"/>
3741+ <field name="act_window_id" ref="action_l10n_es_aeat_modelo303_report"/>
3742+ </record>
3743+ <record model="ir.actions.act_window.view" id="action_l10n_es_aeat_modelo303_report_form">
3744+ <field name="sequence" eval="3"/>
3745+ <field name="view_mode">form</field>
3746+ <field name="view_id" ref="view_l10n_es_aeat_modelo303_report_form"/>
3747+ <field name="act_window_id" ref="action_l10n_es_aeat_modelo303_report"/>
3748+ </record>
3749+
3750+ <menuitem id="menu_aeat_modelo303_report"
3751+ parent="l10n_es_aeat.menu_root_aeat"
3752+ action="action_l10n_es_aeat_modelo303_report"
3753+ sequence="303"
3754+ name="AEAT 303 model"/>
3755+
3756+ <!-- Valor casilla -->
3757+ <record id="view_l10n_es_aeat_modelo303_valor_casilla_tree" model="ir.ui.view">
3758+ <field name="name">l10n_es.aeat.modelo303.valor.casilla.tree</field>
3759+ <field name="model">l10n.es.aeat.modelo303.valor.casilla</field>
3760+ <field name="arch" type="xml">
3761+ <tree string="Valor casilla">
3762+ <field name="casilla_id" context="{'fiscalyear_id':fiscalyear_id}"/>
3763+ <field name="valor"/>
3764+ </tree>
3765+ </field>
3766+ </record>
3767+ </data>
3768+</openerp>
3769
3770=== added directory 'l10n_es_aeat_mod303/security'
3771=== removed directory 'l10n_es_aeat_mod303/security'
3772=== added file 'l10n_es_aeat_mod303/security/ir.model.access.csv'
3773--- l10n_es_aeat_mod303/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
3774+++ l10n_es_aeat_mod303/security/ir.model.access.csv 2014-04-16 11:51:06 +0000
3775@@ -0,0 +1,7 @@
3776+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
3777+"access_l10n_es_aeat_modelo303_report","l10n_es_aeat_modelo303 manager","model_l10n_es_aeat_modelo303_report","l10n_es_aeat.group_account_aeat",1,1,1,1
3778+"access_l10n_es_aeat_modelo303_template","access_l10n_es_aeat_modelo303_template","model_l10n_es_aeat_modelo303_template","l10n_es_aeat.group_account_aeat",1,1,1,1
3779+"access_l10n_es_aeat_modelo303_casilla_template","access_l10n_es_aeat_modelo303_casilla_template","model_l10n_es_aeat_modelo303_casilla_template","l10n_es_aeat.group_account_aeat",1,1,1,1
3780+"access_l10n_es_aeat_modelo303","access_l10n_es_aeat_modelo303","model_l10n_es_aeat_modelo303","l10n_es_aeat.group_account_aeat",1,1,1,1
3781+"access_l10n_es_aeat_modelo303_casilla","access_l10n_es_aeat_modelo303_casilla","model_l10n_es_aeat_modelo303_casilla","l10n_es_aeat.group_account_aeat",1,1,1,1
3782+"access_l10n_es_aeat_modelo303_valor_casilla","access_l10n_es_aeat_modelo303_valor_casilla","model_l10n_es_aeat_modelo303_valor_casilla","l10n_es_aeat.group_account_aeat",1,1,1,1
3783\ No newline at end of file
3784
3785=== removed file 'l10n_es_aeat_mod303/security/ir.model.access.csv'
3786--- l10n_es_aeat_mod303/security/ir.model.access.csv 2014-01-17 01:03:03 +0000
3787+++ l10n_es_aeat_mod303/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
3788@@ -1,2 +0,0 @@
3789-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
3790-"access_l10n_es_aeat_mod303_manager","l10n_es_aeat_mod303 manager","model_l10n_es_aeat_mod303_report","l10n_es_aeat.group_account_aeat",1,1,1,1
3791
3792=== added directory 'l10n_es_aeat_mod303/static'
3793=== removed directory 'l10n_es_aeat_mod303/static'
3794=== added directory 'l10n_es_aeat_mod303/static/src'
3795=== removed directory 'l10n_es_aeat_mod303/static/src'
3796=== added directory 'l10n_es_aeat_mod303/static/src/img'
3797=== removed directory 'l10n_es_aeat_mod303/static/src/img'
3798=== added file 'l10n_es_aeat_mod303/static/src/img/icon.png'
3799Binary files l10n_es_aeat_mod303/static/src/img/icon.png 1970-01-01 00:00:00 +0000 and l10n_es_aeat_mod303/static/src/img/icon.png 2014-04-16 11:51:06 +0000 differ
3800=== removed file 'l10n_es_aeat_mod303/static/src/img/icon.png'
3801Binary files l10n_es_aeat_mod303/static/src/img/icon.png 2014-01-17 01:03:03 +0000 and l10n_es_aeat_mod303/static/src/img/icon.png 1970-01-01 00:00:00 +0000 differ
3802=== added file 'l10n_es_aeat_mod303/static/src/img/icon_source.svg'
3803--- l10n_es_aeat_mod303/static/src/img/icon_source.svg 1970-01-01 00:00:00 +0000
3804+++ l10n_es_aeat_mod303/static/src/img/icon_source.svg 2014-04-16 11:51:06 +0000
3805@@ -0,0 +1,99 @@
3806+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
3807+<!-- Created with Inkscape (http://www.inkscape.org/) -->
3808+
3809+<svg
3810+ xmlns:dc="http://purl.org/dc/elements/1.1/"
3811+ xmlns:cc="http://creativecommons.org/ns#"
3812+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3813+ xmlns:svg="http://www.w3.org/2000/svg"
3814+ xmlns="http://www.w3.org/2000/svg"
3815+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
3816+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
3817+ id="svg2"
3818+ version="1.1"
3819+ inkscape:version="0.48.3.1 r9886"
3820+ width="128"
3821+ height="128"
3822+ sodipodi:docname="icon_source.svg"
3823+ inkscape:export-filename="icon.png"
3824+ inkscape:export-xdpi="90"
3825+ inkscape:export-ydpi="90">
3826+ <metadata
3827+ id="metadata8">
3828+ <rdf:RDF>
3829+ <cc:Work
3830+ rdf:about="">
3831+ <dc:format>image/svg+xml</dc:format>
3832+ <dc:type
3833+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
3834+ <dc:title></dc:title>
3835+ </cc:Work>
3836+ </rdf:RDF>
3837+ </metadata>
3838+ <defs
3839+ id="defs6" />
3840+ <sodipodi:namedview
3841+ pagecolor="#ffffff"
3842+ bordercolor="#666666"
3843+ borderopacity="1"
3844+ objecttolerance="10"
3845+ gridtolerance="10"
3846+ guidetolerance="10"
3847+ inkscape:pageopacity="0"
3848+ inkscape:pageshadow="2"
3849+ inkscape:window-width="1855"
3850+ inkscape:window-height="1176"
3851+ id="namedview4"
3852+ showgrid="false"
3853+ inkscape:zoom="9.2903224"
3854+ inkscape:cx="65.663825"
3855+ inkscape:cy="56.213195"
3856+ inkscape:window-x="65"
3857+ inkscape:window-y="24"
3858+ inkscape:window-maximized="1"
3859+ inkscape:current-layer="svg2"
3860+ fit-margin-top="0"
3861+ fit-margin-left="0"
3862+ fit-margin-right="0"
3863+ fit-margin-bottom="0" />
3864+ <g
3865+ id="g3003"
3866+ transform="translate(-0.07356158,0)">
3867+ <g
3868+ transform="translate(0,-3.31149)"
3869+ id="g2998">
3870+ <rect
3871+ style="color:#000000;fill:#0060b2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.51812077;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
3872+ id="rect2998"
3873+ width="51.523285"
3874+ height="118.80513"
3875+ x="13.910543"
3876+ y="3.8516259"
3877+ ry="0"
3878+ transform="matrix(1,0,0.51069126,0.85976417,0,0)" />
3879+ <path
3880+ style="fill:#ffd715;fill-opacity:1;stroke:none"
3881+ d="M 8.3819299,96.350865 C 15.28056,97.754835 21.012791,96.867186 27.616708,95.369146 62.09419,84.971119 95.837094,59.943837 111.39019,30.987651 c 3.18661,-6.108384 5.44624,-13.663422 7.03447,-20.85088 l 6.46605,10.776762 C 125.69568,40.01481 102.39016,63.273776 86.603152,76.12262 73.967981,86.300307 59.506348,95.700246 46.777865,100.17543 c -9.415431,3.18415 -23.576115,5.76306 -32.88781,5.87454 z"
3882+ id="path3000"
3883+ inkscape:connector-curvature="0"
3884+ sodipodi:nodetypes="ccccccccc" />
3885+ <path
3886+ style="fill:#db2f34;fill-opacity:1;stroke:none"
3887+ d="m 24.427332,35.162809 6.945024,10.297799 C 12.399362,62.416498 10.934918,76.019681 6.2265773,90.24404 L 0,79.467276 C 3.2831165,59.062301 13.253472,46.414525 24.427332,35.162809 z"
3888+ id="path3021"
3889+ inkscape:connector-curvature="0"
3890+ sodipodi:nodetypes="ccccc" />
3891+ </g>
3892+ </g>
3893+ <text
3894+ sodipodi:linespacing="125%"
3895+ id="text2988"
3896+ y="127.48399"
3897+ x="-1.5893271"
3898+ style="font-size:42.27203751px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Bold"
3899+ xml:space="preserve"><tspan
3900+ y="127.48399"
3901+ x="-1.5893271"
3902+ id="tspan2990"
3903+ sodipodi:role="line">303</tspan></text>
3904+</svg>
3905
3906=== removed file 'l10n_es_aeat_mod303/static/src/img/icon_source.svg'
3907--- l10n_es_aeat_mod303/static/src/img/icon_source.svg 2014-01-17 01:03:03 +0000
3908+++ l10n_es_aeat_mod303/static/src/img/icon_source.svg 1970-01-01 00:00:00 +0000
3909@@ -1,99 +0,0 @@
3910-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
3911-<!-- Created with Inkscape (http://www.inkscape.org/) -->
3912-
3913-<svg
3914- xmlns:dc="http://purl.org/dc/elements/1.1/"
3915- xmlns:cc="http://creativecommons.org/ns#"
3916- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3917- xmlns:svg="http://www.w3.org/2000/svg"
3918- xmlns="http://www.w3.org/2000/svg"
3919- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
3920- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
3921- id="svg2"
3922- version="1.1"
3923- inkscape:version="0.48.3.1 r9886"
3924- width="128"
3925- height="128"
3926- sodipodi:docname="icon_source.svg"
3927- inkscape:export-filename="icon.png"
3928- inkscape:export-xdpi="90"
3929- inkscape:export-ydpi="90">
3930- <metadata
3931- id="metadata8">
3932- <rdf:RDF>
3933- <cc:Work
3934- rdf:about="">
3935- <dc:format>image/svg+xml</dc:format>
3936- <dc:type
3937- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
3938- <dc:title></dc:title>
3939- </cc:Work>
3940- </rdf:RDF>
3941- </metadata>
3942- <defs
3943- id="defs6" />
3944- <sodipodi:namedview
3945- pagecolor="#ffffff"
3946- bordercolor="#666666"
3947- borderopacity="1"
3948- objecttolerance="10"
3949- gridtolerance="10"
3950- guidetolerance="10"
3951- inkscape:pageopacity="0"
3952- inkscape:pageshadow="2"
3953- inkscape:window-width="1855"
3954- inkscape:window-height="1176"
3955- id="namedview4"
3956- showgrid="false"
3957- inkscape:zoom="9.2903224"
3958- inkscape:cx="65.663825"
3959- inkscape:cy="56.213195"
3960- inkscape:window-x="65"
3961- inkscape:window-y="24"
3962- inkscape:window-maximized="1"
3963- inkscape:current-layer="svg2"
3964- fit-margin-top="0"
3965- fit-margin-left="0"
3966- fit-margin-right="0"
3967- fit-margin-bottom="0" />
3968- <g
3969- id="g3003"
3970- transform="translate(-0.07356158,0)">
3971- <g
3972- transform="translate(0,-3.31149)"
3973- id="g2998">
3974- <rect
3975- style="color:#000000;fill:#0060b2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.51812077;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
3976- id="rect2998"
3977- width="51.523285"
3978- height="118.80513"
3979- x="13.910543"
3980- y="3.8516259"
3981- ry="0"
3982- transform="matrix(1,0,0.51069126,0.85976417,0,0)" />
3983- <path
3984- style="fill:#ffd715;fill-opacity:1;stroke:none"
3985- d="M 8.3819299,96.350865 C 15.28056,97.754835 21.012791,96.867186 27.616708,95.369146 62.09419,84.971119 95.837094,59.943837 111.39019,30.987651 c 3.18661,-6.108384 5.44624,-13.663422 7.03447,-20.85088 l 6.46605,10.776762 C 125.69568,40.01481 102.39016,63.273776 86.603152,76.12262 73.967981,86.300307 59.506348,95.700246 46.777865,100.17543 c -9.415431,3.18415 -23.576115,5.76306 -32.88781,5.87454 z"
3986- id="path3000"
3987- inkscape:connector-curvature="0"
3988- sodipodi:nodetypes="ccccccccc" />
3989- <path
3990- style="fill:#db2f34;fill-opacity:1;stroke:none"
3991- d="m 24.427332,35.162809 6.945024,10.297799 C 12.399362,62.416498 10.934918,76.019681 6.2265773,90.24404 L 0,79.467276 C 3.2831165,59.062301 13.253472,46.414525 24.427332,35.162809 z"
3992- id="path3021"
3993- inkscape:connector-curvature="0"
3994- sodipodi:nodetypes="ccccc" />
3995- </g>
3996- </g>
3997- <text
3998- sodipodi:linespacing="125%"
3999- id="text2988"
4000- y="127.48399"
4001- x="-1.5893271"
4002- style="font-size:42.27203751px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial Bold"
4003- xml:space="preserve"><tspan
4004- y="127.48399"
4005- x="-1.5893271"
4006- id="tspan2990"
4007- sodipodi:role="line">303</tspan></text>
4008-</svg>
4009
4010=== added directory 'l10n_es_aeat_mod303/wizard'
4011=== removed directory 'l10n_es_aeat_mod303/wizard'
4012=== added file 'l10n_es_aeat_mod303/wizard/__init__.py'
4013--- l10n_es_aeat_mod303/wizard/__init__.py 1970-01-01 00:00:00 +0000
4014+++ l10n_es_aeat_mod303/wizard/__init__.py 2014-04-16 11:51:06 +0000
4015@@ -0,0 +1,19 @@
4016+# -*- encoding: utf-8 -*-
4017+##############################################################################
4018+#
4019+# This program is free software: you can redistribute it and/or modify
4020+# it under the terms of the GNU General Public License as published by
4021+# the Free Software Foundation, either version 3 of the License, or
4022+# (at your option) any later version.
4023+#
4024+# This program is distributed in the hope that it will be useful,
4025+# but WITHOUT ANY WARRANTY; without even the implied warranty of
4026+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4027+# GNU General Public License for more details.
4028+#
4029+# You should have received a copy of the GNU General Public License
4030+# along with this program. If not, see http://www.gnu.org/licenses/.
4031+#
4032+##############################################################################
4033+from . import export_modelo303_to_boe
4034+from . import wizard_chart_update
4035
4036=== removed file 'l10n_es_aeat_mod303/wizard/__init__.py'
4037--- l10n_es_aeat_mod303/wizard/__init__.py 2014-01-17 01:03:03 +0000
4038+++ l10n_es_aeat_mod303/wizard/__init__.py 1970-01-01 00:00:00 +0000
4039@@ -1,18 +0,0 @@
4040-# -*- encoding: utf-8 -*-
4041-##############################################################################
4042-#
4043-# This program is free software: you can redistribute it and/or modify
4044-# it under the terms of the GNU General Public License as published by
4045-# the Free Software Foundation, either version 3 of the License, or
4046-# (at your option) any later version.
4047-#
4048-# This program is distributed in the hope that it will be useful,
4049-# but WITHOUT ANY WARRANTY; without even the implied warranty of
4050-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4051-# GNU General Public License for more details.
4052-#
4053-# You should have received a copy of the GNU General Public License
4054-# along with this program. If not, see http://www.gnu.org/licenses/.
4055-#
4056-##############################################################################
4057-from . import export_mod303_to_boe
4058
4059=== removed file 'l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py'
4060--- l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py 2014-01-31 18:51:14 +0000
4061+++ l10n_es_aeat_mod303/wizard/export_mod303_to_boe.py 1970-01-01 00:00:00 +0000
4062@@ -1,173 +0,0 @@
4063-# -*- encoding: utf-8 -*-
4064-##############################################################################
4065-#
4066-# This program is free software: you can redistribute it and/or modify
4067-# it under the terms of the GNU General Public License as published by
4068-# the Free Software Foundation, either version 3 of the License, or
4069-# (at your option) any later version.
4070-#
4071-# This program is distributed in the hope that it will be useful,
4072-# but WITHOUT ANY WARRANTY; without even the implied warranty of
4073-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4074-# GNU General Public License for more details.
4075-#
4076-# You should have received a copy of the GNU General Public License
4077-# along with this program. If not, see http://www.gnu.org/licenses/.
4078-#
4079-##############################################################################
4080-from datetime import datetime
4081-from openerp.tools.translate import _
4082-from openerp.osv import orm
4083-import base64
4084-import time
4085-
4086-class l10n_es_aeat_mod303_export_to_boe(orm.TransientModel):
4087- _inherit = "l10n.es.aeat.report.export_to_boe"
4088- _name = 'l10n.es.aeat.mod303.export_to_boe'
4089-
4090- def _get_formatted_declaration_record(self, cr, uid, report, context=None):
4091- res = ''
4092- ## cabecera
4093- res += "<T30301> "
4094- # Tipo de declaración - "Para impresión, cualquier caracter
4095- # alfanumérico o 'N' si la autoliquidación se declara SIN ACTIVIDAD"
4096- res += self._formatString("N" if report.sin_actividad else " ", 1)
4097- # Identificación (1)
4098- res += self._formatString(report.company_vat, 9) # NIF del declarante
4099- res += self._formatString(report.company_id.name, 30) # Apellidos o razón social.
4100- res += self._formatString("", 15) # Nombre
4101- res += self._formatBoolean(report.devolucion_mensual, yes='1', no='2')
4102- ## devengo (2)
4103- res += self._formatNumber(report.fiscalyear_id.code, 4)
4104- res += self._formatString(report.period, 2)
4105- assert len(res) == 71, _("The identification (1) and income (2) must "
4106- "be 72 characters long")
4107- return res
4108-
4109- def _get_formatted_main_record(self, cr, uid, report, context=None):
4110- lines = report._get_report_lines(context=context)
4111- res = ''
4112- ## IVA devengado
4113- # -- Regimen General y Recargo de Equivalencia - code_pair [1~18]
4114- codes = [
4115- ## Régimen general
4116- ('[01]','[03]'),
4117- ('[04]','[06]'),
4118- ('[07]','[09]'),
4119- ## Recargo de equivalencia
4120- ('[10]','[12]'),
4121- ('[13]','[15]'),
4122- ('[16]','[18]'),
4123- ]
4124- for code_pair in codes:
4125- base_imponible = lines.get(code_pair[0], 0)
4126- cuota = lines.get(code_pair[1], 0)
4127- tipo = cuota / base_imponible * 100 if base_imponible else 0
4128- # base imponible X % -- codes [1, 4, 7, 10, 13, 16]
4129- res += self._formatNumber(base_imponible, 15, 2)
4130- # tipo % codes - [2, 5, 8, 11, 14, 17]
4131- res += self._formatNumber(tipo, 3, 2)
4132- # cuota X % -- codes [3, 6, 9, 12, 15, 18]
4133- res += self._formatNumber(cuota, 15, 2)
4134- # -- Adquisiciones Intracomunitarias - codes [19,20]
4135- res += self._formatNumber(lines.get("[19]"), 15, 2) ## base imponible
4136- res += self._formatNumber(lines.get("[20]"), 15, 2) ## cuota
4137- # -- Total Cuota Devengada - code [21]
4138- res += self._formatNumber(report.total_devengado, 15, 2) ## cuota
4139- ## IVA deducible
4140- # -- Por Cuotas soportadas ... - codes [22~25]
4141- # -- Por Cuotas satisfechas en ... - codes [26~29]
4142- # -- En adquisiciones intracomunitarias de bienes ... - codes [30~33]
4143- for i in range(22, 34):
4144- res += self._formatNumber(lines.get("[%s]" % i), 15, 2)
4145- # --
4146- # Compesaciones Regimen Especial AG y P
4147- res += self._formatNumber(lines.get("[34]"), 15, 2)
4148- # Regularización inversiones
4149- res += self._formatNumber(lines.get("[35]"), 15, 2)
4150- # Regularización inversiones por aplicación del porcentaje def de prorrata
4151- res += self._formatNumber(lines.get("[36]"), 15, 2)
4152- # -- Total a deducir
4153- res += self._formatNumber(report.total_deducir, 15, 2)
4154- # Diferencia [21] - [37]
4155- res += self._formatNumber(report.diferencia, 15, 2)
4156- # Atribuible a la administracion ...
4157- # TODO: Navarra y País Vasco
4158- res += self._formatNumber(report.porcentaje_atribuible_estado, 3, 2)
4159- res += self._formatNumber(report.atribuible_estado, 15, 2)
4160- res += self._formatNumber(report.cuota_compensar, 15, 2) ## [41]
4161- # Entregas intracomunitarias
4162- res += self._formatNumber(lines.get("[42]"), 15, 2)
4163- # [42], Exportaciones y operaciones asimiladas
4164- res += self._formatNumber(lines.get("[43]"), 15, 2)
4165- # [43], Derecho a deucción [44]
4166- res += self._formatNumber(lines.get("[44]"), 15, 2)
4167- ## Estado y Comunidades Forales
4168- res += self._formatNumber(report.regularizacion_anual, 15, 2)
4169- res += self._formatNumber(report.resultado_casilla_46, 15, 2) ## [40] - [41]
4170- ## A deducir - autoliquidación complementaria .... pedir campo
4171- res += self._formatNumber(report.previus_result if report.complementaria else 0, 15, 2)
4172- res += self._formatNumber(report.resultado_liquidacion, 15, 2) ## [48]
4173- ## A compensar
4174- res += self._formatNumber(report.compensar, 15, 2) ## [49]
4175- ## Marca SIN ACTIVIDAD
4176- res += self._formatBoolean( report.sin_actividad , yes='1', no='2') #
4177- assert len(res) == 822 - 72, _("The vat records must be 749 characters long and are %s") % len(res)
4178- return res
4179-
4180- def _get_formatted_other_records(self, cr, uid, report, context=None):
4181- res = ''
4182- ## devolucion (6)
4183- res += self._formatNumber(report.devolver, 15, 2) ## devolucion [50]
4184- ccc = ""
4185- if report.cuenta_devolucion_id and report.devolver:
4186- ccc = report.cuenta_devolucion_id.acc_number.replace("-", "").replace(" ", "")
4187- if not (len(ccc) == 20 and ccc.isdigit()):
4188- raise orm.except_orm(_('Warning'),
4189- _("CCC de devolución no válida \n%s") %ccc)
4190- res += self._formatString(ccc,20) ## no hay devolución
4191- """
4192- ## ingreso (7)
4193- 859 1 Num Ingreso (7) - Forma de pago
4194- 860 17 N Ingreso (7) - Importe [I]
4195- 877 4 An Ingreso (7) - Código cuenta cliente - Entidad
4196- 881 4 An Ingreso (7) - Código cuenta cliente - Oficina
4197- 885 2 An Ingreso (7) - Código cuenta cliente - DC
4198- 887 10 An Ingreso (7) - Código cuenta cliente - Número de cuenta
4199- """
4200- # NO SE USA ??? Forma de Pago - "0" No consta, "1" Efectivo,
4201- # "2" Adeudo en cuenta, "3" Domiciliación
4202- res += self._formatString("0", 1)
4203- res += self._formatNumber(report.ingresar, 15, 2) ## devolucion [50]
4204- ccc = ""
4205- if report.cuenta_ingreso_id and report.ingresar:
4206- ccc = report.cuenta_ingreso_id.acc_number.replace("-", "").replace(" ", "")
4207- if not (len(ccc) == 20 and ccc.isdigit()):
4208- raise orm.except_orm(_('Warning'),
4209- _("CCC de ingreso no válido %s") % ccc)
4210- res += self._formatString(ccc,20) ## no hay devolución
4211- # Complementaria (8) Indicador Autoliquidación complementaria
4212- res += self._formatBoolean(report.complementaria, yes='1', no='0')
4213- # Complementaria (8) - no justificante declaración anterior
4214- res += self._formatString(report.previous_number if report.complementaria else "" , 13)
4215- ## TODO -- hardcode por ahora
4216- # Autorización conjunta
4217- res += self._formatBoolean(False, yes='1', no=' ')
4218- res += self._formatString(' ', 1) ## 77 autodeclaracion del concurso
4219- res += ' '*398 ## campo reservado
4220- # Localidad
4221- res += self._formatString(report.company_id.partner_id.city, 16)
4222- # TODO: Utilizar formato del servidor
4223- date = datetime.strptime(report.calculation_date, "%Y-%m-%d %H:%M:%S")
4224- res += self._formatString(date.strftime("%d"), 2) ## fecha: Dia
4225- res += self._formatString(_(date.strftime("%B")), 10) ## fecha: Mes
4226- res += self._formatString(date.strftime("%Y"), 4) ## fecha: Año
4227- res += self._formatString("</T30301>", 9)
4228- res += "\r\n".encode("ascii")
4229- return res
4230-
4231- def _do_global_checks(self, report, contents, context=None):
4232- assert len(contents) == 1353, \
4233- _("The 303 report must be 1353 characters long and are %s"
4234- ) %len(contents)
4235- return True
4236\ No newline at end of file
4237
4238=== removed file 'l10n_es_aeat_mod303/wizard/export_mod303_to_boe.xml'
4239--- l10n_es_aeat_mod303/wizard/export_mod303_to_boe.xml 2014-01-23 16:41:59 +0000
4240+++ l10n_es_aeat_mod303/wizard/export_mod303_to_boe.xml 1970-01-01 00:00:00 +0000
4241@@ -1,18 +0,0 @@
4242-<?xml version="1.0" encoding="utf-8"?>
4243-<openerp>
4244- <data>
4245- <record model="ir.actions.act_window" id="action_wizard_aeat_mod303_export">
4246- <field name="name">Export AEAT 303 BOE file</field>
4247- <field name="type">ir.actions.act_window</field>
4248- <field name="res_model">l10n.es.aeat.mod303.export_to_boe</field>
4249- <field name="view_type">form</field>
4250- <field name="view_mode">form</field>
4251- <field name="target">new</field>
4252- </record>
4253- <record model="ir.actions.act_window.view" id="action_wizard_aeat_mod303_export_form">
4254- <field name="act_window_id" ref="action_wizard_aeat_mod303_export"/>
4255- <field name="view_mode">form</field>
4256- <field name="view_id" ref="l10n_es_aeat.wizard_aeat_export"/>
4257- </record>
4258- </data>
4259-</openerp>
4260
4261=== added file 'l10n_es_aeat_mod303/wizard/export_modelo303_to_boe.py'
4262--- l10n_es_aeat_mod303/wizard/export_modelo303_to_boe.py 1970-01-01 00:00:00 +0000
4263+++ l10n_es_aeat_mod303/wizard/export_modelo303_to_boe.py 2014-04-16 11:51:06 +0000
4264@@ -0,0 +1,125 @@
4265+# -*- encoding: utf-8 -*-
4266+##############################################################################
4267+#
4268+# This program is free software: you can redistribute it and/or modify
4269+# it under the terms of the GNU General Public License as published by
4270+# the Free Software Foundation, either version 3 of the License, or
4271+# (at your option) any later version.
4272+#
4273+# This program is distributed in the hope that it will be useful,
4274+# but WITHOUT ANY WARRANTY; without even the implied warranty of
4275+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4276+# GNU General Public License for more details.
4277+#
4278+# You should have received a copy of the GNU General Public License
4279+# along with this program. If not, see http://www.gnu.org/licenses/.
4280+#
4281+##############################################################################
4282+from datetime import datetime
4283+import base64
4284+import time
4285+
4286+from openerp.tools.translate import _
4287+from openerp.osv import orm
4288+from openerp.tools.safe_eval import safe_eval
4289+
4290+
4291+class l10n_es_aeat_modelo303_export_to_boe(orm.TransientModel):
4292+ _inherit = "l10n.es.aeat.report.export_to_boe"
4293+ _name = 'l10n.es.aeat.modelo303.export_to_boe'
4294+
4295+ def _validate_template_line(self, template_line):
4296+ # TODO: Validar formato de las lineas de la plantilla del 303
4297+ return True
4298+
4299+ def _get_template_lines(self, report):
4300+ template_lines = []
4301+ template = report and report.modelo303_id and report.modelo303_id.template or ''
4302+ for line in template.strip().split("\n"):
4303+ line = line.strip()
4304+ if not line or line[0] == ';':
4305+ continue
4306+ parts = [v.strip() for v in line.split(',')]
4307+ tmpl_line = {"long": parts[0],
4308+ "longdec": parts[1],
4309+ "tipo_formato": parts[2],
4310+ "valor": parts[3]}
4311+ self._validate_template_line(tmpl_line)
4312+ template_lines.append(tmpl_line)
4313+ return template_lines
4314+
4315+ def _get_formatted_declaration_record(self, cr, uid, report, context=None):
4316+ return ''
4317+
4318+ def _get_formatted_main_record(self, cr, uid, report, context=None):
4319+ ccc_devolucion = ""
4320+ ccc_devolucion_iban = ""
4321+ if report.cuenta_devolucion_id:
4322+ ccc_devolucion = report.cuenta_devolucion_id.acc_number.replace("-", "").replace(" ", "")
4323+ if len(ccc_devolucion) > 20:
4324+ ccc_devolucion_iban = ccc_devolucion
4325+ ccc_devolucion = ccc_devolucion[-20:]
4326+ ccc_ingreso = ""
4327+ ccc_ingreso_iban = ""
4328+ if report.cuenta_ingreso_id:
4329+ ccc_ingreso = report.cuenta_ingreso_id.acc_number.replace("-", "").replace(" ", "")
4330+ if len(ccc_ingreso) > 20:
4331+ ccc_ingreso_iban = ccc_ingreso
4332+ ccc_ingreso = ccc_ingreso[-20:]
4333+
4334+ date = datetime.strptime(report.calculation_date, "%Y-%m-%d %H:%M:%S")
4335+ values = {
4336+ 'nif': report.company_vat,
4337+ 'razon_social': report.company_id.name,
4338+ 'devolucion_mensual': self._formatBoolean(report.devolucion_mensual, yes='1', no='2'),
4339+ 'ejercicio': report.fiscalyear_id.code,
4340+ 'periodo': report.period,
4341+ 'localidad': report.company_id.partner_id.city,
4342+ 'dia': date.strftime("%d"),
4343+ 'mes': _(date.strftime("%B")),
4344+ 'any': date.strftime("%Y"),
4345+ 'sin_actividad': self._formatBoolean(report.sin_actividad , yes='1', no='2'),
4346+ 'cc_devolucion_entidad': ccc_devolucion[:4],
4347+ 'cc_devolucion_oficina': ccc_devolucion[4:8],
4348+ 'cc_devolucion_dc': ccc_devolucion[8:10],
4349+ 'cc_devolucion_num':ccc_devolucion[10:],
4350+ 'cc_devolucion_iban': ccc_devolucion_iban,
4351+ 'cc_ingreso_entidad': ccc_ingreso[:4],
4352+ 'cc_ingreso_oficina': ccc_ingreso[4:8],
4353+ 'cc_ingreso_dc': ccc_ingreso[8:10],
4354+ 'cc_ingreso_num':ccc_ingreso[10:],
4355+ 'cc_ingreso_iban': ccc_ingreso_iban,
4356+ 'complementaria': self._formatBoolean(report.complementaria, yes='1', no='2'),
4357+ 'numero_justificante': report.previous_number,
4358+ 'sujeto_a_cdc': self._formatBoolean(report.sujeto_a_cdc, yes='1', no='2'),
4359+ 'destinatario_operaciones_cdc': self._formatBoolean(report.destinatario_operaciones_cdc, yes='1', no='2'),
4360+ 'clrf': "\r\n".encode("ascii"),
4361+ }
4362+ casillas = {}
4363+ for i in range(1,201):
4364+ casillas["c%02d" % i] = 0
4365+ for valor_casilla in report.valor_casilla_ids:
4366+ casillas["c%s" % valor_casilla.casilla_id.code] = valor_casilla.valor
4367+
4368+ eval_ctx = casillas.copy()
4369+ eval_ctx.update(values)
4370+
4371+ res = ''
4372+ template_lines = self._get_template_lines(report)
4373+ for tmpl_line in template_lines:
4374+ valor = tmpl_line['valor']
4375+ valor = safe_eval(valor, eval_ctx)
4376+
4377+ is_neg = valor < 0
4378+ if tmpl_line['tipo_formato'] == 'n':
4379+ res += self._formatNumber(valor, int(tmpl_line['long']) - (is_neg and 1 or 0),
4380+ int(tmpl_line['longdec']),
4381+ include_sign=is_neg)
4382+ elif tmpl_line['tipo_formato'] == 'a':
4383+ res += self._formatString(valor, int(tmpl_line['long']))
4384+ else:
4385+ raise orm.except_orm("", "tipo_formato: \"%s\" debe ser uno de (a, n)")
4386+ return res
4387+
4388+ def _get_formatted_other_records(self, cr, uid, report, context=None):
4389+ return ''
4390
4391=== added file 'l10n_es_aeat_mod303/wizard/export_modelo303_to_boe.xml'
4392--- l10n_es_aeat_mod303/wizard/export_modelo303_to_boe.xml 1970-01-01 00:00:00 +0000
4393+++ l10n_es_aeat_mod303/wizard/export_modelo303_to_boe.xml 2014-04-16 11:51:06 +0000
4394@@ -0,0 +1,18 @@
4395+<?xml version="1.0" encoding="utf-8"?>
4396+<openerp>
4397+ <data>
4398+ <record model="ir.actions.act_window" id="action_wizard_aeat_modelo303_export">
4399+ <field name="name">Export AEAT 303 BOE file</field>
4400+ <field name="type">ir.actions.act_window</field>
4401+ <field name="res_model">l10n.es.aeat.modelo303.export_to_boe</field>
4402+ <field name="view_type">form</field>
4403+ <field name="view_mode">form</field>
4404+ <field name="target">new</field>
4405+ </record>
4406+ <record model="ir.actions.act_window.view" id="action_wizard_aeat_modelo303_export_form">
4407+ <field name="act_window_id" ref="action_wizard_aeat_modelo303_export"/>
4408+ <field name="view_mode">form</field>
4409+ <field name="view_id" ref="l10n_es_aeat.wizard_aeat_export"/>
4410+ </record>
4411+ </data>
4412+</openerp>
4413
4414=== added file 'l10n_es_aeat_mod303/wizard/wizard_chart_update.py'
4415--- l10n_es_aeat_mod303/wizard/wizard_chart_update.py 1970-01-01 00:00:00 +0000
4416+++ l10n_es_aeat_mod303/wizard/wizard_chart_update.py 2014-04-16 11:51:06 +0000
4417@@ -0,0 +1,444 @@
4418+# -*- coding: utf-8 -*-
4419+##############################################################################
4420+#
4421+# Copyright (c) 2010 Zikzakmedia S.L. (http://www.zikzakmedia.com)
4422+# Copyright (c) 2010 Pexego Sistemas Informáticos S.L. (http://www.pexego.es)
4423+# @authors: Jordi Esteve (Zikzakmedia), Borja López Soilán (Pexego)
4424+# Copyright (c) 2014 Txerpa - Biel Massot (https://www.txerpa.com)
4425+#
4426+# This program is free software: you can redistribute it and/or modify
4427+# it under the terms of the GNU Affero General Public License as published
4428+# by the Free Software Foundation, either version 3 of the License, or
4429+# (at your option) any later version.
4430+#
4431+# This program is distributed in the hope that it will be useful,
4432+# but WITHOUT ANY WARRANTY; without even the implied warranty of
4433+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4434+# GNU Affero General Public License for more details.
4435+#
4436+# You should have received a copy of the GNU Affero General Public License
4437+# along with this program. If not, see <http://www.gnu.org/licenses/>.
4438+#
4439+##############################################################################
4440+from openerp.osv import fields, orm
4441+from openerp.tools.translate import _
4442+import logging
4443+
4444+class WizardLog:
4445+ """
4446+ *******************************************************************
4447+ Small helper class to store the messages and errors on the wizard.
4448+ *******************************************************************
4449+ """
4450+ def __init__(self):
4451+ self.messages = []
4452+ self.errors = []
4453+
4454+ def add(self, message, is_error=False):
4455+ """
4456+ Adds a message to the log.
4457+ """
4458+ logger = logging.getLogger("account_chart_update")
4459+ if is_error:
4460+ logger.warning(u"Log line: %s" % message)
4461+ self.errors.append(message)
4462+ else:
4463+ logger.debug(u"Log line: %s" % message)
4464+ self.messages.append(message)
4465+
4466+ def has_errors(self):
4467+ """
4468+ Returns whether errors where logged.
4469+ """
4470+ return self.errors
4471+
4472+ def __call__(self):
4473+ return "".join(self.messages)
4474+
4475+ def __str__(self):
4476+ return "".join(self.messages)
4477+
4478+ def get_errors_str(self):
4479+ return "".join(self.errors)
4480+
4481+class wizard_chart_update(orm.TransientModel):
4482+ _inherit = 'wizard.update.charts.accounts'
4483+
4484+ _columns = {
4485+ 'update_casilla': fields.boolean('Update Casillas AEAT and 303'),
4486+ 'casilla_ids': fields.one2many('wizard.update.charts.accounts.casilla', 'update_chart_wizard_id', 'Casilla', ondelete='cascade'),
4487+ 'new_casillas': fields.integer('New Casillas', readonly=True),
4488+ 'updated_casillas': fields.integer('Updated Casillas', readonly=True),
4489+ 'modelo303_ids': fields.one2many('wizard.update.charts.accounts.modelo303', 'update_chart_wizard_id', 'Modelo303', ondelete='cascade'),
4490+ 'new_modelos303': fields.integer('New Modelos303', readonly=True),
4491+ 'updated_modelos303': fields.integer('Updated Modelos303', readonly=True),
4492+ }
4493+
4494+ _defaults = {
4495+ 'update_casilla': True,
4496+ }
4497+
4498+ def _map_modelo303_template(self, cr, uid, wizard, modelo303_template_mapping, modelo303_template, context=None):
4499+ """
4500+ Adds a modelo303 template -> modelo303 id to the mapping.
4501+ """
4502+ if modelo303_template and not modelo303_template_mapping.get(modelo303_template.id):
4503+ modelos303 = self.pool.get('l10n.es.aeat.modelo303')
4504+ modelos303_ids = modelos303.search(cr, uid, [
4505+ ('name', '=', modelo303_template.name),
4506+ # ('company_id', '=', wizard.company_id.id) # TODO
4507+ ], context=context)
4508+ if modelos303_ids:
4509+ modelo303_template_mapping[modelo303_template.id] = modelos303_ids[0]
4510+
4511+ def _map_casilla_template(self, cr, uid, wizard, casilla_template_mapping, casilla_template, context=None):
4512+ """
4513+ Adds a casilla template -> casilla id to the mapping.
4514+ """
4515+ if casilla_template and not casilla_template_mapping.get(casilla_template.id):
4516+ casillas = self.pool.get('l10n.es.aeat.modelo303.casilla')
4517+ casilla_ids = casillas.search(cr, uid, [
4518+ ('name', '=', casilla_template.name),
4519+ ('modelo303_id.name', '=', casilla_template.modelo303_id.name)
4520+ # ('company_id', '=', wizard.company_id.id) # TODO
4521+ ], context=context)
4522+ if casilla_ids:
4523+ casilla_template_mapping[casilla_template.id] = casilla_ids[0]
4524+
4525+ def _find_modelos303(self, cr, uid, wizard, context=None):
4526+ """
4527+ Search for, and load, modelo303 templates to create/update.
4528+ """
4529+ new_modelos303 = 0
4530+ updated_modelos303 = 0
4531+ modelo303_template_mapping = {}
4532+
4533+ modelos303 = self.pool.get('l10n.es.aeat.modelo303')
4534+ m303_template = self.pool.get('l10n.es.aeat.modelo303.template')
4535+ wiz_modelos303 = self.pool.get('wizard.update.charts.accounts.modelo303')
4536+
4537+ # Remove previous taxes
4538+ wiz_modelos303.unlink(cr, uid, wiz_modelos303.search(cr, uid, []))
4539+ # Search for new / updated taxes
4540+ for modelo303_template in m303_template.browse(cr, uid, m303_template.search(cr, uid, [])):#wizard.chart_template_id.modelo303_template_ids:
4541+ # Ensure the tax template is on the map (search for the mapped tax
4542+ # id).
4543+ self._map_modelo303_template(
4544+ cr, uid, wizard, modelo303_template_mapping, modelo303_template, context)
4545+
4546+ modelo303_id = modelo303_template_mapping.get(modelo303_template.id)
4547+ if not modelo303_id:
4548+ new_modelos303 += 1
4549+ vals_wiz = {
4550+ 'modelo303_id': modelo303_template.id,
4551+ 'update_chart_wizard_id': wizard.id,
4552+ 'type': 'new',
4553+ }
4554+ wiz_modelos303.create(cr, uid, vals_wiz, context)
4555+ elif wizard.update_casilla:
4556+ # Check the tax for changes.
4557+ modified = False
4558+ notes = ""
4559+ modelo303 = modelos303.browse(cr, uid, modelo303_id, context=context)
4560+ if modelo303.date != modelo303_template.date:
4561+ notes += _("The date field is different.\n")
4562+ modified = True
4563+ if modelo303.template != modelo303_template.template:
4564+ notes += _("The template field is different.\n")
4565+ modified = True
4566+
4567+ if modified:
4568+ # Tax to update.
4569+ updated_modelos303 += 1
4570+ wiz_modelos303.create(cr, uid, {
4571+ 'modelo303_id': modelo303_template.id,
4572+ 'update_chart_wizard_id': wizard.id,
4573+ 'type': 'updated',
4574+ 'update_modelo303_id': modelo303_id,
4575+ 'notes': notes,
4576+ }, context)
4577+
4578+ return {'new': new_modelos303, 'updated': updated_modelos303, 'mapping': modelo303_template_mapping}
4579+
4580+ def _find_casillas(self, cr, uid, wizard, context=None):
4581+ """
4582+ Search for, and load, casillas templates to create/update.
4583+ """
4584+ new_casillas = 0
4585+ updated_casillas = 0
4586+ casilla_template_mapping = {}
4587+
4588+ casillas = self.pool.get('l10n.es.aeat.modelo303.casilla')
4589+ c_template = self.pool.get('l10n.es.aeat.modelo303.casilla.template')
4590+ wiz_casillas = self.pool.get('wizard.update.charts.accounts.casilla')
4591+
4592+ # Remove previous taxes
4593+ wiz_casillas.unlink(cr, uid, wiz_casillas.search(cr, uid, []))
4594+ # Search for new / updated taxes
4595+ for casilla_template in c_template.browse(cr, uid, c_template.search(cr, uid, [])):#wizard.chart_template_id.casilla_template_ids:
4596+ # Ensure the tax template is on the map (search for the mapped tax
4597+ # id).
4598+ self._map_casilla_template(
4599+ cr, uid, wizard, casilla_template_mapping, casilla_template, context)
4600+
4601+ casilla_id = casilla_template_mapping.get(casilla_template.id)
4602+ if not casilla_id:
4603+ new_casillas += 1
4604+ vals_wiz = {
4605+ 'casilla_id': casilla_template.id,
4606+ 'update_chart_wizard_id': wizard.id,
4607+ 'type': 'new',
4608+ }
4609+ wiz_casillas.create(cr, uid, vals_wiz, context)
4610+ elif wizard.update_casilla:
4611+ # Check the tax for changes.
4612+ modified = False
4613+ notes = ""
4614+ casilla = casillas.browse(cr, uid, casilla_id, context=context)
4615+ if casilla.code != casilla_template.code:
4616+ notes += _("The code field is different.\n")
4617+ modified = True
4618+ if casilla.evaluate_as != casilla_template.evaluate_as:
4619+ notes += _("The evaluate_as field is different.\n")
4620+ modified = True
4621+ if casilla.tax_code_ids != casilla_template.tax_code_ids:
4622+ notes += _("The tax_codes_ids field is different.\n")
4623+ modified = True
4624+ if casilla.default_value != casilla_template.default_value:
4625+ notes += _("The default_value field is different.\n")
4626+ modified = True
4627+ # TODO: We could check other tax fields for changes...
4628+
4629+ if modified:
4630+ # Tax to update.
4631+ updated_casillas += 1
4632+ wiz_casillas.create(cr, uid, {
4633+ 'casilla_id': casilla_template.id,
4634+ 'update_chart_wizard_id': wizard.id,
4635+ 'type': 'updated',
4636+ 'update_casilla_id': casilla_id,
4637+ 'notes': notes,
4638+ }, context)
4639+
4640+ return {'new': new_casillas, 'updated': updated_casillas, 'mapping': casilla_template_mapping}
4641+
4642+
4643+ def action_find_records(self, cr, uid, ids, context=None):
4644+ """
4645+ Searchs for records to update/create and shows them
4646+ """
4647+ rdo = super(wizard_chart_update, self).action_find_records(cr, uid, ids, context)
4648+ if context is None:
4649+ context = {}
4650+
4651+ wizard = self.browse(cr, uid, ids[0], context=context)
4652+
4653+ if wizard.lang:
4654+ context['lang'] = wizard.lang
4655+ elif context.get('lang'):
4656+ del context['lang']
4657+
4658+ # Search for, and load, the records to create/update.
4659+ m303_res = self._find_modelos303(cr, uid, wizard, context=context)
4660+ casillas_res = self._find_casillas(cr, uid, wizard, context=context)
4661+
4662+ # Write the results, and go to the next step.
4663+ self.write(cr, uid, [wizard.id], {
4664+ 'state': 'ready',
4665+ 'new_modelos303': m303_res.get('new', 0),
4666+ 'new_casillas': casillas_res.get('new', 0),
4667+ 'updated_modelos303': m303_res.get('updated', 0),
4668+ 'updated_casillas': casillas_res.get('updated', 0),
4669+ }, context)
4670+
4671+ return rdo
4672+
4673+ def _update_modelos303(self, cr, uid, wizard, log, context=None):
4674+ """
4675+ Update modelos303 with modelos303 templates
4676+ """
4677+ modelos303 = self.pool.get('l10n.es.aeat.modelo303')
4678+
4679+ new_modelos303 = 0
4680+ updated_modelos303 = 0
4681+
4682+ for wiz_modelo303 in wizard.modelo303_ids:
4683+ modelo303_template = wiz_modelo303.modelo303_id
4684+ modelo303_id = None
4685+ modified = False
4686+ if wiz_modelo303.type == 'new':
4687+ # Create a new fiscal position
4688+ vals_modelo303 = {
4689+ # 'company_id': wizard.company_id.id, # TODO
4690+ 'name': modelo303_template.name,
4691+ 'date': modelo303_template.date,
4692+ 'template': modelo303_template.template,
4693+ }
4694+ modelo303_id = modelos303.create(cr, uid, vals_modelo303)
4695+ new_modelos303 += 1
4696+ modified = True
4697+ elif wizard.update_casilla and wiz_modelo303.update_modelo303_id:
4698+ # Update the given fiscal position (remove the tax and account
4699+ # mappings, that will be regenerated later)
4700+ modelo303_id = wiz_modelo303.update_modelo303_id.id
4701+ vals_modelo303 = {
4702+ 'name': modelo303_template.name,
4703+ 'date': modelo303_template.date,
4704+ 'template': modelo303_template.template,
4705+ }
4706+ try:
4707+ modelos303.write(cr, uid, [modelo303_id], vals_modelo303)
4708+ log.add(_("Updated modelos303 %s.\n") % modelo303_template.name)
4709+ updated_modelos303 += 1
4710+ modified = True
4711+ except orm.except_orm, ex:
4712+ log.add(_("Exception writing modelo303 %s: %s - %s.\n")
4713+ % (modelo303_template.name, ex.name, ex.value), True)
4714+ #else:
4715+ # modelo303_id = wiz_modelo303.update_modelo303_id and wiz_modelo303.update_modelo303_id.id
4716+
4717+ log.add(_("Created or updated modelo303 %s.\n")
4718+ % modelo303_template.name)
4719+ return {'new': new_modelos303, 'updated': updated_modelos303}
4720+
4721+ def _update_casillas(self, cr, uid, wizard, log, context=None):
4722+ """
4723+ Update casillas with casillas templates
4724+ """
4725+ tax_code = self.pool.get('account.tax.code')
4726+ casillas = self.pool.get('l10n.es.aeat.modelo303.casilla')
4727+ modelo303 = self.pool.get('l10n.es.aeat.modelo303')
4728+
4729+ new_casillas = 0
4730+ updated_casillas = 0
4731+
4732+ for wiz_casilla in wizard.casilla_ids:
4733+ casilla_template = wiz_casilla.casilla_id
4734+ casilla_id = None
4735+ modified = False
4736+ modelo303_ids = modelo303.search(cr, uid, [('name', '=', casilla_template.modelo303_id.name)])
4737+ tax_code_ids = []
4738+ if casilla_template.tax_code_ids:
4739+ tax_code_ids = tax_code.search(cr, uid, [('name', 'in', [tc.name for tc in casilla_template.tax_code_ids]), ('company_id', '=', wizard.company_id.id)])
4740+ if wiz_casilla.type == 'new':
4741+ # Create a new fiscal position
4742+ vals_casilla = {
4743+ # 'company_id': wizard.company_id.id, # TODO
4744+ 'modelo303_id': modelo303_ids[0],
4745+ 'name': casilla_template.name,
4746+ 'code': casilla_template.code,
4747+ 'tax_code_ids': [(6,0, tax_code_ids)],
4748+ 'evaluate_as': casilla_template.evaluate_as,
4749+ 'default_value': casilla_template.default_value
4750+ }
4751+ casilla_id = casillas.create(cr, uid, vals_casilla)
4752+ new_casillas += 1
4753+ modified = True
4754+ elif wizard.update_casilla and wiz_casilla.update_casilla_id:
4755+ # Update the given fiscal position (remove the tax and account
4756+ # mappings, that will be regenerated later)
4757+ casilla_id = wiz_casilla.update_casilla_id.id
4758+ vals_casilla = {
4759+ # 'company_id': wizard.company_id.id, # TODO
4760+ 'modelo303_id': modelo303_ids[0],
4761+ 'name': casilla_template.name,
4762+ 'code': casilla_template.code,
4763+ 'tax_code_ids': [(6,0, tax_code_ids)],
4764+ 'evaluate_as': casilla_template.evaluate_as,
4765+ 'default_value': casilla_template.default_value
4766+ }
4767+ try:
4768+ casillas.write(cr, uid, [casilla_id], vals_casilla)
4769+ log.add(_("Updated casillas %s.\n") % casilla_template.name)
4770+ updated_casillas += 1
4771+ modified = True
4772+ except orm.except_orm, ex:
4773+ log.add(_("Exception writing casilla %s: %s - %s.\n")
4774+ % (casilla_template.name, ex.name, ex.value), True)
4775+ #else:
4776+ # casilla_id = wiz_casilla.update_casilla_id and wiz_casilla.update_casilla_id.id
4777+
4778+ log.add(_("Created or updated casilla %s.\n")
4779+ % casilla_template.name)
4780+ return {'new': new_casillas, 'updated': updated_casillas}
4781+
4782+ def action_update_records(self, cr, uid, ids, context=None):
4783+ """
4784+ Action that creates/updates the selected elements.
4785+ """
4786+ rdo = super(wizard_chart_update, self).action_update_records(cr, uid, ids, context)
4787+ if context is None:
4788+ context = {}
4789+ wizard = self.browse(cr, uid, ids[0], context=context)
4790+
4791+ if wizard.lang:
4792+ context['lang'] = wizard.lang
4793+ elif context.get('lang'):
4794+ del context['lang']
4795+
4796+ log = WizardLog()
4797+
4798+ # Create or update the records.
4799+ m303_res = self._update_modelos303(cr, uid, wizard, log, context=context)
4800+ casillas_res = self._update_casillas(cr, uid, wizard, log, context=context)
4801+
4802+ # Check if errors where detected and wether we should stop.
4803+ if log.has_errors() and not wizard.continue_on_errors:
4804+ raise orm.except_orm(_('Error'), _(
4805+ "One or more errors detected!\n\n%s") % log.get_errors_str())
4806+
4807+ # Store the data and go to the next step.
4808+ self.write(cr, uid, [wizard.id], {
4809+ 'new_modelos303': m303_res.get('new', 0),
4810+ 'new_casillas': casillas_res.get('new', 0),
4811+ 'updated_modelos303': m303_res.get('updated', 0),
4812+ 'updated_casillas': casillas_res.get('updated', 0),
4813+ 'log': log(),
4814+ }, context)
4815+
4816+ return rdo
4817+
4818+
4819+class wizard_update_charts_accounts_modelo303(orm.TransientModel):
4820+ """
4821+ **************************************************************************
4822+ Modelo 303 that needs to be updated (new or updated in the template).
4823+ **************************************************************************
4824+ """
4825+ _name = 'wizard.update.charts.accounts.modelo303'
4826+ _columns = {
4827+ 'modelo303_id': fields.many2one('l10n.es.aeat.modelo303.template', 'Casillas template', required=True, ondelete='set null'),
4828+ 'update_chart_wizard_id': fields.many2one('wizard.update.charts.accounts', 'Update chart wizard', required=True, ondelete='cascade'),
4829+ 'type': fields.selection([
4830+ ('new', 'New template'),
4831+ ('updated', 'Updated template'),
4832+ ], 'Type'),
4833+ 'update_modelo303_id': fields.many2one('l10n.es.aeat.modelo303', 'Modelo303 to update', required=False, ondelete='set null'),
4834+ 'notes': fields.text('Notes'),
4835+ }
4836+ _defaults = {
4837+ }
4838+
4839+
4840+class wizard_update_charts_accounts_casilla(orm.TransientModel):
4841+ """
4842+ **************************************************************************
4843+ Casillas AEAT that needs to be updated (new or updated in the template).
4844+ **************************************************************************
4845+ """
4846+ _name = 'wizard.update.charts.accounts.casilla'
4847+ _columns = {
4848+ 'casilla_id': fields.many2one('l10n.es.aeat.modelo303.casilla.template', 'Casillas template', required=True, ondelete='set null'),
4849+ 'update_chart_wizard_id': fields.many2one('wizard.update.charts.accounts', 'Update chart wizard', required=True, ondelete='cascade'),
4850+ 'type': fields.selection([
4851+ ('new', 'New template'),
4852+ ('updated', 'Updated template'),
4853+ ], 'Type'),
4854+ 'update_casilla_id': fields.many2one('l10n.es.aeat.modelo303.casilla', 'Casilla to update', required=False, ondelete='set null'),
4855+ 'notes': fields.text('Notes'),
4856+ }
4857+ _defaults = {
4858+ }
4859+
4860+
4861+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
4862
4863=== added file 'l10n_es_aeat_mod303/wizard/wizard_chart_update_view.xml'
4864--- l10n_es_aeat_mod303/wizard/wizard_chart_update_view.xml 1970-01-01 00:00:00 +0000
4865+++ l10n_es_aeat_mod303/wizard/wizard_chart_update_view.xml 2014-04-16 11:51:06 +0000
4866@@ -0,0 +1,62 @@
4867+<?xml version="1.0" encoding="utf-8"?>
4868+<openerp>
4869+ <data>
4870+
4871+ <!-- Wizard for Multi Charts of Accounts -->
4872+
4873+ <record id="view_update_multi_chart_modelo303" model="ir.ui.view">
4874+ <field name="name">Update Chart of Accounts from a Chart Template</field>
4875+ <field name="model">wizard.update.charts.accounts</field>
4876+ <field name="inherit_id" ref="account_chart_update.view_update_multi_chart"/>
4877+ <field name="arch" type="xml">
4878+ <field name="update_account" position="after">
4879+ <field name="update_casilla" />
4880+ </field>
4881+ <page string="Fiscal positions" position="after">
4882+ <page string="Modelos 303">
4883+ <field name="modelo303_ids" nolabel="1">
4884+ <tree string="Modelo 303" colors="red:type=='updated'">
4885+ <field name="modelo303_id" />
4886+ <field name="update_modelo303_id" />
4887+ <field name="type" invisible="1" />
4888+ </tree>
4889+ <form string="Modelo 303" version="7.0">
4890+ <group>
4891+ <field name="modelo303_id" />
4892+ <field name="type" />
4893+ <field name="update_modelo303_id" />
4894+ <field name="notes" readonly="1" class="oe_inline" />
4895+ </group>
4896+ </form>
4897+ </field>
4898+ </page>
4899+ <page string="Casillas AEAT">
4900+ <field name="casilla_ids" nolabel="1">
4901+ <tree string="Casillas AEAT" colors="red:type=='updated'">
4902+ <field name="casilla_id" />
4903+ <field name="update_casilla_id" />
4904+ <field name="type" invisible="1" />
4905+ </tree>
4906+ <form string="Casillas AEAT" version="7.0">
4907+ <group>
4908+ <field name="casilla_id" />
4909+ <field name="type" />
4910+ <field name="update_casilla_id" />
4911+ <field name="notes" readonly="1" class="oe_inline" />
4912+ </group>
4913+ </form>
4914+ </field>
4915+ </page>
4916+ </page>
4917+ <field name="new_fps" position="after">
4918+ <field name="new_modelos303" />
4919+ <field name="new_casillas" />
4920+ </field>
4921+ <field name="updated_fps">
4922+ <field name="updated_modelos303" />
4923+ <field name="updated_casillas" />
4924+ </field>
4925+ </field>
4926+ </record>
4927+ </data>
4928+</openerp>