private void MenuEnviarAlCliente_Click(object sender, EventArgs e)
        {
            var contieneCopiada    = false;
            var cotizacionDirectas = new List <CotizacionDirecta>();

            foreach (var c in ListCotizaciones)
            {
                var cot = ClsCotizacionDirecta.ObtieneCotizacionDirecta(c.Id32).ObjetoTransaccion as CotizacionDirecta;
                cotizacionDirectas.Add(cot);
                if (cot.CopiadoDe != null && cot.CopiadoDe != 0)
                {
                    contieneCopiada = true;
                    break;
                }
            }
            DialogResult res = DialogResult.None;

            if (contieneCopiada)
            {
                res =
                    MessageBox.Show("Algunas de las cotizaciones fueron copiadas. Confirma el envĂ­o al cliente?",
                                    "Sistema Comercial Craft", MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Question);
            }

            if (!contieneCopiada || res == DialogResult.Yes)
            {
                foreach (var cotizacionDirecta in cotizacionDirectas)
                {
                    var mailObject = new EnvioMailObject();


                    var xmldoc = new XmlDocument();
                    xmldoc.Load(Path.Combine(Application.StartupPath, @"Cotizaciones\CotizacionSetting.xml"));
                    var subject = xmldoc.SelectSingleNode("/setting/cotizacionDirecta/subjectMail").InnerText;
                    subject = subject.Replace("[nombreCliente]", cotizacionDirecta.Cliente.NombreCliente);

                    var htmlBody = cotizacionDirecta.GenerateHtmlPreviewAndBody(Application.StartupPath);
                    var htmlPDF  = cotizacionDirecta.GenerateHTMLforPDF(Application.StartupPath);

                    var listPath = new List <String> {
                        mailObject.GeneratePdfFromHtml(htmlPDF, cotizacionDirecta.Numero)
                    };

                    mailObject.EnviarMailCotizacionDirecta(subject, htmlBody, listPath);
                    ClsCotizacionDirectaEstadoDao.CambioEstado(cotizacionDirecta.Id32, 4);
                    var logCot = CreaLog(cotizacionDirecta, EnumTipoLogCotizacionDirecta.Envio);
                    ClsLogCotizacionesDirecta.Guardar(logCot);
                }
            }

            Instancia = null;
            Close();
        }
 public static ResultadoTransaccion ModificarEstado(Int32 IdCotizacion, Int32 IdEstado)
 {
     return(ClsCotizacionDirectaEstadoDao.CambioEstado(IdCotizacion, IdEstado));
 }