/
Modificación de clases de mapeo AEAT

Modificación de clases de mapeo AEAT

Los mapeos que se han creado para Canarias, reutilizan las clases de mapeo existentes para la AEAT. La mayoría de los campos pueden ser reutilizados, y el mapeo establecido para ellos en la AEAT, será el mapeo establecido para Canarias. Esta reutilización se ha llevado a cabo mediante herencias de las clases de mapeo. Hay ciertos campos que no han podido ser reutilizados y su mapeo ha tenido que generarse en la clase de mapeo correspondiente de Canarias. Otros, han sido reutilizados, pero se ha adaptado la BAdI y código existente, para poder ampliar el mapeo en caso de necesitar un mapeo distinto AEAT VS CANARIAS.

Si se utilizan clases de mapeo Z, habrá que ajustar las clases Z ya existentes para su correcto funcionamiento con ayuda de las modificaciones que se citan en esta guía.


En la clase padre /edge/sii_edoc_map se añade un nuevo parámetro de entrada opcional a los métodos: GET_SII, GET_SII_CABECERA, GET_ESTRUCTURA_XML. Este parámetro es un booleano que vendrá marcado con el valor X cuando se esté llamando desde un mapeo Canario.

Además, el método GET_SII_CABECERA, se modifica para ajustar el mapeo de la cabecera al mapeo Canario.

Facturas Emitidas

Clase /EDGE/CL_EDOC_SII_MAP_FE_L_11

  • Método GET_ESTRUCTURA_XML: Llamada a los métodos super->get_estructura_xml y me->get_estructura_xml_1_1 con el nuevo parámetro iv_canarias  = iv_canarias.
  • Método GET_ESTRUCTURA_XML_1_1:

               1. Se añade el parámetro iv_canarias en la firma del método.

               2. La llamada al método get_detalle_exenta se hace con el nuevo parámetro importing iv_canarias.

Clase  /EDGE/CL_EDOC_SII_MAP_FE_L

  • Método GET_ESTRUCTURA_XML:

               1. Cuando se produce el desglose no exento para Entrega, Servicio y Desglose de factura, se pone el siguiente código:

              gv_no_exenta = abap_true.
              IF iv_canarias EQ abap_true.
                
CONTINUE.
              ENDIF.

