Esempio n. 1
0
        private void CrearCotizacion()
        {
            var resultado = ClsCotizacionDirecta.Crear(CotizacionDirecta);
            var logCot    = CreaLog(CotizacionDirecta, EnumTipoLogCotizacionDirecta.IngresoCotizacion);

            ClsLogCotizacionesDirecta.Guardar(logCot);
            MessageBox.Show(resultado.Descripcion, "Sistema Comercial Craft", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        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();
        }