コード例 #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);
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        public void CargarGrillaCotizaciones()
        {
            var fechaInicio = DateTime.Now.AddDays(Convert.ToInt32(ListSemanas.Text) * -7);

            ListCotizaciones =
                ClsCotizacionDirecta.ListarTodasLasCotizacionesPorUsuario(
                    Base.Usuario.UsuarioConectado.Usuario, fechaInicio);
            foreach (var cotizacion in ListCotizaciones)
            {
                cotizacion.Seleccionado = false;
            }
            gridSLeads.DataSource = ListCotizaciones;
        }
コード例 #4
0
        private void MenuCopiar_Click(object sender, EventArgs e)
        {
            var tableable = GetSelectedRow((GridView)gridViewSLeads);

            DialogResult res = MessageBox.Show(String.Format("¿Esta Ud. seguro de copiar la Cotización {0}?.{1} Se creará una nueva cotización con la información copiada.", tableable.Numero, Environment.NewLine),
                                               "Sistema Comercial Craft", MessageBoxButtons.YesNo,
                                               MessageBoxIcon.Question);

            if (res == DialogResult.Yes)
            {
                Cursor.Current = Cursors.WaitCursor;
                if (tableable is CotizacionDirecta)
                {
                    var cot =
                        ClsCotizacionDirecta.ObtieneCotizacionDirecta(tableable.Id32).ObjetoTransaccion as
                        CotizacionDirecta;
                    cot.CopiadoDe = tableable.Id32;
                    cot.Id        = cot.Id32 = 0;
                    foreach (var gl in cot.GastosLocalesList)
                    {
                        gl.Id = gl.Id32 = 0;
                    }

                    foreach (var opcion in cot.Opciones)
                    {
                        opcion.Id = opcion.Id32 = 0;
                        foreach (var puerto in opcion.Pod)
                        {
                            puerto.Id = puerto.Id32 = 0;
                        }

                        foreach (var puerto in opcion.Pol)
                        {
                            puerto.Id = puerto.Id32 = 0;
                        }


                        foreach (var det in opcion.Detalles)
                        {
                            det.Id = det.Id32 = 0;
                        }
                    }

                    var formulario = FrmCotizacionDirecta.Instancia;
                    formulario.mode = "borrador";
                    formulario.CotizacionDirecta = cot;
                    formulario.ShowDialog();
                }
                Cursor.Current = Cursors.Default;
            }
        }
コード例 #5
0
        private void CargarCotizacionDirecta()
        {
            if (mode != "borrador")
            {
                CotizacionDirecta =
                    ClsCotizacionDirecta.ObtieneCotizacionDirecta(CotizacionDirecta.Id32).ObjetoTransaccion as
                    CotizacionDirecta;
                Text = "Ingreso de cotización ";
            }
            else
            {
                Text = "Copia de cotización ";
                LblEstado.Visible = labelControl11.Visible = false;
            }
            txtEjecutivo.Text = CotizacionDirecta.Usuario.NombreCompleto;
            TxtFecha.DateTime = CotizacionDirecta.FechaSolicitud;

            var encontrado_cliente = _clientes.Find(foo => CotizacionDirecta.Cliente.Id32 == foo.Id32);

            if (encontrado_cliente == null)
            {
                _clientes.Add(CotizacionDirecta.Cliente);
                CboCliente.Properties.Items.Add(CotizacionDirecta.Cliente);
            }

            CboCliente.SelectedItem = CotizacionDirecta.Cliente;

            txtCommodity.Text            = CotizacionDirecta.Commodity;
            TxtObservaciones.Text        = CotizacionDirecta.Observaciones;
            LblEstado.Text               = CotizacionDirecta.EstadoDescripcion;
            GridGastosLocales.DataSource = CotizacionDirecta.GastosLocalesList;

            if (mode != "borrador")
            {
                if (CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.Cerrado ||
                    CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.PerdidoOtros ||
                    CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.PerdidoTarifa ||
                    CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.CerradoLCL)
                {
                    toolStripButton1.Enabled     = false;
                    toolStripButton1.ToolTipText = "Imposible modificar cotización en el Estado actual";
                }
            }
            if (CotizacionDirecta.Estado.Id32 == (Int32)Enums.EstadosCotizacion.Eliminado)
            {
                toolStripButton1.Enabled     = false;
                toolStripButton1.ToolTipText = "Imposible modificar cotización en el Estado actual";
            }
        }
