Beispiel #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);
        }
Beispiel #2
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);
        }