예제 #1
0
        public FacturaEmitida Decodificar(String pathXml)
        {
            Comprobante comprobante;

            var xml = _operacionesStreams.ArchivoByteArray(pathXml);

            try
            {
                comprobante = _decodificar.DecodificarComprobante(pathXml);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            try
            {
                _validar.ChecarUuidRepetido(comprobante);
            }
            catch (Exception ex)
            {
                File.Delete(pathXml);
                throw ex;
            }

            try
            {
                _validar.ChecarRfcReceptor(comprobante);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            try
            {
                //_cfdiInfodextra.Validar(xml, comprobante.Emisor.Rfc);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            FacturaEmitida factura;

            try
            {
                factura = _guardar.GuardarFacturaEmitida(comprobante, xml);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            File.Delete(pathXml);

            return(factura);
        }
예제 #2
0
        public API.Operaciones.Facturacion.Validacion Sat(String pathFactura, string rfc)
        {
            var xml        = _operacionesStreams.ArchivoByteArray(pathFactura);
            var validacion = _validacionInfodextra.Validar(xml, rfc);

            return(new API.Operaciones.Facturacion.Validacion
            {
                AddendaCorrecto = validacion.AddendaCorrecto,
                CadenaOriginal = validacion.CadenaOriginal,
                CadenaSat = validacion.CadenaSat,
                Certificado = validacion.Certificado,
                Cifrado = validacion.Cifrado,
                Conceptos = validacion.Conceptos,
                ConceptosCorrecto = validacion.ConceptosCorrecto,
                DescripcionSat = validacion.DescripcionSat,
                DetallesAddenda = validacion.DetallesAddenda,
                DigestionCadenaOriginal = validacion.DigestionCadenaOriginal,
                DigestionCadenaSat = validacion.DigestionCadenaSat,
                EntidadCertificadora = validacion.EntidadCertificadora,
                Esquema = validacion.Esquema,
                EsquemaCorrecto = validacion.EsquemaCorrecto,
                EstadoSat = validacion.EstadoSat,
                ExisteAddenda = validacion.ExisteAddenda,
                NumeroCertificadoSat = validacion.NumeroCertificadoSat,
                Retenciones = validacion.Retenciones,
                RetencionesCorrecto = validacion.RetencionesCorrecto,
                RetencionesLocales = validacion.RetencionesLocales,
                RetencionesLocalesCorrecto = validacion.RetencionesLocalesCorrecto,
                SelloCfdi = validacion.SelloCfdi,
                SelloCfdiValido = validacion.SelloCfdiValido,
                SelloSat = validacion.SelloSat,
                SelloSatValido = validacion.SelloSatValido,
                Subtotal = validacion.Subtotal,
                SubtotalCorrecto = validacion.SubtotalCorrecto,
                Total = validacion.Total,
                TotalCorrecto = validacion.TotalCorrecto,
                Traslados = validacion.Traslados,
                TrasladosCorrecto = validacion.TrasladosCorrecto,
                TrasladosLocales = validacion.TrasladosLocales,
                TrasladosLocalesCorrecto = validacion.TrasladosLocalesCorrecto,
                VigenciaCertificado = validacion.VigenciaCertificado
            });
        }
예제 #3
0
        public void EnviarCorreo(Cliente cliente, List <String> archivos, string mailAlterno)
        {
            var envioEmailDto = new EnvioEmailDto
            {
                CuerpoCorreo     = cliente.Sucursal.CuerpoCorreo,
                EncabezadoCorreo = cliente.Sucursal.EncabezadoCorreo,

                EmailEmisor      = cliente.Sucursal.MailEmisor,
                NombreSucursal   = cliente.Sucursal.Nombre,
                EmailsReceptores = new List <string> {
                    cliente.Email, cliente.Sucursal.MailConfirmacion, mailAlterno
                },
            };

            if (archivos.Count > 0)
            {
                var archivosAdjuntosDto = new List <ArchivoAdjuntoDto>();
                foreach (var archivo in archivos)
                {
                    archivosAdjuntosDto.Add(new ArchivoAdjuntoDto
                    {
                        Archivo       = _operacionesStreams.ArchivoByteArray(archivo),
                        NombreArchivo = String.Format("{0}_{1}{2}", cliente.Rfc, DateTime.Now.ToString("ddMMyyyyHHmmssffff"), Path.GetExtension(archivo))
                    });
                }

                envioEmailDto.Archivos = archivosAdjuntosDto;
            }

            if (cliente.Sucursal.PasswordCorreo != null && cliente.Sucursal.Smtp != null && cliente.Sucursal.Puerto != null)
            {
                envioEmailDto.Contrasena = cliente.Sucursal.PasswordCorreo;
                envioEmailDto.Smtp       = cliente.Sucursal.Smtp;
                envioEmailDto.Puerto     = (int)cliente.Sucursal.Puerto;
                envioEmailDto.Ssl        = cliente.Sucursal.Ssl;
                _utileriasInfodextra.EnviarCorreoTradicional(envioEmailDto);
            }
            else
            {
                _utileriasInfodextra.EnviarCorreo(envioEmailDto);
            }
        }