Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
La respuesta sí está en el documento
"Ejemplo 3. Un empresario con domicilio fiscal en Madrid que aplica el SII transporta una partida de mercancías a Canarias para efectuar una venta en dicho territorio:
Si el vendedor satisface el IGIC de la importación, registrará este traslado de la mercancía desde Península a Canarias como una importación (tipo de factura: F5) no sujeta con clave 08. La posterior venta localizada en Canarias se informará con la clave 08.
Si el comprador satisface el IGIC de la importación, el vendedor registrará la operación como una exportación con la clave 02."


Lo más normal es que sea el comprador el que satisfaga el Igic de importación, estás en el segundo caso, por lo tanto y en el 99% de los casos, una empresa en península que no tiene sucursal en Canarias, informa su venta con la clave de régimen tributario 02 Exportación y como desglose exenta tipo E2. Exenta por el artículo 21
Si no es una entrega de bienes sino una prestación de servicios entonces la clave de régimen es 08 y el desglose es N2 No sujeta por reglas de localización
Muchas Gracias por la aclaracion

Canarias:

02 Exportación y como desglose exenta tipo E2

Cita:
Que es justo como lo había dejado: (ver mensaje anterior) y es como me aparecía aceptado por la AEAT

Tipo de factura: F1
Clave régimen: 02
Operación exenta: E2
Ya esta aclarado entonces,

Me temo entonces que ramherfer debera dejarlo como E2 y no como E5.

Saludos !


Con este ultimo ajuste, las automatizaciones previstas, para iva normal, eu, exportacion y canarias (añadire ceuta y melilla) quedan finalizadas.
  #2  
Antiguo 26-02-2025
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 162
Poder: 14
ramherfer Va por buen camino
vale, me estoy dando cuenta que me define el registro así
Cita:
<Desglose>
<DetalleDesglose>
<ClaveRegimen>01</ClaveRegimen>
<OperacionExenta>E2</OperacionExenta>
<BaseImponibleOimporteNoSujeto>31.80</BaseImponibleOimporteNoSujeto>
</DetalleDesglose>
</Desglose>
y este es el error que devuelve:

Cita:
<tikR:Operacion>
<tik:TipoOperacion>Alta</tik:TipoOperacion>
</tikR:Operacion>
<tikR:EstadoRegistro>Incorrecto</tikR:EstadoRegistro>
<tikR:CodigoErrorRegistro>1199</tikR:CodigoErrorRegistro>
<tikRescripcionErrorRegistro>Si Impuesto es '01' (IVA), '03' (IGIC) o no se cumplimenta y ClaveRegimen es 01 no pueden marcarse las OperacionExenta E2, E3.</tikRescripcionErrorRegistro>
Pero no se porque está poniendo ClaveRegimen 01.

No habría que añadir esta línea en uVerifactuFuncs en el caso especifico de canarias:

Código:
DetalleDesglose.ClaveRegimen := IdOperacionesTrascendenciaTributariaType._02;
dado que pone ClaveRegimen 01
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
  #3  
Antiguo 27-02-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Cita:
Empezado por ramherfer Ver Mensaje
vale, me estoy dando cuenta que me define el registro así


y este es el error que devuelve:



Pero no se porque está poniendo ClaveRegimen 01.

No habría que añadir esta línea en uVerifactuFuncs en el caso especifico de canarias:

Código:
DetalleDesglose.ClaveRegimen := IdOperacionesTrascendenciaTributariaType._02;
dado que pone ClaveRegimen 01
efectivamente,

en la futura version 1.3 ya aparece la correccion:


Código:
              else  // caso especifico Canarias ceuta y melilla entrega de bienes
              begin
                   DetalleDesglose.ClaveRegimen     := IdOperacionesTrascendenciaTributariaType._02;
                   DetalleDesglose.OperacionExenta  := OperacionExentaType.E2;
              end;
uVerifactuFuncs

linea 1600 aprox. donde se vuelve a reajustar el regimen para canarias en el "else".

Saludos

recompila la DLL y ya.
  #4  
Antiguo 27-02-2025
CarlosMz CarlosMz is offline
Miembro
 
Registrado: jul 2020
Posts: 140
Poder: 7
CarlosMz Va por buen camino
Consulta

en el método de la demo procedure TForm1.procesarEnvio(resultado:TResultadoEnvio);

¿No debería también guardar la huella y lo disponible en registros de facturación para incorrectos ?

Algo así:

Código Delphi [-]
procedure TForm1.procesarEnvio(resultado:TResultadoEnvio);
var
  desError,error,estado,factura, emisor:string;

  j:integer;

  _ok,_oke,_err:integer;

