Francia¶
Importante
Debe instalar el módulo Francia - Añadir menciones obligatorias en la factura (Decreto no. 2022-1299) (l10n_fr_invoice_addr
) para cumplir con las legislaciones locales.
FEC - Fichier des Écritures Comptables¶
An FEC Fichier des Écritures Comptables audit file contains all the accounting data and entries recorded in all the accounting journals for a financial year. The entries in the file must be arranged in chronological order.
A partir del primero de enero de 2014 todas las empresas francesas deben producir y transmitir este archivo cuando las autoridades fiduciarias se lo pidan para fines de auditoría.
Importar FEC¶
Para que la integración de nuevos usuarios sea más fácil, el paquete de localización fiscal para Francia de Odoo Enterprise incluye la función Importar FEC (nombre técnico: l10n_fr_fec_import
), la cual permite importar archivos FEC existentes desde un software antiguo.
Para habilitar esta función vaya a
, active Importar FEC y haga clic en guardar.Después, vaya a
, suba el archivo FEC y haga clic en Importar.Nota
Formatos de archivo¶
Los archivos FEC solo pueden estar en formato CSV, ya que no son compatibles con el formato XML.
Nota
El archivo FEC CSV tiene un formato de texto plano que representa una tabla de datos, en la cual la primera línea es un encabezado y define la lista de campos de cada entrada. Cada una de las líneas siguientes representa un asiento de contabilidad en ningún orden predeterminado.
Se espera que los archivos que se suban al módulo cumplan con las siguientes especificaciones técnicas:
Codificación: UTF-8, UTF-8-SIG e iso8859_15.
Separador: puede ser
;
o|
o,
oTAB
.Para terminar una línea: tanto CR+LF (
\r\n
) como LF (\n
) son compatibles.Formato de fecha:
%Y%m%d
Descripción y uso de los campos¶
# |
Nombre del campo |
Descripción |
Usar |
Formato |
---|---|---|---|---|
01 |
JournalCode |
Código del diario |
|
Alfanumérico |
02 |
JournalLib |
Etiqueta de diario |
|
Alfanumérico |
03 |
EcritureNum |
Numeración específica a cada secuencia numérica del asiento en el diario. |
|
Alfanumérico |
04 |
EcritureDate |
Fecha del asiento contable |
|
Fecha (yyyyMMdd) |
05 |
CompteNum |
Número de cuenta |
|
Alfanumérico |
06 |
CompteLib |
Etiqueta de la cuenta |
|
Alfanumérico |
07 |
CompAuxNum |
Número de cuenta secundario (acepta nulo) |
|
Alfanumérico |
08 |
CompAuxLib |
Etiqueta de cuenta secundaria (acepta nulo) |
|
Alfanumérico |
09 |
PieceRef |
Referencia de documento |
|
Alfanumérico |
10 |
PieceDate |
Fecha de documento |
|
Fecha (yyyyMMdd) |
11 |
EcritureLib |
Etiqueta de asiento de la cuenta |
|
Alfanumérico |
12 |
Debe |
Importe de débito |
|
Flotante |
13 |
Haber |
Cantidad de crédito (Nombrar el campo «crédito» no está permitido) |
|
Flotante |
14 |
EcritureLet |
Referencia cruzada de asiento contable (puede ser nulo) |
|
Alfanumérico |
15 |
DateLet |
Fecha de asiento contable (puede ser nulo) |
Sin utilizar |
Fecha (yyyyMMdd) |
16 |
ValidDate |
Fecha de validación del asiento contable |
Sin utilizar |
Fecha (yyyyMMdd) |
17 |
Montantdevise |
Cantidad de la divisa (puede ser nulo) |
|
Flotante |
18 |
Idevise |
Identificación de divisa (puede ser nulo) |
|
Alfanumérico |
Estos dos campos diferentes se pueden encontrar en un lugar de los demás en el sentido antes descrito.
12 |
Montant |
Importe |
|
Flotante |
13 |
Sens |
Puede ser «C» de crédito o «D» de débito |
determina |
Carácter |
Detalles de implementación¶
Estas entidades contables se importan desde los archivos FEC: cuentas, diarios, partners y movimientos.
Nuestro módulo determina la codificación, el carácter terminador de línea y el separador que se usa en el archivo.
Después se realiza una revisión para ver si cada línea tiene el número correcto de campos que corresponden a la cabecera.
Si pasa la revisión entonces el archivo se lee completamente, se guarda en la memoria y se escanea. Las entidades de contabilidad se importan un tipo a la vez en l orden siguiente.
Cuentas¶
Cada asiento se relaciona a una cuenta, que se debería de determinar por campo CompteNum
.
Emparejamiento de código¶
Si hay un código de cuenta similar en el sistema, se usa el existente en lugar de crear uno nuevo.
Las cuentas en Odoo generalmente tienen un número de dígitos predeterminados para la localización fiscal. Ya que el módulo FEC está relacionado a la localización francesa, el número predeterminado de números relevantes es 6.
Esto significa que en los códigos de cuenta los ceros finales se recortan desde la derecha, y que la comparación entre los códigos de cuenta en el archivo FEC y los ya existentes en Odoo se realiza sólo en los primeros seis dígitos de los códigos.
Example
El código de la cuenta es 65800000
en el archivo que se compara con una cuenta 658000
existente en Odoo y esta es la cuenta que se usa en lugar de crear una nueva.
Marcado como conciliado¶
Una cuenta se marca como conciliada si la primera línea en la que aparece tiene el campo EcritureLet
lleno. Esta marca significa que el asiento contable se conciliará con otra.
Nota
En caso de que, por algún motivo, la línea no tenga este campo lleno pero el asiento se tiene que conciliar con un pago que todavía no se ha registrado no es un problema. La cuenta se marca como conciliable tan pronto como el importe de las líneas lo requiera.
Tipo de cuenta y emparejamiento de plantillas¶
Ya que el tipo de la cuenta no se especifica en el formato FEC, las cuentas nuevas se crean con el tipo Activos circulantes predeterminado y después, al final del proceso de importación, se emparejan con las plantillas del plan de cuenta que ya están instalados. La marca de conciliado también se calcula de esta manera.
El emparejamiento se realiza con los dígitos que están hasta la izquierda, primero se usan todos los dígitos, después 3 y al final 2.
Example
Nombre |
Código |
Comparación completa |
Comparación de 3 dígitos |
Comparación de 2 dígitos |
---|---|---|---|---|
Plantilla |
|
|
|
|
CompteNum |
|
|
|
|
Resultado |
Coincidencia encontrada |
El tipo de cuenta se marca como por pagar y conciliado según la plantilla de la cuenta.
Diarios contables¶
Los diarios también se revisan con los ya existentes en Odoo para evitar duplicados, también en caso de importación de archivos FEC.
Si hay un código de diario similar en el sistema, se usa el existente en lugar de crear uno nuevo.
Los nombres de los diarios nuevos empiezan con el prefijo de FEC-
.
Example
ACHATS
-> FEC-ACHATS
Los diarios no están archivados, el usuario tiene el derecho de manejarlos como prefiera.
Determinación del tipo de diario¶
El tipo de diario tampoco está especificado en el formato (según las cuentas), por lo tanto, primero se crea con el tipo general
predeterminado.
Al final del proceso de importación el tipo se determina según estas reglas de acuerdo a los movimientos y cuentas relacionadas:
banco
: los movimientos en estos diarios siempre tienen una línea (de crédito o débito) que influyen en la cuenta de liquidez.efectivo
/banco
se pueden intercambiar,banco
se configura en todos lados cuando se cumple esta condición.venta
: estos diarios tienen, en su mayoría, líneas de debito en cuentas por cobrar y líneas de crédito en las cuentas de ingresos de impuestos.Los apuntes de diario de reembolsos de ventas se invierten según el débito/crédito.compra
: los movimientos en estos diarios tienen, en su mayoría, líneas de crédito en cuentas por pagar y líneas de débito en las cuentas de gastos.El crédito y débito de los apuntes de diario de las compras reembolsadas están invertidos.general
: para todo lo demás.
Nota
Para identificar el tipo de diario se necesitan, por lo menos, tres movimientos.
Al menos el 70% de los movimientos deben corresponder al criterio para que se determine el tipo de diario.
Example
Supongamos que estamos analizando los movimientos que tienen un journal_id
específico.
Movimientos |
Cuenta |
Porcentaje |
---|---|---|
que tienen una línea de cuenta de venta y no tienen una línea de cuenta de compra |
0 |
0 |
que tienen una línea de cuenta de compra y no una línea de cuenta de venta |
1 |
25% |
que tienen una línea de cuenta de liquidez |
3 |
75% |
Total |
4 |
100% |
El tipo
de diario sería banco
, ya que el porcentaje de movimientos bancarios (75%) excede el umbral (70%).
Partners¶
Cada partner se queda con su Referencia
del campo CompAuxNum
.
Nota
Estos campos se pueden buscar en la línea con importes FEC antiguos en el lado del experto en contabilidad para propósitos fiscales/de auditoría.
Truco
Los usuarios pueden fusionar a los partners con la aplicación de limpieza de datos. En esta aplicación los proveedores, clientes o partners similares pueden fusionarse con ayuda del sistema que los agrupa con asientos similares.
Movimientos¶
Los asientos se publican de inmediato y se concilian después de que se entreguen. Se usa el campo EcritureLet
para emparejar los asientos entre ellos.
El campo EcritureNum
representa el nombre de los movimientos. Sabemos que a veces puede que no esté lleno, en este caso se usa el campo PieceRef
.
Problemas de redondeo¶
Hay una tolerancia de redondeo con precisión en la divisa en el débito y el crédito (por ejemplo, 0.01 para EUR). Tomando en cuenta esta tolerancia, se agrega una nueva línea al movimiento, esta línea se llamará Diferencia de redondeo del importe y se focaliza en las cuentas:
658000
Charges diverses de gestion courante, para débitos agregados758000
Produits divers de gestion courante, para créditos agregados
Nombre de movimiento faltante¶
Si EcritureNum
no está lleno, también puede ser que el campo PieceRef
no sea adecuado para determinar el nombre del movimiento (se puede usar como una línea contable de referencia). En este caso, no hay manera de encontrar qué líneas se tienen que agrupar en un mismo movimiento, por lo que se impide la creación de movimientos balanceados.
Se realiza un último intento en el que se agrupan todas las líneas del mismo diario y la misma fecha (JournalLib
, EcritureDate
). Si este agrupamiento genera movimientos balanceados (sum(credit) - sum(debit) = 0), entonces cada combinación diferente de diario y fecha crea un nuevo movimiento.
Example
ACH
+ 2021/05/01
–> nuevo movimiento en el diario ACH
con el nombre 20210501
.
Si este intento falla, el usuario verá un mensaje de error con todas las líneas de movimiento que no están balanceadas.
Información del partner¶
Si una línea tiene la información del partner especificada, la información se copia al movimiento contable si el tipo de diario al que se importará es por pagar o conciliable.
Exportar¶
Si instaló el paquete de localización fiscal para Francia, debería poder descargar el FEC. Para hacerlo, vaya a .
Truco
Si no puede ver el submenú FEC, vaya a
, quite el filtro de aplicaciones y busque el módulo llamado Francia-FEC y verifique sí está bien instalado.Reportes contables franceses¶
Si instaló la contabilidad francesa, podrá acceder a algunos reportes de contabilidad específicos de Francia:
Bilan comptable (balance general)
Compte de résultats (estado de resultados)
Plan de impuestos de Francia
Obtenga la certificación antifraude del IVA con Odoo¶
A partir del primero de enero de 2018 una nueva legislación antifraude entró en vigencia en Francia y territorios de ultramar. Esta nueva legislación estipula ciertos sobre inalterabilidad, seguridad, alojamiento y el archivo de los datos de ventas. Estos requisitos legales se implementan en Odoo, a partir de la versión 9, con un módulo y un certificado de conformidad que se debe descargar.
¿Mi empresa necesita usar software antifraude?¶
Su empresa necesita usar un software antifraude de caja registradora como Odoo (CGI art. 286, I. 3° bis) si:
Está sujeto a impuestos (no exento de IVA) en Francia o en cualquier territorio de ultramar,
Algunos de sus clientes son particulares privados (B2C).
Esta regla aplica para cualquier empresa de cualquier tamaño. Los empresarios independientes están exentos del IVA y, por tanto, no se ven afectados.
Obtener la certificación con Odoo¶
Cumplir las reglas con Odoo es muy fácil.
La autoridad financiera le pide a su empresa que proporcione un certificado de conformidad en el que aparezca que su software cumple con la legislación antifraude. Odoo SA otorga este certificado a los usuarios de Odoo Enterprise aquí. Si usa la versión Community de Odoo, debería actualizar a la versión Enterprise o contactar a su proveedor.
En caso de que no cumpla con la legislación, su empresa corre el riesgo de obtener una multa de €7,500.
Para obtener el certificado solo siga los siguientes pasos:
Si usa el Punto de venta de Odoo instale el módulo Francia - Certificación antifraude del IVA para Punto de venta (CGI 286 I-3 bis). Vaya a , elimine el filtro de aplicaciones, busque l10n_fr_pos_cert e instale el módulo.
Asegúrese de que su país está configurado en su empresa, de lo contrario sus asientos no se encriptarán para la comprobación de inalterabilidad. Para editar la información de su empresa, vaya a
.Descargue el certificado de conformidad obligatorio de Odoo SA aquí.
Nota
Para instalar el módulo en cualquier sistema creado antes del 18 de diciembre de 2017 , debe actualizar la lista de módulos. Para hacerlo, active el modo de desarrollador. Para hacer esto vaya al menú de las Aplicaciones y de clic en Actualizar lista de módulos en la parte de arriba del menú.
En caso de que use Odoo local, debe actualizar su instalación y reiniciar su servidor antes.
Si instaló la versión inicial del módulo antifraude (anterior al 18 de diciembre de 2017), necesita actualizarlo. El nombre del módulo es Francia - Contabilidad - CGI 286 I-3 bis certificado. Después de la actualización de la lista de módulos, busque la actualización del módulo en Aplicaciones, selecciónela y haga clic en actualizar. Finalmente, asegúrese de que el módulo l10n_fr_sale_closing esté instalado.
Funciones antifraude¶
El módulo antifraude introduce las siguientes funciones:
Inalterabilidad: desactivación de todas las formas de cancelar o modificar datos clave de órdenes del PdV, facturas y asientos de diario;
Seguridad: algoritmo de encadenamiento para verificar la inalterabilidad;
Almacenamiento: cierres de ventas automáticos con cálculos tanto del periodo como de los totales acumulados (diario, mensual, anual).
Inalterabilidad¶
Todas las formas posibles de cancelar y modificar los datos clave de los pedidos del PdV pagados, las facturas confirmadas y los asientos de diario se desactivan si la empresa está ubicada en Francia o en cualquier territorio de ultramar.
Nota
Si ejecuta un entorno multiempresas, solo se verán afectados los documentos de dichas empresas.
Seguridad¶
Para garantizar la inalterabilidad, todas las órdenes o asientos bancarios se encriptan al validarlas. Este número (o hash) se calcula a partir de los datos clave del documento, así como a partir del hash de documentos precedentes.
El módulo introduce una interfaz para probar la inalterabilidad de los datos. Si se edita cualquier información dentro de un documento después de su validación, la prueba fallará. El algoritmo recalcula todos los hashes y los compara con los iniciales. En caso de que falle, el sistema indica el primer documento corrupto en el sistema.
Los usuarios con derechos de acceso de gerente pueden iniciar la comprobación de inalterabilidad. Para órdenes del PdV, vaya a
.Almacenamiento¶
El sistema también procesa cierres de venta automáticos cada día, cada mes y cada año. Estos cierres calculan el total de ventas específicamente del periodo indicado así como los totales generales acumulativos desde el primer asiento de ventas registrado en el sistema.
Puede encontrar los cierres en el menú de «Asientos franceses» de Punto de venta, Facturación y Contabilidad.
Nota
Los cierres calculan los totales para los asientos de diario de los diarios de venta (tipo de diario = ventas).
Para entornos multiempresas, estos cierres se realizan para cada empresa por separado.
Las órdenes del PdV se publican como asientos de diario al cerrar la sesión de PdV. Se puede cerrar la sesión del PdV en cualquier momento. Para invitar a que los usuarios hagan esto todos los días, el módulo no permite volver a iniciar una sesión que se abrió hace más de 24 horas. Esta sesión se debe cerrar entes de volver a vender.
El total de un periodo se calcula a partir de todos los asientos de diario que se publicaron después del cierre previo del mismo tipo, sin importar su fecha de publicación. Si registra una nueva transacción de venta para un periodo que ya se cerró, se contará en el cierre más cercano.
Truco
Para pruebas y auditorías, estos cierres se pueden generar manualmente en el modo de desarrollador.
Después vaya a
.
Responsabilidades¶
¡No desinstale el módulo! Si lo hace, los hashes se resetearán y no se podrá garantizar que su información previa sea inalterable.
Los usuarios son responsables de su instancia de Odoo y deben usarla con su debida diligencia. No se permite modificar el código fuente ya que este código garantiza la inalterabilidad inicial de los datos.
Odoo no se hace responsable de cualquier cambio que aplicaciones externas que Odoo no haya certificado puedan realizar en las funciones de los módulos.
Más información¶
Encontrará más información sobre esta legislación en los documentos oficiales.