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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-04-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por vboloradito Ver Mensaje
EStoy intentando mandar una baja de factura recibida y me da error (cogi el ejemplo de este foro).
Hola.

Échale un vistazo a este código a ver si te aclara algo:

Código Delphi [-]
    ASuministroLRFacturasRecibidas := BajaLRFacturasRecibidas.Create;
    ASuministroLRFacturasRecibidas.Cabecera := CabeceraSiiBaja.Create;
    // DATOS:
    ASuministroLRFacturasRecibidas.Cabecera.IDVersionSii:=VersionSiiType(0);       // 0.1
    ASuministroLRFacturasRecibidas.Cabecera.titular := PersonaFisicaJuridicaESType.Create;
    ASuministroLRFacturasRecibidas.Cabecera.Titular.NombreRazon:=Bd.BuscaValor('DATOSEMPRESA','NOMBRE','  ','');    // NOMBRE DEL PRESENTADOR
    ASuministroLRFacturasRecibidas.Cabecera.Titular.NIF:=Bd.BuscaValor('DATOSEMPRESA','MNIF','','');              // CIF del PRESENTADOR (DEBE COINCIDIR CON EL CERTIFICADO SELECCIONADO)

    //Se crean todas las estructuras de datos de la consulta
    SetLength(ARegistroLRFacturasRecibidas, M);

    for N := 0 to M do begin
      FormSII.PBProceso.Position := FormSII.PBProceso.Position+1;
      If Grid.ValorCeldaPorCampoYFila('ENVIAR',N+1)='X' then begin
        FormSII.Label5.Caption := 'Factura: '+Grid.ValorCeldaPorCampoYFila('FACTURA',N+1);
        Application.ProcessMessages;
        // Busco registro en tabla de iva
        Tabla.FindKey([Grid.ValorCeldaPorCampoYFila('CODIGO',N+1)]);
        // Busco registro en tabla de cuentas
        TablaCuentas.FindKey([Tabla.FieldByName('CUENTA').AsString]);
        ARegistroLRFacturasRecibidas[N]:=LRBajaRecibidasType.Create;
        ARegistroLRFacturasRecibidas[N].IDFactura:=IDFacturaRecibidaNombreBCType.create;
        ARegistroLRFacturasRecibidas[N].IDFactura.NumSerieFacturaEmisor:=Grid.ValorCeldaPorCampoYFila('FACTURA',N+1); // Numero de factura
        ARegistroLRFacturasRecibidas[N].PeriodoImpositivo:=PeriodoImpositivo.Create;
        ARegistroLRFacturasRecibidas[N].PeriodoImpositivo.Ejercicio:=Bd.BuscaValor('DATOSEMPRESA','MEJERCICIO','','');  //  AÑO
        ARegistroLRFacturasRecibidas[N].IDFactura.FechaExpedicionFacturaEmisor:=Grid.ValorCeldaPorCampoYFila('FECHA',N+1);                 // FECHA DE EXPEDICION FACTURA    (dd-mm-yyyy)
        ARegistroLRFacturasRecibidas[N].IDFactura.IDEmisorFactura:= IDEmisorFactura.Create;
        ARegistroLRFacturasRecibidas[N].IDFactura.IDEmisorFactura.NombreRazon := Tabla.FieldByName('NOMBRE').AsString;
        ARegistroLRFacturasRecibidas[N].IDFactura.IDEmisorFactura.NIF  := Tabla.FieldByName('CIF').AsString;

      end;
    end;
    //se añade el array de facturas creado anteriormente
    ASuministroLRFacturasRecibidas.RegistroLRBajaRecibidas :=ARegistroLRFacturasRecibidas;


Saludos
__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 29-04-2017
vboloradito vboloradito is offline
Miembro
NULL
 
Registrado: mar 2017
Posts: 107
Poder: 8
vboloradito Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Hola.

Échale un vistazo a este código a ver si te aclara algo:

