Example #1
0
        /// <summary>
        /// Obtiene el conjunto de tarifas de pago aplicables a los criterios señalados
        /// </summary>
        /// <param name="nivel_pago">Nivel de Pago correspondiente (En base al Id de Servicio o Movimiento)</param>
        /// <param name="id_servicio_movimiento">Id de Servicio o movimiento</param>
        /// <param name="perfil_pago">Perfil de Pago (En base al Id de Entidad de Pago)</param>
        /// <param name="id_entidad_pago">Id de Entidad a la que se debe pagar (Unidad, Operador o Transportista)</param>
        /// <returns></returns>
        private static DataTable obtieneTarifasPago(NivelPago nivel_pago, int id_servicio_movimiento, PerfilPago perfil_pago, int id_entidad_pago)
        {
            //Definiendo objeto de resultado
            DataTable mit = null;

            //Determinando datos complementarios en base al nivel de pago
            if (nivel_pago == NivelPago.Movimiento)
            {
                //Instanciando movimiento indicado
                using (Despacho.Movimiento mov = new Despacho.Movimiento(id_servicio_movimiento))
                    //Si el movimiento existe y no es un movimiento vacío
                    if (mov.habilitar && mov.id_servicio > 0)
                    {
                        //Asignando Id de Servicio a registro de búsqueda
                        id_servicio_movimiento = mov.id_servicio;
                    }
            }

            //Creando conjunto de criterios de búsqueda en blanco
            object[] param = { 4, 0, "", 0, (byte)nivel_pago, (byte)perfil_pago, 0, 0, 0, 0, 0, 0, 0, null, null, 0, false, id_servicio_movimiento, id_entidad_pago };

            //Realizando carga de tarifas coincidentes
            using (DataSet ds = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoDataSet(_nom_sp, param))
            {
                //Validando origen de datos
                if (TSDK.Datos.Validacion.ValidaOrigenDatos(ds, "Table"))
                {
                    //Obteniendo tabla de interés
                    mit = ds.Tables["Table"];
                }

                //Devolviendo resultado
                return(mit);
            }
        }
Example #2
0
        /// <summary>
        /// Obtiene el conjunto de tarifas de pago aplicables a los criterios señalados
        /// </summary>
        /// <param name="id_movimiento">Id de Movimiento</param>
        /// <param name="perfil_pago">Perfil de Pago (En base al Id de Entidad de Pago)</param>
        /// <param name="id_entidad_pago">Id de Entidad a la que se debe pagar (Unidad, Operador o Transportista)</param>
        /// <param name="escalarAServicio">True para indicar que si no existen tarifas coincidentes a nivel de movimiento, se debe realizar una búsqueda a nivel de servicio</param>
        /// <returns></returns>
        public static DataTable ObtieneTarifasPagoMovimiento(int id_movimiento, PerfilPago perfil_pago, int id_entidad_pago, bool escalarAServicio)
        {
            //Declarando objeto de retorno
            DataTable mit = null;
            //Declarando auxiliares de búsqueda (inicializadas a movimiento vacío)
            NivelPago nivel_pago             = NivelPago.Mov_Vacio;
            int       id_servicio_movimiento = id_movimiento;

            //Instanciando el movimiento solicitado
            using (Despacho.Movimiento mov = new Despacho.Movimiento(id_movimiento))
            {
                //Si el movimiento existe
                if (mov.habilitar)
                {
                    //Determiando si el movimiento está ligado a un servicio
                    if (mov.id_servicio > 0)
                    {
                        //Actualizando parámetros de búsqueda
                        nivel_pago             = NivelPago.Movimiento;
                        id_servicio_movimiento = mov.id_servicio;
                    }
                }
            }

            //Realizando búsqueda por movimiento
            mit = obtieneTarifasPago(nivel_pago, id_servicio_movimiento, perfil_pago, id_entidad_pago);

            //Si no hay tarifas coincidentes y se ha solicitado búsqueda a otro nivel
            if (!Validacion.ValidaOrigenDatos(mit) && nivel_pago != NivelPago.Mov_Vacio && escalarAServicio)
            {
                //Realizando búsqueda a nivel de servicio
                mit = obtieneTarifasPago(NivelPago.Servicio, id_servicio_movimiento, perfil_pago, id_entidad_pago);
            }

            //Devolviendo resultado
            return(mit);
        }