コード例 #1
0
ファイル: Movimiento2.cs プロジェクト: lulzzz/SAT
        /// <summary>
        /// Método encargado de Deshabilitar un Movimiento Vacio Iniciado
        /// </summary>
        /// <param name="id_usuario"></param>
        /// <returns></returns>
        public RetornoOperacion DeshabilitaMovimientoVacioIniciado(int id_usuario)
        {
            //Declaramos objeto Resultado
            RetornoOperacion resultado = new RetornoOperacion();

            //Iniciando transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Validamos que el estatus actual del  movimiento sea Iniciado
                if (this.EstatusMovimiento == Estatus.Iniciado)
                {
                    //Validamos que no existan pagos ligados al movimeinto
                    resultado = validaPagos();

                    //Validamos que no existan Pagos
                    if (resultado.OperacionExitosa)
                    {
                        //Cargamos Estancias ligadas a un Id Movimiento en Estatus Iniciado
                        using (DataTable mitEstanciasOrigen = EstanciaUnidad.CargaEstanciasTerminadasParada(this._id_parada_origen))
                        {
                            //Reversa Inicio de  Moimiento
                            resultado = ReversaInicioMovimietoVacio(mitEstanciasOrigen, MovimientoAsignacionRecurso.Estatus.Iniciado, id_usuario);
                        }

                        //Validamos Resultado
                        if (resultado.OperacionExitosa)
                        {
                            //Instanciamos Parada Destino
                            using (Parada objParadaDestino = new Parada(this._id_parada_destino))
                            {
                                //Deshabilitamos Parada Destino
                                resultado = objParadaDestino.DeshabilitaParada(id_usuario);
                            }
                        }
                    }
                }
                else
                {
                    //Establecemos Mensaje
                    resultado = new RetornoOperacion("El estatus del movimiento no permite su edición.");
                }
                //Validamos Resultado
                if (resultado.OperacionExitosa)
                {
                    scope.Complete();
                }
            }
            //Devolvemos Valor Retorno
            return(resultado);
        }
コード例 #2
0
 /// <summary>
 /// Método encargado de Inicializa el Control de la Fecha de Llegada
 /// </summary>
 /// <param name="id_recurso"></param>
 private void inicializaControlFechaLlegada(int id_recurso)
 {
     //Obtenemos Estancia Actual de la Unidad
     using (EstanciaUnidad objEstanciaUnidad = new EstanciaUnidad(EstanciaUnidad.ObtieneEstanciaUnidadIniciada(id_recurso)))
     {
         //Validamos Estancia de la Unidad
         if (objEstanciaUnidad.id_estancia_unidad > 0)
         {
             //En caso de que la Fecha de Inicio de la Estancia sea mayor a la establecida por la Unidad que se desea mover
             if (objEstanciaUnidad.inicio_estancia > this._fecha_llegada)
             {
                 // Cambiamos Valor del Control de fecha de llegada
                 lblFechaLlegada.Text = objEstanciaUnidad.inicio_estancia.ToString("dd/MM/yyyy HH:mm").ToString();
             }
         }
     }
 }