Código Delphi [-]
    ASuministroLRFacturasRecibidas := BajaLRFacturasRecibidas.Create;
    ASuministroLRFacturasRecibidas.Cabecera := CabeceraSiiBaja.Create;
    // DATOS:
    ASuministroLRFacturasRecibidas.Cabecera.IDVersionSii:=VersionSiiType(0);       // 0.1
    ASuministroLRFacturasRecibidas.Cabecera.titular := PersonaFisicaJuridicaESType.Create;
    ASuministroLRFacturasRecibidas.Cabecera.Titular.NombreRazon:=Bd.BuscaValor('DATOSEMPRESA','NOMBRE','  ','');    // NOMBRE DEL PRESENTADOR
    ASuministroLRFacturasRecibidas.Cabecera.Titular.NIF:=Bd.BuscaValor('DATOSEMPRESA','MNIF','','');              // CIF del PRESENTADOR (DEBE COINCIDIR CON EL CERTIFICADO SELECCIONADO)

    //Se crean todas las estructuras de datos de la consulta
    SetLength(ARegistroLRFacturasRecibidas, M);

    for N := 0 to M do begin
      FormSII.PBProceso.Position := FormSII.PBProceso.Position+1;
      If Grid.ValorCeldaPorCampoYFila('ENVIAR',N+1)='X' then begin
        FormSII.Label5.Caption := 'Factura: '+Grid.ValorCeldaPorCampoYFila('FACTURA',N+1);
        Application.ProcessMessages;
        // Busco registro en tabla de iva
        Tabla.FindKey([Grid.ValorCeldaPorCampoYFila('CODIGO',N+1)]);
        // Busco registro en tabla de cuentas
        TablaCuentas.FindKey([Tabla.FieldByName('CUENTA').AsString]);
        ARegistroLRFacturasRecibidas[N]:=LRBajaRecibidasType.Create;
        ARegistroLRFacturasRecibidas[N].IDFactura:=IDFacturaRecibidaNombreBCType.create;
        ARegistroLRFacturasRecibidas[N].IDFactura.NumSerieFacturaEmisor:=Grid.ValorCeldaPorCampoYFila('FACTURA',N+1); // Numero de factura
        ARegistroLRFacturasRecibidas[N].PeriodoImpositivo:=PeriodoImpositivo.Create;
        ARegistroLRFacturasRecibidas[N].PeriodoImpositivo.Ejercicio:=Bd.BuscaValor('DATOSEMPRESA','MEJERCICIO','','');  //  AÑO
        ARegistroLRFacturasRecibidas[N].IDFactura.FechaExpedicionFacturaEmisor:=Grid.ValorCeldaPorCampoYFila('FECHA',N+1);                 // FECHA DE EXPEDICION FACTURA    (dd-mm-yyyy)
        ARegistroLRFacturasRecibidas[N].IDFactura.IDEmisorFactura:= IDEmisorFactura.Create;
        ARegistroLRFacturasRecibidas[N].IDFactura.IDEmisorFactura.NombreRazon := Tabla.FieldByName('NOMBRE').AsString;
        ARegistroLRFacturasRecibidas[N].IDFactura.IDEmisorFactura.NIF  := Tabla.FieldByName('CIF').AsString;

      end;
    end;
    //se añade el array de facturas creado anteriormente
    ASuministroLRFacturasRecibidas.RegistroLRBajaRecibidas :=ARegistroLRFacturasRecibidas;


Saludos
GRACIAS pero sigo sin ver el error. ¿me podrias pasar el xml final que construye tu codigo?
Responder Con Cita
  #3  
Antiguo 29-04-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Ok. Ahí lo tienes.

Saludos
Archivos Adjuntos
Tipo de Archivo: rar salida.rar (583 Bytes, 72 visitas)
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 29-04-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Ok. Ahí lo tienes.Saludos
Disculpa mi ignorancia pero ese URL tan repetido en tu XML yo diría que no es necesario. He mandado cientos de peticiones y jamás lo he puesto, y han sido todas aceptadas, y en los ejemplos del manual oficial tampoco los ponen. Dificultan la lectura y hacen la transmisión más lenta. ¿Existe alguna poderosa razón para ello? ¿Es obligatorio?

URL citado: xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
Responder Con Cita
  #5  
Antiguo 29-04-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por CMB Ver Mensaje
Disculpa mi ignorancia pero ese URL tan repetido en tu XML yo diría que no es necesario. He mandado cientos de peticiones y jamás lo he puesto, y han sido todas aceptadas, y en los ejemplos del manual oficial tampoco los ponen. Dificultan la lectura y hacen la transmisión más lenta. ¿Existe alguna poderosa razón para ello? ¿Es obligatorio?

URL citado: xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
Claro que existe una razón. Yo no creo el XML a pelo así que lo que hago cuando lo necesito es grabar el que genera de forma automática el componente HTTPRIO una vez rellenos los objetos del mismo para poder ojear cómo queda o, como en este caso, si alguien me pide un ejemplo.

Saludos

Edito: Ese url lo mete el componente de forma automática.
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 29-04-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Por cierto....46.483 visitas... si esto fuera youtube ya casi estaríamos ganando pasta.
__________________
Be water my friend.
Responder Con Cita
  #7  
Antiguo 30-04-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Ese url lo mete el componente de forma automática.
Pues creo que el HTTPRIO no debería cargar tanto la petición sin ninguna utilidad. Además, provoca que la respuesta venga también así de cargada, con lo que las transmisiones van mucho más lentas. Y si en algún momento hubiera que analizar visualmente esos ficheros el lío puede ser fenomenal (a menos que hagas un search & replace).

Pero cada cual lo hace como puede o como le apetece. Nada que objetar.

Saludos.
Responder Con Cita
  #8  
Antiguo 01-05-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por CMB Ver Mensaje
Pero cada cual lo hace como puede o como le apetece. Nada que objetar.
No me explico o no me entiendes. Yo no preparo el XML y lo envío, yo relleno los objetos de HTTPRIO y luego hago la llamada al webservice. Ese XML lo he capturado cuando se hace la llamada y lo he generado solo para que el colega vboloradito pueda echarle un vistazo con lo cual no entro en si pone esa cadena o no, así es como lo genera. Yo no uso XML y no entro en cómo lo maneja internamente el componente.

Por otro lado he estado comentando el asunto de las posibles responsabilidades judiciales en caso de "cagada" y me comentan que si se puede demostrar que la responsabilidad es del software por su mal funcionamiento si que pueden ir en contra de la empresa desarrolladora. Pero como ya he comentado alguna vez, imagino que en caso de "movida" todo dependerá de la circunstancia particular de cada caso y de como se interprete.

Saludos
__________________
Be water my friend.
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
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4170 Hace 2 Semanas 17:29:05
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


La franja horaria es GMT +2. Ahora son las 07:06:49.


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