Ver Mensaje Individual
  #3425  
Antiguo 26-06-2023
Avatar de dimony
dimony dimony is offline
Miembro
 
Registrado: oct 2006
Posts: 28
Reputación: 0
dimony Va por buen camino
Haciendo pruebas de suministro no tengo "eggs" a suministrarlo.


Este es mi código:


Código:
function suministra_cobros: string;
var
  v_SuministroLRCobrosEmitidas: SuministroCobrosEmitidas.SuministroLRCobrosEmitidas;
  v_RegistroLRCobrosEmitidas: SuministroCobrosEmitidas.Array_Of_LRCobrosEmitidasType;
  v_RegistroCobros: SuministroCobrosEmitidas.CobrosType;
  v_RespuestaLRCobrosEmitidas: SuministroCobrosEmitidas.RespuestaLRCobrosEmitidas;
  
  
  v_registros_cobros: smallint;
  v_dummy: smallint;
  V_NIF : SuministroCobrosEmitidas.IDEmisorFactura7;

begin

  (* -------------- BEGIN CABECERA -------------- *)
  v_SuministroLRCobrosEmitidas := SuministroCobrosEmitidas.SuministroLRCobrosEmitidas.Create;
  v_SuministroLRCobrosEmitidas.Cabecera := SuministroCobrosEmitidas.CabeceraSiiCobrosPagos.Create;
  v_SuministroLRCobrosEmitidas.Cabecera.IDVersionSii := SuministroCobrosEmitidas.VersionSiiType(0);
  v_SuministroLRCobrosEmitidas.Cabecera.Titular := SuministroCobrosEmitidas.PersonaFisicaJuridicaESType.Create;
  v_SuministroLRCobrosEmitidas.Cabecera.Titular.NombreRazon := Main.g_name;
  v_SuministroLRCobrosEmitidas.Cabecera.Titular.NIFRepresentante := Main.g_nif_representative;
  v_SuministroLRCobrosEmitidas.Cabecera.Titular.NIF := Main.g_nif;
  (* -------------- END CABECERA -------------- *)

  v_RegistroLRCobrosEmitidas[0] := SuministroCobrosEmitidas.LRCobrosEmitidasType.Create;
  v_RegistroLRCobrosEmitidas[0].IDFactura := SuministroCobrosEmitidas.IDFacturaExpedidaBCType.Create;
  v_RegistroLRCobrosEmitidas[0].IDFactura.IdEmisorFactura := SuministroCobrosEmitidas.IDEmisorFactura7.Create;
  v_RegistroLRCobrosEmitidas[0].IDFactura.IDEmisorFactura.nif := 'B00000000';
  v_RegistroLRCobrosEmitidas[0].IDFactura.NumSerieFacturaEmisor := '3302';
  v_RegistroLRCobrosEmitidas[0].IDFactura.FechaExpedicionFacturaEmisor := formatdatetime('dd-mm-yyyy',data.LibrosRegistros.FieldByName('fec_fra').AsDateTime);

  SetLength(v_RegistroCobros,1);
  v_RegistroCobros[0].Fecha := formatdatetime('dd-mm-yyyy',data.LibrosRegistros.FieldByName('fec_fra').AsDateTime);
  v_RegistroCobros[0].Importe := '12.1'
  v_RegistroCobros[0].Medio := SuministroCobrosEmitidas.MedioPagoType(00);
  v_RegistroCobros[0].Cuenta_O_Medio := 'Al contado';

  v_RegistroLRCobrosEmitidas[v_registros_cobros - 1].Cobros := v_RegistroCobros;

  v_RespuestaLRCobrosEmitidas := SuministroCobrosEmitidas.GetsiiSOAP(true, '', Main.g_co_wsdl_localitation, Main.g_co_wsdl_port, Main.g_co_wsdl_service, data.HTTPRIO6).SuministroLRCobrosEmitidas(v_SuministroLRCobrosEmitidas);

end;

Este es el XML que crea:


Código:
<?xml version="1.0"?>
<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>
    <SuministroLRCobrosEmitidas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd">
      <Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
        <IDVersionSii>1.1</IDVersionSii>
        <Titular>
          <NombreRazon>Empresa</NombreRazon>
          <NIFRepresentante/>
          <NIF>B0000000</NIF>
        </Titular>
      </Cabecera>
      <RegistroLRCobros>
        <IDFactura>
          <IDEmisorFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
            <NIF>B00000000</NIF>
          </IDEmisorFactura>
          <NumSerieFacturaEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">3302</NumSerieFacturaEmisor>
          <FechaExpedicionFacturaEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">19-06-2023</FechaExpedicionFacturaEmisor>
        </IDFactura>
        <Cobros>
          <Cobro>
            <Fecha xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">23-06-2023</Fecha>
            <Importe xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">12.1</Importe>
            <Medio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">01</Medio>
            <Cuenta_O_Medio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">Al contado</Cuenta_O_Medio>
          </Cobro>
        </Cobros>
      </RegistroLRCobros>
    </SuministroLRCobrosEmitidas>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

y me devuelve el siguiente código de error:


Código:
Codigo[4102].El XML no cumple el esquema. Falta informar campo obligatorio.: Cobro

Creo que no tengo bien definidas las variables o algo por el estilo o algo por ahí se me escapa, me podríais poner un ejemplo de suministro de cobros / pagos, please.

Última edición por dimony fecha: 26-06-2023 a las 11:24:31.
Responder Con Cita