Soy de Argentina y no logro obtener el CAE de la factura, es decir no la puedo generar. Pero nommetira ningun error:
procedure TComprobante.envio();
var
RIOFactura:THTTPRIO;
CUITEmisor:string;
hoy:TDate;
request:FEAuthRequest;
archivoini:TIniFile;
cae:FECAERequest;
content:FECAEResponse;
FeDetResp:FECAEDetResponse;
cabecera:FECAECabRequest;
detalle:FECAEDetRequest;
movimiento:ArrayOfFECAEDetRequest;
error:ArrayOfErr;
RioComp:THTTPRIO;
responseUltCte:FERecuperaLastCbteResponse;
resp:ArrayOfFECAEDetRequest;
begin
hoy:=StrToDate(FormatDateTime('yy/mm/dd',now));
archivoini:=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'caja.ini');
CUITEmisor:= archivoini.ReadString('AFIP','CUIT','');
//creamos objeto request
request:=FEAuthRequest.Create;
request.Token:=self.token;
request.sign:=self.sign;
request.Cuit:= StrToInt64(CUITEmisor);
//obtenemos ultimo comprobante asociado.
RioComp:=THTTPRIO.Create(nil);
with RIOComp do
begin
WSDLLocation:='https://wswhomo.afip.gov.ar/wsfev1/service.asmx?WSDL';
Port:='ServiceSoap';
Service:='Service';
end;
//objeto de respuesta
responseUltCte:=FERecuperaLastCbteResponse.Create;
//invocamos el metodo
responseUltCte:=(RioComp as serviceSoap).FECompUltimoAutorizado(request,1,011);
error:=responseUltCte.Errors;
if error<>nil then
begin
ShowMessage(error[0].Msg);
end;
//creamos cabecera del comprobante
cabecera:=FECAECabRequest.Create;
cabecera.CantReg:=DataModule1.cdsticket.RecordCount;
cabecera.PtoVta:=1;
cabecera.CbteTipo:=011;
//creamos el detalle
detalle:=FECAEDetRequest.Create;
detalle.Concepto:=1;
detalle.DocTipo:=80;
detalle.DocNro:=27204172418;
detalle.CbteDesde:=responseUltCte.CbteNro + 1;
detalle.CbteHasta:=responseUltCte.CbteNro + 1;
detalle.CbteFch:=FormatDateTime('yyyymmdd',now);
detalle.ImpTotal:=DataModule1.cdstickettotal.AsVariant;
detalle.ImpTotConc:=0;
detalle.ImpNeto:=DataModule1.cdstickettotal.AsVariant;
detalle.ImpOpEx:=0;
detalle.ImpTrib:=0;
detalle.ImpIVA:=0;
detalle.FchVtoPago:=DateToStr(hoy);
detalle.MonId:='PES';
detalle.MonCotiz:=0;
//movieminto
SetLength(movimiento,1);
movimiento[0]:=detalle;
//creamos el objeto request
cae:=FECAERequest.Create;
//asignamos la cabecera
cae.FeCabReq:=cabecera;
cae.FeDetReq:=movimiento;
content:=FECAEResponse.Create;
//creamos objeto rio
RIOFactura:=THTTPRIO.Create(nil);
with RIOFactura do
begin
WSDLLocation:='https://wswhomo.afip.gov.ar/wsfev1/service.asmx?WSDL';
Port:='ServiceSoap';
Service:='Service';
end;
//invocamos el metodo
content:=(RIOFactura as serviceSoap).FECAESolicitar(request,cae);
if content.Errors<>nil then
begin
ShowMessage(content.Errors[0].Msg);
end
else
begin
ShowMessage(content.FeDetResp[0].CAE);
end;
end;
Alguien sabe que puede ser?