//Mirem els gastos dels dos darrers mesos i veiem si hi ha hahut millora private string _MejoraGastoRespecto2MesesAtras(SummaryTotal_Mensual _GastoMesAnterior, SummaryTotal_Mensual _Gasto2MesesAtras) { string _Res = ""; decimal valorDivActualMayor; decimal valorDivActualMenor; decimal valorDiferencia; if (_Gasto2MesesAtras != null) { //_GastoMesAnterior.GastoTotal = 15000; //_Gasto2MesesAtras.GastoTotal = 5000; valorDiferencia = Math.Abs(_GastoMesAnterior.GastoTotal - _Gasto2MesesAtras.GastoTotal); valorDivActualMayor = Math.Abs((Math.Round((_GastoMesAnterior.GastoTotal / _Gasto2MesesAtras.GastoTotal) * 100) - 100)); valorDivActualMenor = 100 - (Math.Round((_Gasto2MesesAtras.GastoTotal / _GastoMesAnterior.GastoTotal) * 100)); if (_GastoMesAnterior.GastoTotal > _Gasto2MesesAtras.GastoTotal) { _Res = string.Format(Resources.Descripciones.mailGastoRespecto2MesesAtrasMas, valorDiferencia, valorDivActualMenor, _GetMesLetras(_Gasto2MesesAtras.Mes)); } if (_GastoMesAnterior.GastoTotal == _Gasto2MesesAtras.GastoTotal) { _Res = Resources.Descripciones.mailGastoRespecto2MesesAtrasIgual; } if (_GastoMesAnterior.GastoTotal < _Gasto2MesesAtras.GastoTotal) { _Res = string.Format(Resources.Descripciones.mailGastoRespecto2MesesAtrasMenos, valorDiferencia, valorDivActualMayor, _GetMesLetras(_Gasto2MesesAtras.Mes)); } } return(_Res); }
private string _VerMaximoGastoAnual(SummaryTotal_Mensual _GastoMesAnterior, decimal _MaxGasto) { string _Res = ""; if (_GastoMesAnterior.GastoTotal == _MaxGasto && _GastoMesAnterior.Mes > 1) { _Res = String.Format(Resources.Descripciones.mailMaximoGastadoporMes, _GetMesLetras(_GastoMesAnterior.Mes)); } return(_Res); }
private string _GastoMaximoDia(SummaryTotal_Mensual _SummaryMensual, string _Usuari) { int i = 0; string _Res = ""; Gasto _Gasto; string idGasto; string[] _infoDiaConMasGasto; string[] _idsGastos; var context = new ExpensesEF.Entities(); //Info del día on més s'ha gastat System.Data.Entity.Core.Objects.ObjectParameter myInfoExpensesDay = new System.Data.Entity.Core.Objects.ObjectParameter("Res", typeof(string)); context.spGetInfoDiaMaxGastoMes(_SummaryMensual.Año, _SummaryMensual.Mes, _Usuari, myInfoExpensesDay); _infoDiaConMasGasto = myInfoExpensesDay.Value.ToString().Split('|'); //Si el dia és >0 hi ha hagut un dia amb gasto màxim if (int.Parse(_infoDiaConMasGasto[0]) > 0) { _Res += string.Format(Resources.Descripciones.mailDiaMasGasto, _infoDiaConMasGasto[0], _infoDiaConMasGasto[1]); _idsGastos = _infoDiaConMasGasto[2].Split(','); while (i < _idsGastos.Length) { idGasto = _idsGastos[i]; _Gasto = context.Gasto.Where(x => x.idGasto.ToString() == idGasto).FirstOrDefault(); i = i + 1; if (i == _idsGastos.Length) { if (i == 1) { _Res += "\"" + _Gasto.Concepto + "\""; } else { _Res = _Res.Substring(0, _Res.Length - 2); _Res += Resources.Descripciones.y + "\"" + _Gasto.Concepto + "\""; } } else { _Res += "\"" + _Gasto.Concepto + "\"" + ", "; } } _Res += ")."; } return(_Res); }
//lògica de l'estalvi a fi de mes private string _AhorroDelMes(SummaryTotal_Mensual _GastoMesAnterior, SummaryTotal_Mensual _Gasto2MesosEnrera, string _Usuari) { string _Res = ""; decimal _AhorroMes; var context = new ExpensesEF.Entities(); try { _AhorroMes = context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año && x.Mes == _GastoMesAnterior.Mes).FirstOrDefault().AhorroFinDeMes.GetValueOrDefault(); if (_AhorroMes > 0) { _Res = string.Format(Resources.Descripciones.mailAhorroMesMayor, _AhorroMes); if (_Gasto2MesosEnrera.AhorroFinDeMes > 0) { _Res += string.Format(Resources.Descripciones.mailAhorroMesMayorY2MesesMayor, _GetMesLetras(_Gasto2MesosEnrera.Mes), _Gasto2MesosEnrera.AhorroFinDeMes); } else { _Res += string.Format(Resources.Descripciones.mailAhorroMesMayorY2MesesMenorOIgual, _GetMesLetras(_Gasto2MesosEnrera.Mes), Math.Abs(_Gasto2MesosEnrera.AhorroFinDeMes.GetValueOrDefault())); } } if (_AhorroMes == 0) { _Res = string.Format(Resources.Descripciones.mailAhorroMesIgual); } if (_AhorroMes < 0) { _Res = string.Format(Resources.Descripciones.mailAhorroMesMenor, Math.Abs(_AhorroMes)); if (_Gasto2MesosEnrera.AhorroFinDeMes > 0) { _Res += string.Format(Resources.Descripciones.mailAhorroMesMenorY2MesesMayor); } else { _Res += string.Format(Resources.Descripciones.mailAhorroMesMenorY2MesesMenorOIgual); } } } catch (Exception _ex) { } return(_Res); }
//Total gasto Anual private string _TotalGastosAnual(SummaryTotal_Mensual _GastoMesAnterior, string _Usuari) { string _Res = ""; var context = new ExpensesEF.Entities(); decimal _TotalAnualAcumulado, _TotalAnualAcumuladoAnyoAnterior, diferencia; try { _TotalAnualAcumulado = context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año).Sum(x => x.GastoTotal); if (_GastoMesAnterior.Mes == 12) { //El darrer mes de l'any, només treiem el total. _Res += string.Format(Resources.Descripciones.mailTotalGastadoAnual, _TotalAnualAcumulado); } else { _Res += string.Format(Resources.Descripciones.mailTotalGastado, _TotalAnualAcumulado); _TotalAnualAcumuladoAnyoAnterior = context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año - 1 && x.Mes <= _GastoMesAnterior.Mes).Sum(x => x.GastoTotal); diferencia = Math.Abs(_TotalAnualAcumulado - _TotalAnualAcumuladoAnyoAnterior); if (_TotalAnualAcumuladoAnyoAnterior < _TotalAnualAcumulado) { _Res = string.Format(Resources.Descripciones.mailTotalGastadoAnyoAnteriorMenos, _TotalAnualAcumulado, _TotalAnualAcumuladoAnyoAnterior, diferencia); } if (_TotalAnualAcumuladoAnyoAnterior == _TotalAnualAcumulado) { _Res = string.Format(Resources.Descripciones.mailTotalGastadoAnyoAnteriorIgual, _TotalAnualAcumulado); } if (_TotalAnualAcumuladoAnyoAnterior > _TotalAnualAcumulado) { _Res = string.Format(Resources.Descripciones.mailTotalGastadoAnyoAnteriorMas, _TotalAnualAcumulado, _TotalAnualAcumuladoAnyoAnterior, diferencia); } } } catch (Exception _ex) {} return(_Res); }
//Per a cada tipo de gasto, ens diu el que ens hem gastat private string _TiposGastos(SummaryTotal_Mensual _GastoMesAnterior, string _Usuari) { string _Res = ""; var context = new ExpensesEF.Entities(); decimal _TotalGastoMensual; List <SummaryPorTipoGasto_Mensual> _TiposGastosMensual; try { _TotalGastoMensual = Math.Round(context.SummaryPorTipoGasto_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año && x.Mes == _GastoMesAnterior.Mes).Sum(x => x.Valor)); _TiposGastosMensual = context.SummaryPorTipoGasto_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año && x.Mes == _GastoMesAnterior.Mes).ToList(); //Miramos si ha gastado algo este mes... if (_TiposGastosMensual.Count > 0) { _Res = string.Format(Resources.Descripciones.mailTipoGastoCabecera, _GetMesLetras(_GastoMesAnterior.Mes)); _Res += "<table>"; foreach (SummaryPorTipoGasto_Mensual TipoGasto_Mensual in _TiposGastosMensual) { _Res += "<tr>"; _Res += "<td>"; _Res += context.TipoGastoTextosTraduccion.Where(x => x.idTipoGasto == TipoGasto_Mensual.idTipoGasto && x.idIdioma == _idIdioma).FirstOrDefault().Descripcion + ": "; _Res += "</td>"; _Res += "<td>"; _Res += "<b>" + (TipoGasto_Mensual.Valor) + "</b>" + "€ "; _Res += "</td>"; _Res += "<td>"; _Res += "(" + Math.Round((TipoGasto_Mensual.Valor / _TotalGastoMensual) * 100) + "%)"; _Res += "</td>"; _Res += "</tr>"; } _Res += "</table>"; } } catch (Exception _ex) { } return(_Res); }
//mirem els grups de gastos private string _GruposGastos(SummaryTotal_Mensual _GastoMesAnterior, string _Usuari) { string _Res = ""; string _GrupoGastoNombre = ""; var context = new ExpensesEF.Entities(); decimal _TotalGastoMensual; decimal _ValorResto; List <SummaryPorGrupoGasto_Mensual> _GrupoGastosMensual; try { _TotalGastoMensual = (context.SummaryPorTipoGasto_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año && x.Mes == _GastoMesAnterior.Mes).Sum(x => x.Valor)); _GrupoGastosMensual = context.SummaryPorGrupoGasto_Mensual.Where(x => x.idUser == _Usuari && x.Año == _GastoMesAnterior.Año && x.Mes == _GastoMesAnterior.Mes).ToList(); //Miramos si ha habido algún grupo de gasto este mes... if (_GrupoGastosMensual.Count > 0) { _Res += string.Format(Resources.Descripciones.mailGrupoGastos, _GrupoGastosMensual.Count + 1); _ValorResto = _TotalGastoMensual; foreach (SummaryPorGrupoGasto_Mensual GrupoGasto_Mensual in _GrupoGastosMensual) { _GrupoGastoNombre = context.GrupoGastoTextosTraduccion.Where(x => x.idGrupoGasto == GrupoGasto_Mensual.idGrupoGasto && x.idIdioma == _idIdioma).FirstOrDefault().Descripcion + " "; _Res += _GrupoGastoNombre + "(<b>" + GrupoGasto_Mensual.Valor + "€</b>), "; _ValorResto -= GrupoGasto_Mensual.Valor; } _Res = _Res.Substring(0, _Res.Length - 2); _Res += string.Format(Resources.Descripciones.mailGrupoGastosResto, _ValorResto); } else { _Res = Resources.Descripciones.mailNoGrupoGasto; } } catch (Exception _ex) { } return(_Res); }
private string _GastoMedioMensual(SummaryTotal_Mensual _GastoMesAnterior, string _Usuari, int MesActual, Dates _Data2MesosEnrera) { string _Res = ""; decimal valorDiferencia, valorDivActualMayor, valorDivActualMenor, _MediaGastoMensualAnual; var context = new ExpensesEF.Entities(); try { _MediaGastoMensualAnual = Math.Round((context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari && x.Año == _Data2MesosEnrera.Any).Sum(x => x.GastoTotal)) / MesActual); if (_GastoMesAnterior.Mes > 1) { valorDiferencia = Math.Abs(_GastoMesAnterior.GastoTotal - _MediaGastoMensualAnual); valorDivActualMenor = Math.Abs((Math.Round((_GastoMesAnterior.GastoTotal / _MediaGastoMensualAnual) * 100) - 100)); valorDivActualMayor = 100 - (Math.Round((_MediaGastoMensualAnual / _GastoMesAnterior.GastoTotal) * 100)); if (_GastoMesAnterior.GastoTotal > _MediaGastoMensualAnual) { _Res = string.Format(Resources.Descripciones.mailGastoMedioMensualMayorMedia, _MediaGastoMensualAnual, valorDiferencia, valorDivActualMayor); } if (_GastoMesAnterior.GastoTotal == _MediaGastoMensualAnual) { _Res = string.Format(Resources.Descripciones.mailGastoMedioMensualIgualMedia, _MediaGastoMensualAnual); } if (_GastoMesAnterior.GastoTotal < _MediaGastoMensualAnual) { _Res = string.Format(Resources.Descripciones.mailGastoMedioMensualMenorMedia, _MediaGastoMensualAnual, valorDiferencia, valorDivActualMenor); } } } catch (Exception _ex) { } return(_Res); }