示例#1
0
        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."));
                }
            }
        }