Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #981  
Antiguo 28-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 163
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Si, no había compilado el proyecto.
Con los archivos generados también me da ese error:

[dcc32 Error] SistemaFacturacion.pas(1599): E2056 String literals may have at most 255 elements

Simplemente edita el fichero SistemaFacturacion.pas y divide esa cadena en 2.
Es decir, donde hay algo como esto y falla:

Código Delphi [-]
 InvRegistry.RegisterMethodInfo(TypeInfo(sfSOAP), 'AltaFactuSistemaFacturacion', '',
                                 '[ReturnName="RespuestaLinea", RequestNS="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd", ResponseNS="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd"]', IS_OPTN or IS_UNBD);

Pon esto:
Código Delphi [-]

 InvRegistry.RegisterMethodInfo(TypeInfo(sfSOAP), 'AltaFactuSistemaFacturacion', '',
      '[ReturnName="RespuestaLinea",  RequestNS="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/' + 
     'es/aeat/tike/cont/ws/SuministroLR.xsd",   ResponseNS="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplic' + 
     ' aciones/es/aeat/tike/cont/ws/RespuestaSuministro.xsd"]',  IS_OPTN or IS_UNBD);
Lo he partido en varios trozos para que se vea bien.
Si, gracias. Ya me había sugerido esa solución otro compañero en este mismo hilo

Era por asegurarme que siguiera pasando lo mismo.

Y el otro problema que tengo es con el elemento CABECERA, que como ya comenté anteriormente en éste hilo, no consigo acceder a él para meter los datos correspondientes. Sólo puedo meter el array con las facturas a enviar, pero seguro que al hacer el envío me lo darán para atrás por no tener la cabecera.
¿Será que se les ha olvidado definirlo?
Responder Con Cita
  #982  
Antiguo 28-12-2023
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.256
Poder: 5
ermendalenda Va por buen camino
Cita:
Empezado por antoine0 Ver Mensaje
En las descripciones de mensajes veo que están previstos husos horarios, con exactamente 3 posibilidades: 01 (GMT, Canarias en invierno), 02 (CET/BST, península en invierno o Canarias en verano) y 03 (CEDT, península en verano); una codificación fuera de estándar, poco acertada y demasiado restrictiva, diría yo. Visto los ejemplos, es una cosa que han añadido después del 29/10 Es un campo obligatorio en la fecha-hora de generación del registro, con la descripción (en el Excel) siguiente

¿Hay una cosa parecida en alguno de los Ticket*BAI?
Me podrias indicar donde has visto esas posibilidades, solo he enonctrado estas en el xsd y no hacen referencia a invierno, verano...


- <simpleType name="HusoHorarioGenRegistroType">
- <restriction base="string">
- <enumeration value="01">
- <annotation>
<documentation xml:lang="es">GMT+0</documentation>

</annotation>


</enumeration>


- <enumeration value="02">
- <annotation>
<documentation xml:lang="es">GMT+1</documentation>

</annotation>


</enumeration>


- <enumeration value="03">
- <annotation>
<documentation xml:lang="es">GMT+2</documentation>

</annotation>


</enumeration>


</restriction>


</simpleType>
Responder Con Cita
  #983  
Antiguo 28-12-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por nincillo Ver Mensaje
Y el otro problema que tengo es con el elemento CABECERA, que como ya comenté anteriormente en éste hilo, no consigo acceder a él para meter los datos correspondientes. Sólo puedo meter el array con las facturas a enviar, pero seguro que al hacer el envío me lo darán para atrás por no tener la cabecera.
¿Será que se les ha olvidado definirlo?

Según la unit que se genera al importar el WSDL no existe esa parte.
¿Exactamente cuando dices cabecera a qué te refieres?

He visto que en el EXCEL con los diseños de registro hay 3 de alta (DR=Diseño Registro):
  • DR Alta.VERIFACTU
  • DR Alta.Requerimiento
  • DR Alta.C-E
En los 2 primeros sí aparece una sección de Cabecera, pero no en el tercero.
¿?¿?¿?¿
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #984  
Antiguo 28-12-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por nincillo Ver Mensaje
Y el otro problema que tengo es con el elemento CABECERA, que como ya comenté anteriormente en éste hilo, no consigo acceder a él para meter los datos correspondientes. Sólo puedo meter el array con las facturas a enviar, pero seguro que al hacer el envío me lo darán para atrás por no tener la cabecera.
¿Será que se les ha olvidado definirlo?

Me respondo a mi mismo.
He descargado el XSD desde aquí.
Lo he subido al FTP junto al resto de la documentación.

Importándolo en un proyecto de Delphi (XML Data Binding) y con un poco de código:

Código Delphi [-]
procedure TForm3.Button2Click(Sender: TObject);
var
  fAlta:IXMLSistemaFacturacionAltaFact;
begin

  fAlta := NewFacturaAlta;
  fAlta.Cabecera.IDVersion := '1.0';
  fAlta.Cabecera.ObligadoEmision.NombreRazon := 'EMPRESA PRUEBAS';
  fAlta.Cabecera.ObligadoEmision.NIF := '11111111H';
  fAlta.Cabecera.TipoRegistroAEAT := 'S0';

  ...

  var sXML:string;
  fAlta.OwnerDocument.SaveToXML(sXML);
  Memo1.Lines.Text := sXML;

end;

Se genera la parte de la cabecera sin problemas...

Código PHP:
<?xml version="1.0"?>
<FacturaAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <Cabecera>
        <IDVersion>1.0</IDVersion>
        <ObligadoEmision>
            <NombreRazon>EMPRESA PRUEBAS</NombreRazon>
            <NIF>11111111H</NIF>
        </ObligadoEmision>
        <TipoRegistroAEAT>S0</TipoRegistroAEAT>
    </Cabecera>
</FacturaAlta>
Os adjunto el fichero generado.
Archivos Adjuntos
Tipo de Archivo: zip SuministroInformacionV1_0.zip (22,2 KB, 30 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #985  
Antiguo 28-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 163
Poder: 8
nincillo Va por buen camino
Yo en el ejemplo que estaba haciendo para comparar con el wsdl del SII tengo esto código Delphi:

Código:
procedure TForm2.Button1Click(Sender: TObject);
var
  LRfacturasEmitidas : SuministroLRFacturasEmitidas;
  LRFacturaEmitida0, LRFacturaEmitida1 : LRfacturasEmitidasType;
  result : RespuestaLRFacturasEmitidas;
  arrayFacturas : Array_Of_LRfacturasEmitidasType;

begin

  LRfacturasEmitidas := SuministroLRFacturasEmitidas.Create;
  LRfacturasEmitidas.Cabecera := CabeceraSii.Create;
    LRfacturasEmitidas.Cabecera.Titular := PersonaFisicaJuridicaESType.Create;
      LRfacturasEmitidas.Cabecera.Titular.NombreRazon := 'NombreRazon';
      LRfacturasEmitidas.Cabecera.Titular.NIF := '10855497A';


  // genero las diferentes facturas
  SetLength(arrayFacturas, 2);

  LRFacturaEmitida0 := LRfacturasEmitidasType.Create;
  LRFacturaEmitida0.PeriodoImpositivo := PeriodoImpositivo.Create;
    LRFacturaEmitida0.PeriodoImpositivo.Ejercicio := '23';
    LRFacturaEmitida0.PeriodoImpositivo.Periodo := TipoPeriodoType._02;
  arrayFacturas[0] := LRFacturaEmitida0;

  LRFacturaEmitida1 := LRfacturasEmitidasType.Create;
  LRFacturaEmitida1.PeriodoImpositivo := PeriodoImpositivo.Create;
    LRFacturaEmitida1.PeriodoImpositivo.Ejercicio := '24';
    //LRFacturaEmitida.PeriodoImpositivo.Periodo := TipoPeriodoType._01;
  arrayFacturas[1] := LRFacturaEmitida1;


  LRfacturasEmitidas.RegistroLRFacturasEmitidas := arrayFacturas;



    try

      result := GetsiiSOAP(false, 'https://prewww1.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP', HTTPRIO1).SuministroLRFacturasEmitidas(LRfacturasEmitidas);
      ShowMessage('Estado envio: ' + result.RespuestaLinea[0].DescripcionErrorRegistro);
    finally

    end;
end;
Y me funciona correctamente, y puedo acceder al LRfacturasEmitidas.Cabecera sin problema.

Sin embargo, el de VeriFactu no encuentro el equivalente al SuministroLRFacturasEmitidas del SII.

Estoy revisando el wsdl por dentro y me he dado cuenta de una cosa quizás puedas ser la causa de no encontrar lo que estoy buscando.

En la parte superior del wsdl aparece:
Código:
// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl
//  >Import : https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl>0
//  >Import : https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SuministroInformacion.xsd
//  >Import : https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SuministroLR.xsd
//  >Import : https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/RespuestaSuministro.xsd
// Encoding : UTF-8
// Version  : 1.0
// (22/12/2023 10:00:16 - - $Rev: 112483 $)
// ************************************************************************ //
Mientras que luego en el resto del wsdl las urls siempre hacen referencia a: https://www2.agenciatributaria.gob.e.../tike/cont/ws/.... y resulta que esas páginas no existen a día de hoy. Podrá ser eso o estaré diciendo tonterías...

Si yo accedo a https://prewww2.aeat.es/static_files...nformacion.xsd hay si tengo un nodo CABECERA que quizás sea el que estoy buscando, pero el problema es que luego, en el resto del documento, la referencia se hace a: https://www2.agenciatributaria.gob.e...nformacion.xsd y esa url no funciona.

PD. Acabo de ver que mientras escribía mi post, @Neftali había editado el suyo, pero por si acaso pudiera servir de algo, lo posteo.
Responder Con Cita
  #986  
Antiguo 28-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 163
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Me respondo a mi mismo.
He descargado el XSD desde aquí.
Lo he subido al FTP junto al resto de la documentación.

Importándolo en un proyecto de Delphi (XML Data Binding) y con un poco de código:

Código Delphi [-]
procedure TForm3.Button2Click(Sender: TObject);
var
  fAlta:IXMLSistemaFacturacionAltaFact;
begin

  fAlta := NewFacturaAlta;
  fAlta.Cabecera.IDVersion := '1.0';
  fAlta.Cabecera.ObligadoEmision.NombreRazon := 'EMPRESA PRUEBAS';
  fAlta.Cabecera.ObligadoEmision.NIF := '11111111H';
  fAlta.Cabecera.TipoRegistroAEAT := 'S0';

  ...

  var sXML:string;
  fAlta.OwnerDocument.SaveToXML(sXML);
  Memo1.Lines.Text := sXML;

end;

Se genera la parte de la cabecera sin problemas...

Código PHP:
<?xml version="1.0"?>
<FacturaAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <Cabecera>
        <IDVersion>1.0</IDVersion>
        <ObligadoEmision>
            <NombreRazon>EMPRESA PRUEBAS</NombreRazon>
            <NIF>11111111H</NIF>
        </ObligadoEmision>
        <TipoRegistroAEAT>S0</TipoRegistroAEAT>
    </Cabecera>
</FacturaAlta>
Os adjunto el fichero generado.
Ante todo, muchas gracias por tu paciencia.
Esto a base de pegarme cabezazos todo el fin de semana, ya lo había conseguido encontrar, pero entonces me atascaba en el momento de querer hacer el envío, ya que en el método GetsfSOAP requiere que sea un objeto de tipo Array_Of_RespuestaExpedidaType y no se como "calzarle" el cabecera.

Código:
try
    SetLength(arrayFacturas, 1);
    arrayFacturas[0] := regFactura;
    result := GetsfSOAP(true, '', HTTPRIO1).AltaFactuSistemaFacturacion(ArrayFacturas);
Responder Con Cita
  #987  
Antiguo 28-12-2023
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Germán.


Sigo tus instrucciones del XML Data Binding pero solo me genera dos archivos, uno .pas y otro .xdb. ¿El fichero .xsd cómo se genera?


Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #988  
Antiguo 28-12-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por newtron Ver Mensaje
Sigo tus instrucciones del XML Data Binding pero solo me genera dos archivos, uno .pas y otro .xdb. ¿El fichero .xsd cómo se genera?
El XSD es el fichero de esquema. Te lo deben dar.
Se descarga desde aquí y lo he copiado aquí en el FTP.
Archivos Adjuntos
Tipo de Archivo: zip SuministroInformacion.XSD.zip (6,3 KB, 10 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 28-12-2023 a las 18:56:26.
Responder Con Cita
  #989  
Antiguo 28-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 163
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Germán.


Sigo tus instrucciones del XML Data Binding pero solo me genera dos archivos, uno .pas y otro .xdb. ¿El fichero .xsd cómo se genera?


Gracias y un saludo.
El .xsd, que yo sepa, como mucho lo tendrás que guardar una vez abierto en el navegador. ¿Te refieres a eso?
Responder Con Cita
  #990  
Antiguo 28-12-2023
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
El XSD es el fichero de esquema. Te lo deben dar.
Se descarga desde aquí y lo he copiado aquí en el FTP.

Gracias Germán.



Cita:
Empezado por nincillo Ver Mensaje
El .xsd, que yo sepa, como mucho lo tendrás que guardar una vez abierto en el navegador. ¿Te refieres a eso?

Efectivamente. Entiendo que el fichero .xsd solo se usa para generar el .pas


Seguimos probando.


Gracias a los dos.
__________________
Be water my friend.
Responder Con Cita
  #991  
Antiguo 28-12-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.549
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
El problema con el que me he topado yo es que falta la URL del servicio.
Cuando se importa el WSDL, en la función principal hay estos datos:
Código Delphi [-]

function GetsfSOAP(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): sfSOAP;
const
  defWSDL = 'https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl';

  defURL  = 'xxxxxxxxxx';    <==================================

  defSvc  = 'sfService';
  defPrt  = 'SistemaFacturacion';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin

¿Se me escapa algo o nos quedamos aquí parados?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 28-12-2023 a las 19:51:19.
Responder Con Cita
  #992  
Antiguo 28-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 163
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
El problema con el que me he topado yo es que falta la URL del servicio.
Cuando se importa el WSDL, en la función principal hay estos datos:
Código Delphi [-]

function GetsfSOAP(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): sfSOAP;
const
  defWSDL = 'https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl';

  defURL  = 'xxxxxxxxxx';    <==================================

  defSvc  = 'sfService';
  defPrt  = 'SistemaFacturacion';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin

¿Se me escapa algo o nos quedamos aquí parados?
En lo que a pruebas "reales" de envío se trata, me temo que sí.

Yo lo que estoy es generando el xml en el evento HTTPRIO1BeforeExecute para ver lo que estoy enviando y ahi es donde me temo que falta el famoso <cabecera>
Código:
procedure TForm2.HTTPRIO1BeforeExecute(const MethodName: string;
  SOAPRequest: TStream);
var
  sTmp                                  : TStringList;
  nFile : string;
begin

  sTmp:=TStringList.Create;
  SOAPRequest.Position := 0;
  sTmp.LoadFromStream(SOAPRequest);
  nFile := ExtractFilePath(Application.ExeName) + 'VeriFactu_PeticionEnviada.xml';
  sTmp.SaveToFile(nFile);
  WebBrowser1.Navigate(nFile);
  //sTmp.SaveToStream(SOAPRequest);
  // blaa blaa...
end;
Código:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<AltaFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<RegistroAltaFacturas>
<RegistroFacturacion>
...
</RegistroFacturacion>
<DatosControl>
<Huella xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">HUella</Huella>
<TipoHash xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">01</TipoHash>
<Incidencia xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">N</Incidencia>
</DatosControl>
</RegistroAltaFacturas>
</AltaFactuSistemaFacturacion>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Responder Con Cita
  #993  
Antiguo 29-12-2023
antoine0 antoine0 is offline
Miembro
 
Registrado: oct 2021
Posts: 233
Poder: 4
antoine0 Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Me podrias indicar donde has visto esas posibilidades, solo he enonctrado estas en el xsd y no hacen referencia a invierno, verano...
tldr: es interpretación mía.
Son las tres posibilidades traducidas al castellano y a las abreviaciones usuales; GMT+0 es el huso horario GMT (Greenwich Mean Time) de Gran Bretaña y Canarias en invierno; GMT+1 es el huso horario del horario de verano en Gran Bretaña (BST, British Summer Time) y en Canarias, y también es el horario de invierno en el continente (CET, Continental o Central Europe Time) y entonces de la península (menos Portugal); y GMT+2 es el horario de verano en el continente (CEDT, Continental o Central Europe Daylight Time).
Todo esto, pendiente de posible cambios legislativos en las alternancias en los horarios de verano, por tanto es un poco mejor quedarse con GMT+x que poner «horario de invierno».

Sin embargo, el problema lo veo en las exportaciones, donde hay dos fechas distintas pero tal como se ve en el registro de eventos solo hay un huso horario; y me teme que habrá cosas “interesantes” cuando el periodo será los meses de marzo (sobrará una hora del 1 de abril) u octubre (faltará una hora al final del mes)...

Última edición por antoine0 fecha: 29-12-2023 a las 12:32:23. Razón: inversión en efectos del cambio de hora
Responder Con Cita
  #994  
Antiguo 29-12-2023
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Hola a tod@s.


Dándole vueltas a este tema se me ocurren mil problemas que vamos a tener a la hora de enviar los datos y uno de ellos es que el NIF y nombre del cliente sean válidos. Imagino que si se intenta subir una factura con un nif erróneo el servidor chillará y la devolverá como no válida y a partir de ahí no sé cómo actuar, sobre todo si el cliente ya no está y no hay forma de comprobar y corregir ese dato.


Se puede hacer una consulta mediante webservice para confirmar que el nif+nombre es correcto pero estoy pensando en que se necesita hacer la llamada con un certificado válido y me temo que los clientes no van a instalar certificados en todos los posibles terminales de la red y que usen el programa. ¿Qué se os ocurre al respecto? porque ando un poco perdido con este asunto.


Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #995  
Antiguo 29-12-2023
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.256
Poder: 5
ermendalenda Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Hola a tod@s.


Dándole vueltas a este tema se me ocurren mil problemas que vamos a tener a la hora de enviar los datos y uno de ellos es que el NIF y nombre del cliente sean válidos. Imagino que si se intenta subir una factura con un nif erróneo el servidor chillará y la devolverá como no válida y a partir de ahí no sé cómo actuar, sobre todo si el cliente ya no está y no hay forma de comprobar y corregir ese dato.


Se puede hacer una consulta mediante webservice para confirmar que el nif+nombre es correcto pero estoy pensando en que se necesita hacer la llamada con un certificado válido y me temo que los clientes no van a instalar certificados en todos los posibles terminales de la red y que usen el programa. ¿Qué se os ocurre al respecto? porque ando un poco perdido con este asunto.


Gracias y un saludo.
Hola
Va a haber varios escenarios. Nif, nie, cifs..
Los códigos de identificacion españoles tienen algoritmo de comprobación y son verificables, como bien dices por webservice con un certificado, los extranjeros se los comen todos si los ponen en id_otro
Por tanto, si no instalas un certificado, que además esté vigente, sólo puedes comprobar con el algoritmo y además te pueden decir nombres erroneos, es muy frecuente en los autonomos ypor erro4, que el cliente te de un nombre xomerxial de empresa con un cif.
Que yo sepa, las verificaciones que suelen hacer es solo que el cif b
Nif(español) cumple el algoritmo(numero de caracteres y cálculo de letra/s)
Otra cosa es que hagan, posteriormente, comprobaciones, pero es raro que sancionen por eso.
Responder Con Cita
  #996  
Antiguo 29-12-2023
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.256
Poder: 5
ermendalenda Va por buen camino
Cita:
Empezado por antoine0 Ver Mensaje
tldr: es interpretación mía.
Son las tres posibilidades traducidas al castellano y a las abreviaciones usuales; GMT+0 es el huso horario GMT (Greenwich Mean Time) de Gran Bretaña y Canarias en invierno; GMT+1 es el huso horario del horario de verano en Gran Bretaña (BST, British Summer Time) y en Canarias, y también es el horario de invierno en el continente (CET, Continental o Central Europe Time) y entonces de la península (menos Portugal); y GMT+2 es el horario de verano en el continente (CEDT, Continental o Central Europe Daylight Time).
Todo esto, pendiente de posible cambios legislativos en las alternancias en los horarios de verano, por tanto es un poco mejor quedarse con GMT+x que poner «horario de invierno».

Sin embargo, el problema lo veo en las exportaciones, donde hay dos fechas distintas pero tal como se ve en el registro de eventos solo hay un huso horario; y me teme que habrá cosas “interesantes” cuando el periodo será los meses de marzo (sobrará una hora del 1 de abril) u octubre (faltará una hora al final del mes)...
Yo veo que el uso horario de España, según interpreto, es el 2. No creo que tengan que ver las estaciones ni los cambios horarios de cada país.
Saludos
Responder Con Cita
  #997  
Antiguo 29-12-2023
antoine0 antoine0 is offline
Miembro
 
Registrado: oct 2021
Posts: 233
Poder: 4
antoine0 Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Dándole vueltas a este tema se me ocurren mil problemas que vamos a tener a la hora de enviar los datos y uno de ellos es que el NIF y nombre del cliente sean válidos. Imagino que si se intenta subir una factura con un nif erróneo el servidor chillará y la devolverá como no válida y a partir de ahí no sé cómo actuar, sobre todo si el cliente ya no está y no hay forma de comprobar y corregir ese dato.
Con el SII hemos tenido problemas parecidos y recuerdo (pero de esto hay años) algunas facturas han sido «parcialmente aceptadas» cuando el nombre del cliente no era lo que esperaba Hacienda. Me parece que el mecanismo prevé un caso parecido, dónde después de recibir esta respuesta de aceptación parcial, tienes más tiempo para ir a buscar el cliente y pedirle su nombre correcto, o alternativamente comprobar por ensayos sucesivos como está registrado exactamente en Hacienda usando el portal de Hacienda (nos ha pasado un par de veces con clientes del este de Asia donde el orden de los nombres y apellidos puede variar, luego era intentar varias combinaciones), luego registrar un registro de corrección (tipo S1, alta sustitutiva) y pasarlo a Hacienda.
Creo que es la forma correcta de hacerlo; con la condición que Hacienda te acepte parcialmente el registro inicial.

De hecho, aparentemente con este mecanismo de alta sustitutiva se puede «cambiar» un montón de datos de la factura, tanto en el destinatario como en los importes. Mmmm.
Responder Con Cita
  #998  
Antiguo 29-12-2023
antoine0 antoine0 is offline
Miembro
 
Registrado: oct 2021
Posts: 233
Poder: 4
antoine0 Va por buen camino
¿Alguien sabe lo que hay que rellenar en el campo <FechaExpedicionFacturaRegistroAnterior> de tipo "fecha" para el primer registro?
He visto que los campos <NumSerieFacturaRegistroAnterior> y <HuellaRegistroAnterior> tienen tamaño mínima de 0 caracteres, por tanto pueden quedar vacíos para tal caso (que está identificado en el RDL, 10.1.ñ). Pero el tipo "fecha" solo acepta cadenas de 10 caracteres con dígitos y guiones, y debe haber algún valor mágico...
Responder Con Cita
  #999  
Antiguo 29-12-2023
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
Entiendo que estáis haciendo pruebas generando los registros aunque sin enviarlos.


¿Habéis averiguado algo en relación al registro de cabecera+lineas?


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #1000  
Antiguo 29-12-2023
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 163
Poder: 8
nincillo Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Entiendo que estáis haciendo pruebas generando los registros aunque sin enviarlos.


¿Habéis averiguado algo en relación al registro de cabecera+lineas?


Saludos.
He estado revisando pruebas de Agosto del 22 y en la versión 0,1 si que existía la cabecera.
Responder Con Cita
Respuesta



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
Hijo de Informáticos gluglu Humor 3 13-03-2007 12:05:35
Adictos informaticos ... Trigger Humor 2 11-10-2004 13:18:32
Nosotros los Informáticos Trigger Humor 1 10-10-2004 15:58:09
Patrón de los Informáticos. obiwuan Varios 20 10-09-2003 15:44:54
Chistes Informaticos jhonny Humor 2 11-08-2003 22:59:09


La franja horaria es GMT +2. Ahora son las 00:50:52.


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