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();
        }
 private void MenuSalir_Click(object sender, EventArgs e)
 {
     Instancia = null;
     Close();
 }
        private void MenuEnviarAlCliente_Click(object sender, EventArgs e)
        {
            ListCotizacionesSeleccionadas = new List<ITableable>();
            HijosSeleccionados = new List<ITableableOpcion>();
            ActiveControl = txtComentario;
            foreach (var reg in ListCotizaciones) {
                if (reg.Seleccionado.Equals(true)) {
                    ListCotizacionesSeleccionadas.Add(reg);
                    string hijos = "";
                    Log.EscribirLog("padre ID:" + reg.Id);
                    foreach (var op in reg.OpcionesView)
                        if (op != null)
                            hijos += "," + op.Id;

                    Log.EscribirLog("padre ID:" + reg + ", Hijos ID:" + hijos);
                } else //debo seleccionar los hijos por separado
                {
                    string hijos = "";
                    if (!string.IsNullOrEmpty(hijos)) {
                        Log.EscribirLog("padre ID:" + reg.Id + ", Hijos ID:" + hijos);
                        ListCotizacionesSeleccionadas.Add(CreaPadreDesdeUnHijo((List<ITableableOpcion>)HijosSeleccionados, reg));
                    }
                }
            }

            var frm = new FrmPrintPreviewCotizacoines((List<ITableable>)ListCotizacionesSeleccionadas);
            frm.ShowDialog();
        }