public override BaseNegocio CrearInstanciaHijo() { BaseNegocio b; b = new PresupuestoVersionDetalle(); return(b); }
public override string Propiedad(string NombrePropiedad) { Decimal Total = 0; double Unidades = 0; string est = ""; ColPresupuestoVersionDetalle cpvd; if (NombrePropiedad == "ESTILO_CSS") { return(CrearTablaHTMLTarifas.CSSTablaHTML); } if (NombrePropiedad == "TablaPresupuesto") { return((new CrearTablaHTMLTarifas()).CrearTabla(this)); } if (NombrePropiedad == "Estado") { if ((bool)this["Principal"]) { est = "Principal"; } else { if ((bool)this["Ampliacion"]) { est = "Ampliación"; } else { est = "Versión"; } } if ((bool)this["Aceptado"]) { est += " - Aceptado"; } return(est); } if (NombrePropiedad == "DescripcionCorta") { if ((bool)this["Principal"]) { est = "Principal"; } else { if ((bool)this["Ampliacion"]) { est = "Ampliación"; } else { est = "Versión"; } est += " " + this["Version"].ToString(); } return(est); } if (NombrePropiedad == "EsAmpliacionVersion") { if ((bool)this["Principal"]) { est = ""; } else { if ((bool)this["Ampliacion"]) { est = "Ampliación " + this["Version"].ToString() + ". de tarifas unidades del presupuesto inicial: "; } else { est = "Versión " + this["Version"].ToString() + ". del presupuesto: "; } } return(est); } if (NombrePropiedad == "NombreArchivoGenerado") { est = BaseSistemaNumeracion.DescripcionCodigoAnyoSinObra((BasePresupuesto)ObjetoAsociado("Presupuesto")).Replace('/', '_'); if (!(bool)this["Principal"]) { if ((bool)this["Ampliacion"]) { est += " Ampliación"; } else { est += " Versión"; } est += " " + this["Version"].ToString(); } return("Presupuesto " + est); } if (NombrePropiedad == "SumaTotalPresupuesto") { //if (!(bool)this["Principal"]) //{ NombrePropiedad = "TotalVersionAceptado"; //} } if (NombrePropiedad == "FechaEmision") { DateTime fe = new DateTime(); if ((bool)this["Aceptado"]) { fe = (DateTime)this["FechaAceptacion"]; } else { fe = (DateTime)this["FechaEmision"]; } return(Lib.FormateaFecha(fe)); } if (NombrePropiedad == "FechaEmisionLarga") { DateTime fe = new DateTime(); if ((bool)this["Aceptado"]) { fe = (DateTime)this["FechaAceptacion"]; } else { fe = (DateTime)this["FechaEmision"]; } return(fe.Day.ToString() + " de " + fe.ToString("MMMM") + " de " + fe.Year.ToString()); } if (NombrePropiedad == "TotalVersion" || NombrePropiedad == "TotalUnidades") { cpvd = (ColPresupuestoVersionDetalle)Coleccion("ColPresupuestoVersionDetalle"); Total = cpvd.CalcularTotal(false, ref Unidades); if (NombrePropiedad == "TotalVersion") { return(LCC.Negocio.Util.DarFormatoMonedaConDecimales(Total)); } else { return(Unidades.ToString("0.##")); } } if (NombrePropiedad == "TotalVersionAceptado" || NombrePropiedad == "TotalUnidadesAceptado" || NombrePropiedad == "TotalConBonificacion") { cpvd = (ColPresupuestoVersionDetalle)Coleccion("ColPresupuestoVersionDetalle"); Total = cpvd.CalcularTotal(true, ref Unidades); if (NombrePropiedad == "TotalVersionAceptado") { return(LCC.Negocio.Util.DarFormatoMonedaConDecimales(Total)); } else if (NombrePropiedad == "TotalConBonificacion") { float porcentaje = (float)ObjetoAsociado("Presupuesto")["Descuento"]; if (porcentaje != 0) { decimal TotalConBonificacion = Total - ((Total * Lib.NoDecimalNulo(porcentaje)) / 100); return("TOTAL PRESUPUESTO CON BONIFICACIÓN: " + LCC.Negocio.Util.DarFormatoMonedaConDecimales(TotalConBonificacion)); } } else { return(Unidades.ToString("0.##")); } } //[Prop.Con1] [Prop.NF1] [Prop.Pr1] [Prop.Importe1] [Prop.Precio1] for (int p = 1; p <= 9; ++p) { if (NombrePropiedad == "Con" + p.ToString() || NombrePropiedad == "NF" + p.ToString() || NombrePropiedad == "Pr" + p.ToString() || NombrePropiedad == "Importe" + p.ToString() || NombrePropiedad == "Precio" + p.ToString()) { PresupuestoVersionDetalle det = null; if (p <= Coleccion("ColPresupuestoVersionDetalle").Count) { det = (PresupuestoVersionDetalle)Coleccion("ColPresupuestoVersionDetalle")[p - 1]; } if (det != null) { if (NombrePropiedad.StartsWith("NF")) { return(p.ToString()); } if (NombrePropiedad.StartsWith("Con")) { return(det["Concepto"].ToString()); } if (NombrePropiedad.StartsWith("Pr")) { return((det.TotalUnidades * 100).ToString("0") + "%"); } if (NombrePropiedad.StartsWith("Importe")) { return(String.Format("{0:#,##0 €}", (decimal)det["Total"])); } if (NombrePropiedad.StartsWith("Precio")) { return(String.Format("{0:#,##0 €}", (decimal)det["Precio"])); } } return(""); } } return(ObjetoAsociado("Presupuesto").Propiedad(NombrePropiedad)); }
/// <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 Nombre) { if (Nombre == "DespuesDeModificarTarifas") { Presupuesto pres = (Presupuesto)ProveedorListas.ObjetoProveedorNegocio.RecuperaObjeto("Presupuesto", this["IDPresupuesto"].ToString()); pres.Coleccion("ColPresupuestoYTarifa").Reset(); pres.Coleccion("ColPresupuestoYTarifa").Usar(); pres.Coleccion("ColPresupuestoVersion").Reset(); pres.Coleccion("ColPresupuestoVersion").Usar(); pres.Guardar(); pres.ActualizarPresupuestoEnBaseAntigua(false, false, true); } if (Nombre == "ModificarConceptoPrecioTarifas") { // Importa el precio // Contar cuantas facturas existen con este IDPyT. bool TieneFacturas = false; bool PasadasAcontabilidad = false; bool sePuedeModificarElPrecio = false; string ResultadoLog = ""; this.IDActual[0] = CambiarIDPyT; this.Leer(); //El concepto se puede cambiar siempre string ConceptoAntiguo = (string)this["Concepto"]; if (ConceptoAntiguo != CambiarConcepto) { Datos.Instancia().executeSQL("UPDATE PresupuestoYTarifa SET Concepto = '" + CambiarConcepto.Replace("'", "''") + "' WHERE IDPyT = " + this["IDPyT"].ToString()); ResultadoLog = "Presupuesto: " + this.ObjetoAsociado("Presupuesto").DescripcionNormal + ". Tarifa Modificada: " + this.ObjetoAsociado("Tarifa")["Codigo"].ToString(); ResultadoLog += ". Concepto Antiguo: " + ConceptoAntiguo.ToString() + ". Concepto Nuevo: " + CambiarConcepto.ToString(); mensajeMetodosModificar = "Se ha modificado el concepto. " + Datos.CRLF; PROT.NegocioGeneral.Log.Log.GrabarLog(UsuarioActual, PROT.NegocioGeneral.Log.LogTipoEnum.CambiosEnTarifas, ResultadoLog); } decimal PrecioAntiguo = (decimal)this["Precio"]; if (PrecioAntiguo != CambiarPrecio) { string sql = "SELECT DISTINCT IDFactura FROM FacturaDetalle WHERE IDPYT = " + this.IDActual[0]; DataTable dt = Datos.Instancia().getDataTable(sql); if (dt.Rows.Count != 0) { TieneFacturas = true; } // Se puede modificar cuando. // - No hay facturas. // - Existen facturas, pero tiene permiso para modificar y no están pasadas a contabilidad // - Existen facturas, tiene permiso para modificar y además un permiso especial para cuando están pasadas a contabilidad if (!TieneFacturas || UsuarioActual.Permiso("MET", "Presupuesto", "ModificarTarifasConFacturas")) { if (TieneFacturas) { foreach (DataRow dr in dt.Rows) { LCC.Negocio.Facturas.Factura fac = new LCC.Negocio.Facturas.Factura(); fac.IDActual[0] = (int)dr[0]; fac.Leer(); if ((bool)fac["Contabilidad"]) { PasadasAcontabilidad = true; break; } } // - Existen facturas, pero tiene permiso para modificar y no están pasadas a contabilidad if (!PasadasAcontabilidad) { sePuedeModificarElPrecio = true; } // - Existen facturas, tiene permiso para modificar y además un permiso especial para cuando están pasadas a contabilidad if (PasadasAcontabilidad && UsuarioActual.Permiso("MET", "Presupuesto", "ModificarTarifasConFacturasContabilidad")) { sePuedeModificarElPrecio = true; } } else { // - No hay facturas. sePuedeModificarElPrecio = true; } } //Modificación del precio if (sePuedeModificarElPrecio) { ResultadoLog = "Presupuesto: " + this.ObjetoAsociado("Presupuesto").DescripcionNormal + ". Tarifa Modificada: " + this.ObjetoAsociado("Tarifa")["Codigo"].ToString(); Datos.Instancia().executeSQL("UPDATE PresupuestoYTarifa SET Precio = " + CambiarPrecio.ToString().Replace(",", ".") + " WHERE IDPyT = " + this["IDPyT"].ToString()); ResultadoLog += ". Precio Antiguo: " + PrecioAntiguo.ToString() + ". Precio Nuevo: " + CambiarPrecio.ToString(); mensajeMetodosModificar += "Se ha modificado el precio. "; PROT.NegocioGeneral.Log.Log.GrabarLog(UsuarioActual, PROT.NegocioGeneral.Log.LogTipoEnum.CambiosEnTarifas, ResultadoLog); //Regenera las facturas if (TieneFacturas) { foreach (DataRow dr in dt.Rows) { LCC.Negocio.Facturas.Factura fac = new LCC.Negocio.Facturas.Factura(); fac.IDActual[0] = (int)dr[0]; fac.Leer(); fac.Guardar(); } } } else { mensajeMetodosModificar += "No se puede modificar el precio porque existen facturas."; } } } if (Nombre == "ModificarUnidadesTarifas") { //Las unidades y el divisior se pueden cambiar siempre. double UnidadesAntiguo; object DivisorAntiguo; string ResultadoLog = ""; PresupuestoVersionDetalle pv = new PresupuestoVersionDetalle(); pv.IDActual[0] = CambiarIDPresupuestoVersion; pv.IDActual[1] = (int)this["IDPyT"]; pv.Leer(); if (CambiarDivisor == null) { CambiarDivisor = DBNull.Value; } UnidadesAntiguo = (double)pv["Unidades"]; DivisorAntiguo = pv["DivisorUnidades"]; if (UnidadesAntiguo != CambiarUnidades || DivisorAntiguo != CambiarDivisor) { pv["Unidades"] = CambiarUnidades; pv["DivisorUnidades"] = CambiarDivisor; pv.Guardar(false); ResultadoLog += ". Unidades Antiguas: " + UnidadesAntiguo.ToString() + ". Unidades Nuevas: " + CambiarUnidades.ToString() + ". Divisor Antiguo: " + DivisorAntiguo.ToString() + ". Divisor Nuevo: " + CambiarDivisor.ToString(); PROT.NegocioGeneral.Log.Log.GrabarLog(UsuarioActual, PROT.NegocioGeneral.Log.LogTipoEnum.CambiosEnTarifas, ResultadoLog); mensajeMetodosModificar += "Se ha modificado las unidades de la tarifa " + ObjetoAsociado("Tarifa")["Codigo"].ToString() + Datos.CRLF; } } if (Nombre == "Restaurar") { if (this.PermisoModificar) { this["Concepto"] = DBNull.Value; } return; } base.Metodo(pag, Nombre); }