コード例 #3
0
ファイル: Movimiento2.cs プロジェクト: lulzzz/SAT
        /// <summary>
        /// Edita la Fecha de Termino del Movimiento
        /// </summary>
        /// <param name="fecha_termino">Fecha de termino del movimiento / Inicio de la Estancia</param>
        /// <param name="tipo_llegada">Tipo actualización  de la fecha de llegada de la parada</param>
        /// <param name="tipo_actualizacion_inicio">Tipo actualización  de la fecha de inicio de la estancia</param>
        /// <param name="id_usuario">Id Usuario actualiza</param>
        /// <returns></returns>
        public RetornoOperacion EditaFechaTerminoMovimiento(DateTime fecha_termino, Parada.TipoActualizacionLlegada tipo_llegada, EstanciaUnidad.TipoActualizacionInicio tipo_actualizacion_inicio, int id_usuario)
        {
            //Declarando objeto de retorno
            RetornoOperacion resultado = new RetornoOperacion();

            //Validando estatus actual del movimiento
            if (this.EstatusMovimiento == Estatus.Terminado)
            {
                //Iniciando transacción
                using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
                {
                    //Validando que las unidades involucradas se encuentren:
                    //Asociadas aún al servicio y en estatus ocupado
                    //Disponibles en la ubicación de fin del movimiento y sin ningún movimiento asignado
                    resultado = MovimientoAsignacionRecurso.ValidaRecursosParaReversaTerminaMovimiento(this._id_movimiento);

                    //Validamos Resultado
                    if (resultado.OperacionExitosa)
                    {
                        //Validamos que no existan pagos ligados al movimeinto
                        resultado = validaPagos();

                        //Validamos Resultado
                        if (resultado.OperacionExitosa)
                        {
                            //Actualizamos la fecha de llegada de las Estancias
                            resultado = EstanciaUnidad.EditaEstanciasUnidadFechaInicio(this._id_parada_destino, fecha_termino, tipo_actualizacion_inicio, id_usuario);

                            //Validamos Resultado
                            if (resultado.OperacionExitosa)
                            {
                                //Instanciamos Parada destino
                                using (Parada objParadaDestino = new Parada(this._id_parada_destino))
                                {
                                    //Editamos fecha de llegada de la parada
                                    resultado = objParadaDestino.EditaFechaLlegadaParada(fecha_termino, tipo_llegada, 0, id_usuario);
                                }
                            }
                        }
                    }
                }
            }
            //Devolvemos Resultado
            return(resultado);
        }
コード例 #4
0
ファイル: Movimiento2.cs プロジェクト: lulzzz/SAT
        /// <summary>
        /// Método encargado de Reversa el Inicio de un Movimiento Vacio
        /// </summary>
        /// <param name="mitEstanciasOrigen">Estancias Origen</param>
        /// <param name="estatus">Estatus de la Asignación que se desea editar</param>
        /// <param name="id_usuario">Id Usuario</param>
        /// <returns></returns>
        private RetornoOperacion ReversaInicioMovimietoVacio(DataTable mitEstanciasOrigen, MovimientoAsignacionRecurso.Estatus estatus, int id_usuario)
        {
            //Declaramos objeto Retorno
            RetornoOperacion resultado = new RetornoOperacion(0);

            //Iniciando transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Instanciamos la Parada Origen
                using (Parada objParadaOrigen = new Parada(this._id_parada_origen))
                {
                    //Localizando parada comodín de la ubicación origen
                    int id_parada_origen = Parada.ObtieneParadaComodinUbicacion(objParadaOrigen.id_ubicacion, true, id_usuario);

                    //Validamos existencia de Parada Comodin
                    if (id_parada_origen > 0)
                    {
                        //Iniciamos Estancias de la parada origen del servicio
                        resultado = EstanciaUnidad.IniciaEstanciasTerminadasParada(this._id_parada_origen, id_usuario);

                        //Validamos Resultado
                        if (resultado.OperacionExitosa)
                        {
                            //Actuakizamos Kilometraje de las Unidades de Movimiento
                            resultado = MovimientoAsignacionRecurso.ActualizaKilometrajeUnidadesMovimiento(this._id_movimiento, -this._kms, id_usuario);

                            //Validamos Resultado
                            if (resultado.OperacionExitosa)
                            {
                                //Actualizando estatus de recursos asignados a Disponibles
                                resultado = MovimientoAsignacionRecurso.ActualizaEstatusRecursosTerminadosADisponible(this._id_movimiento, id_parada_origen, objParadaOrigen.fecha_llegada, estatus, id_usuario);

                                //Validamos Resultado
                                if (resultado.OperacionExitosa)
                                {
                                    //Deshabilita Asignaciones
                                    resultado = MovimientoAsignacionRecurso.DeshabilitaMovimientosAsignacionesRecursosVacio(this._id_movimiento, id_usuario);
                                    //Validamos Resultado
                                    if (resultado.OperacionExitosa)
                                    {
                                        //Recuperando los Id de Recurso de las Unidades
                                        List <int> unidades = (from DataRow r in mitEstanciasOrigen.Rows
                                                               select r.Field <int>("IdRecurso")).DefaultIfEmpty().ToList();

                                        //Cambiamos el Id de Parada de las Estrancias
                                        resultado = EstanciaUnidad.CambiaParadaEstanciaUnidadesUbicacion(unidades, id_parada_origen, objParadaOrigen.id_ubicacion, id_usuario);

                                        //Validamos Resultado
                                        if (resultado.OperacionExitosa)
                                        {
                                            //Deshabilitamos Parada  Origen
                                            resultado = objParadaOrigen.DeshabilitaParada(id_usuario);

                                            //Validamos Resultado
                                            if (resultado.OperacionExitosa)
                                            {
                                                //Validamos Deshabilitación de Movimiento
                                                resultado = this.editaMovimiento(this._id_servicio, this._id_segmento_carga, this._secuencia_servicio, (Estatus)this._id_estatus_movimiento, (Tipo)this._id_tipo_movimiento
                                                                                 , this._kms, this._kms_maps, this._id_compania_emisor, this._id_parada_origen, this._id_parada_destino, id_usuario, false);
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                //Mostramos Mensaje Error
                                resultado = new RetornoOperacion(string.Format("Error al actualizar kilometraje de unidades asociadas: {0}", resultado.Mensaje));
                            }
                        }
                    }
                    else
                    {
                        //Mostramos Mensaje Error
                        resultado = new RetornoOperacion("No se encontró datos complementarios de la parada comodin.");
                    }
                }
                //Validamos Resultado
                if (resultado.OperacionExitosa)
                {
                    //Validamos resultado
                    scope.Complete();
                }
            }
            //Devolvemos Valor
            return(resultado);
        }
コード例 #5
0
ファイル: Movimiento2.cs プロジェクト: lulzzz/SAT
        /// <summary>
        /// Realiza las acciones necesarias para la reversa en la actualización de fin de movimiento: elimina estancias, inicia asignaciones del movimiento, elimina asignaciones copiadas al movimiento siguiente (en caso de existir), los recursos se colocan en estatus tránsito, se resta el kilometraje del movimiento en el despacho de su servicio y el movimiento se coloca como iniciado
        /// </summary>
        /// <param name="id_usuario">Id de Usuario que actualiza</param>
        /// <returns></returns>
        public RetornoOperacion ReversaTerminaMovimientoVacio(int id_usuario)
        {
            //Declarando objeto de retorno
            RetornoOperacion resultado = new RetornoOperacion("El movimiento debe estar en estatus Terminado");

            //Validando estatus actual del movimiento
            if (this.EstatusMovimiento == Estatus.Terminado)
            {
                //Iniciando transacción
                using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
                {
                    //Validando que las unidades involucradas se encuentren:
                    //Asociadas aún al servicio y en estatus ocupado
                    //Disponibles en la ubicación de fin del movimiento y sin ningún movimiento asignado
                    resultado = MovimientoAsignacionRecurso.ValidaRecursosParaReversaTerminaMovimiento(this._id_movimiento);

                    //Validamos Resultado
                    if (resultado.OperacionExitosa)
                    {
                        //Validamos que no existan pagos ligados al movimeinto
                        resultado = validaPagos();

                        //Si es válido realizar la reversa
                        if (resultado.OperacionExitosa)
                        {
                            //Actualziando el kilometraje de las unidades involucradas
                            resultado = MovimientoAsignacionRecurso.ActualizaKilometrajeUnidadesMovimiento(this._id_movimiento, -this._kms, id_usuario);
                            //Si no hubo errores
                            if (resultado.OperacionExitosa)
                            {
                                //instanciando parad de origen
                                using (Parada paradaOrigen = new Parada(this._id_parada_origen))
                                {
                                    //Si la parada se encontró
                                    if (paradaOrigen.habilitar)
                                    {
                                        //Eliminando estancias creadas para dichos recursos
                                        resultado = EstanciaUnidad.DeshabilitaEstanciaUnidadesReversaFinMovimiento(this._id_movimiento, paradaOrigen.fecha_salida, id_usuario);
                                    }
                                    else
                                    {
                                        resultado = new RetornoOperacion("No fue localizada la información de la parada de origen.");
                                    }
                                }

                                //Si no hubo errores
                                if (resultado.OperacionExitosa)
                                {
                                    //Actualziando estatus de movimiento a iniciado
                                    resultado = ActualizaEstatusMovimiento(Estatus.Iniciado, id_usuario);

                                    //Validamos Resultado
                                    if (resultado.OperacionExitosa)
                                    {
                                        //Instanciamos Parada Destino
                                        using (Parada objParadaDestino = new Parada(this._id_parada_destino))
                                            //Editamos Pararda
                                            resultado = objParadaDestino.CambiaParadaARegistrada(id_usuario);
                                    }
                                    else
                                    {
                                        resultado = new RetornoOperacion("No fue posible actualizar el estatus del movimiento.");
                                    }
                                }
                            }
                            else
                            {
                                resultado = new RetornoOperacion(string.Format("Error al actualizar kilometraje de unidades involucradas: {0}", resultado.Mensaje));
                            }
                        }
                    }

                    //Si no hay errores
                    if (resultado.OperacionExitosa)
                    {
                        //Terminando transacción
                        scope.Complete();
                    }
                }
            }
            //Devolviendo resultado
            return(resultado);
        }
コード例 #6
0
ファイル: Movimiento2.cs プロジェクト: lulzzz/SAT
        /// <summary>
        /// Deshabilita un Movimiento en Vacio
        /// </summary>
        /// <param name="id_usuario">Id Usuario</param>
        /// <returns></returns>
        public RetornoOperacion DeshabilitaMovimientoVacioTerminado(int id_usuario)
        {
            //Declaramos objeto resultado
            RetornoOperacion resultado = new RetornoOperacion("El movimiento debe estar en estatus Terminado");

            //Validando estatus actual del movimiento
            if (this.EstatusMovimiento == Estatus.Terminado)
            {
                //Iniciando transacción
                using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
                {
                    //Instanciamos la Parada Origen
                    using (Parada objParadaOrigen = new Parada(this._id_parada_origen), objParadadDestino = new Parada(this._id_parada_destino))
                    {
                        //Cargamos Estancias ligadas a un Id Movimiento en Estatus Terminado
                        using (DataTable mitEstanciasOrigen = EstanciaUnidad.CargaEstanciasTerminadasParada(this._id_parada_origen))
                        {
                            //Validando que las unidades involucradas se encuentren:
                            //Asociadas aún al servicio y en estatus ocupado
                            //Disponibles en la ubicación de fin del movimiento y sin ningún movimiento asignado
                            resultado = MovimientoAsignacionRecurso.ValidaRecursosParaReversaTerminaMovimiento(this._id_movimiento);

                            //Validamos Resultado
                            if (resultado.OperacionExitosa)
                            {
                                //Validamos que no existan pagos ligados al movimeinto
                                resultado = validaPagos();

                                //Validamos Resultado
                                if (resultado.OperacionExitosa)
                                {
                                    //Deshabilitamos Estancias
                                    resultado = EstanciaUnidad.DeshabilitaEstanciaUnidadesMovimientoVacio(this._id_movimiento, this._id_parada_destino, id_usuario);

                                    //Validamos Resultado
                                    if (resultado.OperacionExitosa)
                                    {
                                        //Deshabilitamos Parada Destino
                                        resultado = objParadadDestino.DeshabilitaParada(id_usuario);

                                        //Validamos Resultado
                                        if (resultado.OperacionExitosa)
                                        {
                                            //Reversa los movimientos de la Parada Origen
                                            resultado = ReversaInicioMovimietoVacio(mitEstanciasOrigen, MovimientoAsignacionRecurso.Estatus.Terminado, id_usuario);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    //Si no hay errores
                    if (resultado.OperacionExitosa)
                    {
                        //Terminando transacción
                        scope.Complete();
                    }
                }
            }
            else
            {
                //Establecemos Mesnaje Error
                resultado = new RetornoOperacion("El estatus del movimiento no permite su eliminación");
            }
            //Devolvemos resultado
            return(resultado);
        }
コード例 #7
0
        /// <summary>
        /// Inicializamos Controles Movimiento en Vacio Sin Orden
        /// </summary>
        /// <param name="id_recurso">Id Recurso</param>
        /// <param name="id_compania_emisor">Id Compañia Emisor</param>
        /// <param name="tipoActualizaionFin">Tipo de Actualización Fin de la Estancia (Manual, GPS, APP)</param>
        public RetornoOperacion InicializaControl(int id_recurso, int id_compania_emisor, Parada.TipoActualizacionLlegada tipoActualizacionLlegada, Parada.TipoActualizacionSalida tipoActualizacionSalida, EstanciaUnidad.TipoActualizacionInicio tipoActuailizacionInicio,
                                                  EstanciaUnidad.TipoActualizacionFin tipoActualizaionFin)
        {
            //Declaramos Objeto Resultado
            RetornoOperacion resultado = new RetornoOperacion();

            //Asignamo Atributos
            this._id_tipo_actualizacion_fin = tipoActualizaionFin;
            this._id_recurso          = id_recurso;
            this._id_compania_emisor  = id_compania_emisor;
            this._id_ubicacion_origen = 0;  //Se actualiza con la ubicación de la unidad seleccionada
            chkFechaActualMov.Checked = false;

            //Obtenemos Estancia Actual de la Unidad
            using (EstanciaUnidad objEstanciaUnidad = new EstanciaUnidad(EstanciaUnidad.ObtieneEstanciaUnidadIniciada(id_recurso)))
            {
                //Validamos Estancia de la Unidad
                if (objEstanciaUnidad.id_estancia_unidad > 0)
                {
                    this._fecha_llegada = objEstanciaUnidad.inicio_estancia;
                    //Instanciamos Parada
                    using (Parada objParada = new Parada(objEstanciaUnidad.id_parada))
                    {
                        //Instanciamos Unidad
                        using (SAT_CL.Global.Unidad objUnidad = new SAT_CL.Global.Unidad(id_recurso))
                        {
                            //Si existe unidad a mover
                            if (objUnidad.id_unidad > 0 && objUnidad.EstatusUnidad == Unidad.Estatus.ParadaDisponible)
                            {
                                //Instanciamos Tipo de Unidad
                                using (SAT_CL.Global.UnidadTipo objUnidadTipo = new SAT_CL.Global.UnidadTipo(objUnidad.id_tipo_unidad))
                                {
                                    //Guardando ubicación de origen del movimiento
                                    this._id_ubicacion_origen = objParada.id_ubicacion;

                                    //Cargamos Catalogos
                                    cargaCatalogos(objParada.id_ubicacion);

                                    //Validamos Tipo de Unidad para Inicializar y habilitar Controles
                                    if (objUnidadTipo.bit_motriz == true)
                                    {
                                        //Inicializamos Controles
                                        inicializaValoresUnidad(objUnidad.id_unidad);
                                        //Habilitamos Controles
                                        habilitarControlesUnidad(objUnidadTipo.bit_permite_arrastre);
                                        //sI LA
                                    }
                                    else
                                    {
                                        //Inicializamos Controles
                                        inicializaValoresRemolque(objUnidad.id_unidad);
                                        //Habilitamos Controles
                                        habilitaControlesRemolque();
                                    }
                                }
                                //Establecemos Resultado Exitoso
                                resultado = new RetornoOperacion(0);
                            }
                        }

                        //Inicializando Control de Lugar de Origen
                        lblLugarOrigen.Text = objParada.descripcion;
                        //Inicializamos Control Fecha de Llegada al Origen
                        lblFechaLlegada.Text = objEstanciaUnidad.inicio_estancia.ToString("dd/MM/yyyy HH:mm").ToString();
                    }
                }
            }
            //Devolvemos Resultado
            return(resultado);
        }