Ver Mensaje Individual
  #8  
Antiguo 10-04-2011
cybsistemas cybsistemas is offline
Miembro
 
Registrado: sep 2005
Posts: 12
Reputación: 0
cybsistemas Va por buen camino
En afip.gob.ar/fe/ click en herramientas de asistencia
RG 2485 Diseño de registro XML V 1.1
RG 2485 Manual V1.1
Te bajás esos 2 arhivos.
Te mando el procedure completo. Fijate que Kin tenés que crearla pero Kout se crea sola. A los array de entrada tenés que asignarle espacio a los de salida se asigna solo
Código Delphi [-]
 Function TFormFac.SolicitarCAE : Boolean;
 Var
 I : Integer;
 Kin : FECAERequest;
 CAECabReq : FECAECabRequest;
 ACAEDetReq : ArrayOfFECAEDetRequest;
 CAEDetReq : FECAEDetRequest;
 ADetIva : ArrayOfAlicIva;
 DetIva : AlicIva;
 KOut : FECAEResponse;
 CAECabResp : FECAECabResponse;
 ACAEDetResp : ArrayOfFECAEDetResponse;
 CAEDetResp : FECAEDetResponse;
 AObserv : ArrayOfObs;
 AError : ArrayOfErr;
      Begin
      {
      1: Factura A
      2: Nota de Débito A
      3: Nota de Crédito A
      6: Factura B
      7: Nota de Débito B
      8: Nota de Crédito B
      }
      SetLength(ACAEDetReq,1);
      SetLength(ADetIva,1);
      Kin := FECAERequest.Create;
      CAECabReq := FECAECabRequest.Create;
      CAEDetReq := FECAEDetRequest.Create;
      DetIva := AlicIva.Create;
      CAECabReq.CantReg := 1;
      CAECabReq.CbteTipo := TipDoc;
      CAECabReq.PtoVta := PuntodeVenta;
      CAEDetReq.Concepto := 1;
      CAEDetReq.DocTipo  := 80;
      CAEDetReq.DocNro := DmMain.CliCuit.AsLargeInt;
      CAEDetReq.CbteDesde := numfac;
      CAEDetReq.CbteHasta := numfac;
      CAEDetReq.CbteFch := FormatDateTime('YYYYMMDD',EdFecha.Date);
      CAEDetReq.ImpTotConc := 0;
      CAEDetReq.ImpOpEx := 0;
      CAEDetReq.ImpTrib := 0;
      If LookMoneda.KeyValue = 1 then
           Begin
           CAEDetReq.ImpTotal := StrToFloat(Format('%12.2f',[TotalFinal]));
           CAEDetReq.ImpNeto := StrToFloat(Format('%12.2f',[TotalNeto]));
           CAEDetReq.ImpIVA := StrToFloat(Format('%12.2f',[IvaTotal]));
           End
 
      Else
           Begin
           CAEDetReq.ImpTotal := StrToFloat(Format('%12.2f',[TotalFinal * ValDolar]));
           CAEDetReq.ImpNeto := StrToFloat(Format('%12.2f',[TotalNeto * ValDolar]));
           CAEDetReq.ImpIVA := StrToFloat(Format('%12.2f',[IvaTotal * ValDolar]));
           End;
 
      CAEDetReq.MonId := 'PES';
      CAEDetReq.MonCotiz := 1;
      DetIva.Id := 5;
      DetIva.BaseImp := CAEDetReq.ImpNeto;
      DetIva.Importe := CAEDetReq.ImpIVA;
      ADetIva[0] := DetIva;
      CAEDetReq.Iva := ADetIva;
      DmMain.TWsaa.Close;
      ACAEDetReq[0] := CAEDetReq;
      Kin.FeCabReq := CAECabReq;
      Kin.FeDetReq := ACAEDetReq;
      //
      Kout := (HWSFE as ServiceSoap).FECAESolicitar(KinType,Kin);
      CAECabResp := KOut.FeCabResp;
      ACAEDetResp := KOut.FeDetResp;
      CAEDetResp := ACAEDetResp[0];
      AError := KOut.Errors;
      For i := 0 to Length(AError) - 1 do
         ShowMessage ('Error' + IntToStr(AError[i].Code) +') ' + AError[i].Msg);
 
      AObserv := CAEDetResp.Observaciones;
      For i := 0 to Length(AObserv) - 1 do
         Alert ('Obs: ' + AObserv[i].Msg);
 
      If CAECabResp.Resultado = 'R' then  //A=APROBADO, R=RECHAZADO, P=PARCIAL
         Result := False
      Else
           Begin
           LCAE := CAEDetResp.CAE;
           LvtoCae := VtoCaeToDate(CAEDetResp.CAEFchVto);
           Result := True;
           End;
 
      Kin.Free;
      KOut.Free;
      End;
__________________
Carlos

Última edición por ecfisa fecha: 22-06-2015 a las 21:41:10. Razón: Etiquetas [delphi]
Responder Con Cita