Пример #1
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)
            });
        }
Пример #2
0
        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);
            }
        }