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
                }
            });
        }
Beispiel #2
0
        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)
            });
        }
Beispiel #3
0
        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);
        }