Con esto, cuando iv_canarias venga informado con X, el desglose de no exenta no se realizará. Así reducimos el mapeo de la AEAT ya que las etiquetas de este bloque cambian con respecto al XML de Canarias y no se puede reutilizar esta parte de código. Con la variable global gv_no_exenta = X sabemos durante la ejecución que el desglose es no exento.

               2. En la llamada al método get_tipo_factura se añade el parámetro opcional iv_canarias.

               3. En la llamada al método get_regimen_especial se añade el parámetro opcional iv_canarias.

               4. La llamada al método get_periodo_impositivo se hace con el nuevo parámetro iv_canarias.

               5. Los accesos a la tabla de indicadores de IVA /EDGE/SII_MP_013, se agrupan en varios métodos en la clase utilities, /edge/cl_sii_utilities, donde según el valor del parámetro iv_canarias, se lee la tabla /EDGE/SII_MP_013 para mapeos de la AEAT o /edge/sii_ca_003 para mapeos de Canarias.

               6. Cuando se llama a la BAdI de generales para determinar si una factura es de autoconsumo se hace una división. Si el mapeo proviene de una clase de Canarias, se llama a la badi de canarias para determinar si la factura es de autoconsumo, si el mapeo es AEAT, se sigue llamando a la BAdI /edge/badi_sii_mapeos_gen, método get_auto_consumo.

               7. Para el mapeo de Datos Inmueble, se fija la condición de que sólo se mapee este bloque si el mapeo no proviene de Canarias. Ya que en la clase de mapeos de Canarias se mapeará este bloque con posibles valores distintos a los de la AEAT.

               8. En la llamada a la BAdI /edge/badi_sii_mape_tercero_fe método determina_contraparte se le pasa el parámetro iv_canarias.

               9. Los rangos lr_mwskz_no_sujeta, lr_mwskz y la tabla lt_mwskz_inv_s_pas pasan a ser objetos globales definidos en la clase de mapeo /EDGE/CL_EDOC_SII_MAP como atributos para poder reutilizarse en las clases que heredan de esta.

              10. El acceso a la tabla de indicadores /edge/sii_mp_013 para recuperar el tipo de indicador, se agrupa en tres métodos distintos en la clase /edge/cl_sii_utilities para recuperarlos de la tabla de indicadores de la AEAT (/edge/sii_mp_013) o de la de Canarias (/edge/sii_ca_003).

              11. La llamada al método get_tipo_no_sujeta de la BAdI /edge/badi_sii_mapeos_emi se hace con el nuevo parámetro de importing iv_canarias.

              12. En la llamada al método get_causa_exencion de la BAdI /edge/badi_sii_mapeos_emi, se añade un nuevo parámetro importing opcional iv_canarias. Este parámetro es un booleano que irá informado con X cuando su llamada se esté ejecutando desde una clase de mapeo Canario. Cuando esto ocurra, la causa de exención que debe determinar el indicador de IVA/IGIC, se tomará de la tabla /edge/sii_ca_003 en vez de la /edge/sii_mp_013 como se hace para la AEAT.

              13. Para determinar si una factura es de autoconsumo, se llama a una nueva BAdI de Canarias en caso de que el mapeo sea Canario. En caso de seguir siendo un mapeo peninsular, la llamada a la BAdI para determinar si es autoconsumo no varía:

              14. En la llamada al método get_facturas_rectificadas de la BAdI de generales, se añade el nuevo parámetro iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_FE_BL

  • Método get_id_factura: En la llamada al método /edge/cl_sii_utilities=>get_id_factura se añade el nuevo parámetro iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_FE_IL

  • Método get_id_factura: La llamada al método get_id_factura se hace con el nuevo parámetro iv_canarias. (No aplica porque el método no se utiliza)

Autoconsumo

En la BAdI /EDGE/BADI_SII_MAPEOS_EMI método GET_DESGLOSE_AUTO_CONS, se añade un nuevo parámetro exporting para indicar que el mapeo va por desglose exento. Dentro de este método, se marcará este nuevo parámetro como X si el desglose es no exento. De esta manera en el desglose de Canarias para autoconsumo (/EDGE/CL_SII_MAP_FE_CA_L_11) se podrá saber que el desglose es no exento. 

En la clase de mapeo de Canarias, se realizará el mapeo para el desglose de autoconsumo cuando este es no exento. El resto de desglose se reutiliza del mapeo de la AEAT.

Ajustes campos ya mapeados en AEAT para Canarias:

Puede ser que desde cliente,  se quiera definir un mapeo distinto para la AEAT que para Canarias. El mapeo de Canarias reutiliza el mapeo definido para la AEAT utilizando herencia en sus métodos. De esta manera, inicialmente, los campos del XML de Canarias que existen en el XML de la AEAT toman exactamente el mismo mapeo que en la AEAT.

Si se da el caso de que el mapeo para Canarias sea diferente, se han creado nuevas BAdIs (BAdIs para Canarias) para sobrescribir el mapeo de la AEAT y definir uno específico para Canarias. Para facturas emitidas, los campos cuyos mapeos pueden ser modificados para Canarias son los siguientes:

  • Num Serie Factura Emisor
  • Descripción Operación
  • Ref Externa
  • 2_7.3
  • Reg Previo GGEE o REDEME o Competencia
  • Datos Inmueble
  • Importe Transmision Inmuebles
  • Emitida Por Terceros O Destinatario
  • Facturacion Disp Adicional Tercera Y sexta y Del Mercado Organizado Del Gas
  • FacturaSinIdentifDestinatarioAritculo6.1.d
  • Entidad Sucedida

ISU/FICA Emitidas

