Пример #1
0
        /// <summary>
        /// Devuelve Objetos BaseNegocio por nombre.
        /// En general, depende de la situación actual del objeto, de los valores de this.
        /// </summary>
        /// <param name="Nombre">El nombre del Objeto Asociado</param>
        public override BaseNegocio ObjetoAsociado(string Nombre)
        {
            if (Nombre == "PresupuestoVersion")
            {
                pv = (PresupuestoVersion)RecuperaObjetoAsociado((BaseNegocio)pv, "PresupuestoVersion", "IDPresupuestoVersion");

                return(pv);
            }
            if (Nombre == "Presupuesto")
            {
                return((Presupuesto)ObjetoAsociado("PresupuestoVersion").ObjetoAsociado("Presupuesto"));
            }
            if (Nombre == "PresupuestoYTarifa")
            {
                pyt = ((ColPresupuestoYTarifa)this.ObjetoAsociado("Presupuesto").Coleccion("ColPresupuestoYTarifa")).Buscar(pyt, (int)this["IDPyT"]);

                return(pyt);
            }
            if (Nombre == "Tarifa")
            {
                return((Tarifa)ObjetoAsociado("PresupuestoYTarifa").ObjetoAsociado("Tarifa"));
            }

            return(ObjetoAsociado("Presupuesto").ObjetoAsociado(Nombre));
        }
Пример #2
0
        public void CopiarTarifas(PresupuestoVersion origenPV)
        {
            ColPresupuestoVersionDetalle cpv       = (ColPresupuestoVersionDetalle)this.Coleccion("ColPresupuestoVersionDetalle");
            ColPresupuestoVersionDetalle cpvOrigen = (ColPresupuestoVersionDetalle)origenPV.Coleccion("ColPresupuestoVersionDetalle");

            foreach (BaseNegocio orig in cpvOrigen)
            {
                bool encontrado = false;
                foreach (BaseNegocio existente in cpv)
                {
                    if ((int)orig["IDPyT"] == (int)existente["IDPyT"])
                    {
                        encontrado = true;
                        break;
                    }
                }

                if (!encontrado)
                {
                    cpv.CrearEnBlanco();

                    cpv.ObjetoActivo["IDPyT"] = orig["IDPyT"];

                    cpv.AnexarObjetoActivo();
                }
            }
        }
Пример #3
0
        public override BaseNegocio CrearInstanciaHijo()
        {
            BaseNegocio b;

            b = new PresupuestoVersion();

            return(b);
        }
