/// <summary> /// Devuelve dictionary con el importe que le corresponde a cada finca en este grupo. /// Si this.CoeficientesCustom == true y el parámetro coefGrupoReal != null, entonces se usará este parámetro como el total de coeficientes /// del grupo para los cálculos. /// </summary> /// <param name="tipo"></param> /// <param name="coefGrupoReal"></param> /// <returns></returns> public Dictionary <Finca, decimal> GetImportePorFinca(TipoRepartoPresupuesto tipo, double?coefGrupoReal = null) { switch (tipo) { case TipoRepartoPresupuesto.Lineal: decimal importe = this.Importe / this.FincasCoeficientes.Count; return((Dictionary <Finca, decimal>) this.FincasCoeficientes .Select(x => new KeyValuePair <Finca, decimal>(x.Key, importe))); case TipoRepartoPresupuesto.SoloCoeficientes: return((Dictionary <Finca, decimal>) this.FincasCoeficientes .Select(x => new KeyValuePair <Finca, decimal>(x.Key, Math.Round((decimal)x.Value * this.Importe, 2)))); case TipoRepartoPresupuesto.CoeficientesYGrupos: double coefGrupo = (this.CoeficientesCustom && coefGrupoReal != null) ? (double)coefGrupoReal : this.FincasCoeficientes.Select(x => x.Value).Sum(); return((Dictionary <Finca, decimal>) this.FincasCoeficientes .Select(x => { double coefRelativo = x.Key.Coeficiente / coefGrupo; double dImp = (double)this.Importe; return new KeyValuePair <Finca, decimal>(x.Key, (decimal)Math.Round(dImp * coefRelativo, 2)); })); default: return(null); } }
public bool TrySetTipoReparto(TipoRepartoPresupuesto tipo) { if (this.Aceptado) { return(false); } this._TipoReparto = tipo; return(true); }
public PresupuestoDLO( int id, int idCdad, string titulo, decimal total, bool aceptado, TipoRepartoPresupuesto tipoReparto, int codigo) { this.Id = id; this.IdOwnerComunidad = idCdad; this.Titulo = titulo; this.Total = total; this.Aceptado = aceptado; this.TipoReparto = tipoReparto; this.Codigo = codigo; }
public Presupuesto( int id, int idComunidad, int idEjercicio, int codigo, AutoCodigoData ACData, bool aceptado = false, TipoRepartoPresupuesto tipo = TipoRepartoPresupuesto.CoeficientesYGrupos) { this._Id = id; this._IdOwnerComunidad = idComunidad; this._IdOwnerEjercicio = idEjercicio; this.Codigo = new AutoCodigoOwnerCdad <Presupuesto>(ACData, ACodigoCCheckType.Pptos, codigo); this._Aceptado = aceptado; this._TipoReparto = tipo; this._GruposDeGasto = new List <iGrupoGastos>(); }