internal bool EnviarAviso(Definiciones.TipoDocumento poTipoDocumento, string psDocumento, string psClaveCliente, string psRazonSocial, string psEmail, string psStatus) { bool EnviarEmail = false; try { MailMessage Mail = new MailMessage(); Mail.To.Add(new MailAddress(psEmail)); Mail.From = new MailAddress(ConfigurationManager.AppSettings["CorreoCuenta"]); Mail.Subject = ConfigurationManager.AppSettings["CorreoAsunto"] + poTipoDocumento.ToString().ToUpper() + " " + psDocumento; Mail.Body = "Estimado Cliente : " + psRazonSocial + "\r\n" + "Hemos cancelado el Comprobante Fiscal Digital " + poTipoDocumento.ToString().ToUpper() + " " + psDocumento + ", " + "el cual ha quedado sin efectos fiscales para su empresa por lo que le pedimos eliminarlo y no incluirlo en su contabilidad." + "\r\n" + "El no tomar estas medidas puede representar un problema fiscal para usted." + "\r\n" + "Este correo es informativo, favor no responder a esta dirección de correo, ya que no se encuentra habilitada para recibir mensajes." + "\r\n" + "Atentamente, Distribuidora de Autopartes Pescador, S.A. de C.V."; Mail.IsBodyHtml = false; SmtpClient cliente = new SmtpClient(ConfigurationManager.AppSettings["CorreoServidor"], int.Parse(ConfigurationManager.AppSettings["CorreoPuerto"])); using (cliente) { cliente.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["CorreoCuenta"], ConfigurationManager.AppSettings["CorreoCP"]); cliente.EnableSsl = true; cliente.Send(Mail); } EnviarEmail = true; } catch (Exception) { } return(EnviarEmail); }
public string EnviarAvisoCancelacion(Sesion poSesion, Definiciones.TipoDocumento poTipoDocumento, string psFolioDocumento, int pnNumeroDocumento) { bool poEnviarEmail = false; string psMensajeRespuesta = string.Empty; HelperDocumentos loHelper = new HelperDocumentos(); DataTable loDocumentos = loHelper.ObtenerDocumentoCancelado(poSesion, poTipoDocumento, psFolioDocumento, pnNumeroDocumento); switch (loDocumentos.Rows.Count) { case 0: psMensajeRespuesta = "No existe información del documento solicitado."; break; case 1: if (loDocumentos.Rows[0]["STATUS_CAN"].ToString() != string.Empty && loDocumentos.Rows[0]["STATUS_CAN"].ToString() == "S" && loDocumentos.Rows[0]["EMAIL_CFD1"].ToString() != string.Empty) { poEnviarEmail = loHelper.EnviarAviso(poTipoDocumento , loDocumentos.Rows[0]["DOCTO"].ToString() , loDocumentos.Rows[0]["CLAVE"].ToString() , loDocumentos.Rows[0]["RAZON_SOCIAL"].ToString() , loDocumentos.Rows[0]["EMAIL_CFD1"].ToString() , loDocumentos.Rows[0]["STATUS_CAN"].ToString()); } if (loDocumentos.Rows[0]["STATUS_CAN"].ToString() == "N") { psMensajeRespuesta = "¡El documento no esta cancelado!"; } if (loDocumentos.Rows[0]["EMAIL_CFD1"].ToString() == string.Empty) { psMensajeRespuesta = "¡El cliente no tiene correo electrónico!"; } if (poEnviarEmail) { psMensajeRespuesta = "¡Mensaje enviado con exito!"; } else { psMensajeRespuesta = "¡No se envio el mensaje!"; } break; case 2: psMensajeRespuesta = "La consulta obtuvo mas de 2 resultados y no se pudo enviar el E-Mail."; break; } return(psMensajeRespuesta); }
public bool AgruparDocumentos(Sesion poSesion, Definiciones.TipoDocumento poTipoDocumento, string psClaveCliente, string psUbicacionOrigen, DateTime poFechaInicio, DateTime poFechaFin) { HelperDocumentos loHelper = new HelperDocumentos(); DataTable loDocumentos = loHelper.ObtenerDocumentos(poSesion, poTipoDocumento, psClaveCliente, poFechaInicio, poFechaFin); EventHandler loManejadorArchivos = null; if (loDocumentos.Rows.Count > 0) { EventHandler loManejadorDocumentos = DocumentosRecuperados; this.TotalDocumentosRecuperados = loDocumentos.Rows.Count; loManejadorArchivos = DocumentoProcesado; if (loManejadorDocumentos != null) { loManejadorDocumentos(this, new EventArgs()); } } return(loHelper.CopiarDocumentos(loDocumentos, psUbicacionOrigen, loManejadorArchivos)); }
internal DataTable ObtenerDocumentos(Sesion poSesion, Definiciones.TipoDocumento poTipoDocumento, string psClaveCliente, DateTime poFechaInicio, DateTime poFechaFin) { Sentencia loSentencia = new Sentencia() { #region Inicializar Parametros = new List <Parametro>(), Tipo = AccesoDatos.Comun.Definiciones.TipoSentencia.Query, TipoComando = CommandType.Text, TipoManejadorTransaccion = AccesoDatos.Comun.Definiciones.TipoManejadorTransaccion.NoTransaccion, TipoResultado = AccesoDatos.Comun.Definiciones.TipoResultado.Conjunto #endregion }; string lsSucursales = string.Empty; foreach (Sucursal lsSucursal in poSesion.Usuario.Sucursal) { lsSucursales += lsSucursal.Clave + ","; } #region Establecer comando switch (poTipoDocumento) { case Definiciones.TipoDocumento.Factura: loSentencia.TextoComando = "SELECT 'DAP941221SYA_'||fe.folfac_folio||'_'||fe.numero as docto, fe.fecha " + "FROM clientes, facturas_emitidas fe " + "WHERE clientes.clave=fe.cli_clave AND TRUNC(fe.fecha) BETWEEN TO_DATE('" + poFechaInicio.ToShortDateString() + "','dd/MM/yyyy') AND TO_DATE('" + poFechaFin.ToShortDateString() + "','dd/MM/yyyy') " + "AND fe.folfac_folio IN (SELECT DISTINCT folfac_folio FROM suc_folios_facturas WHERE suc_clave IN (" + lsSucursales.TrimEnd(',') + ") AND folfac_folio LIKE 'F%') AND fe.status_can='N' " + "AND fe.cli_clave=COALESCE(" + ((string.IsNullOrEmpty(psClaveCliente)) ? "NULL" : "'" + psClaveCliente + "'") + ",fe.cli_clave) " + "ORDER BY fe.fecha"; break; case Definiciones.TipoDocumento.NotaCargo: loSentencia.TextoComando = "SELECT 'DAP941221SYA_'||nc.fol_nc_em_folio||'_'||nc.numero as docto, nc.fecha " + "FROM clientes, notas_cargo_emitidas nc " + "WHERE clientes.clave=nc.cli_clave AND TRUNC(nc.fecha) BETWEEN TO_DATE('" + poFechaInicio.ToShortDateString() + "','dd/MM/yyyy') AND TO_DATE('" + poFechaFin.ToShortDateString() + "','dd/MM/yyyy') " + "AND nc.fol_nc_em_folio IN (SELECT DISTINCT fol_nc_em_folio FROM suc_folios_notas_cargo_emi WHERE suc_clave IN (" + lsSucursales.TrimEnd(',') + ") AND fol_nc_em_folio LIKE 'CA%') AND nc.status_can='N' " + "AND nc.cli_clave=COALESCE(" + ((string.IsNullOrEmpty(psClaveCliente)) ? "NULL" : "'" + psClaveCliente + "'") + ",nc.cli_clave) " + "ORDER BY nc.fecha"; break; case Definiciones.TipoDocumento.NotaCredito: loSentencia.TextoComando = "SELECT 'DAP941221SYA_'||nc.fol_ncr_ct_folio||'_'||nc.numero as docto, nc.fecha " + "FROM clientes, notas_credito_al_cte nc " + "WHERE clientes.clave=nc.cli_clave AND TRUNC(nc.fecha) BETWEEN TO_DATE('" + poFechaInicio.ToShortDateString() + "','dd/MM/yyyy') AND TO_DATE('" + poFechaFin.ToShortDateString() + "','dd/MM/yyyy') " + "AND nc.fol_ncr_ct_folio IN (SELECT DISTINCT fol_ncr_ct_folio FROM suc_folios_ncred_cte WHERE suc_clave IN (" + lsSucursales.TrimEnd(',') + ") AND fol_ncr_ct_folio LIKE 'CR%') AND nc.status_can='N' " + "AND nc.cli_clave=COALESCE(" + ((string.IsNullOrEmpty(psClaveCliente)) ? "NULL" : "'" + psClaveCliente + "'") + ",nc.cli_clave) " + "ORDER BY nc.fecha"; break; default: break; } #endregion DespachadorClient loDespachador = new DespachadorClient("netTcpBinding_IDespachadorGestorCxC"); Serializacion loDeserializador = new Serializacion(); DataTable loResultado = loDeserializador.DeserializarTabla( poSesion.Conexion.Credenciales.Cifrado.Descifrar( (byte[])loDespachador.Despachar(poSesion.Conexion, new List <Sentencia>() { loSentencia } ))); loDespachador.ChannelFactory.Close(); loDespachador.Close(); return(loResultado); }
internal DataTable ObtenerDocumentoCancelado(Sesion poSesion, Definiciones.TipoDocumento poTipoDocumento, string lsFolioDocumento, int lnNumeroDocumento) { Sentencia loSentencia = new Sentencia() { #region Inicializar Parametros = new List <Parametro>(), Tipo = AccesoDatos.Comun.Definiciones.TipoSentencia.Query, TipoComando = CommandType.Text, TipoManejadorTransaccion = AccesoDatos.Comun.Definiciones.TipoManejadorTransaccion.NoTransaccion, TipoResultado = AccesoDatos.Comun.Definiciones.TipoResultado.Conjunto #endregion }; #region Establecer comando switch (poTipoDocumento) { case Definiciones.TipoDocumento.Factura: loSentencia.TextoComando = "SELECT F.FOLFAC_FOLIO || '-' || F.NUMERO AS DOCTO, C.CLAVE, C.RAZON_SOCIAL, C.EMAIL_CFD1, F.STATUS_CAN " + "FROM CLIENTES C, FACTURAS_EMITIDAS F, SUC_CLIENTES SC " + "WHERE C.CLAVE = F.CLI_CLAVE AND SC.CLI_CLAVE=C.CLAVE AND F.FOLFAC_FOLIO = '" + lsFolioDocumento + "' AND F.NUMERO=" + lnNumeroDocumento + " " + "AND SC.SUC_CLAVE IN (SELECT SUC_CLAVE FROM PERSONAL_SUCURSALES WHERE PERS_CLAVE IN (SELECT CLAVE FROM PERSONAL WHERE USR_CLAVE= '" + poSesion.Usuario.Clave.ToString() + "'))"; break; case Definiciones.TipoDocumento.NotaCargo: loSentencia.TextoComando = "SELECT N.FOL_NC_EM_FOLIO || '-' || N.NUMERO AS DOCTO, C.CLAVE, C.RAZON_SOCIAL, C.EMAIL_CFD1, N.STATUS_CAN " + "FROM CLIENTES C, NOTAS_CARGO_EMITIDAS N, SUC_CLIENTES SC " + "WHERE C.CLAVE = N.CLI_CLAVE AND SC.CLI_CLAVE=C.CLAVE AND N.FOL_NC_EM_FOLIO = '" + lsFolioDocumento + "' AND N.NUMERO=" + lnNumeroDocumento + " " + "AND SC.SUC_CLAVE IN (SELECT SUC_CLAVE FROM PERSONAL_SUCURSALES WHERE PERS_CLAVE IN (SELECT CLAVE FROM PERSONAL WHERE USR_CLAVE= '" + poSesion.Usuario.Clave.ToString() + "'))"; break; case Definiciones.TipoDocumento.NotaCredito: loSentencia.TextoComando = "SELECT N.FOL_NCR_CT_FOLIO || '-' || N.NUMERO AS DOCTO, C.CLAVE, C.RAZON_SOCIAL, C.EMAIL_CFD1, N.STATUS_CAN " + "FROM CLIENTES C, NOTAS_CREDITO_AL_CTE N, SUC_CLIENTES SC " + "WHERE C.CLAVE = N.CLI_CLAVE AND SC.CLI_CLAVE=C.CLAVE AND N.FOL_NCR_CT_FOLIO= '" + lsFolioDocumento + "' AND N.NUMERO =" + lnNumeroDocumento + " " + "AND SC.SUC_CLAVE IN (SELECT SUC_CLAVE FROM PERSONAL_SUCURSALES WHERE PERS_CLAVE IN (SELECT CLAVE FROM PERSONAL WHERE USR_CLAVE= '" + poSesion.Usuario.Clave.ToString() + "'))"; break; default: break; } #endregion DespachadorClient loDespachador = new DespachadorClient("netTcpBinding_IDespachadorGestorCxC"); Serializacion loDeserializador = new Serializacion(); DataTable loResultado = loDeserializador.DeserializarTabla( poSesion.Conexion.Credenciales.Cifrado.Descifrar( (byte[])loDespachador.Despachar(poSesion.Conexion, new List <Sentencia>() { loSentencia } ))); loDespachador.ChannelFactory.Close(); loDespachador.Close(); return(loResultado); }