/// <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)); }
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(); } } }
public override BaseNegocio CrearInstanciaHijo() { BaseNegocio b; b = new PresupuestoVersion(); return(b); }
/// <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)); }