public FileStream GetFile(ref string nombre, ref Modelo.Factura factura, int opcion, int facturaId, HttpContext contexto) { factura = GetId(facturaId); ServicioXml _servicio = new ServicioXml(this._logger); FileStream _archivo = null; string _error = string.Empty; Ruta _ruta = new Ruta(contexto, factura); new ServicioArchivo(_logger).CrearCarpeta(_ruta.RutaCarpetaFacturasClientes); switch (opcion) { case 1: if (!File.Exists(_ruta.RutaGuardadoXML)) { _servicio.RecuperarXML(factura.Sucursal.Rfc, factura.FolioFiscal, _ruta.RutaGuardadoXML); } _archivo = new FileStream(_ruta.RutaGuardadoXML, FileMode.Open, FileAccess.Read); nombre = _ruta.NombreArchivoCompletoXml; break; case 2: if (!File.Exists(_ruta.RutaPDF)) { _servicio.GeneraCBB(ref _error, factura.Sucursal.Rfc, factura.Cliente.Rfc, factura.FolioFiscal, factura.Total, _ruta.RutaCBB); GenerarPDF(factura, _ruta); } nombre = _ruta.NombreArchivoCompletoPDF; if (File.Exists(_ruta.RutaPDF)) { _archivo = new FileStream(_ruta.RutaPDF, FileMode.Open, FileAccess.Read); } break; } return(_archivo); }
public Boolean Reenviar(ref string error, UsuarioDto usuario, int facturaId, HttpContext context) { Modelo.Factura _factura = new Modelo.Factura(); ServicioXml _servicioXml = new ServicioXml(this._logger); string _nombre = ""; GetFile(ref _nombre, ref _factura, 1, facturaId, context); GetFile(ref _nombre, ref _factura, 2, facturaId, context); Ruta _ruta = new Ruta(context, _factura); if (!File.Exists(_ruta.RutaGuardadoXML) || !File.Exists(_ruta.RutaPDF)) { error = "No se recuperaron los archivos necesarios."; return(false); } ServicioCorreo.Enviar(_factura.Sucursal.Asunto, _factura.Sucursal.Mensaje, _factura.Cliente.Correo, _ruta.RutaPDF, _ruta.RutaGuardadoXML, this._logger); return(true); }
public Boolean Post(ref string error, Modelo.Factura factura, UsuarioDto usuario, HttpContext context) { var _servicioRelacion = new ServicioRelaciones(this._logger, this._contexto); _servicioRelacion.ObtenerRelacionFactura(ref factura); Ruta ruta = new Ruta(context, factura); if (!ValidarFactura(ref error, ref factura)) { return(false); } ServicioXml _servicioXml = new ServicioXml(this._logger); if (!_servicioXml.GeneraCFDI(ref error, factura, ruta.RutaGuardadoXML, ruta.RutaCertificado, ruta.RutaKey, ruta.RutaArchivosXSLT, ruta.RutaCarpetaFacturasClientes)) { return(false); } XmlDocument _xmlDocument = new XmlDocument(); if (!_servicioXml.Timbrar(ref error, ref _xmlDocument, ruta.RutaGuardadoXML, ruta.RutaGuardadoXML)) { return(false); } Put(ref error, ref factura, _xmlDocument); try { factura.ImagenCbb = ruta.RutaImagenCBB; _servicioXml.GeneraCBB(ref error, factura.Sucursal.Rfc, factura.Cliente.Rfc, factura.FolioFiscal, factura.Total, ruta.RutaCBB); var correo = factura.Cliente.Correo; GenerarPDF(factura, ruta); ServicioCorreo.Enviar(factura.Sucursal.Asunto, factura.Sucursal.Mensaje, correo, ruta.RutaPDF, ruta.RutaGuardadoXML, this._logger); _servicioRelacion.SanitizarFactura(ref factura); Save(ref error, factura); return(true); } catch (Exception e) { this._logger.EscribirError(e.ToString()); error = "Ocurrio un error al guardar la factura"; return(false); } }
public Boolean Cancelar(ref string error, int facturaId, UsuarioDto usuario, HttpContext contexto) { var _factura = GetId(facturaId); if (_factura == null) { error = "No existe la factura solicitada."; return(false); } Ruta _ruta = new Ruta(contexto, _factura); if (!File.Exists(_ruta.RutaKey) && !File.Exists(_ruta.RutaCertificado)) { error = ("No existen Certificado o Llave Privada del sat"); return(false); } var _servicioXml = new ServicioXml(this._logger); _servicioXml.Cancelar(ref error, ref _factura, _ruta.RutaCertificado, _ruta.RutaKey); Put(ref error, _factura); return(true); }