Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }