/// <summary>
        /// Actualiza el estado de una orden y tambien permite registrar el kilometraje de egreso
        /// USADA PARA CERRAR EL ESTADO DE LA ORDEN
        /// </summary>
        /// <param name="Id_Orden"></param>
        /// <param name="tipo"></param>
        /// <param name="kegreso"></param>
        public void ActualizarEstadoOrden(string Id_Orden, entidades.vialsur.prefectura.Orden_TipoEstado tipo, int kegreso)
        {
            try
            {
                List <SqlParameter> parameters = new List <SqlParameter>();

                #region parametros
                SqlParameter _id = new SqlParameter("@id", SqlDbType.NChar, 10);
                _id.Value = Id_Orden;
                parameters.Add(_id);

                SqlParameter _estado = new SqlParameter("@estado", SqlDbType.Int);
                _estado.Value = (entidades.vialsur.prefectura.Orden_TipoEstado)tipo;
                parameters.Add(_estado);

                SqlParameter _kegreso = new SqlParameter("@km_egreso", SqlDbType.Int);
                _kegreso.Value = kegreso;
                parameters.Add(_kegreso);

                #endregion

                ///update insert to grant update smalldatetime
                /////CAST('2007-05-08 12:59:59.998' AS smalldatetime)
                string _update_Sql = "UPDATE [dbo].[orden] SET [estado] = @estado, [km_egreso] = @km_egreso , fecha_cierre = CAST(SYSDATETIME() AS smalldatetime) WHERE [id] = @id;";
                SqlHelper.ExecuteNonQuery(_con, CommandType.Text, _update_Sql, parameters.ToArray());
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo actualizar el estado de la orden", ex);
            }
        }
        /// <summary>
        /// Consulta las ordenes segun el estado
        /// </summary>
        /// <param name="estado"></param>
        /// <returns></returns>
        public DataTable ObtenerOrdenesByEstado_UI(entidades.vialsur.prefectura.Orden_TipoEstado estado)
        {
            string consulta_sql =
                "SELECT orden.id, orden.tipo_oden, orden.fecha, orden.hora, orden.fecha_cierre, orden.estado, orden.ve_vehiculo_responsable_id, " +
                "orden.per_persona_cedula as chofer,orden.observacion, orden.km_ingreso, orden.km_egreso, orden.per_persona_cedula_crea,  " +
                "ve_vehiculo_responsable.per_persona_cedula AS cedula_responsable, ve_vehiculo_responsable.ve_vehiculo_id,  " +
                "ve_vehiculo_responsable.estado AS ve_vehiculo_responsable_estado,  " +
                "ve_vehiculo_responsable.fecha AS ve_vehiculo_responsable_fecha, ve_vehiculo_responsable.tipo_responsable  " +
                "FROM   orden INNER JOIN ve_vehiculo_responsable ON orden.ve_vehiculo_responsable_id = ve_vehiculo_responsable.id  " +
                "INNER JOIN ve_vehiculo ON ve_vehiculo_responsable.ve_vehiculo_id = ve_vehiculo.id " +
                "WHERE orden.estado = @estado " +
                "ORDER BY ve_vehiculo_responsable.fecha ASC ;";

            try
            {
                SqlParameter parametro1 = new SqlParameter("@estado", SqlDbType.Int);
                parametro1.Value = estado;


                return(SqlHelper.ExecuteDataset(_con, CommandType.Text, consulta_sql, parametro1).Tables[0]);
            }
            catch (Exception ex)
            {
                throw new Exception("Error al consultar los datos de las ordenes: " + ex.Message);
            }
        }
        /// <summary>
        /// Actualiza el estado de la orden. Ref. Orden_TipoEstado
        /// OPCIONAL: CEDULA DE QUIEN AUTORIZA ACTUALIZACIOn
        /// </summary>
        /// <param name="Id_Orden"></param>
        /// <param name="tipo"></param>
        /// <param name="ced_autoriza"></param>
        public void ActualizarEstadoOrden(string Id_Orden, entidades.vialsur.prefectura.Orden_TipoEstado tipo, string ced_autoriza = "")
        {
            try
            {
                List <SqlParameter> parameters = new List <SqlParameter>();

                #region parametros
                SqlParameter _id = new SqlParameter("@id", SqlDbType.NChar, 10);
                _id.Value = Id_Orden;
                parameters.Add(_id);

                SqlParameter _estado = new SqlParameter("@estado", SqlDbType.Int);
                _estado.Value = (entidades.vialsur.prefectura.Orden_TipoEstado)tipo;
                parameters.Add(_estado);

                SqlParameter _cedula = new SqlParameter("@cedula", SqlDbType.NChar, 10);
                _cedula.Value = ced_autoriza;
                parameters.Add(_cedula);

                #endregion

                string _update_Sql = "UPDATE [dbo].[orden] SET[estado] = @estado, [per_persona_cedula_autoriza]=@cedula WHERE[id] = @id;";
                SqlHelper.ExecuteNonQuery(_con, CommandType.Text, _update_Sql, parameters.ToArray());
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo actualizar el estado de la orden", ex);
            }
        }
예제 #4
0
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            ////FALTA IMPLEMENTAR UN CONTROL QUE SOLO PERMITA CAMBIAR ACORDE AL FORMULARIO QUE LO SOLICITA EN ESTE CASO HAY Q INGRESAR UN SWITCH PARA QUE SOLO ALMACENE LA AUTORIZACION
            try
            {
                //if (uc_TipoEstadosOrdenes1.SelectedIndex > 0 &&   uc_TipoEstadosOrdenes1.SelectedIndex  > ord.estado && uc_TipoEstadosOrdenes1.SelectedIndex == (int) Estado  )
                if (uc_TipoEstadosOrdenes1.SelectedIndex > 0 && uc_TipoEstadosOrdenes1.SelectedIndex > ord.estado &&
                    (((entidades.vialsur.prefectura.Orden_TipoEstado)uc_TipoEstadosOrdenes1.SelectedIndex) == entidades.vialsur.prefectura.Orden_TipoEstado.AUTORIZADO |
                     ((entidades.vialsur.prefectura.Orden_TipoEstado)uc_TipoEstadosOrdenes1.SelectedIndex) == entidades.vialsur.prefectura.Orden_TipoEstado.DESCARTADO)
                    )
                {
                    if (MessageBox.Show("Desea registrar el cambio", "Cambio de estado", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        entidades.vialsur.prefectura.Orden_TipoEstado _ii = (entidades.vialsur.prefectura.Orden_TipoEstado)uc_TipoEstadosOrdenes1.SelectedIndex;
                        //new logica.vialsur.prefectura.Catalogos.cls_logica_orde_detalle().ActualizarEstadoOrden(OrdenID, _ii, Cedula);
                        ///si el usuario es el administrador se registrara su cedula para identificar quien autorizo
                        if (entidades.vialsur.prefectura.TipoUsuario.ADMINISTRADOR == (entidades.vialsur.prefectura.TipoUsuario)((int)Empleado.tipo_usuario))
                        {
                            new logica.vialsur.prefectura.Catalogos.cls_logica_orde_detalle().ActualizarEstadoOrden(OrdenID, _ii, Empleado.cedula);
                        }
                        else
                        {
                            new logica.vialsur.prefectura.Catalogos.cls_logica_orde_detalle().ActualizarEstadoOrden(OrdenID, _ii);
                        }
                        DialogResult = DialogResult.Yes;
                    }
                    else
                    {
                        DialogResult = DialogResult.No;
                    }
                }
                else
                {
                    MessageBox.Show("No puede cambiar a un estado igual o inferior", "Cambio de estado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }
        }