Example #1
0
        /// <summary>
        /// Devuelve el último detalle de paquete asignado al documento de viaje solicitado
        /// </summary>
        /// <param name="id_control_evidencia_documento">Id de Documento de viaje</param>
        /// <returns></returns>
        public static PaqueteEnvioDocumento ObtieneUltimoDetallePaqueteDocumento(int id_control_evidencia_documento)
        {
            //Definiendo objeto de retorno
            PaqueteEnvioDocumento dp = new PaqueteEnvioDocumento();

            //Definiendo parámetros de búsqueda
            object[] param = { 6, 0, id_control_evidencia_documento, 0, 0, null, 0, false, "", "" };

            //Realizando búsqueda
            using (DataSet ds = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoDataSet(_nom_sp, param))
            {
                //Si existen resultados
                if (Validacion.ValidaOrigenDatos(ds, "Table"))
                {
                    //Para el resultado
                    foreach (DataRow r in ds.Tables["Table"].Rows)
                    {
                        //Instanciando detalle de paquete
                        dp = new PaqueteEnvioDocumento(Convert.ToInt32(r["Id"]));
                        //Terminando iteraciones
                        break;
                    }
                }
            }

            //Devolviendo resultado
            return(dp);
        }
Example #2
0
        /// <summary>
        /// Método encargado de deshabilitar el registro y sus dependencias
        /// </summary>
        /// <param name="id_usuario">Id de Usuario</param>
        /// <returns></returns>
        public RetornoOperacion DeshabilitaPaqueteEnvioCascada(int id_usuario)
        {
            //Definiendo objeto de resultado
            RetornoOperacion resultado = new RetornoOperacion();

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Validando el estatus del paquete, sólo Registrado puede ser eliminado
                if (this.id_estatus == EstatusPaqueteEnvio.Registrado)
                {
                    //Deshabilitando los detalles
                    resultado = PaqueteEnvioDocumento.DeshabilitaPaqueteEnvioDocumentos(this._id_paquete_envio, id_usuario);
                    //Si se deshabilitaron los detalles
                    if (resultado.OperacionExitosa)
                    {
                        //Realizando deshabilitación de este registros
                        resultado = DeshabilitaPaqueteEnvio(id_usuario);
                    }
                }
                else
                {
                    resultado = new RetornoOperacion("Un paquete sólo puede ser eliminado cuando su estatus es 'Registrado'.");
                }
                //Validamos Resultado
                if (resultado.OperacionExitosa)
                {
                    //Validamos Transacción
                    scope.Complete();
                }
            }

            //Devolviendo resultado
            return(resultado);
        }
Example #3
0
        /// <summary>
        /// Deshabilita todos los documentos ligados a la HI indicada
        /// </summary>
        /// <param name="id_paquete_envio">Id de Paquete envío</param>
        /// <param name="id_usuario">Id de Usuario</param>
        /// <returns></returns>
        public static RetornoOperacion DeshabilitaPaqueteEnvioDocumentos(int id_paquete_envio, int id_usuario)
        {
            //Definiendo objeto de resultado
            RetornoOperacion resultado = new RetornoOperacion(id_paquete_envio);

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Cargando documentos
                using (DataTable mitDoc = CargaDocumentoDelPaquete(id_paquete_envio))
                {
                    //Si existen resultados
                    if (Validacion.ValidaOrigenDatos(mitDoc))
                    {
                        //Para cada uno de los registros
                        foreach (DataRow d in mitDoc.Rows)
                        {
                            //instanciando registro
                            using (PaqueteEnvioDocumento dp = new PaqueteEnvioDocumento(Convert.ToInt32(d["Id"])))
                            {
                                //Si el registro existe
                                if (dp.id_paquete_envio_documento > 0)
                                {
                                    //Deshabilitando Documento
                                    resultado = dp.DeshabilitaPaqueteEnvioDocumento(id_usuario);
                                }
                                else
                                {
                                    resultado = new RetornoOperacion(string.Format("Detalle 'ID: {0}' no encontrado.", Convert.ToInt32(d["Id"])));
                                }
                            }

                            //Si existe error
                            if (!resultado.OperacionExitosa)
                            {
                                //Saliendo de ciclo
                                break;
                            }
                        }
                    }
                }

                //Validamos Resultado
                if (resultado.OperacionExitosa)
                {
                    //Validamos Transacción
                    scope.Complete();
                }
            }

            //Devolviendo resultado
            return(resultado);
        }
Example #4
0
        /// <summary>
        /// Cancela Control Evidencia Documento
        /// </summary>
        /// <param name="id_segmento_control_evidencia">Id Segmento Control Evidencia Documento</param>
        /// <param name="objSegmentoControEvlidencia">Objeto Segmento Control Evidencia</param>
        /// <param name="id_usuario">Id Usuario</param>
        /// <returns></returns>
        public static RetornoOperacion CancelaControlEvidenciaDocumento(int id_segmento_control_evidencia, SegmentoControlEvidencia objSegmentoControEvlidencia, int id_usuario)
        {
            //Objeto Resultado
            RetornoOperacion res = new RetornoOperacion(0);

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Cargamos Evidencias de Documento
                using (DataTable mitDocumento = CargaDocumentosControlEvidencia(id_segmento_control_evidencia))
                {
                    //Validamos Origen de Datos
                    if (Validacion.ValidaOrigenDatos(mitDocumento))
                    {
                        //Recorremos Cada uno de los Documento
                        foreach (DataRow r in mitDocumento.Rows)
                        {
                            //Instanciamos Documento
                            using (ControlEvidenciaDocumento doc = new ControlEvidenciaDocumento(r.Field <int>("Id")))
                            {
                                //Actualizamos Estatus
                                res = doc.ActualizaEstatusControlEvidenciaDocumento(ControlEvidenciaDocumento.EstatusDocumento.Cancelado, id_usuario);

                                //Validamos Resultado
                                if (res.OperacionExitosa)
                                {
                                    //Cargamos detalle del paquete correspondiente al Documento
                                    using (DataTable mit = PaqueteEnvioDocumento.ObtieneDetallesPaqueteDocumento(doc.id_control_evidencia_documento))
                                    {
                                        //Validamos Origen de Datos
                                        if (Validacion.ValidaOrigenDatos(mit))
                                        {
                                            //Recorremos cada uno de los paquetes
                                            foreach (DataRow p in mit.Rows)
                                            {
                                                //Insertamos Refrencia
                                                res = Referencia.InsertaReferencia(p.Field <int>("Id"), 41, 2070, "Reacomodo de los documentos a causa de la edición del segmento", Fecha.ObtieneFechaEstandarMexicoCentro(), id_usuario);

                                                //Validamos Resultado
                                                if (!res.OperacionExitosa)
                                                {
                                                    //Salimos del ciclo
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            //Validamos Resultado
                            if (!res.OperacionExitosa)
                            {
                                //Salimos del ciclo
                                break;
                            }
                        }
                    }
                    //Validamos Resultado
                    if (res.OperacionExitosa)
                    {
                        //Cancelamos Segmento
                        res = objSegmentoControEvlidencia.EditaEstatusSegmentoControlEvidencia(SegmentoControlEvidencia.EstatusSegmentoControlEvidencias.Cancelado, id_usuario);
                    }
                }
                //Validamos Resultado
                if (res.OperacionExitosa)
                {
                    scope.Complete();
                }
            }
            //Devolvemos resultado
            return(res);
        }
Example #5
0
        /// <summary>
        /// Actualiza el Estatus del Paquete
        /// </summary>
        /// <param name="id_usuario"></param>
        /// <returns></returns>
        public RetornoOperacion ActualizaEstatusGeneralPaquete(int id_usuario)
        {
            //Declaramos Variable Estatus
            bool Registrado, Transito, Recibido, EnAclaracion, NoRecibido;

            //Declaramos estatus
            EstatusPaqueteEnvio estatus = EstatusPaqueteEnvio.No_Recibido;

            //Cargamos Estatus de los Paquetes
            PaqueteEnvioDocumento.CargaEstatusPaqueteEnvioDocumento(this._id_paquete_envio, out Registrado, out Transito,
                                                                    out Recibido, out EnAclaracion, out NoRecibido);
            //Determinamos estatua para actualizar el Paquete
            //Si existe por lo menos un documento en aclaración
            if (EnAclaracion)
            {
                estatus = EstatusPaqueteEnvio.En_Aclaracion;
            }
            else
            {
                //Si existe solo documentos Recibidos
                if (!Registrado && !Transito && Recibido && !EnAclaracion && !NoRecibido)
                {
                    estatus = EstatusPaqueteEnvio.Recibido;
                }
                else
                {
                    //Si existe solo documentos en NO Recibidos
                    if (!Registrado && !Transito && !Recibido && !EnAclaracion && NoRecibido)
                    {
                        estatus = EstatusPaqueteEnvio.No_Recibido;
                    }
                    else
                    {
                        //Si existe solo documentos en transito
                        if (Transito)
                        {
                            //Si por lo meno existe un documento Recibido
                            if (Recibido)
                            {
                                estatus = EstatusPaqueteEnvio.Recibido_Parcial;
                            }
                            else if (Registrado)
                            {
                                estatus = EstatusPaqueteEnvio.Registrado;
                            }
                            else
                            {
                                //Asignamos Estatus a Transito
                                estatus = EstatusPaqueteEnvio.Transito;
                            }
                        }
                        else
                        {
                            //Asignamos estatus a Recibido
                            estatus = EstatusPaqueteEnvio.Recibido;
                        }
                    }
                }
            }

            //Declaramos Fecha de llegada y Salida
            DateTime fecha_llegada = this._fecha_llegada;
            DateTime fecha_salida  = this._fecha_salida;


            // Validamos si el Estatus  acual es a Registrado y el estatus a asignar  es Transito
            if ((EstatusPaqueteEnvio)this._id_estatus == EstatusPaqueteEnvio.Registrado && estatus == EstatusPaqueteEnvio.Transito)
            {
                //Actualizamos la fecha de salida
                fecha_salida = TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro();
            }
            else
            {
                // Validamos que el estatus Actua y por asignar se ha diferente de Registrado
                if ((EstatusPaqueteEnvio)this._id_estatus != EstatusPaqueteEnvio.Registrado && estatus != EstatusPaqueteEnvio.Registrado)
                {
                    //Actualizamos la fecha de llegada
                    fecha_llegada = Fecha.EsFechaMinima(this._fecha_llegada) ? TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro() : this._fecha_llegada;
                }
            }

            //Actualizamos Estatus del Paquete
            return(this.actualizaRegistros(this._id_compania_emisor, this._id_terminal_origen, this._id_terminal_destino, estatus, fecha_salida,
                                           fecha_llegada, this._id_medio_envio, this._referencia_envio, id_usuario, this._habilitar));
        }