Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ADD] l10n_mx_res_partner_csf_regime #561

Merged
merged 15 commits into from
Nov 21, 2023
4 changes: 4 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ jobs:
- container: ghcr.io/oca/oca-ci/py3.10-odoo16.0:latest
makepot: "false"
name: test with Odoo
exclude: "l10n_mx_res_partner_csf_regime,l10n_mx_edi_40"
services:
postgres:
image: postgres:9.6
Expand All @@ -28,6 +29,9 @@ jobs:
POSTGRES_DB: odoo
ports:
- 5432:5432
env:
INCLUDE: "${{ matrix.include }}"
EXCLUDE: "${{ matrix.exclude }}"
steps:
- uses: actions/checkout@v2
with:
Expand Down
35 changes: 35 additions & 0 deletions l10n_mx_res_partner_csf_regime/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
**This file is going to be generated by oca-gen-addon-readme.**

*Manual changes will be overwritten.*

Please provide content in the ``readme`` directory:

* **DESCRIPTION.rst** (required)
* INSTALL.rst (optional)
* CONFIGURE.rst (optional)
* **USAGE.rst** (optional, highly recommended)
* DEVELOP.rst (optional)
* ROADMAP.rst (optional)
* HISTORY.rst (optional, recommended)
* **CONTRIBUTORS.rst** (optional, highly recommended)
* CREDITS.rst (optional)

Content of this README will also be drawn from the addon manifest,
from keys such as name, authors, maintainers, development_status,
and license.

A good, one sentence summary in the manifest is also highly recommended.


Automatic changelog generation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

`HISTORY.rst` can be auto generated using `towncrier <https://pypi.org/project/towncrier>`_.

Just put towncrier compatible changelog fragments into `readme/newsfragments`
and the changelog file will be automatically generated and updated when a new fragment is added.

Please refer to `towncrier` documentation to know more.

NOTE: the changelog will be automatically generated when using `/ocabot merge $option`.
If you need to run it manually, refer to `OCA/maintainer-tools README <https://github.com/OCA/maintainer-tools>`_.
1 change: 1 addition & 0 deletions l10n_mx_res_partner_csf_regime/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import wizard
21 changes: 21 additions & 0 deletions l10n_mx_res_partner_csf_regime/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright (C) 2023 Open Source Integrators (https://www.opensourceintegrators.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
{
"name": "Mexican Localization Fiscal Regime Scan From CSF",
"version": "16.0.1.0.0",
"license": "LGPL-3",
"summary": "Mexican Localization Fiscal Regime Scan From CSF",
"author": "Open Source Integrators",
"maintainer": "Open Source Integrators",
"website": "https://github.com/ursais/osi-addons",
"depends": [
"contacts",
"l10n_mx_edi_40",
"l10n_mx_res_partner_csf",
],
"external_dependencies": {
"python": ["pdfminer.six==20220319"],
},
"application": False,
"maintainers": ["ursais"],
}
1 change: 1 addition & 0 deletions l10n_mx_res_partner_csf_regime/wizard/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import import_csf
35 changes: 35 additions & 0 deletions l10n_mx_res_partner_csf_regime/wizard/import_csf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from odoo import models

FISCAL_REGIMES_MAPPING = {
"Régimen General de Ley Personas Morales": "601",
"Régimen de Sueldos y Salarios e Ingresos Asimilados a Salarios": "605",
"Régimen de los demás ingresos": "608",
"Régimen de Ingresos por Dividendos (socios y accionistas)": "611",
"Régimen de las Personas Físicas con Actividades Empresariales y Profesionales": "612",
"Régimen de los ingresos por intereses": "614",
"Régimen de Incorporación Fiscal": "621",
"Régimen de las Actividades Empresariales "
"con ingresos a través de Plataformas Tecnológicas": "625",
"Régimen Simplificado de Confianza": "626",
}


class ImportCSF(models.TransientModel):
_inherit = "import.csf"

def prepare_res_partner_values(self, text):
vals = super().prepare_res_partner_values(text)
split_data = text.split("\n")
fiscal_regime = ""
for index, line in enumerate(split_data):
if "Regímenes" in line:
fiscal_regime += split_data[index + 2].strip()
if fiscal_regime == "Régimen":
fiscal_regime = split_data[index + 3].strip()
fiscal_regime = FISCAL_REGIMES_MAPPING[fiscal_regime]
vals.update(
{
"l10n_mx_edi_fiscal_regime": fiscal_regime,
}
)
return vals
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# generated from manifests external_dependencies
pdfminer.six==20220319
6 changes: 6 additions & 0 deletions setup/l10n_mx_res_partner_csf_regime/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
Loading