コード例 #6
0
        public void CargarGrillaCotizaciones()
        {
            var timer       = System.Diagnostics.Stopwatch.StartNew();
            var fechaInicio = DateTime.Now.AddDays(Convert.ToInt32(ListSemanas.Text) * -7);

            ListCotizaciones =
                ClsCotizacionDirecta.ListarTodasLasCotizaciones(fechaInicio);
            foreach (var cotizacion in ListCotizaciones)
            {
                cotizacion.Seleccionado = false;
            }
            ClsLogPerformance.Save(new LogPerformance(Base.Usuario.UsuarioConectado.Usuario, timer.Elapsed.TotalSeconds));

            gridSLeads.DataSource = ListCotizaciones;
        }
コード例 #7
0
        private void MenuGuardar_Click(object sender, EventArgs e)
        {
            CotizacionDirecta.FollowUps = ObtieneFollowUpsDesdeGrilla();
            foreach (var clsClienteFollowUp in CotizacionDirecta.FollowUps)
            {
                if (clsClienteFollowUp.IsNew)
                {
                    clsClienteFollowUp.IdCotizacion = CotizacionDirecta.Id32;
                    clsClienteFollowUp.Usuario      = UsuarioConectado.Usuario;
                }
            }

            var res = ClsCotizacionDirecta.GuardarFollowUps(CotizacionDirecta);

            MessageBox.Show(res.Descripcion, "Sistema Comercial Craft", MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
        }
コード例 #8
0
        private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            var grid = sender as GridView;
            var _cotizacionDirecta = grid.GetRow(e.FocusedRowHandle) as CotizacionDirecta;

            if (_cotizacionDirecta == null)
            {
                return;
            }

            var cotizacionDirecta = ClsCotizacionDirecta.ObtieneCotizacionDirecta(_cotizacionDirecta.Id32).ObjetoTransaccion as CotizacionDirecta;
            var html = cotizacionDirecta.GenerateHtmlPreviewAndBody(Application.StartupPath);

            webBrowser1.Navigate("about:blank");
            do
            {
                Thread.Sleep(100);
            } while (webBrowser1.IsBusy);

            webBrowser1.Document.Write(html);
            webBrowser1.Refresh();
        }