Clase /EDGE/CL_SII_MAP_FICA_L_11

  • Método GET_ESTRUCTURA_XML: Llamada a los métodos super->get_estructura_xml y me->get_estructura_xml_1_1 con el nuevo parámetro iv_canarias  = iv_canarias.
  • Método GET_ESTRUCTURA_XML_1_1:

               1. Se añade el parámetro iv_canarias en la firma del método.

               2. La llamada al método get_detalle_exenta se hace con el nuevo parámetro importing iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_FICA_L

  • Método GET_ESTRUCTURA_XML:

               1. Cuando se produce el desglose no exento para Entrega, Servicio y Desglose de factura, se pone el siguiente código:

              gv_no_exenta = abap_true.
              IF iv_canarias EQ abap_true.
                
CONTINUE.
              ENDIF.

Con esto, cuando iv_canarias venga informado con X, el desglose de no exenta no se realizará. Así reducimos el mapeo de la AEAT ya que las etiquetas de este bloque cambian con respecto al XML de Canarias y no se puede reutilizar esta parte de código. Con la variable global gv_no_exenta = X sabemos durante la ejecución que el desglose es no exento.

               2. En la llamada al método get_tipo_factura se añade el parámetro opcional iv_canarias.

               3. En la llamada al método get_regimen_especial se añade el parámetro opcional iv_canarias.

               4. Para el mapeo de Datos Inmueble, se fija la condición de que sólo se mapee este bloque si el mapeo no proviene de Canarias.

               5. En la llamada a la BAdI /edge/badi_sii_mapeos_fe_sd método get_datos_contraparte se le pasa el parámetro iv_canarias.

               6. La llamada al método get_causa_exencion se hace con el nuevo parámetro iv_canarias informado. (3 llamadas)

               7. Para el mapeo de Datos Inmueble, se fija la condición de que sólo se mapee este bloque si el mapeo no proviene de Canarias. Ya que en la clase de mapeos de Canarias se mapeará este bloque con posibles valores distintos a los de la AEAT.

               8. En la llamada al método es_no_sujeta de la BAdI /edge/badi_sii_mapeos_fe_sd_cl se añade el parámetro iv_canarias.

Inmuebles adicionales

Clase /EDGE/CL_EDOC_SII_MAP_RC_BL_11

  • Método GET_SII: La llamada al método get_id_factura se hace con el nuevo parámetro iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_RC_L_11

  • Método GET_ESTRUCTURA_XML: En la llamada al método get_estructura_xml, se añade el nuevo parámetro importing iv_canarias.

Inmuebles adicionales ISU/FICA

Clase /EDGE/CL_SII_MAP_FICA_RC_11

  • Método GET_ESTRUCTURA_XML: Se añade el parámetro iv_canarias en la llamada al método get_estructura_xml.

Facturas Recibidas

Desglose y Autoconsumo

El desglose de facturas recibidas se hace de nuevo en las clases de mapeo de Canarias por lo que el desglose de las clases de la AEAT no se ve afectado.

Ajustes Campos para Canarias

Puede ser que desde cliente,  se quiera definir un mapeo distinto para la AEAT que para Canarias. El mapeo de Canarias reutiliza el mapeo definido para la AEAT utilizando herencia en sus métodos. De esta manera, inicialmente y los campos del XML de Canarias que existen en el XML de la AEAT toman exactamente el mismo mapeo que en la AEAT.

Si se da el caso de que el mapeo para Canarias sea diferente, se han creado nuevas BAdIs sin implementación para sobrescribir el mapeo de la AEAT y definir uno específico para Canarias. Para facturas emitidas, los campos cuyos mapeos pueden ser modificados para Canarias son los siguientes:

  • Serie Factura Emisor
  • Importe Rectificación (CargaImpositivaImplicitaRect)
  • Descripción Operación
  • Externa
  • Factura Simplificada Articulos 7.2, 7.3
  • Reg Previo GGEE o REDEME o Competencia
  • Entidad Sucedida

