odoo-addon-l10n-br-fiscal 16.0.14.0.5.1__py3-none-any.whl → 16.0.14.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of odoo-addon-l10n-br-fiscal might be problematic. Click here for more details.
- odoo/addons/l10n_br_fiscal/README.rst +1 -1
- odoo/addons/l10n_br_fiscal/__manifest__.py +1 -1
- odoo/addons/l10n_br_fiscal/models/document_mixin_methods.py +26 -141
- odoo/addons/l10n_br_fiscal/static/description/index.html +1 -1
- odoo/addons/l10n_br_fiscal/tests/test_document_edition.py +113 -0
- {odoo_addon_l10n_br_fiscal-16.0.14.0.5.1.dist-info → odoo_addon_l10n_br_fiscal-16.0.14.1.0.dist-info}/METADATA +2 -2
- {odoo_addon_l10n_br_fiscal-16.0.14.0.5.1.dist-info → odoo_addon_l10n_br_fiscal-16.0.14.1.0.dist-info}/RECORD +9 -9
- {odoo_addon_l10n_br_fiscal-16.0.14.0.5.1.dist-info → odoo_addon_l10n_br_fiscal-16.0.14.1.0.dist-info}/WHEEL +0 -0
- {odoo_addon_l10n_br_fiscal-16.0.14.0.5.1.dist-info → odoo_addon_l10n_br_fiscal-16.0.14.1.0.dist-info}/top_level.txt +0 -0
|
@@ -11,7 +11,7 @@ Módulo fiscal brasileiro
|
|
|
11
11
|
!! This file is generated by oca-gen-addon-readme !!
|
|
12
12
|
!! changes will be overwritten. !!
|
|
13
13
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
14
|
-
!! source digest: sha256:
|
|
14
|
+
!! source digest: sha256:4957658ffd4e083aa6da113dbe63e539c7942695ad2ec86fda5faffafbe9cb4f
|
|
15
15
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
16
16
|
|
|
17
17
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
|
|
@@ -199,152 +199,37 @@ class FiscalDocumentMixinMethods(models.AbstractModel):
|
|
|
199
199
|
elif doc.comment_ids is None:
|
|
200
200
|
doc.comment_ids = []
|
|
201
201
|
|
|
202
|
-
def
|
|
203
|
-
for record in self
|
|
204
|
-
if (
|
|
202
|
+
def _distribute_amount_to_lines(self, amount_field_name, line_field_name):
|
|
203
|
+
for record in self:
|
|
204
|
+
if not (
|
|
205
205
|
record.delivery_costs == "total"
|
|
206
206
|
or record.force_compute_delivery_costs_by_total
|
|
207
207
|
):
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
record.
|
|
218
|
-
|
|
219
|
-
- sum(
|
|
220
|
-
line.freight_value
|
|
221
|
-
for line in record._get_product_amount_lines()[:-1]
|
|
222
|
-
)
|
|
223
|
-
)
|
|
224
|
-
else:
|
|
225
|
-
fiscal_amount_total = sum(
|
|
226
|
-
record._get_product_amount_lines().mapped("price_gross")
|
|
208
|
+
continue
|
|
209
|
+
lines = record._get_product_amount_lines()
|
|
210
|
+
if not lines:
|
|
211
|
+
continue
|
|
212
|
+
amount_to_distribute = record[amount_field_name]
|
|
213
|
+
total_gross = sum(lines.mapped("price_gross"))
|
|
214
|
+
if total_gross > 0:
|
|
215
|
+
distributed_amount = 0
|
|
216
|
+
for line in lines[:-1]:
|
|
217
|
+
proportional_amount = record.currency_id.round(
|
|
218
|
+
amount_to_distribute * (line.price_gross / total_gross)
|
|
227
219
|
)
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
)
|
|
239
|
-
)
|
|
240
|
-
for line in record._get_product_amount_lines():
|
|
241
|
-
line._onchange_fiscal_taxes()
|
|
242
|
-
record._fields["fiscal_amount_total"].compute_value(record)
|
|
243
|
-
record.write(
|
|
244
|
-
{
|
|
245
|
-
name: value
|
|
246
|
-
for name, value in record._cache.items()
|
|
247
|
-
if record._fields[name].compute == "_amount_all"
|
|
248
|
-
and not record._fields[name].inverse
|
|
249
|
-
}
|
|
250
|
-
)
|
|
220
|
+
line[line_field_name] = proportional_amount
|
|
221
|
+
distributed_amount += proportional_amount
|
|
222
|
+
lines[-1][line_field_name] = amount_to_distribute - distributed_amount
|
|
223
|
+
else:
|
|
224
|
+
lines.write({line_field_name: 0.0})
|
|
225
|
+
if lines:
|
|
226
|
+
lines[0][line_field_name] = amount_to_distribute
|
|
227
|
+
|
|
228
|
+
def _inverse_amount_freight(self):
|
|
229
|
+
self._distribute_amount_to_lines("amount_freight_value", "freight_value")
|
|
251
230
|
|
|
252
231
|
def _inverse_amount_insurance(self):
|
|
253
|
-
|
|
254
|
-
if (
|
|
255
|
-
record.delivery_costs == "total"
|
|
256
|
-
or record.force_compute_delivery_costs_by_total
|
|
257
|
-
):
|
|
258
|
-
amount_insurance_value = record.amount_insurance_value
|
|
259
|
-
if all(record._get_product_amount_lines().mapped("insurance_value")):
|
|
260
|
-
amount_insurance_old = sum(
|
|
261
|
-
record._get_product_amount_lines().mapped("insurance_value")
|
|
262
|
-
)
|
|
263
|
-
for line in record._get_product_amount_lines()[:-1]:
|
|
264
|
-
line.insurance_value = amount_insurance_value * (
|
|
265
|
-
line.insurance_value / amount_insurance_old
|
|
266
|
-
)
|
|
267
|
-
record._get_product_amount_lines()[-1].insurance_value = (
|
|
268
|
-
amount_insurance_value
|
|
269
|
-
- sum(
|
|
270
|
-
line.insurance_value
|
|
271
|
-
for line in record._get_product_amount_lines()[:-1]
|
|
272
|
-
)
|
|
273
|
-
)
|
|
274
|
-
else:
|
|
275
|
-
fiscal_amount_total = sum(
|
|
276
|
-
record._get_product_amount_lines().mapped("price_gross")
|
|
277
|
-
)
|
|
278
|
-
for line in record._get_product_amount_lines()[:-1]:
|
|
279
|
-
if line.price_gross and fiscal_amount_total:
|
|
280
|
-
line.insurance_value = amount_insurance_value * (
|
|
281
|
-
line.price_gross / fiscal_amount_total
|
|
282
|
-
)
|
|
283
|
-
record._get_product_amount_lines()[-1].insurance_value = (
|
|
284
|
-
amount_insurance_value
|
|
285
|
-
- sum(
|
|
286
|
-
line.insurance_value
|
|
287
|
-
for line in record._get_product_amount_lines()[:-1]
|
|
288
|
-
)
|
|
289
|
-
)
|
|
290
|
-
for line in record._get_product_amount_lines():
|
|
291
|
-
line._onchange_fiscal_taxes()
|
|
292
|
-
record._fields["fiscal_amount_total"].compute_value(record)
|
|
293
|
-
record.write(
|
|
294
|
-
{
|
|
295
|
-
name: value
|
|
296
|
-
for name, value in record._cache.items()
|
|
297
|
-
if record._fields[name].compute == "_amount_all"
|
|
298
|
-
and not record._fields[name].inverse
|
|
299
|
-
}
|
|
300
|
-
)
|
|
232
|
+
self._distribute_amount_to_lines("amount_insurance_value", "insurance_value")
|
|
301
233
|
|
|
302
234
|
def _inverse_amount_other(self):
|
|
303
|
-
|
|
304
|
-
if (
|
|
305
|
-
record.delivery_costs == "total"
|
|
306
|
-
or record.force_compute_delivery_costs_by_total
|
|
307
|
-
):
|
|
308
|
-
amount_other_value = record.amount_other_value
|
|
309
|
-
if all(record._get_product_amount_lines().mapped("other_value")):
|
|
310
|
-
amount_other_old = sum(
|
|
311
|
-
record._get_product_amount_lines().mapped("other_value")
|
|
312
|
-
)
|
|
313
|
-
for line in record._get_product_amount_lines()[:-1]:
|
|
314
|
-
line.other_value = amount_other_value * (
|
|
315
|
-
line.other_value / amount_other_old
|
|
316
|
-
)
|
|
317
|
-
record._get_product_amount_lines()[-1].other_value = (
|
|
318
|
-
amount_other_value
|
|
319
|
-
- sum(
|
|
320
|
-
line.other_value
|
|
321
|
-
for line in record._get_product_amount_lines()[:-1]
|
|
322
|
-
)
|
|
323
|
-
)
|
|
324
|
-
else:
|
|
325
|
-
fiscal_amount_total = sum(
|
|
326
|
-
record._get_product_amount_lines().mapped("price_gross")
|
|
327
|
-
)
|
|
328
|
-
for line in record._get_product_amount_lines()[:-1]:
|
|
329
|
-
if line.price_gross and fiscal_amount_total:
|
|
330
|
-
line.other_value = amount_other_value * (
|
|
331
|
-
line.price_gross / fiscal_amount_total
|
|
332
|
-
)
|
|
333
|
-
record._get_product_amount_lines()[-1].other_value = (
|
|
334
|
-
amount_other_value
|
|
335
|
-
- sum(
|
|
336
|
-
line.other_value
|
|
337
|
-
for line in record._get_product_amount_lines()[:-1]
|
|
338
|
-
)
|
|
339
|
-
)
|
|
340
|
-
for line in record._get_product_amount_lines():
|
|
341
|
-
line._onchange_fiscal_taxes()
|
|
342
|
-
record._fields["fiscal_amount_total"].compute_value(record)
|
|
343
|
-
record.write(
|
|
344
|
-
{
|
|
345
|
-
name: value
|
|
346
|
-
for name, value in record._cache.items()
|
|
347
|
-
if record._fields[name].compute == "_amount_all"
|
|
348
|
-
and not record._fields[name].inverse
|
|
349
|
-
}
|
|
350
|
-
)
|
|
235
|
+
self._distribute_amount_to_lines("amount_other_value", "other_value")
|
|
@@ -372,7 +372,7 @@ ul.auto-toc {
|
|
|
372
372
|
!! This file is generated by oca-gen-addon-readme !!
|
|
373
373
|
!! changes will be overwritten. !!
|
|
374
374
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
375
|
-
!! source digest: sha256:
|
|
375
|
+
!! source digest: sha256:4957658ffd4e083aa6da113dbe63e539c7942695ad2ec86fda5faffafbe9cb4f
|
|
376
376
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
377
377
|
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_fiscal"><img alt="OCA/l10n-brazil" src="https://img.shields.io/badge/github-OCA%2Fl10n--brazil-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-brazil-16-0/l10n-brazil-16-0-l10n_br_fiscal"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/l10n-brazil&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
378
378
|
<p><img alt="image" src="https://raw.githubusercontent.com/OCA/l10n-brazil/16.0/l10n_br_fiscal/static/img/fiscal_dashboard.png" /></p>
|
|
@@ -12,6 +12,10 @@ class TestDocumentEdition(TransactionCase):
|
|
|
12
12
|
def setUpClass(cls):
|
|
13
13
|
super().setUpClass()
|
|
14
14
|
cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True))
|
|
15
|
+
cls.user = cls.env.user
|
|
16
|
+
cls.company = cls.env.ref("l10n_br_base.empresa_lucro_presumido")
|
|
17
|
+
cls.user.company_ids |= cls.company
|
|
18
|
+
cls.user.company_id = cls.company.id
|
|
15
19
|
|
|
16
20
|
def test_basic_doc_edition(self):
|
|
17
21
|
doc_form = Form(
|
|
@@ -163,3 +167,112 @@ class TestDocumentEdition(TransactionCase):
|
|
|
163
167
|
self.assertEqual(doc.fiscal_line_ids[0].fiscal_price, 112)
|
|
164
168
|
self.assertEqual(doc.fiscal_line_ids[0].quantity, 10)
|
|
165
169
|
self.assertEqual(doc.fiscal_line_ids[0].fiscal_quantity, 5)
|
|
170
|
+
|
|
171
|
+
def test_landed_costs_by_line_and_by_total(self):
|
|
172
|
+
"""
|
|
173
|
+
Tests both landed cost scenarios: 'by line' and 'by total'.
|
|
174
|
+
1. By Line: Enters costs on lines and verifies the header totals.
|
|
175
|
+
2. By Total: Enters costs on the header and verifies lines distribution.
|
|
176
|
+
"""
|
|
177
|
+
self.env.user.groups_id |= self.env.ref("l10n_br_fiscal.group_user")
|
|
178
|
+
product1 = self.env.ref("product.product_product_6")
|
|
179
|
+
product2 = self.env.ref("product.product_product_7")
|
|
180
|
+
|
|
181
|
+
# Part 1: Test with delivery_costs = 'line'
|
|
182
|
+
# ----------------------------------------------------
|
|
183
|
+
self.company.delivery_costs = "line"
|
|
184
|
+
doc_form = Form(self.env["l10n_br_fiscal.document"])
|
|
185
|
+
doc_form.company_id = self.company
|
|
186
|
+
doc_form.partner_id = self.env.ref("l10n_br_base.res_partner_cliente1_sp")
|
|
187
|
+
doc_form.fiscal_operation_id = self.env.ref("l10n_br_fiscal.fo_venda")
|
|
188
|
+
|
|
189
|
+
with doc_form.fiscal_line_ids.new() as line1:
|
|
190
|
+
line1.product_id = product1
|
|
191
|
+
line1.fiscal_operation_line_id = self.env.ref(
|
|
192
|
+
"l10n_br_fiscal.fo_venda_venda"
|
|
193
|
+
)
|
|
194
|
+
line1.price_unit = 1000.0
|
|
195
|
+
line1.quantity = 2.0 # Gross: 2000
|
|
196
|
+
line1.freight_value = 10.0
|
|
197
|
+
line1.insurance_value = 20.0
|
|
198
|
+
line1.other_value = 5.0
|
|
199
|
+
|
|
200
|
+
with doc_form.fiscal_line_ids.new() as line2:
|
|
201
|
+
line2.product_id = product2
|
|
202
|
+
line2.fiscal_operation_line_id = self.env.ref(
|
|
203
|
+
"l10n_br_fiscal.fo_venda_venda"
|
|
204
|
+
)
|
|
205
|
+
line2.price_unit = 500.0
|
|
206
|
+
line2.quantity = 1.0 # Gross: 500
|
|
207
|
+
line2.freight_value = 4.0
|
|
208
|
+
line2.insurance_value = 6.0
|
|
209
|
+
line2.other_value = 2.0
|
|
210
|
+
|
|
211
|
+
doc = doc_form.save()
|
|
212
|
+
|
|
213
|
+
self.assertEqual(doc.company_id.delivery_costs, "line")
|
|
214
|
+
# Assert header totals are the SUM of line values
|
|
215
|
+
self.assertAlmostEqual(doc.amount_freight_value, 14.0) # 10.0 + 4.0
|
|
216
|
+
self.assertAlmostEqual(doc.amount_insurance_value, 26.0) # 20.0 + 6.0
|
|
217
|
+
self.assertAlmostEqual(doc.amount_other_value, 7.0) # 5.0 + 2.0
|
|
218
|
+
|
|
219
|
+
# Assert final fiscal totals (bottom-up calculation)
|
|
220
|
+
# price_gross = (1000*2) + (500*1) = 2500
|
|
221
|
+
# landed_costs = 14 + 26 + 7 = 47
|
|
222
|
+
# fiscal_amount_untaxed (IPI Base) = 2500 + 47 = 2547
|
|
223
|
+
self.assertAlmostEqual(doc.fiscal_amount_untaxed, 2547.00)
|
|
224
|
+
# fiscal_amount_tax (IPI) = (2035 * 3.25%) + (512 * 5%) = 66.14 + 25.60 = 91.74
|
|
225
|
+
self.assertAlmostEqual(doc.fiscal_amount_tax, 91.74, places=2)
|
|
226
|
+
# fiscal_amount_total = 2547.00 + 91.74 = 2638.74
|
|
227
|
+
self.assertAlmostEqual(doc.fiscal_amount_total, 2638.74, places=2)
|
|
228
|
+
|
|
229
|
+
# Part 2: Test with delivery_costs = 'total'
|
|
230
|
+
# ----------------------------------------------------
|
|
231
|
+
self.company.delivery_costs = "total"
|
|
232
|
+
doc_form_edit = Form(doc)
|
|
233
|
+
# Set new header totals, which should trigger inverse methods to distribute
|
|
234
|
+
doc_form_edit.amount_freight_value = 30.0
|
|
235
|
+
doc_form_edit.amount_insurance_value = 60.0
|
|
236
|
+
doc_form_edit.amount_other_value = 90.0
|
|
237
|
+
doc_after_total_update = doc_form_edit.save()
|
|
238
|
+
|
|
239
|
+
line1 = doc_after_total_update.fiscal_line_ids[0]
|
|
240
|
+
line2 = doc_after_total_update.fiscal_line_ids[1]
|
|
241
|
+
|
|
242
|
+
# Assert values were distributed proportionally to price_gross
|
|
243
|
+
# (2000 vs 500 -> 80% vs 20%)
|
|
244
|
+
# Freight: 30.0 * 0.8 = 24.0 | 30.0 * 0.2 = 6.0
|
|
245
|
+
self.assertAlmostEqual(line1.freight_value, 24.0)
|
|
246
|
+
self.assertAlmostEqual(line2.freight_value, 6.0)
|
|
247
|
+
# Insurance: 60.0 * 0.8 = 48.0 | 60.0 * 0.2 = 12.0
|
|
248
|
+
self.assertAlmostEqual(line1.insurance_value, 48.0)
|
|
249
|
+
self.assertAlmostEqual(line2.insurance_value, 12.0)
|
|
250
|
+
# Other: 90.0 * 0.8 = 72.0 | 90.0 * 0.2 = 18.0
|
|
251
|
+
self.assertAlmostEqual(line1.other_value, 72.0)
|
|
252
|
+
self.assertAlmostEqual(line2.other_value, 18.0)
|
|
253
|
+
|
|
254
|
+
# Assert final fiscal totals are recomputed correctly (top-down calculation)
|
|
255
|
+
# price_gross = 2500
|
|
256
|
+
# landed_costs = 30 + 60 + 90 = 180
|
|
257
|
+
# fiscal_amount_untaxed (IPI Base) = 2500 + 180 = 2680
|
|
258
|
+
self.assertAlmostEqual(doc_after_total_update.fiscal_amount_untaxed, 2680.00)
|
|
259
|
+
# Line 1 IPI Base = 2000 (product) + 24 (freight) + 48 (insurance)
|
|
260
|
+
# + 72 (other) = 2144
|
|
261
|
+
# Line 1 IPI Value = 2144 * 3.25% = 69.68
|
|
262
|
+
self.assertAlmostEqual(line1.ipi_base, 2144.00)
|
|
263
|
+
self.assertAlmostEqual(line1.ipi_value, 69.68, places=2)
|
|
264
|
+
|
|
265
|
+
# Line 2 IPI Base = 500 (product) + 6 (freight) + 12 (insurance)
|
|
266
|
+
# + 18 (other) = 536
|
|
267
|
+
# Line 2 IPI Value = 536 * 5% = 26.80
|
|
268
|
+
self.assertAlmostEqual(line2.ipi_base, 536.00)
|
|
269
|
+
self.assertAlmostEqual(line2.ipi_value, 26.80, places=2)
|
|
270
|
+
|
|
271
|
+
# fiscal_amount_tax (IPI) = 69.68 + 26.80 = 96.48
|
|
272
|
+
self.assertAlmostEqual(
|
|
273
|
+
doc_after_total_update.fiscal_amount_tax, 96.48, places=2
|
|
274
|
+
)
|
|
275
|
+
# fiscal_amount_total = 2680.00 + 96.48 = 2776.48
|
|
276
|
+
self.assertAlmostEqual(
|
|
277
|
+
doc_after_total_update.fiscal_amount_total, 2776.48, places=2
|
|
278
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-l10n_br_fiscal
|
|
3
|
-
Version: 16.0.14.0
|
|
3
|
+
Version: 16.0.14.1.0
|
|
4
4
|
Requires-Python: >=3.10
|
|
5
5
|
Requires-Dist: erpbrasil.base>=2.3.0
|
|
6
6
|
Requires-Dist: odoo-addon-l10n_br_base>=16.0dev,<16.1dev
|
|
@@ -31,7 +31,7 @@ Módulo fiscal brasileiro
|
|
|
31
31
|
!! This file is generated by oca-gen-addon-readme !!
|
|
32
32
|
!! changes will be overwritten. !!
|
|
33
33
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
34
|
-
!! source digest: sha256:
|
|
34
|
+
!! source digest: sha256:4957658ffd4e083aa6da113dbe63e539c7942695ad2ec86fda5faffafbe9cb4f
|
|
35
35
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
36
36
|
|
|
37
37
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
odoo/addons/l10n_br_fiscal/README.rst,sha256=
|
|
1
|
+
odoo/addons/l10n_br_fiscal/README.rst,sha256=29MVU3TV_Qjd2Q-ok85xmzYD-kKQuA7hZt5X00HDJw0,13957
|
|
2
2
|
odoo/addons/l10n_br_fiscal/__init__.py,sha256=BQXfCjW4ehK1W1j0z6k8xN7Q2LoZBCjjvYDkQt6nSkI,2717
|
|
3
|
-
odoo/addons/l10n_br_fiscal/__manifest__.py,sha256=
|
|
3
|
+
odoo/addons/l10n_br_fiscal/__manifest__.py,sha256=CkVRRybZm3Ir3-KqejQAs5OGYdwX1Rb2mSGWPf-o8xE,4957
|
|
4
4
|
odoo/addons/l10n_br_fiscal/tools.py,sha256=HgaCLkPznFxgLfjb76nH36PJ7bN5W7-fdaqtBvM6XC0,4056
|
|
5
5
|
odoo/addons/l10n_br_fiscal/constants/fiscal.py,sha256=F2a4jYAk2j2Yh1Xw7WeS1GcLfW1DbjeNgEF6l7135wc,14962
|
|
6
6
|
odoo/addons/l10n_br_fiscal/constants/icms.py,sha256=rHlM6jyRvhrIm03sd6guS1xh7SptADLltPmRJ3C_Vh8,3512
|
|
@@ -77,7 +77,7 @@ odoo/addons/l10n_br_fiscal/models/document_line.py,sha256=W_8uQz-cn8hIljATy91XYI
|
|
|
77
77
|
odoo/addons/l10n_br_fiscal/models/document_line_mixin.py,sha256=es-zS2qi5Pe7rp1maHeIo705_glz94nLzhaNkcxWgw8,43780
|
|
78
78
|
odoo/addons/l10n_br_fiscal/models/document_line_mixin_methods.py,sha256=sabxe2KXIe-Tlot7c-JFLzcqG1-Zv4mIEDNW_b3DP2s,34172
|
|
79
79
|
odoo/addons/l10n_br_fiscal/models/document_mixin.py,sha256=GkoNxIAUrzwWh5cYZAm5KD_qBIN-mSQ8phQJdYOlOCg,13343
|
|
80
|
-
odoo/addons/l10n_br_fiscal/models/document_mixin_methods.py,sha256=
|
|
80
|
+
odoo/addons/l10n_br_fiscal/models/document_mixin_methods.py,sha256=Rlv4khSkeIDHEXKO_MvEJTOGHbYMQYAo2f_SwRKbWuo,9694
|
|
81
81
|
odoo/addons/l10n_br_fiscal/models/document_related.py,sha256=zPc9ubJVCsawhd2HxNBD8ebo6XnVPFzgDOegw6vYEmk,4696
|
|
82
82
|
odoo/addons/l10n_br_fiscal/models/document_serie.py,sha256=Spe7kpgMBFGS_LBv3DpiqTC4WuafTK8LRv53GVR2UcM,4128
|
|
83
83
|
odoo/addons/l10n_br_fiscal/models/document_supplement.py,sha256=31oRSHT_SaGSf-dQvriweIxZZiTANxkHHupc5kMYfXA,409
|
|
@@ -127,7 +127,7 @@ odoo/addons/l10n_br_fiscal/readme/USAGE.md,sha256=Dw3uZaHJCUtV0xFq6VOQvF2G5fS_oS
|
|
|
127
127
|
odoo/addons/l10n_br_fiscal/security/fiscal_security.xml,sha256=QgqzdExfkca0lMt9kmcymVQj_DISZSKJZ8Ea1qO6e28,3167
|
|
128
128
|
odoo/addons/l10n_br_fiscal/security/ir.model.access.csv,sha256=MQb64W6Es5ChkVqKBit6bHWKyAtrkgO_VamAaSNhvCQ,14359
|
|
129
129
|
odoo/addons/l10n_br_fiscal/static/description/icon.png,sha256=Vd1HydYBoGCzNfCqxLlch2i2aeCcyxo-uRxWNp6oMbw,14836
|
|
130
|
-
odoo/addons/l10n_br_fiscal/static/description/index.html,sha256=
|
|
130
|
+
odoo/addons/l10n_br_fiscal/static/description/index.html,sha256=FuB8n_07BT7Ztb5PDCL_u4mN7eKhybUF3j4KSoGQTmw,26637
|
|
131
131
|
odoo/addons/l10n_br_fiscal/static/img/fiscal_dashboard.png,sha256=Q0fpqFNqEXh6m6E1aJfzSKV2tQ9lC1Y-ofUt6qxVupc,151668
|
|
132
132
|
odoo/addons/l10n_br_fiscal/static/img/fiscal_line.png,sha256=S4Q4OGSzGnbfm4W5sQVvnD4uUzxS6tbJGT_gs3pB4K0,134276
|
|
133
133
|
odoo/addons/l10n_br_fiscal/static/img/fiscal_operation.png,sha256=2614c1XjxwVznh707e9gujlUXg0ttutKD1ZiSMTqyv8,105871
|
|
@@ -135,7 +135,7 @@ odoo/addons/l10n_br_fiscal/static/img/fiscal_total.png,sha256=MaR6ZoM6ZZEaNZk2yn
|
|
|
135
135
|
odoo/addons/l10n_br_fiscal/static/src/js/list_renderer_with_button.esm.js,sha256=Ucw7pymMrW2yi_nNrDMvq6ubyub9QMlqH3ZOoaTEHN0,1243
|
|
136
136
|
odoo/addons/l10n_br_fiscal/tests/__init__.py,sha256=83m4BimGb-6EseEmmCVaKTSel5GB_vkzbI3YZi4mStE,393
|
|
137
137
|
odoo/addons/l10n_br_fiscal/tests/test_cnae.py,sha256=mmskSfWaoFSohjmRbnGci_6Euc9fc2zbhyH5FdyeIeA,616
|
|
138
|
-
odoo/addons/l10n_br_fiscal/tests/test_document_edition.py,sha256=
|
|
138
|
+
odoo/addons/l10n_br_fiscal/tests/test_document_edition.py,sha256=OTqxFFlgOkrxEZMzV7A5B6wzyDDdRtIeXzfITdbCqeQ,12404
|
|
139
139
|
odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_generic.py,sha256=Q0ZSCjaqAYNKsrrYEeBBLqxhfaUvmd-XhVHADQoPlQw,39985
|
|
140
140
|
odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_nfse.py,sha256=nEMaaWfv-sb4o48c1-l7mVnSjks3Tue7XxnQb_Q4cqw,1538
|
|
141
141
|
odoo/addons/l10n_br_fiscal/tests/test_fiscal_tax.py,sha256=U6JbuqKTcyyFTiW5FZGqGY5yi_aPKaC6_LWz_3sKdpg,11322
|
|
@@ -198,7 +198,7 @@ odoo/addons/l10n_br_fiscal/wizards/base_wizard_mixin.py,sha256=-r25us0vdNCSe11Gn
|
|
|
198
198
|
odoo/addons/l10n_br_fiscal/wizards/document_import_wizard_mixin.py,sha256=KfbqnzFuVx7WAro__W130rgvMWKkDBvkDFglMwTwgBQ,4115
|
|
199
199
|
odoo/addons/l10n_br_fiscal/wizards/document_import_wizard_mixin.xml,sha256=EAiUBkLBC0st-GSA0y7j771hiC_vglKPCIiC0SvG0gw,1830
|
|
200
200
|
odoo/addons/l10n_br_fiscal/wizards/document_status_wizard.py,sha256=KsYj5YWWePO7uk0psBsFdnCL71eLWhcyg7_c7J4G6vA,818
|
|
201
|
-
odoo_addon_l10n_br_fiscal-16.0.14.0.
|
|
202
|
-
odoo_addon_l10n_br_fiscal-16.0.14.0.
|
|
203
|
-
odoo_addon_l10n_br_fiscal-16.0.14.0.
|
|
204
|
-
odoo_addon_l10n_br_fiscal-16.0.14.0.
|
|
201
|
+
odoo_addon_l10n_br_fiscal-16.0.14.1.0.dist-info/METADATA,sha256=7C8a9bwhfCFovPmzR2ojuPXYUsQv0biKcOwVyfuI4rc,14720
|
|
202
|
+
odoo_addon_l10n_br_fiscal-16.0.14.1.0.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
|
|
203
|
+
odoo_addon_l10n_br_fiscal-16.0.14.1.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
204
|
+
odoo_addon_l10n_br_fiscal-16.0.14.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|