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