Clase /EDGE/CL_EDOC_SII_MAP_FR_L

  • Método GET_ID_FACTURA:

               1. En la llamada al método get_tipo_factura se añade el parámetro opcional iv_canarias.

               2. En la llamada a la BAdI /edge/badi_sii_mapping_rec método get_id_emisor_factura se añade el parámetro iv_canarias.

              3. Se añaden las condiciones de tipo de factura 24 y 25 para que este bloque coincida con los datos del titular.

  • Método GET_ESTRUCTURA_XML:

               1. En la llamada al método get_tipo_factura se añade el parámetro opcional iv_canarias.

               2. En la llamada al método get_regimen_especial se añade el parámetro opcional iv_canarias.

               3. El acceso a la tabla de indicadores de IVA /EDGE/SII_MP_013, se agrupa en un método en la clase utilities, /edge/cl_sii_utilities, donde según el valor del parámetro iv_canarias, se lee la tabla /EDGE/SII_MP_013 para mapeos de la AEAT o /edge/sii_ca_003 para mapeos de Canarias.

               4. En la llamada del método determina_contraparte de la BAdI /edge/badi_sii_mape_tercero_fr se añade el nuevo parámetro importing iv_canarias.

               5. En la llamada al método get_id_emisor_factura de la BAdI /edge/badi_sii_mapping_rec se añade el parámetro iv_canarias.

               6. En la llamada al método get_id_factura, se añade el parámetro importing iv_canarias.

               7. Para determinar si una factura es de autoconsumo, se llama a una nueva BAdI de Canarias en caso de que el mapeo sea Canario. En caso de seguir siendo un mapeo peninsular, la llamada a la BAdI para determinar si es autoconsumo no varía:

              8. Se añaden las condiciones de tipo de factura 24 y 25 para que el Id de Factura coincida con los datos del titular.

              9. Se añaden las condiciones de tipo de factura 24 y 25 para que la contraparte coincida con los datos del titular.

            10. En la llamada al método get_facturas_rectificadas de la BAdI de generales, se añade el nuevo parámetro iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_FR_L_11

  • Método GET_ESTRUCTURA_XML: En las llamadas a los métodos get_estructura_xml y get_estructura_xml_1_1 se añade el parámetro importing iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_FR_BL

  • Método GET_SII: La llamada al método get_id_factura se hace con el nuevo parámetro iv_canarias.
  • Método GET_ID_FACTURA:

               1. En la llamada al método /edge/cl_sii_utilities=>get_id_factura se añade el nuevo parámetro iv_canarias.

               2. En la llamada al método get_tipo_factura se añade el nuevo parámetro opcional iv_canarias.

              3. Se añaden las condiciones de tipo de factura 24 y 25 para que este bloque coincida con los datos del titular.

Clase /EDGE/CL_EDOC_SII_MAP_FR_BL_11

  • Método GET_SII: La llamada al método get_id_factura se hace con el nuevo parámetro iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_FR_IL

  • Método GET_ID_FACTURA:

               1. La llamada al método get_id_factura se hace con el nuevo parámetro iv_canarias.

               2. En la llamada al método get_tipo_factura se añade el parámetro opcional iv_canarias.

              3. Se añaden las condiciones de tipo de factura 24 y 25 para que este bloque coincida con los datos del titular.

Bienes de Inversión

Clase /EDGE/CL_EDOC_SII_MAP_BI_BL

  • Método GET_ID_FACTURA: La llamada al método get_id_factura se hace con el nuevo parámetro iv_canarias.
  • Método GET_SII: La llamada al método get_id_factura se hace con el nuevo parámetro iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_BI_L_11

  • Método GET_ESTRUCTURA_XML: Las llamadas al método get_estructura_xml se hacen con el nuevo parámetro iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_BI_L

  • Método GET_ESTRUCTURA_XML: La llamada al método get_id_factura se hace con el parámetro iv_canarias.
  • Método GET_ID_FACTURA: La llamada al método get_nif_acreedor de la BAdI /edge/badi_sii_cons_razon_gen se hace con el nuevo parámetro iv_canarias.

