private void ChequearGuia() { //CHEQUEAR QUE LA GUIA SEA DE RENDICION if (Convert.ToInt32(this.txtTipoFactura.Text) != (int)NegociosSisPackInterface.SisPack.ClasificacionGuia.Rendicion) { Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía ingresada no es de rendición")); } //CHEQUEAR AGENCIA DESTINO int agenciaDestParam; IParametroUNegocio param = ParametroUNegocioFactory.GetParametroUNegocio(); param.UnidadNegocioID = this.UnidadNegocioID; param.Parametro = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion; param.Consultar(); agenciaDestParam = Convert.ToInt32(param.ValorString); if (this.AgenciaConectadaID != agenciaDestParam) { Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía de rendición tiene que ser recibida por la agencia de administración")); } // CHEQUEAR ESTADOS IGuiaEstadoHistorico guiaEstadoHistorico = GuiaEstadoHistoricoFactory.GetGuiaEstadoHistorico(); guiaEstadoHistorico.GuiaID = Convert.ToInt32(this.txtGuiaID.Text); DsGuiaEstadoHistorico ds = guiaEstadoHistorico.GetGuiaEstadoHistoricoDataSet(); //Verifica que la guía no tenga el estado ANULADA //ANULADA --> EstadoCliente y Ninguno. En realidad es el estado: Anulada!! DsGuiaEstadoHistorico.DatosRow[] dr = (DsGuiaEstadoHistorico.DatosRow[])ds.Datos.Select("TipoEstadoGuiaID =" + (int)NegociosSisPackInterface.SisPack.TipoEstadoGuia.EstadoAdministrativo + " AND EstadoGuiaID = " + (int)NegociosSisPackInterface.SisPack.ValorEstadoAdministrativo.Anulada); if (dr.Length > 0) { Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía se encuentra anulada")); this.butConfirmar.Enabled = false; return; } else { this.butConfirmar.Enabled = true; } //Verifica que la guía no tenga el estado CONFORMADA dr = null; dr = (DsGuiaEstadoHistorico.DatosRow[])ds.Datos.Select("TipoEstadoGuiaID =" + (int)NegociosSisPackInterface.SisPack.TipoEstadoGuia.EstadoAdministrativo + " AND AgenciaID = " + this.AgenciaConectadaID, "GuiaEstadoHisID"); if (dr.Length > 0) { //Recuperamos que el último estado de este tipo para la guia sea el que buscamos: Pendiente de entrega. if (dr[dr.Length - 1].EstadoGuiaID == (int)NegociosSisPackInterface.SisPack.ValorEstadoAdministrativo.Conformada) { this.butConfirmar.Enabled = false; Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía de rendición se encuentra conformada.")); } } //TRASBORDADA --> EstadoEstatico y EnAgenciaTrasbordo dr = null; dr = (DsGuiaEstadoHistorico.DatosRow[])ds.Datos.Select("TipoEstadoGuiaID =" + (int)NegociosSisPackInterface.SisPack.TipoEstadoGuia.EstadoEstatico + " AND EstadoGuiaID = " + (int)NegociosSisPackInterface.SisPack.ValorEstadoEstatico.EnAgenciaDeTrasbordo); if (dr.Length > 0) { Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía se encuentra en Agencia de Trasbordo")); } //Controla que la guia este asignada a una hoja de ruta y que la hoja de ruta esté confirmada dr = null; dr = (DsGuiaEstadoHistorico.DatosRow[])ds.Datos.Select("TipoEstadoGuiaID =" + (int)NegociosSisPackInterface.SisPack.TipoEstadoGuia.EstadoMovimiento, "GuiaEstadoHisID"); if (dr.Length > 0) { //Recuperamos que el último estado de este tipo para la guia sea el que buscamos: En Viaje. if (dr[dr.Length - 1].EstadoGuiaID == (int)NegociosSisPackInterface.SisPack.ValorEstadoMovimiento.EnViaje && guiaEstadoHistorico.HojaRutaConfirmada()) { this.butConfirmar.Enabled = true; } else { this.butConfirmar.Enabled = false; Page.RegisterStartupScript("Imprimir", GenerarJavaScripts.MostrarMensaje("La guía no se encuentra en condiciones de ser recibida,verificar que este asignada a una hoja de ruta o que la misma esté confirmada.")); } } }