public DireccionesEmail ObtieneDirecciones(string custnmbr) { vwCfdClienteDireccionesCorreo dirCorreo = new vwCfdClienteDireccionesCorreo(_Conexion.ConnStr); //direcciones de correo de los clientes dirCorreo.Where.CUSTNMBR.Value = custnmbr; dirCorreo.Where.CUSTNMBR.Operator = WhereParameter.Operand.Equal; DireccionesEmail dir = new DireccionesEmail("", "", ""); try { if (!dirCorreo.Query.Load()) { ultimoMensaje = "El cliente no tiene direcciones de correo registradas."; numMensajeError++; return(dir); } else { dir.mailTo = dirCorreo.EmailTo; dir.mailCC = dirCorreo.EmailCC; dir.mailCCO = dirCorreo.EmailCCO; ultimoMensaje = ""; } return(dir); } catch (Exception edc) { ultimoMensaje = "Contacte al administrador. No se pudo consultar la base de datos. [ObtieneDireccionesDeCorreo] " + edc.Message; numMensajeError++; return(dir); } }
public bool ProcesaMensaje(string custnmbr, string idFactura, string rutaYNombreArchivo) { iErr = 0; sMsj = string.Empty; List <string> Adjunto = new List <string>(); DireccionesEmail dir = ObtieneDirecciones(custnmbr); if (iErr == 0) { if (_Param.emite) { Adjunto.Add(rutaYNombreArchivo.Replace(".xml", ".cliente." + _Param.emailAdjEmite)); //xml o zip } if (_Param.imprime) { Adjunto.Add(rutaYNombreArchivo.Replace(".xml", "." + _Param.emailAdjImprm)); //pdf } if (!_motorDeCorreo.SendMessage(Utiles.Derecha(dir.mailTo, dir.mailTo.Length - 1), _Param.emailAccount, _asunto.Trim() + " (" + idFactura + ")", _cuerpo, Utiles.Derecha(dir.mailCC, dir.mailCC.Length - 1), Utiles.Derecha(dir.mailCCO, dir.mailCCO.Length - 1), _Param.replyto, Adjunto)) { iErr++; sMsj = _motorDeCorreo.ultimoMensaje; } } return(iErr == 0); }
public bool ProcesaEnvioMail(EmailSmtp mail, string custnmbr, string docId, short Soptype, string Sopnumbe, string nombreCliente, string eBinarioActual, string eBinarioNuevo, string Mensaje, string asunto, string cuerpo) { cfdReglasFacturaXml doc = new cfdReglasFacturaXml(_Conexion, _Param); //log de facturas xml emitidas y anuladas List <string> Adjunto = new List <string>(); DireccionesEmail dir = this.ObtieneDirecciones(custnmbr); string nombreArchivo = Utiles.FormatoNombreArchivo(docId + Sopnumbe + "_" + custnmbr, nombreCliente, 20); //Si hay error al obtener direcciones, no continuar if (ultimoMensaje.Equals(string.Empty)) { if (_Param.emite) { Adjunto.Add(Mensaje.Replace("Almacenado en ", "") + "." + _Param.emailAdjEmite); //xml o zip } if (_Param.imprime) { Adjunto.Add(Mensaje.Replace("Almacenado en ", "") + "." + _Param.emailAdjImprm); //pdf } if (mail.SendMessage(Utiles.Derecha(dir.mailTo, dir.mailTo.Length - 1), _Param.emailAccount, asunto.Trim() + " (" + nombreArchivo + ")", cuerpo, Utiles.Derecha(dir.mailCC, dir.mailCC.Length - 1), Utiles.Derecha(dir.mailCCO, dir.mailCCO.Length - 1), _Param.replyto, Adjunto)) { doc.RegistraLogDeArchivoXML(Soptype, Sopnumbe, "E-mail enviado.", "0", _Conexion.Usuario, "", "enviado", eBinarioNuevo, "E-mail enviado el " + DateTime.Today.ToString()); } else { numMensajeError++; } } else { numMensajeError++; } ultimoMensaje = ultimoMensaje + mail.ultimoMensaje + doc.ultimoMensaje; return(ultimoMensaje.Equals(string.Empty)); }
private async Task <string> EjecutaEventoEnviaCorreoAsync(ICfdiMetodosWebService servicioTimbre, cfdReglasFacturaXml LogComprobante, cfdReglasEmail dirCorreos, int usuarioConAcceso) { string resultado = string.Empty; if (trxVenta.CicloDeVida.Transiciona(Maquina.eventoEnviaCorreo, usuarioConAcceso)) { DireccionesEmail dir = dirCorreos.ObtieneDirecciones(trxVenta.CUSTNMBR); string correos = string.Concat(Utiles.Derecha(dir.mailTo, dir.mailTo.Length - 1), dir.mailCC, dir.mailCCO); String[] acorreos = correos.Split(new char[] { ',' }); if (acorreos.Count() > 0) { resultado = await servicioTimbre.EnviaCorreoAsync(trxVenta.DocGP.DocVenta.cliente_numeroIdentificacion, trxVenta.Ruta_certificadoPac, trxVenta.Ruta_clavePac, trxVenta.DocGP.DocVenta.prefijo, trxVenta.DocGP.DocVenta.consecutivoDocumento, acorreos[0]); LogComprobante.RegistraLogDeArchivoXML(trxVenta.Soptype, trxVenta.Sopnumbe, resultado, trxVenta.CicloDeVida.idxTargetSingleStatus.ToString(), _Conex.Usuario, string.Empty, trxVenta.CicloDeVida.targetSingleStatus, trxVenta.CicloDeVida.targetBinStatus, trxVenta.CicloDeVida.EstadoEnPalabras(trxVenta.CicloDeVida.targetBinStatus)); LogComprobante.ActualizaFacturaEmitida(trxVenta.Soptype, trxVenta.Sopnumbe, _Conex.Usuario, Maquina.estadoBaseEmisor, Maquina.estadoBaseEmisor, trxVenta.CicloDeVida.targetBinStatus, trxVenta.CicloDeVida.EstadoEnPalabras(trxVenta.CicloDeVida.targetBinStatus), trxVenta.CicloDeVida.idxTargetSingleStatus.ToString()); } else { resultado = "El cliente no tiene una dirección de correo configurada."; } } return(resultado); }