Clase /EDGE/CL_EDOC_SII_MAP_BI_IL

  • Método GET_ID_FACTURA: La llamada al método get_id_factura se hace con el nuevo parámetro iv_canarias.

Cobros Emitidos

Se reutiliza el 100% del mapeo de la AEAT de la clase: /EDGE/CL_EDOC_SII_MAP_CE_L_11 (herencia de clases). Además, se da la posibilidad de ampliar el valor del campo Num Serie Factura Emisor. Para ello se edita el método GET_SII de la clase /EDGE/CL_EDOC_SII_MAP_CE_L_11 y se añade la llamada a la BAdI /edge/badi_sii_map_ca_gen_cli MÉTODO get_num_serie_factura_emi. De esta manera damos la posibilidad de cambiar el mapeo de este campo para el XML de Canarias.

Desde la nueva clase de mapeo de Canarias, se llama al get_sii de la AEAT (1.1) para reutilizar este mapeo con el parámetro de Canarias informado (herencia).

En esta clase, /EDGE/CL_EDOC_SII_MAP_CE_L_11, también se modifica el método get_sii. En los selects a la edocument donde se recupera el GUID, se añade la condición en el where canarias = iv_canarias.

En la clase de mapeo de Cobros Emitidos de la AEAT versión 1.0, /EDGE/CL_EDOC_SII_MAP_CE_L, también se realizan algunas modificaciones. En el método get_sii, en los selects a la edocument donde se recupera el GUID, se añade la condición en el where canarias = iv_canarias. Pero esta clase está obsoleta debido a la versión 1.1 de la AEAT.

Pagos Recibidos

Se reutiliza el mapeo de la AEAT de la clase: /EDGE/CL_EDOC_SII_MAP_PR_L_11 (herencia de clases). Además, se da la posibilidad de ampliar el valor del campo Num Serie Factura Emisor. Para ello se edita el método GET_SII de la clase /EDGE/CL_EDOC_SII_MAP_PR_L_11 y se añade la llamada a la BAdI /edge/badi_sii_map_ca_gen_cli MÉTODO get_num_serie_factura_emi. De esta manera damos la posibilidad de cambiar el mapeo de este campo para el XML de Canarias.

Desde la nueva clase de mapeo de Canarias, se llama al get_sii de la AEAT (1.1) para reutilizar este mapeo con el parámetro de Canarias informado (herencia).

En esta clase, /EDGE/CL_EDOC_SII_MAP_PR_L_11, también se modifica el método get_sii. En los selects a la edocument donde se recupera el GUID, se añade la condición en el where canarias = iv_canarias.

Además también se modifica la llamada a los métodos get_nif_acreedor de la BAdI /edge/badi_sii_cons_razon_gen añadiendo el nuevo parámetro id_canarias.

En la clase de mapeo de Cobros Emitidos de la AEAT versión 1.0, /EDGE/CL_EDOC_SII_MAP_PR_L, también se realizan algunas modificacione. En el método get_sii, en los selects a la edocument donde se recupera el GUID, se añade la condición en el where canarias = iv_canarias. Pero esta clase está obsoleta debido a la versión 1.1 de la AEAT.



Related content

Modificación de BAdIs AEAT
Modificación de BAdIs AEAT
More like this
Modificación del libro de facturas recibidas versión 1.1. Bis - Forales
Modificación del libro de facturas recibidas versión 1.1. Bis - Forales
More like this
18.3 Nuevas clases de mapeo
18.3 Nuevas clases de mapeo
More like this
Puntos de ampliación para BAdIs mapeos Canarias
Puntos de ampliación para BAdIs mapeos Canarias
More like this
Valores de mapeo
Valores de mapeo
More like this
11.2.2.1 Descripción general de implementación (IS-U)
11.2.2.1 Descripción general de implementación (IS-U)
More like this

Avvale 2024