Ver Mensaje Individual
  #24  
Antiguo 19-12-2016
bucanero bucanero is online now
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 62
Reputación: 5
bucanero Va por buen camino
Hola foro, aqui el codigo de llamada un poco mas desarrollado:

Código Delphi [-]
var
  ASuministroLRFacturasEmitidas:SuministroLRFacturasEmitidas;
  ARegistroLRFacturasEmitidas:Array_Of_LRfacturasEmitidasType;
begin
  try
    //se crea un array con el numero de facturas que se van a emitir
    //en este ejemplo solo 1, pero pueden ser mas
    SetLength(ARegistroLRFacturasEmitidas, 1);

    //se introducen los datos de cada una de las facturas
//    for i := Low(ARegistroLRFacturasEmitidas) to High(ARegistroLRFacturasEmitidas) do begin

    ARegistroLRFacturasEmitidas[0].IDFactura.IDEmisorFactura.NIF  :='123456789X';             // NIFType         =  type string;
    ARegistroLRFacturasEmitidas[0].IDFactura.NumSerieFacturaEmisor:='algo';                   // TextoIDFacturaType =  type string;
    ARegistroLRFacturasEmitidas[0].IDFactura.NumSerieFacturaEmisorResumenFin:='y algo mas';   // TextoIDFacturaType =  type string;
    ARegistroLRFacturasEmitidas[0].IDFactura.FechaExpedicionFacturaEmisor:='15/12/2016';      // fecha           =  type string;

    // ... rellenar aqui el resto de datos necesarios, no se exactamente a que se corresponden,
    // hay que mirar la documentacion correspondiente, algunos de estos datos pueden ser  tambien classes
    // con mas estructuras de datos
    (*
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.DatosInmueble:=...;          //tipo DatosInmueble2
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.ImporteTransmisionSujetoAIVA://tipo  ImporteSgn12_2Type
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.EmitidaPorTerceros:          //tipo  EmitidaPorTercerosType
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.Contraparte:                 //tipo  PersonaFisicaJuridicaType
    ARegistroLRFacturasEmitidas[0].FacturaExpedida.TipoDesglose:                //tipo  TipoDesglose2
    (**)

    ARegistroLRFacturasEmitidas[0].PeriodoImpositivo.Ejercicio:='2016';               //YearType:  type string;
    ARegistroLRFacturasEmitidas[0].PeriodoImpositivo.periodo  :=TipoPeriodoType(11);  //  TipoPeriodoType = ( _01, _02, _03, _04, _05, _06, _07, _08, _09, _10, _11, _12, _0A);

//    end;


    //se crea el objeto que se va a enviar
    ASuministroLRFacturasEmitidas := SuministroLRFacturasEmitidas.Create;
    ASuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon:='tu nombre'; //creo que esto puede ser el nombre del cliente
    ASuministroLRFacturasEmitidas.Cabecera.Titular.NIF:='tu nif';            // y esto el CIF del cliente

    //Un valor de la lista TipoComuniacion. Ver en la documentacion
    ASuministroLRFacturasEmitidas.Cabecera.TipoComunicacion:=ClaveTipoComunicacionType(1); // definida como   ClaveTipoComunicacionType = (A0, A1, A4);

    //se añade el array de facturas creado anteriormente
    ASuministroLRFacturasEmitidas.RegistroLRFacturasEmitidas:=ARegistroLRFacturasEmitidas;

    try
      // se hace la llamada a la funcion suministrada por el WS
      GetsiiSOAP.SuministroLRFacturasEmitidas(ASuministroLRFacturasEmitidas);
    except
      On E:Exception do
        //El proceso de envio dio error
        MessageDlg(E.Message, mtError, [mbOK], 0);
    end;
  finally
    // se eliminan los objetos creados
    ASuministroLRFacturasEmitidas.Free;
    setLength(ARegistroLRFacturasEmitidas, 0);
  end;


Este código compila sin problemas, pero los parámetros hay que ver en la propia documentación a que corresponden y cuales son opcionales u obligatorios. Las partes de información de facturación desabilitadas pueden a su vez ser mas classes con mas propiedades.

Un Saludo
Responder Con Cita