public static AfipObtenerCAEResponse ObtenerCEA(AfipObtenerCAERequest request) { Afip.Wsfev1.ServiceSoapClient serviceClient = new Afip.Wsfev1.ServiceSoapClient(); Afip.Wsfev1.DummyResponse dummyResponse = serviceClient.FEDummy(); Afip.Wsfev1.FECAERequest feCAERequest = new Afip.Wsfev1.FECAERequest() { FeCabReq = ObtenerCabecera(1, request.CondicionIVA, request.TipoDocumentoFiscal), FeDetReq = new Afip.Wsfev1.FECAEDetRequest[] { ObtenerDetalle(request) } }; Afip.Wsfev1.FECAEResponse feCAEResponse = serviceClient.FECAESolicitar(ObtenerAuth(request.PasswordCertificado, request.RutaCertificado), feCAERequest); VerificarErrorEnRespuesta(feCAEResponse.Errors); VerificarObservacionesEnRespuesta(feCAEResponse); return(new AfipObtenerCAEResponse() { Subtotal = (decimal)feCAERequest.FeDetReq[0].ImpNeto, Iva = (decimal)feCAERequest.FeDetReq[0].ImpIVA, Total = (decimal)feCAERequest.FeDetReq[0].ImpTotal, NumeroComprobante = (int)feCAEResponse.FeDetResp.First().CbteDesde, Codigo = feCAEResponse.FeDetResp.First().CAE, FechaVencimiento = DateTime.ParseExact(feCAEResponse.FeDetResp.First().CAEFchVto, "yyyyMMdd", CultureInfo.InvariantCulture) }); }
private static int ObtenerNumeroComprobante(CondicionIVA condicionesIVA, TipoDocumentoFiscal tipoDocumentoFiscal, string passwordCertificado, string rutaCertificado) { try { Afip.Wsfev1.ServiceSoapClient serviceClient = new Afip.Wsfev1.ServiceSoapClient(); Afip.Wsfev1.FERecuperaLastCbteResponse response = serviceClient.FECompUltimoAutorizado(ObtenerAuth(passwordCertificado, rutaCertificado), PUNTO_VENTA, ObtenerTipoComprobante(condicionesIVA, tipoDocumentoFiscal)); VerificarErrorEnRespuesta(response.Errors); return(response.CbteNro + 1); } catch (Exception ex) { throw new NegocioException($"Error al realizar la facturación. No se pudo obtener el numero de factura.", ex); } }