Пример #1
0
        private static Comentario GetFromDataReader(SqlDataReader reader)
        {
            var comentario = new Comentario{
                                               Id = Convert.ToInt16(reader["id"].ToString()),
                                               Id32 = Convert.ToInt16(reader["id"].ToString()),
                                               EsHistorial = Convert.ToBoolean(reader["EsHistorial"].ToString()),
                                               Observacion =  reader["Comentario"].ToString(),
                                               Fecha = Convert.ToDateTime(reader["fecha"].ToString())
                                           };
            comentario.Usuario = Usuarios.clsUsuarioADO.ObtenerTransaccionUsuarioPorId(Convert.ToInt32(reader["idUsuario"])).ObjetoTransaccion as clsUsuario;

            return comentario;
        }
Пример #2
0
        private static ResultadoTransaccion Guardar(String storeName, Int64 idCotizacionORopcion, Comentario comentario)
        {
            var res = new ResultadoTransaccion();
            SqlTransaction trans = null;
            //Abrir Conexion
            var conn = BaseDatos.Conexion();
            try {

                var command = new SqlCommand(storeName, conn){Transaction = conn.BeginTransaction()};

                trans = command.Transaction;

                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@EsHistorial", comentario.EsHistorial);
                command.Parameters.AddWithValue("@Comentario", comentario.Observacion);
                command.Parameters.AddWithValue("@idUsuario", comentario.Usuario.Id32);
                command.Parameters.AddWithValue("@idOpcion_o_Cotizacion", idCotizacionORopcion);

                command.CommandType = CommandType.StoredProcedure;

                var outParam = command.Parameters.Add("@Id", SqlDbType.BigInt);
                outParam.Direction = ParameterDirection.Output;
                command.ExecuteScalar();

                comentario.Id = Convert.ToInt16(outParam.Value);
                comentario.Id32 = Convert.ToInt32(outParam.Value);
                command.Transaction.Commit();

                res.Accion = Entidades.Enums.Enums.AccionTransaccion.Consultar;
                res.ObjetoTransaccion = comentario;
                res.Descripcion = "El comentario guardo Exitosamente";

            } catch (Exception ex) {
                comentario.Id = comentario.Id32 = 0;
                if (trans != null)
                    trans.Rollback();
                Log.EscribirLog(ex.Message);

                res.Descripcion = ex.Message;
                res.ArchivoError = NombreClase;
                res.MetodoError = MethodBase.GetCurrentMethod().Name;
            } finally {
                conn.Close();
            }
            return res;
        }
Пример #3
0
 public static ResultadoTransaccion Guardar(Opcion opcionDirecta, Comentario comentario)
 {
     return Guardar("SP_N_COTIZACION_DIRECTA_COMENTARIOS", opcionDirecta.Id32, comentario);
 }
Пример #4
0
 private static ResultadoTransaccion Guardar(Opcion opcion, Comentario comentario)
 {
     return ClsComentarioDao.Guardar(opcion, comentario);
 }
Пример #5
0
 public static ResultadoTransaccion Guardar(CotizacionDirecta cotizacionDirecta, Comentario comentario)
 {
     return Guardar("SP_N_COTIZACION_COMENTARIOS", cotizacionDirecta.Id32, comentario);
 }
Пример #6
0
 private static ResultadoTransaccion Guardar(CotizacionDirecta cotizacionDirecta, Comentario comentario)
 {
     return ClsComentarioDao.Guardar(cotizacionDirecta, comentario);
 }
Пример #7
0
 public static ResultadoTransaccion GuardarMensaje(Opcion opcion, Comentario comentario)
 {
     comentario.EsHistorial = false;
     return Guardar(opcion, comentario);
 }
Пример #8
0
 public static ResultadoTransaccion GuardarMensaje(CotizacionDirecta cotizacionDirecta, Comentario comentario)
 {
     comentario.EsHistorial = false;
     return Guardar(cotizacionDirecta, comentario);
 }
Пример #9
0
 public static ResultadoTransaccion GuardarHistorial(Opcion opcion, Comentario comentario)
 {
     comentario.EsHistorial = true;
     return Guardar(opcion, comentario);
 }
Пример #10
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(cboEstado, "", ErrorType.None);
            }
            if (txtComentario.Text == "") {
                ctrldxError.SetError(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();
            }
        }