public ObtenerNumeroNotaCretidoResponse ObtenerNumeroNotaCretido(ObtenerNumeroNotaCretidoRequest request) { List <AfipAlicuotaIvaRequest> alicuotasIva = ObtenerAfipAlicuotaIvaRequest(request.CondicionIVA, request.Productos, request.PorcentajeFacturacion); AfipObtenerCAERequest afipObtenerCAERequest = new AfipObtenerCAERequest() { TipoDocumentoFiscal = TipoDocumentoFiscal.NotaCredito, TipoCliente = request.TipoCliente, CondicionIVA = request.CondicionIVA, Cuit = request.Cuit, ImporteNeto = alicuotasIva.Sum(x => x.Monto), AlicuotasIva = alicuotasIva, NumeroFacturaOrigen = request.NumeroFacturaOrigen, PuntoVentaOrigen = request.NumeroFacturaOrigen, PasswordCertificado = PasswordCertificado, RutaCertificado = RutaCertificado }; AfipObtenerCAEResponse response = AfipFacturacionElectronicaService.ObtenerCEA(afipObtenerCAERequest); return(new ObtenerNumeroNotaCretidoResponse() { SubTotal = response.Subtotal, Iva = response.Iva, Total = response.Total, CAE = response.Codigo, FechaVencimientoCAE = response.FechaVencimiento, NumeroNotaCredito = new List <int>() { response.NumeroComprobante } }); }
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 Afip.Wsfev1.FECAEDetRequest ObtenerDetalle(AfipObtenerCAERequest CAErequest) { Afip.Wsfev1.FECAEDetRequest request = new Afip.Wsfev1.FECAEDetRequest(); request.Concepto = CONCEPTO; request.DocTipo = ObtenerTipoDocumento(CAErequest.CondicionIVA); request.DocNro = long.Parse(CAErequest.Cuit); request.CbteDesde = ObtenerNumeroComprobante(CAErequest.CondicionIVA, CAErequest.TipoDocumentoFiscal, CAErequest.PasswordCertificado, CAErequest.RutaCertificado); request.CbtesAsoc = ObtenerComprobanteAsociado(CAErequest.CondicionIVA, CAErequest.TipoDocumentoFiscal, CAErequest.PuntoVentaOrigen, CAErequest.NumeroFacturaOrigen); request.CbteHasta = request.CbteDesde; request.CbteFch = DateTime.Now.ToString("yyyyMMdd"); request.MonId = PESOS; request.MonCotiz = PESOS_COTIZACION; request.ImpTotConc = 0; //Importe total no grabado request.ImpNeto = (double)Monto.Redondeo(CAErequest.ImporteNeto); //Importe total neto request.ImpOpEx = 0; //Importe total excento request.ImpTrib = 0; //Importe total tributo AgregarAlicutaIva(CAErequest.AlicuotasIva, request); request.ImpTotal = request.ImpTotConc + request.ImpNeto + request.ImpOpEx + request.ImpIVA + request.ImpTrib; return(request); }