Пример #4
0
        /// <summary>
        /// Realiza llamadas a Métodos de la clase por nombre.
        /// Se pueden realizar cosas como pag.Response.Redirect para abrir otras ventanas.
        /// ErrorMensaje se presentará al usuario.
        /// </summary>
        /// <param name="pag">Objeto Pagina ASPX, mejorable.</param>
        /// <param name="Nombre">Nombre de Método.</param>
        public override void Metodo(System.Web.UI.Page pag, string NombreMetodo)
        {
            if (NombreMetodo == "DireccionAlternativaADelegacion")
            {
                ErrorMensaje = "";

                if (this["IDCliente"] is DBNull)
                {
                    ErrorMensaje = "No hay un cliente seleccionado.";
                }
                if (!(this["IDClienteDelegacion"] is DBNull) && ErrorMensaje == "")
                {
                    ErrorMensaje = "Ya tiene seleccionada una delegación.";
                }
                if (this["Direccion"] + "" == "" && ErrorMensaje == "")
                {
                    ErrorMensaje = "La dirección está en blanco.";
                }

                if (ErrorMensaje == "")
                {
                    this["IDClienteDelegacion"] = ClienteDelegacion.CrearClienteDelegacionGenerico(this);
                }
                else
                {
                    ErrorMensaje = "No se puede realizar la acción. " + ErrorMensaje;
                }
            }

            if (NombreMetodo == "EstablecerVersionPrincipal")
            {
                bool hecho = false;

                foreach (BaseNegocio b in this.Padre)
                {
                    PresupuestoVersion pv = (PresupuestoVersion)b;

                    if ((bool)pv["Principal"])
                    {
                        if (pv.AceptadoAhoraPresupuesto)
                        {
                            ErrorMensaje = "El presupuesto está aceptado. No se puede cambiar la versión principal.";
                        }
                        else
                        {
                            if (this.Clave != pv.Clave)
                            {
                                pv["Principal"]   = false;
                                this["Principal"] = true;

                                ObjetoAsociado("Presupuesto")["FechaEmision"] = (DateTime)this["FechaEmision"];

                                hecho = Padre.Correcto;
                            }
                        }
                        break;
                    }
                }

                if (hecho)
                {
                    ObjetoAsociado("Presupuesto").Coleccion("ColPresupuestoVersion").Guardar();
                    ObjetoAsociado("Presupuesto").Coleccion("ColPresupuestoVersion").Usar();
                }
            }

            if (NombreMetodo == "AceptarAmpliacion")
            {
                if (!AceptadoAhoraVersion)
                {
                    if (((bool)this["Ampliacion"]) && this.Correcto)
                    {
                        this["Aceptado"]        = true;
                        this["FechaAceptacion"] = System.DateTime.Today;
                        this["FechaApliacion"]  = System.DateTime.Today;

                        this.Guardar();

                        ((Presupuesto)this.ObjetoAsociado("Presupuesto")).ActualizarPresupuestoEnBaseAntigua(false, false, true);
                    }
                }
            }

            if (NombreMetodo == "SeleccionarTarifas")
            {
                string script;

                script = "window.open('" + ((PROT.ControlesEspeciales.RaizPage)pag).ResuelveUrl("~/presupuestos/tarifas/SeleccionarTarifa.aspx") + "?id=" + ObjetoAsociado("Presupuesto").IDActual[0] + "','_blank','width=1000px; height=700px; location=yes; menubar=yes; scrollbars=yes; resizable=yes; status=yes; toolbar=yes');";
//                script = "window.open('" + ((PROT.ControlesEspeciales.RaizPage)pag).ResuelveUrl("~/presupuestos/tarifas/SeleccionarTarifa.aspx") + "?id=" + ObjetoAsociado("Presupuesto").IDActual[0] + "','_blank','width=1000px; height=700px;');";

                ((PROT.ControlesEspeciales.RaizPage)pag).RegistraStartupScript("llamada", script, true);
            }

            if (NombreMetodo == "AgregarTarifasExcel")
            {
                ((PROT.ControlesEspeciales.RaizPage)pag).RegistraClientScriptBlock("inicio",
                                                                                   "window.open('../presupuestos/tarifas/AgregarTarifasExcel.aspx?id=" + ObjetoAsociado("Presupuesto").IDActual[0] + "', '_blank', 'toolbar=no, width=800, height=600, menubar=no, scrollbars=no, status=yes, top=200, left=100, resizable=yes');", true);
            }

            if (NombreMetodo == "EliminarLineasSeleccionadas")
            {
                // No se puede hacer foreach porque puede que quitemos objetos de la colección.
                BaseNegocio    b;
                ColBaseNegocio col = Coleccion("ColPresupuestoVersionDetalle");

                for (int c = 0; c < col.Count; ++c)
                {
                    b = col[c];

                    if ((bool)b["MarcarParaEliminar"])
                    {
                        if (b.Nuevo)
                        {
                            col.Remove(b);
                            --c;
                        }
                        else
                        {
                            b.Eliminar = !b.Eliminar;
                        }
                        b["MarcarParaEliminar"] = false;
                    }
                }
            }

            base.Metodo(pag, NombreMetodo);
        }
        /// <summary>
        /// Devuelve Objetos BaseNegocio por nombre.
        /// En general, depende de la situación actual del objeto, de los valores de this.
        /// </summary>
        /// <param name="Nombre">El nombre del Objeto Asociado</param>
        public override BaseNegocio ObjetoAsociado(string NombreObjetoAsociado)
        {
            if (NombreObjetoAsociado == "PresupuestoVersion")
            {
                // Antes de meter IDPresupuesto en PresupuestoVersionDocumento.
                //if (Padre != null && Padre.Padre != null)
                //{
                //    if (Nuevo)
                //    {
                //        pv = (PresupuestoVersion)Padre.Padre.Coleccion("ColPresupuestoVersion")[Padre.Padre.Coleccion("ColPresupuestoVersion").Count - 1];
                //    }
                //    else
                //    {
                //        foreach (BaseNegocio pver in Padre.Padre.Coleccion("ColPresupuestoVersion"))
                //        {
                //            if (pver.Nuevo)
                //            {
                //                pv = (PresupuestoVersion)pver;
                //                break;
                //            }
                //            if (!(this["IDPresupuestoVersion"] is DBNull)
                //                && pver.IDActual[0] == (int)this["IDPresupuestoVersion"])
                //            {
                //                pv = (PresupuestoVersion)pver;
                //                break;
                //            }
                //        }
                //    }
                //}

                if (this["IDPresupuestoVersion"] is DBNull)
                {
                    NombreObjetoAsociado = "Presupuesto";
                }
                else
                {
                    if (pv == null)
                    {
                        pv = (PresupuestoVersion)RecuperaObjetoAsociado((BaseNegocio)pv, "PresupuestoVersion", "IDPresupuestoVersion");
                    }

                    return(pv);
                }
            }

            // Antes de meter IDPresupuesto en PresupuestoVersionDocumento.
            //if (NombreObjetoAsociado == "Presupuesto" || NombreObjetoAsociado == "Oportunidad")
            //{
            //    if (Padre != null && Padre.Padre != null)
            //    {
            //        pres = (BasePresupuesto)Padre.Padre;
            //    }
            //    else
            //    {
            //        pres = (BasePresupuesto)ObjetoAsociado("PresupuestoVersion").ObjetoAsociado(NombreObjetoAsociado);
            //    }

            //    return pres;
            //}

            if (NombreObjetoAsociado == "Presupuesto" || NombreObjetoAsociado == "Oportunidad")
            {
                // Clavado en PresupuestoVersion
                bool hecho = false;

                if (Padre != null)
                {
                    if (Padre.Padre != null)
                    {
                        if (Padre.Padre is Oportunidad)
                        {
                            pres = (BasePresupuesto)RecuperaObjetoAsociado((BaseNegocio)pres, "Oportunidad", "IDPresupuesto");
                        }
                        else
                        {
                            pres = (BasePresupuesto)RecuperaObjetoAsociado((BaseNegocio)pres, "Presupuesto", "IDPresupuesto");
                        }
                        hecho = true;
                    }
                }
                if (!hecho)
                {
                    pres = (BasePresupuesto)RecuperaObjetoAsociado((BaseNegocio)pres, "Presupuesto", "IDPresupuesto");
                }

                return(pres);
            }

            if (NombreObjetoAsociado == "GenDocModelo")
            {
                gd = (GenDocModelo)RecuperaObjetoAsociado((BaseNegocio)gd, "GenDocModelo", "IDGenDocModelo");

                return(gd);
            }

            if (NombreObjetoAsociado == "DivisionSucursal")
            {
                return(ObjetoAsociado("Presupuesto").ObjetoAsociado(NombreObjetoAsociado));
            }

            return(base.ObjetoAsociado(NombreObjetoAsociado));
        }