/// <summary> /// Método Público encargado de Actualizar la Confirmación del Evento /// </summary> /// <param name="tipo">Tipo de Confirmación</param> /// <param name="fecha">Fecha de Actualización</param> /// <param name="tipo_actualizacion_fin">Tipo de Actualización</param> /// <param name="id_usuario">Usuario que Actualiza el Registro</param> /// <returns></returns> public RetornoOperacion ActualizaConfirmacionEvento(TipoConfirmacion tipo, DateTime fecha, TipoActualizacion tipo_actualizacion_fin, int id_usuario) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Inicializando Transacción using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Invocando Método de Actualización result = this.actualizaRegistros(this._id_detalle_acceso_patio, this._id_tipo_evento, this._id_entidad_patio, this._id_zona_patio, tipo == TipoConfirmacion.Inicio ? fecha : this._fecha_inicio, tipo == TipoConfirmacion.Fin ? fecha : this._fecha_fin, this._referencia, this._id_tipo_actualizacion_inicio, (byte)tipo_actualizacion_fin, tipo == TipoConfirmacion.Inicio ? true : this._bit_confirmacion_asignacion_ini, tipo == TipoConfirmacion.Fin ? true : this._bit_confirmacion_asignacion_fin, this._id_operador_asignado, this._fecha_asignacion, this._fecha_confirmacion, this._bit_inicio_anden, this._bit_fin_anden, this._fecha_inicio_anden, this._fecha_fin_anden, this._id_operador_fin, id_usuario, this._habilitar); //Validando que se actualizara el Registro if (result.OperacionExitosa) { //Obteniendo Evento int id_evt = result.IdRegistro; //Instanciando Entidad Patio using (EntidadPatio ep = new EntidadPatio(this._id_entidad_patio)) { //Instanciando Entidad de Patio(Anden/Cajon) if (ep.id_entidad_patio > 0) { //Actualizando Entidad result = ep.ActualizaEventoActualEntidadPatio(ep.estatus, ep.estatus_carga, fecha, ep.id_evento, id_usuario); } //Validando que la Operación haya sido Exitosa if (result.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } } //Devolviendo Objeto de Retorno return(result); }
/// <summary> /// Método Público encargado de Pintar las Entidades en la Zona del Patio /// </summary> /// <param name="id_zona_patio">Zona de Patio</param> /// <param name="ruta_entidad_carga_ok">Entidad de Carga en Tiempo</param> /// <param name="ruta_entidad_descarga_ok">Entidad de Descarga en Tiempo</param> /// <param name="ruta_entidad_ok">Entidad en Tiempo</param> /// <param name="ruta_entidad_carga_ex">Entidad de Carga en Tiempo Excedido</param> /// <param name="ruta_entidad_descarga_ex">Entidad de Descarga en Tiempo Excedido</param> /// <param name="ruta_entidad_ex">Entidad en Tiempo Excedido</param> /// <param name="alto">Alto de la Entidad</param> /// <param name="ancho">Ancho de la Entidad</param> /// <returns></returns> public static byte[] PintaLayOutZona(int id_zona_patio, string ruta_entidad_carga_ok, string ruta_entidad_descarga_ok, string ruta_entidad_ok, string ruta_entidad_carga_ex, string ruta_entidad_descarga_ex, string ruta_entidad_ex, int alto, int ancho) { //Obteniendo Imagenes byte[] ent_car_ok = System.IO.File.ReadAllBytes(ruta_entidad_carga_ok), ent_des_ok = System.IO.File.ReadAllBytes(ruta_entidad_descarga_ok), ent_ok = System.IO.File.ReadAllBytes(ruta_entidad_ok), ent_car_ex = System.IO.File.ReadAllBytes(ruta_entidad_carga_ex), ent_des_ex = System.IO.File.ReadAllBytes(ruta_entidad_descarga_ex), ent_ex = System.IO.File.ReadAllBytes(ruta_entidad_ex); //Declarando Objeto de Retorno byte[] layout = ObtieneImagenLayOut(id_zona_patio); //Obteniendo Unidades en Patio using (DataTable dtEntidades = EntidadPatio.CargaEntidadesZona(id_zona_patio)) { //Validando que existan Entidades en Patio if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtEntidades)) { //Recorriendo cada Entidad foreach (DataRow dr in dtEntidades.Rows) { //Obteniendo Propiedades de la Entidad int x = Convert.ToInt32(dr["CoordenadaX"]), y = Convert.ToInt32(dr["CoordenadaY"]), icon = Convert.ToInt32(dr["TamanoIcono"]); //Validando el Tipo de Evento switch (Convert.ToInt32(dr["TipoEvt"])) { //Carga case 1: { //Validando Estatus de Tiempo if (dr["EstatusTiempo"].ToString() == "EX") { //Dibuja Entidad en LayOut layout = TSDK.Base.Dibujo.DibujaImagen(layout, ent_car_ex, x + (icon / 2), y + (icon / 2), ancho, alto); } else { layout = TSDK.Base.Dibujo.DibujaImagen(layout, ent_car_ok, x + (icon / 2), y + (icon / 2), ancho, alto); } break; } //Descarga case 2: { //Validando Estatus de Tiempo if (dr["EstatusTiempo"].ToString() == "EX") { //Dibuja Entidad en LayOut layout = TSDK.Base.Dibujo.DibujaImagen(layout, ent_des_ex, x + (icon / 2), y + (icon / 2), ancho, alto); } else { layout = TSDK.Base.Dibujo.DibujaImagen(layout, ent_des_ok, x + (icon / 2), y + (icon / 2), ancho, alto); } break; } //Estaciona case 3: { //Validando Estatus de Tiempo if (dr["EstatusTiempo"].ToString() == "EX") { //Dibuja Entidad en LayOut layout = TSDK.Base.Dibujo.DibujaImagen(layout, ent_ex, x + (icon / 2), y + (icon / 2), ancho, alto); } else { layout = TSDK.Base.Dibujo.DibujaImagen(layout, ent_ok, x + (icon / 2), y + (icon / 2), ancho, alto); } break; } } } } } //Devolviendo Resultado Obtenido return(layout); }
/// <summary> /// /// </summary> /// <param name="id_acceso_salida"></param> /// <param name="id_usuario"></param> /// <returns></returns> public RetornoOperacion ActualizaSalidaDetalleMobil(int id_acceso_salida, int id_usuario) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Inicializando Transacción using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciando Acceso de Salida using (AccesoPatio ap = new AccesoPatio(id_acceso_salida)) { //Validando que exista el Acceso de Patio de Salida if (ap.id_acceso_patio > 0) { //Obteniendo Fecha Maxima de los Eventos del Detalle DateTime fec_max = ObtieneFechaMaximaEvento(this._id_detalle_acceso_patio); //Validando que la fecha de Salida del Acceso sea Superior a la del Evento if (DateTime.Compare(ap.fecha_acceso, fec_max) >= 0) { //Invocando Método de Actualización result = this.actualizaRegistros(this._id_acceso_entrada, id_acceso_salida, this._id_transportista, EstatusAcceso.Fuera, EstatusPatio.SinAsignacion, 0, 0, this._bit_cargado, ap.fecha_acceso, this._id_tipo_detalle_acceso, this._descripcion_detalle_acceso, this._identificacion_detalle_acceso, this._id_unidad_operador, id_usuario, this._habilitar); //Validando que la Operación fuese exitosa if (result.OperacionExitosa) { //Obteniendo Eventos using (DataTable dtEventos = EventoDetalleAcceso.ObtieneEventosDetalle(this._id_detalle_acceso_patio)) { //Validando que existen Registros if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtEventos)) { //Recorriendo Filas foreach (DataRow dr in dtEventos.Rows) { //Instanciando Evento using (EventoDetalleAcceso eda = new EventoDetalleAcceso(Convert.ToInt32(dr["Id"]))) { //Validando que exista el Evento if (eda.id_evento_detalle_acceso > 0) { //Terminando Evento result = eda.TerminaEventoDetalle(ap.fecha_acceso, EventoDetalleAcceso.TipoActualizacion.Mobil, id_usuario); } else//Instanciando Excepcion { result = new RetornoOperacion("No se puede Terminar el Evento"); } //Validando que haya terminado el Evento if (result.OperacionExitosa) { //Instanciando Entidad de Patio using (EntidadPatio ep = new EntidadPatio(eda.id_entidad_patio)) { //Validando que Exista la if (ep.id_entidad_patio > 0) { //Actualiza Evento Actual result = ep.ActualizaEventoActualEntidadPatio(EntidadPatio.Estatus.Vacio, EntidadPatio.EstatusCarga.Ninguno, ap.fecha_acceso, 0, id_usuario); } else//Instanciando Excepcion { result = new RetornoOperacion("No se puede Actualizar la Entidad"); } //Si la Operación no fue Exitosa if (!result.OperacionExitosa) { //Finalizando Ciclo break; } } } } } } //Validando que la Operación sea Exitosa if (result.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } } else { //Instanciando Excepcion result = new RetornoOperacion("La Fecha de Salida debe ser superior a la del Ultimo Evento"); } } else { //Instanciando Excepcion result = new RetornoOperacion("No existe el acceso de Salida"); } } } //Devolviendo Resultado Obtenido return(result); }