Esempio n. 1
0
        public List <mail_Cuentas_Correo_x_Empresa_Info> Consulta_mail_Cuentas_Correo_x_Empresa(ref string mensaje)
        {
            try
            {
                List <mail_Cuentas_Correo_x_Empresa_Info> lista_cuentas_Emisor = new List <mail_Cuentas_Correo_x_Empresa_Info>();

                using (EntitiesFactElectronica conexion = new EntitiesFactElectronica())
                {
                    var q = from C in conexion.wv_mail_Cuentas_Correo_x_Empresa
                            select new
                    {
                        C.IdEmpresa,
                        C.IdCuenta,
                        C.observacion,
                        C.RazonSocial,
                        C.Nombre_cuenta,
                        C.direccion_correo
                    };
                    foreach (var item in q)
                    {
                        mail_Cuentas_Correo_x_Empresa_Info InfoCuentaEmpresa = new mail_Cuentas_Correo_x_Empresa_Info();

                        InfoCuentaEmpresa.IdEmpresa        = item.IdEmpresa;
                        InfoCuentaEmpresa.IdCuenta         = item.IdCuenta;
                        InfoCuentaEmpresa.observacion      = item.observacion;
                        InfoCuentaEmpresa.RazonSocial      = item.RazonSocial;
                        InfoCuentaEmpresa.observacion      = item.observacion;
                        InfoCuentaEmpresa.direccion_correo = item.direccion_correo;

                        lista_cuentas_Emisor.Add(InfoCuentaEmpresa);
                    }
                }

                return(lista_cuentas_Emisor);
            }
            catch (Exception ex)
            {
                // string mensaje = "";
                mensaje = ex.InnerException + " " + ex.Message;

                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), eTipoError.ERROR, mensaje, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);

                return(new List <mail_Cuentas_Correo_x_Empresa_Info>());
            }
        }
        private void BtnEnviarMail_Click(object sender, EventArgs e)
        {
            txt_correo_destinatario.Focus();
            //if (ValidarCorreo.email_bien_escrito(txt_correo_destinatario.Text) == false)
            //{
            //    MessageBox.Show("Correo destinatario esta mal escrito ... Error mail no valido");
            //    return;
            //}

            listadosArchivoaAdjunto = new List <mail_Mensaje_Archi_Adjunto_Info>();

            if (ValidarTxt() == true)
            {
                return;
            }

            Int32 Secuencia_Archivo_Adjunto = Bus_ArchivoAdjunto.SecuenciaArchivoAdjunto();
            bool  BCorreo_GraboOk;

            try
            {
                tb_Contribuyente_Info InfoContribuyente = ListaInfoContribuyente.FirstOrDefault(var => var.IdContribuyente == Convert.ToDecimal(cmbDestinatarios.EditValue));

                mail_Mensaje_Info Mensaje = new mail_Mensaje_Info();
                Mensaje.InfoContribuyente = InfoContribuyente;
                Mensaje.IdContribuyente   = InfoContribuyente.IdContribuyente;
                Mensaje.Para           = txt_correo_destinatario.Text;
                Mensaje.Para_CC        = txt_correo_destinatario_CC.Text;
                Mensaje.Asunto         = txtAsunto.Text;
                Mensaje.Texto_mensaje  = txt_mensaje.Text;
                Mensaje.IdTipo_Mensaje = eTipoMail.Buzon_Sal;
                Mensaje.Fecha          = DateTime.Now;
                Mensaje.Eliminado      = false;
                Mensaje.Respondido     = false;
                Mensaje.Leido          = true;

                if (lbRuta.Text == "")
                {
                    Mensaje.Tiene_Adjunto = false;
                }
                else
                {
                    Mensaje.Tiene_Adjunto = true;
                }
                Mensaje.Prioridad      = 1;
                Mensaje.No_Leido       = false;
                Mensaje.mail_remitente = InfoContribuyente.Mail;
                // lleno la clase de archivos adjuntos con los item check =true
                //Listadors_de_Comprobante_Emisor

                var lista_Filtrada = from filtrado in Listadors_de_Comprobante_Emisor
                                     where filtrado.Checked == true
                                     select filtrado;

                //recorro los cbtes chequeados
                foreach (var item in lista_Filtrada)
                {
                    try
                    {
                        mail_Mensaje_Archi_Adjunto_Info FilePdf = new mail_Mensaje_Archi_Adjunto_Info();
                        FilePdf.descripcion_archi      = item.IdComprobante + ".pdf";
                        FilePdf.extensionArchivo       = ".pdf";
                        FilePdf.Archivo_adjunto        = null;
                        FilePdf.Archivo_adjunto_stream = null;
                        FilePdf.IdComprobante          = item.IdComprobante;
                        listadosArchivoaAdjunto.Add(FilePdf);
                        FilePdf.Secuencia = 1;
                        FilePdf.IdEmpresa = item.IdEmpresa;

                        mail_Mensaje_Archi_Adjunto_Info FileXML = new mail_Mensaje_Archi_Adjunto_Info();
                        FileXML.descripcion_archi      = item.IdComprobante + ".xml";
                        FileXML.extensionArchivo       = ".xml";
                        FileXML.Archivo_adjunto        = null;
                        FileXML.Archivo_adjunto_stream = null;
                        FileXML.IdComprobante          = item.IdComprobante;
                        listadosArchivoaAdjunto.Add(FileXML);
                        FileXML.Secuencia = 2;
                        FileXML.IdEmpresa = item.IdEmpresa;

                        if (lbRuta.Text != "Ruta del Archivo Adjunto")
                        {
                            AdjuntoInfo           = new mail_Mensaje_Archi_Adjunto_Info();
                            AdjuntoInfo.IdMensaje = BusMensaje.IdMensaje();
                            AdjuntoInfo.Secuencia = Secuencia_Archivo_Adjunto;
                            FileStream file           = new FileStream(lbRuta.Text, FileMode.Open);
                            Byte[]     ArchivoAdjunto = new byte[file.Length];
                            file.Read(ArchivoAdjunto, 0, Convert.ToInt32(file.Length));
                            AdjuntoInfo.Archivo_adjunto   = ArchivoAdjunto;
                            AdjuntoInfo.extensionArchivo  = Path.GetExtension(lbRuta.Text);
                            AdjuntoInfo.descripcion_archi = Path.GetFileName(lbRuta.Text);
                            listadosArchivoaAdjunto.Add(AdjuntoInfo);
                            Secuencia_Archivo_Adjunto = Secuencia_Archivo_Adjunto + 1;
                            file.Close();
                        }
                    }
                    catch (Exception ex)
                    {
                        BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
                    }
                }

                Mensaje.list_Archivos_Adjuntos = listadosArchivoaAdjunto;//le asigno la lista de archivo adjunto a la clase mensaje que lleva los datos para enviar el correo
                DialogResult result = DialogResult.Yes;

                if (txtAsunto.Text == "")
                {
                    result = MessageBox.Show("El Mensaje no Tiene Asunto Desea Enviar sin Asunto?", "MailEfirm", MessageBoxButtons.YesNoCancel);
                }

                if (result == DialogResult.Yes)
                {
                    mail_Cuentas_Correo_x_Empresa_Info InfoCtaxCorreo = new mail_Cuentas_Correo_x_Empresa_Info();
                    mail_Cuentas_Correo_Info           InfoCtaCorreo  = new mail_Cuentas_Correo_Info();
                    listmail_Cuentas_Correo_x_Empresa = Busmail_Cuentas_Correo_x_Empresa.Consulta_mail_Cuentas_Correo_x_Empresa(ref message);

                    InfoCtaxCorreo = listmail_Cuentas_Correo_x_Empresa.Find(v => v.IdEmpresa == Mensaje.InfoContribuyente.IdEmpresa);
                    InfoCtaCorreo  = listmail_Cuentas_Correo.Find(v => v.IdCuenta == InfoCtaxCorreo.IdCuenta);

                    Mensaje.IdCuenta       = InfoCtaCorreo.IdCuenta;
                    Mensaje.mail_remitente = InfoCtaCorreo.direccion_correo;

                    BCorreo_GraboOk = BusMensaje.GrabarMensajeDB(Mensaje, ref referencia);
                    if (BCorreo_GraboOk == true)
                    {
                        try
                        {
                            if (InfoCtaCorreo.enviar_copia_x_cada_mail_enviado == true)
                            {
                                Mensaje.Asunto = "Copia Bak. " + Mensaje.Asunto;
                                Mensaje.Asunto_texto_mostrado = "Copia Bak. " + Mensaje.Asunto_texto_mostrado;
                                Mensaje.IdMensaje             = 0;
                                Mensaje.Para    = InfoCtaCorreo.cta_mail_para_envio_x_cbte_enviado;
                                BCorreo_GraboOk = BusMensaje.GrabarMensajeDB(Mensaje, ref referencia);
                            }
                        }
                        catch (Exception)
                        { }

                        Event_Correo_generado();
                    }
                    else
                    {
                        MessageBox.Show("Correo No Guardado Coreectamente");
                    }
                }
                else if (result == DialogResult.No)
                {
                    txtAsunto.Focus();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }
        }
Esempio n. 3
0
        public void Envio_Cbte_x_correo(tb_Comprobante_Info InfoComprobante_a_firmar, List <string> ListaCorreo, string SNombreEmpresa, string EstadoDoc_Auto_o_NoAuto, string IdAmbiente, eTipoEnvioMail STransaccion_q_envia, ref string mensajeErroOut)
        {
            try
            {
                Transaccion_q_envia = STransaccion_q_envia;
                tb_Contribuyente_Info InfoContibuyente = new tb_Contribuyente_Info();
                tb_Contribuyente_Bus  BusContri        = new tb_Contribuyente_Bus();
                InfoContibuyente = BusContri.GetContribuyente_Info(InfoComprobante_a_firmar.IdEmpresa, InfoComprobante_a_firmar.Cedula_Ruc, ref mensajeErroOut);
                string            sTipoDoc = optener_nombre_tipo_documento(InfoComprobante_a_firmar.IdTipoDocumento);
                mail_Mensaje_Bus  BusMail  = new mail_Mensaje_Bus();
                mail_Mensaje_Info InfoMail = new mail_Mensaje_Info();
                InfoMail.Asunto = "Ha recibido un nuevo comprobante electronico " + sTipoDoc + " Cbte#" + InfoComprobante_a_firmar.IdComprobante + " ";
                InfoMail.Asunto_texto_mostrado = "Ha recibido un nuevo comprobante electronico" + sTipoDoc + " Cbte#" + InfoComprobante_a_firmar.IdComprobante + " ";
                InfoMail.Fecha          = DateTime.Now;
                InfoMail.IdTipo_Mensaje = eTipoMail.Buzon_Sal;
                mail_Mensaje_Archi_Adjunto_Info FilePdf = new mail_Mensaje_Archi_Adjunto_Info();
                FilePdf.descripcion_archi      = InfoComprobante_a_firmar.IdComprobante + ".pdf";
                FilePdf.extensionArchivo       = ".pdf";
                FilePdf.Archivo_adjunto        = null;
                FilePdf.Archivo_adjunto_stream = null;
                FilePdf.Secuencia     = 1;
                FilePdf.IdComprobante = InfoComprobante_a_firmar.IdComprobante;
                FilePdf.IdEmpresa     = InfoComprobante_a_firmar.IdEmpresa;
                InfoMail.list_Archivos_Adjuntos.Add(FilePdf);
                mail_Mensaje_Archi_Adjunto_Info FileXML = new mail_Mensaje_Archi_Adjunto_Info();
                FileXML.descripcion_archi      = InfoComprobante_a_firmar.IdComprobante + ".xml";
                FileXML.extensionArchivo       = ".xml";
                FileXML.Archivo_adjunto        = null;
                FileXML.Archivo_adjunto_stream = null;
                FileXML.IdComprobante          = InfoComprobante_a_firmar.IdComprobante;
                FileXML.Secuencia = 2;
                FileXML.IdEmpresa = InfoComprobante_a_firmar.IdEmpresa;
                InfoMail.list_Archivos_Adjuntos.Add(FileXML);
                InfoMail.IdContribuyente = InfoContibuyente.IdContribuyente;
                InfoMail.Prioridad       = 0;
                string CuerpoMensaje = "Estimado(a):" + InfoContibuyente.Nom_Contribuyente + "\n";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + " Se le informa que ha recibido un nuevo comprobante electronico";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Resumen";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Tipo de Documento:" + sTipoDoc + "\n";
                CuerpoMensaje          = CuerpoMensaje + "No. documento:" + InfoComprobante_a_firmar.IdComprobante + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Fecha de Emisión:" + InfoComprobante_a_firmar.Fecha_Emi_Fact + "\n";
                CuerpoMensaje          = CuerpoMensaje + "No.Autorizacion:" + InfoComprobante_a_firmar.Numero_Autorizacion + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Fecha Autorizacion:" + InfoComprobante_a_firmar.FechaAutorizacion + "\n";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Ahorremos papel y ayudemos al medio ambiente! ";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Atentamente,";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + SNombreEmpresa;
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + " Tr-Efirm:" + STransaccion_q_envia;
                InfoMail.Texto_mensaje = CuerpoMensaje;
                InfoMail.Tiene_Adjunto = true;


                InfoMail.InfoContribuyente = InfoContibuyente;



                mail_Cuentas_Correo_x_Empresa_Info InfoCuentaCorreo_ = new mail_Cuentas_Correo_x_Empresa_Info();
                mail_Cuentas_Correo_Info           InfoCta_remitente = new mail_Cuentas_Correo_Info();



                if (listmail_cuentas_correo_x_empresa != null)
                {
                    InfoCuentaCorreo_ = listmail_cuentas_correo_x_empresa.Find(v => v.IdEmpresa == InfoComprobante_a_firmar.IdEmpresa);

                    if (InfoCuentaCorreo_.IdCuenta != null)
                    {
                        InfoCta_remitente = listmail_Cuentas_Correo.Find(v => v.IdCuenta == InfoCuentaCorreo_.IdCuenta);

                        InfoMail.IdCuenta       = InfoCta_remitente.IdCuenta;
                        InfoMail.mail_remitente = InfoCta_remitente.direccion_correo;
                    }
                }
                Boolean Envio_Correo_al_cliente = false;

                if (EstadoDoc_Auto_o_NoAuto == "AUTORIZADO" && IdAmbiente == "2")
                {
                    if (Bus_Archivo_Adjunto.Verificar_Correo_Existe(InfoComprobante_a_firmar.IdEmpresa, InfoComprobante_a_firmar.IdComprobante, ref mensajeErroOut))
                    {
                        if (Convert.ToString(Transaccion_q_envia) == "NUEVO")
                        {
                            return;
                        }
                    }



                    if (ListaCorreo.Count > 0)// si hay correo envio con ese correo
                    {
                        foreach (var itemCorreo in ListaCorreo)
                        {
                            InfoMail.Para = itemCorreo;


                            if (InfoCta_remitente.enviar_copia_x_cada_mail_enviado == true)
                            {
                                InfoMail.Para_CCO = InfoCta_remitente.cta_mail_para_envio_x_cbte_enviado;
                            }

                            BusMail.GrabarMensajeDB(InfoMail, ref mensajeErroOut);
                            Envio_Correo_al_cliente = true;
                        }
                    }
                    else // envio un solo correo con el mail de contribuyente
                    {
                        InfoMail.Para = InfoContibuyente.Mail;
                        if (InfoCta_remitente.enviar_copia_x_cada_mail_enviado == true)
                        {
                            InfoMail.Para_CCO = InfoCta_remitente.cta_mail_para_envio_x_cbte_enviado;
                        }
                        BusMail.GrabarMensajeDB(InfoMail, ref mensajeErroOut);
                        Envio_Correo_al_cliente = true;
                    }



                    //if (Envio_Correo_al_cliente == true)// solo si envio correo al cliente envio una copia
                    //{

                    //    if (InfoCta_remitente.enviar_copia_x_cada_mail_enviado == true)
                    //    {

                    //        InfoMail.Para = InfoCta_remitente.cta_mail_para_envio_x_cbte_enviado;

                    //        InfoMail.Asunto = "Copia.." + InfoMail.Asunto;
                    //        BusMail.GrabarMensajeDB(InfoMail, ref mensajeErroOut);
                    //    }
                    //}
                }

                else if (EstadoDoc_Auto_o_NoAuto == "NO AUTORIZADO")
                {
                    if (InfoCta_remitente.enviar_mail_x_cada_cbte_no_auto == true)
                    {
                        InfoMail.Para   = InfoCta_remitente.cta_mail_para_envio_x_cbte_no_auto;
                        InfoMail.Asunto = "Alerta.. cbte No Autorizado.. " + InfoMail.Asunto;
                        BusMail.GrabarMensajeDB(InfoMail, ref mensajeErroOut);
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }