예제 #1
0
        private void schedulerControl1_AppointmentDrop(object sender, AppointmentDragEventArgs e)
        {
            string createEventMsg = "Crear el evento a las {0} el dia {1}.";
            string moveEventMsg = "Mover el evento desde {0} el dia {1} a las {2} el dia {3}.";

            bool Crear = false;
            bool Mover = false;

            DateTime srcStart = e.SourceAppointment.Start;
            DateTime newStart = e.EditedAppointment.Start;

            string msg = (srcStart == DateTime.MinValue) ? String.Format(createEventMsg, newStart.ToShortTimeString(), newStart.ToShortDateString()) :
                String.Format(moveEventMsg, srcStart.ToShortTimeString(), srcStart.ToShortDateString(), newStart.ToShortTimeString(), newStart.ToShortDateString());

            if (msg.Contains("Crear"))
                Crear = true;

            if (msg.Contains("Mover"))
                Mover = true;

            clsVisita visita = new clsVisita();

            if (Mover) {
                if (!PermitirModificarVisita(e.SourceAppointment)) {
                    e.Allow = false;
                    e.Handled = true;
                    return;
                }
            }

            if (XtraMessageBox.Show(msg + "\r\nProceder?", "Mi Calendario", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) {
                e.Allow = false;
                e.Handled = true;
                return;
            }

            if (Convert.ToInt64(e.SourceAppointment.CustomFields["IdVisita"]) > 0) {
                if (Mover) {
                    visita =
                        LogicaNegocios.Calendarios.clsCalendarios.ObtenerVisitaPorId(
                            Convert.ToInt64(e.SourceAppointment.CustomFields["IdVisita"]));

                }

                //visita.Id = Convert.ToInt64(e.SourceAppointment.CustomFields["IdVisita"]);
                //visita.Asunto = e.SourceAppointment.Subject;
                //visita.Descripcion = e.SourceAppointment.Description;
                //visita.Ubicacion = e.SourceAppointment.Location;
                visita.FechaHoraComienzo = e.EditedAppointment.Start;
                visita.FechaHoraTermino = e.EditedAppointment.End;
            } else {
                visita.Id = Convert.ToInt64(e.SourceAppointment.CustomFields["IdVisita"]);
                visita.Asunto = e.SourceAppointment.Subject;
                visita.Descripcion = e.SourceAppointment.Description;
                visita.Ubicacion = e.SourceAppointment.Location;
                visita.FechaHoraComienzo = e.EditedAppointment.Start;
                visita.FechaHoraTermino = e.EditedAppointment.End;
            }

            if (Crear) {
                visita.Cliente = LogicaNegocios.Clientes.clsClientesMaster.ObtenerClienteMasterPorId(IdClienteDraw);
                visita.EstadoBD = Entidades.Enums.Enums.VisitaEstado.Incompleta;

                if (visita.Cliente.Tipo == Enums.TipoPersona.Cuenta) {
                    ResultadoTransaccion resCuenta = LogicaNegocios.Clientes.clsCuentas.ObtenerCuentaPorIdMaster(visita.Cliente.Id);
                    clsCuenta cuenta = new clsCuenta();
                    if (resCuenta.Estado == Enums.EstadoTransaccion.Aceptada)
                        cuenta = (clsCuenta)resCuenta.ObjetoTransaccion;

                    if (cuenta != null)
                        visita.Vendedor = cuenta.VendedorAsignado;
                } else if (visita.Cliente.Tipo == Enums.TipoPersona.Target) {
                    ResultadoTransaccion resCuenta =
                        LogicaNegocios.Clientes.clsTarget.ObtenerTargetPorIdMaster(visita.Cliente.Id);

                    clsTarget target = new clsTarget();
                    if (resCuenta.Estado == Enums.EstadoTransaccion.Aceptada)
                        target = (clsTarget)resCuenta.ObjetoTransaccion;

                    if (target != null)
                        visita.Vendedor = target.VendedorAsignado;
                }

                clsVisitaAsistente asistente = new clsVisitaAsistente();
                asistente.Usuario = Base.Usuario.UsuarioConectado.Usuario;
                asistente.TipoAsistente = Entidades.Enums.Enums.VisitaTipoAsistente.Usuario;
                visita.Asistentes.Add(asistente);

                clsParametrosInfo paraminfo = LogicaNegocios.Parametros.clsParametros.ListarParametrosPorTipo(Entidades.Enums.Enums.TipoParametro.ImportanciaVisita);
                visita.NivelImportancia = paraminfo.Items[0];  // Entidades.Enums.Enums.VisitaNivelImportancia.Baja;
            }

            //visita.Vendedor = Base.Usuario.UsuarioConectado.Usuario;

            visita.UsuarioOrganizador = Base.Usuario.UsuarioConectado.Usuario;
            Entidades.GlobalObject.ResultadoTransaccion res = LogicaNegocios.Calendarios.clsCalendarios.GuardarVisita(visita);

            if (res.Estado == Entidades.Enums.Enums.EstadoTransaccion.Aceptada) {

            } else {

                MessageBox.Show(res.Descripcion, "Calendario", MessageBoxButtons.OK, MessageBoxIcon.Error);
                e.Allow = false;
                e.Handled = true;
                return;
            }

            PopupClientes.Visible = false;

            //if(schedulerStorage1.Appointments.IsNewAppointment(e.EditedAppointment))
            //{
            //    schedulerStorage1.Appointments.Add(e.EditedAppointment);
            //}

            //SincronizarOutlook();
        }
예제 #2
0
        private void CargarObjetoVisita()
        {
            VisitaActual.Asunto = txtAsunto.Text.Trim();
            VisitaActual.Ubicacion = txtUbicacion.Text.Trim();
            VisitaActual.Descripcion = txtDescripcion.Text.Trim();

            int dia;
            int mes;
            int anio;
            int hora;
            int minuto;
            int segundo;
            dia = txtFechaComienzo.DateTime.Day;
            mes = txtFechaComienzo.DateTime.Month;
            anio = txtFechaComienzo.DateTime.Year;
            hora = txtHoraComienzo.Time.Hour;
            minuto = txtHoraComienzo.Time.Minute;
            segundo = txtHoraComienzo.Time.Second;

            VisitaActual.FechaHoraComienzo = new DateTime(anio, mes, dia, hora, minuto, segundo);

            dia = txtFechaTermino.DateTime.Day;
            mes = txtFechaTermino.DateTime.Month;
            anio = txtFechaTermino.DateTime.Year;
            hora = txtHoraTermino.Time.Hour;
            minuto = txtHoraTermino.Time.Minute;
            segundo = txtHoraTermino.Time.Second;

            VisitaActual.FechaHoraTermino = new DateTime(anio, mes, dia, hora, minuto, segundo);

            if (VisitaActual.EstadoBD == Enums.VisitaEstado.Incompleta)
                VisitaActual.EstadoBD = Enums.VisitaEstado.Planificada_Por_confirmar;

            VisitaActual.EsRecurrente = false;

            VisitaActual.NivelImportancia = (clsItemParametro)cboNivelImportancia.SelectedItem;

            VisitaActual.UsuarioOrganizador = Base.Usuario.UsuarioConectado.Usuario;

            VisitaActual.EsReplanificada = chkReplanificada.Checked;
            if (VisitaActual.EsReplanificada)
            {
                VisitaActual.FechaReplanificacion = DateTime.Now;
                VisitaActual.EstadoBD = Enums.VisitaEstado.Planificada_Por_confirmar;
            }

            VisitaActual.EsReunionInterna = chkReunionInterna.Checked;

            VisitaActual.Asistentes = new List<clsVisitaAsistente>();
            if (chkReunionInterna.Checked)
            {
                VisitaActual.Cliente = null;
                VisitaActual.Vendedor = null;
            }
            else
            {
                VisitaActual.Cliente = (clsClienteMaster)cboCliente.SelectedItem;
                VisitaActual.Vendedor = null;

                for (int i = 0; i < cboVendedor.Properties.Items.Count; i++)
                {
                    if (cboVendedor.Properties.Items[i].ToString().Trim().ToUpper() == txtVendedor.Text.Trim().ToUpper())
                        cboVendedor.SelectedIndex = i;
                }

                if (cboVendedor.SelectedIndex != 0)
                {
                    VisitaActual.Vendedor = (clsUsuario)this.cboVendedor.SelectedItem;
                }

                foreach (clsContacto usuario in lstAsistentesCliente.CheckedItems)
                {
                    clsVisitaAsistente asistente = new clsVisitaAsistente();
                    asistente.Contacto = usuario;
                    asistente.TipoAsistente = Enums.VisitaTipoAsistente.Contacto;
                    asistente.Confirmo = Enums.VisitaEstadoAsistente.Pendiente;
                    VisitaActual.Asistentes.Add(asistente);
                }
            }

            foreach (var asiste in ((IList<AsistentesCraft>)grdAsistentesCraft.DataSource))
            {
                if (asiste.Asiste)
                {
                    clsVisitaAsistente asistente = new clsVisitaAsistente();
                    asistente.Usuario = asiste.Usuario;
                    asistente.TipoAsistente = Enums.VisitaTipoAsistente.Usuario;
                    asistente.Confirmo = Enums.VisitaEstadoAsistente.Pendiente;
                    VisitaActual.Asistentes.Add(asistente);
                }
            }
        }
예제 #3
0
        public static IList<clsVisitaAsistente> ObtenerAsistentesDeVisita(Int64 IdVisita)
        {
            SqlDataReader dreader = null;
            clsVisitaAsistente asistente = null;
            IList<clsVisitaAsistente> listaasistentes = new List<clsVisitaAsistente>();
            SqlConnection conn = null;

            try {
                conn = BaseDatos.NuevaConexion();
                objParams = SqlHelperParameterCache.GetSpParameterSet(conn, "SP_C_CALENDARIO_VISITA_ASISTENTES_POR_ID_VISITA");
                objParams[0].Value = IdVisita;

                SqlCommand command = new SqlCommand("SP_C_CALENDARIO_VISITA_ASISTENTES_POR_ID_VISITA", conn);
                command.Parameters.AddRange(objParams);
                command.CommandType = CommandType.StoredProcedure;
                dreader = command.ExecuteReader();

                while (dreader.Read()) {
                    asistente = new clsVisitaAsistente();
                    asistente.Id = Convert.ToInt64(dreader["Id"]);
                    asistente.IdVisita = Convert.ToInt64(dreader["IdVisita"]);
                    if (dreader["IdUsuario"] is DBNull)
                        asistente.Usuario = null;
                    else
                        asistente.Usuario =
                            Usuarios.clsUsuarioADO.ObtenerUsuarioPorId(Convert.ToInt16(dreader["IdUsuario"]));

                    if (dreader["IdContacto"] is DBNull)
                        asistente.Contacto = null;
                    else
                        asistente.Contacto =
                            Clientes.clsContactoADO.ObtenerContactoPorId(Convert.ToInt16(dreader["IdContacto"]));

                    asistente.TipoAsistente = (Enums.VisitaTipoAsistente)Convert.ToInt16(dreader["TipoAsistente"]);
                    asistente.Confirmo = (Enums.VisitaEstadoAsistente)Convert.ToInt16(dreader["Asistio"]);

                    listaasistentes.Add(asistente);
                }

            } catch (Exception ex) {

                Base.Log.Log.EscribirLog(ex.Message);
            } finally {
                conn.Close();
            }

            return listaasistentes;
        }
예제 #4
0
        private static ResultadoTransaccion AgregarAsistente(clsVisitaAsistente asistente, Int64 idVisita, SqlTransaction transaction)
        {
            resTransaccion = new ResultadoTransaccion();
            try {
                objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_N_CALENDARIO_VISITA_ASISTENTE");
                objParams[0].Value = idVisita;
                if (asistente.Usuario == null)
                    objParams[1].Value = -1;
                else
                    objParams[1].Value = asistente.Usuario.Id;

                if (asistente.Contacto == null)
                    objParams[2].Value = -1;
                else
                    objParams[2].Value = asistente.Contacto.Id;

                objParams[3].Value = asistente.TipoAsistente;
                objParams[4].Value = asistente.Confirmo;

                SqlCommand command = new SqlCommand("SP_N_CALENDARIO_VISITA_ASISTENTE", BaseDatos.Conexion());
                command.Transaction = transaction;
                command.Parameters.AddRange(objParams);
                command.CommandType = CommandType.StoredProcedure;
                asistente.Id = Convert.ToInt64(command.ExecuteScalar());

                resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada;

                //Registrar Actividad
                LogActividadUsuarios log = new LogActividadUsuarios(asistente.GetType().ToString(), asistente.Id, Enums.TipoActividadUsuario.Creo, Base.Usuario.UsuarioConectado.Usuario);
                LogActividades.clsLogActividadUsuariosADO.GuardaActividad(log);

            } catch (Exception ex) {
                resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada;
                resTransaccion.Descripcion = ex.Message;
                Log.EscribirLog(ex.Message);
            }
            return resTransaccion;
        }
예제 #5
0
        private static ResultadoTransaccion EliminarAsistente(clsVisitaAsistente asistente, SqlTransaction transaction)
        {
            resTransaccion = new ResultadoTransaccion();
            try {
                objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_E_CALENDARIO_VISITA_ASISTENTE");
                objParams[0].Value = asistente.Id;

                SqlCommand command = new SqlCommand("SP_E_CALENDARIO_VISITA_ASISTENTE", BaseDatos.Conexion());
                command.Transaction = transaction;
                command.Parameters.AddRange(objParams);
                command.CommandType = CommandType.StoredProcedure;
                command.ExecuteNonQuery();

                resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada;

                //Registrar Actividad
                LogActividadUsuarios log = new LogActividadUsuarios(asistente.GetType().ToString(), asistente.Id, Enums.TipoActividadUsuario.Elimino, Base.Usuario.UsuarioConectado.Usuario);
                LogActividades.clsLogActividadUsuariosADO.GuardaActividad(log);

            } catch (Exception ex) {
                resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada;
                resTransaccion.Descripcion = ex.Message;
                Log.EscribirLog(ex.Message);
            }
            return resTransaccion;
        }