/// <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); } }
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); } }