begin
      memoXML.Lines.LoadFromFile(xmlEnvio);
      memoXML.Text:=FormatXMLData(memoXML.Text);

      memoRes.lines.clear;
      memoRes.lines.Add('Se ha realizado el envío');
      memoRes.Lines.Add('');
      memoRes.Lines.Add('Estado Del Envio:'+resultado.EstadoEnvio );
      memoRes.lines.Add('CSV: ' + resultado.CSV);
      memoRes.lines.Add('TimeStamp: ' + resultado.Fecha+' '+resultado.Hora);
      memoRes.Lines.Add('');


      _ok   :=0;    // nº facturas OK
      _oke  :=0;    // nº facturas OK ( pero aceptadas con errores )
      _err  :=0;    // nº facturas con errores  (no aceptadas)

      for j:=0 to resultado.nFacturas-1 do
      begin
            factura  := resultado.facturas[j].NumSerieFactura;
            emisor   := resultado.facturas[j].IDEmisorFactura;
            estado   := resultado.facturas[j].estado;
            error    := inttostr(resultado.facturas[j].errorcodigo);
            desError := resultado.facturas[j].descripcionError;

            memoRes.Lines.Add( factura + ' ' + estado + ' '+error+' '+desError );     // ver en pantalla

            if resultado.facturas[j].OK then   // Es correcto ó aceptado con errores
            begin
                // colocar el csv y huella en la factura
                if facturasEnviadas.locate('emisor;NumSerieFactura',vararrayof([emisor, factura ]),[]) then
                begin
                    FacturasEnviadas.edit;
                    FacturasEnviadas.fieldbyName('csv').text      :=resultado.CSV;
                    FacturasEnviadas.FieldByName('huella').text   :=resultado.facturas[j].huellaFactura;
                    FacturasEnviadas.fieldbyName('situacion').text:=estado;
                    FacturasEnviadas.post;
                end;
                if resultado.facturas[j].aceptadoConErrores then inc(_oke) else inc(_ok);
            end
            else
            begin
                FacturasEnviadas.edit;
                    FacturasEnviadas.fieldbyName('csv').text      :=resultado.CSV;
                    FacturasEnviadas.FieldByName('huella').text   :=resultado.facturas[j].huellaFactura;
                    FacturasEnviadas.fieldbyName('situacion').text:=estado;
                    FacturasEnviadas.post;
                inc(_err);                            // Es erronea
            end;
      end;

      memoRes.Lines.Add('');
      memoRes.Lines.Add('Facturas Aceptadas: '+inttostr(_ok) );
      memoRes.Lines.Add('Facturas Aceptadas Con Errores: '+inttostr(_oke) );
      memoRes.Lines.Add('Facturas Con Errores: '+inttostr(_err) );

      // tiempo de espera:
      if resultado.tiempoDeEspera<>'' then memoRes.Lines.Add('Se Ha Establecido Un Tiempo De Espera Proximo Envio De '+resultado.tiempoDeEspera);
end;
  #5  
Antiguo 27-02-2025
CarlosMz CarlosMz is offline
Miembro
 
Registrado: jul 2020
Posts: 140
Poder: 7
CarlosMz Va por buen camino
Creo que hay un error en la función asignaTipoNif, en la línea

"if factura.clientetipoNIF='ES' then"

quedaría así:

Código Delphi [-]
procedure asignaTipoNif(var factura:TRegistroFactura);
begin
      if factura.clientetipoNIF<>'' then exit;

      if factura.clienteCodPais='ES' then
          factura.clientetipoNIF:='02'
      else
          if CodpaisEuropea(factura.clienteCodPais) then
              factura.clientetipoNIF:='04'
          else
              factura.clientetipoNIF:='06';
end;
  #6  
Antiguo 27-02-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
gracias !!

corrección incorporada a la version 1.3

¿alguna sugerencia / necesidad para la 1.3?

Saludos !



Cita:
Empezado por CarlosMz Ver Mensaje
Creo que hay un error en la función asignaTipoNif, en la línea

"if factura.clientetipoNIF='ES' then"

quedaría así:

Código Delphi [-]
procedure asignaTipoNif(var factura:TRegistroFactura);
begin
      if factura.clientetipoNIF<>'' then exit;

      if factura.clienteCodPais='ES' then
          factura.clientetipoNIF:='02'
      else
          if CodpaisEuropea(factura.clienteCodPais) then
              factura.clientetipoNIF:='04'
          else
              factura.clientetipoNIF:='06';
end;
  #7  
Antiguo 27-02-2025
CarlosMz CarlosMz is offline
Miembro
 
Registrado: jul 2020
Posts: 140
Poder: 7
CarlosMz Va por buen camino
Como sugerencias:

- Ver el tema de las rechazadas que creo que no pone la huella al archivarlo como RF y luego hay problemas para reencadenar.
- Trabajar con las subsanaciones en función de los errores recibidos
- Controlar el flujo con los parámetros de la AEAT recibidos en cada envío

Última edición por CarlosMz fecha: 27-02-2025 a las 18:20:48.
Tema Cerrado



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Verifactu o por requerimiento (no-verifactu) ¿decisión del usuario? Maska10 Temas legales 2 07-12-2024 12:34:47
Demo de una applicación para una estación de enfermera con RAD Studio AgustinOrtu La Taberna 1 21-07-2015 17:41:35
Demo Delphi, EMail Caral Internet 1 19-12-2006 00:37:56
Demo de delphi 2005 mazinger Varios 2 18-12-2004 09:23:09
El Rave que viene con Delphi es una Demo? apicito Impresión 0 04-06-2003 11:33:36


La franja horaria es GMT +2. Ahora son las 04:54:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi