/// <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)); }
/// <summary> /// Método Privado encargado de Actualizar los Registros en la BD /// </summary> /// <param name="id_compania_emisor">Id de Compañía Emisor</param> /// <param name="id_terminal_origen">Terminal de Origen</param> /// <param name="id_terminal_destino">Terminal de Destino</param> /// <param name="id_estatus">estatus</param> /// <param name="fecha_salida">Fecha de Salida</param> /// <param name="fecha_llegada">Fecha de Llegada</param> /// <param name="id_medio_envio">Medio de Envio</param> /// <param name="referencia_envio">Referencia del Envio</param> /// <param name="id_usuario">Id de Usuario</param> /// <param name="habilitar">Estatus Habilitado</param> /// <returns></returns> private RetornoOperacion actualizaRegistros(int id_compania_emisor, int id_terminal_origen, int id_terminal_destino, EstatusPaqueteEnvio id_estatus, DateTime fecha_salida, DateTime fecha_llegada, int id_medio_envio, string referencia_envio, int id_usuario, bool habilitar) { //Declarando objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Armando Objeto de Parametros del SP object[] param = { 2, this._id_paquete_envio, id_compania_emisor, id_terminal_origen, id_terminal_destino, (byte)id_estatus, Fecha.ConvierteDateTimeObjeto(fecha_salida), Fecha.ConvierteDateTimeObjeto(fecha_llegada), id_medio_envio, referencia_envio, id_usuario, habilitar, "", "" }; //Obteniendo Resultado del SP result = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param); //Devolviendo Resultado Obtenido return(result); }