コード例 #9
0
        private void btnGuardarComentario_Click(object sender, EventArgs e)
        {
            var    exito  = true;
            Estado Estado = new Estado();

            //Valida Datos Obligatorios
            if (this.cboEstado.SelectedItem == null || this.cboEstado.SelectedIndex < 0)
            {
                ctrldxError.SetError(this.cboEstado, "Debe Seleccionar un Tipo de Comentario",
                                     ErrorType.Critical);
                return;
            }
            else
            {
                ctrldxError.SetError(this.cboEstado, "", ErrorType.None);
            }
            if (this.txtComentario.Text == "")
            {
                ctrldxError.SetError(this.txtComentario, "Debe Ingresar un Comentario", ErrorType.Critical);
                return;
            }
            else
            {
                ctrldxError.SetError(this.txtComentario, "", ErrorType.None);
            }

            Cursor.Current = Cursors.WaitCursor;
            if (!ctrldxError.HasErrors)
            {
                ResultadoTransaccion resultado = new ResultadoTransaccion();

                var comentario = new Comentario
                {
                    EsHistorial = false,
                    Observacion = txtComentario.Text,
                    Usuario     = Base.Usuario.UsuarioConectado.Usuario
                };
                var cotizacion = GetSelectedRow(gridViewSLeads);
                resultado = ClsComentario.GuardarMensaje(cotizacion, comentario);

                var comentarios = gridComentarios.DataSource as List <Comentario>;

                /*emailInformeFijo = System.Configuration.ConfigurationSettings.AppSettings.Get("EmailInformeFijo");
                 * emailInformeFcl = System.Configuration.ConfigurationSettings.AppSettings.Get("EmailInformeFCL");
                 */
                var mailFijo = System.Configuration.ConfigurationSettings.AppSettings.Get("EmailInformeFijo");


                var xmldoc = new XmlDocument();
                xmldoc.Load(Path.Combine(Application.StartupPath, @"Cotizaciones\CotizacionSetting.xml"));
                var mailFCL = xmldoc.SelectSingleNode("/setting/cotizacionDirecta/notificaciones/FCL").InnerText;

                mailFijo = mailFijo + ";" + mailFCL;
                var listMail = new List <String>();
                foreach (var mail in mailFijo.Split(';'))
                {
                    if (!listMail.Contains(mail))
                    {
                        listMail.Add(mail);
                    }
                }
                foreach (var c in comentarios)
                {
                    if (!listMail.Contains(c.Usuario.Email))
                    {
                        listMail.Add(c.Usuario.Email);
                    }
                }
                var cot =
                    ClsCotizacionDirecta.ObtieneCotizacionDirecta(cotizacion.Id32).ObjetoTransaccion as
                    CotizacionDirecta;

                if (!listMail.Contains(cot.Usuario.Email))
                {
                    listMail.Add(cot.Usuario.Email);
                }

                var subjectComenterio =
                    xmldoc.SelectSingleNode("/setting/cotizacionDirecta/comentarios/subject").InnerText;
                var bodyComentario = xmldoc.SelectSingleNode("/setting/cotizacionDirecta/comentarios/body").InnerText;

                var subjectCambioEstado =
                    xmldoc.SelectSingleNode("/setting/cotizacionDirecta/cambiosDeEstado/subject").InnerText;
                var bodyCambioEstado =
                    xmldoc.SelectSingleNode("/setting/cotizacionDirecta/cambiosDeEstado/body").InnerText;
                var body    = String.Empty;
                var subject = String.Empty;

                if (cboEstado.SelectedIndex != 0)
                {
                    body    = bodyCambioEstado;
                    subject = subjectCambioEstado;
                }
                else
                {
                    body    = bodyComentario;
                    subject = subjectComenterio;
                }

                subject = subject.Replace("[numero]", cotizacion.Numero + " - " + cotizacion.Cliente);
                body    = body.Replace("[usuario]", comentario.Usuario.NombreCompleto);
                body    = body.Replace("[estado]", ((Estado)cboEstado.SelectedItem).Nombre);
                body    = body.Replace("[comentario]", comentario.Observacion);


                var destinatarios = String.Join(";", listMail.ToArray());
                new EnvioMailObject().EnviarEmail(destinatarios, subject, body);


                if (cboEstado.SelectedIndex != 0)
                {
                    Estado    = (Estado)cboEstado.SelectedItem;
                    resultado = CotizacionDirectaEstado.ModificarEstado(cotizacion.Id32, Estado.Id32);
                    if (resultado.Estado == Enums.EstadoTransaccion.Aceptada)
                    {
                        LimpiarFormularioMensaje();
                        CargarGrillaCotizaciones();
                        MessageBox.Show(resultado.Descripcion, "Sistema Comercial Craft", MessageBoxButtons.OK,
                                        MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show(resultado.Descripcion, "Sistema Comercial Craft", MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                    }
                }
                else
                {
                    LimpiarFormularioMensaje();
                }
                Cursor.Current = Cursors.Default;
                if (Seleccion == "cot")
                {
                    FocusCotizacion();
                }
            }
        }