//Retorna Mes i any dels processos a executar... private Dates _GetMesAny() { Dates _dates = new Dates(); if (DateTime.Now.Month == 1) { _dates.Mes = 12; _dates.Any = DateTime.Now.Year - 1; } else { _dates.Mes = DateTime.Now.Month - 1; _dates.Any = DateTime.Now.Year; } return(_dates); }
private string _CuerpoMensaje(ValuesEnvioEmail _Email) { string _Res = ""; var context = new ExpensesEF.Entities(); var _DataMesAnterior = new Dates(); var _Data2MesosEnrera = new Dates(); AspNetUsers _Usuari; SummaryTotal_Mensual _SummaryMensual; SummaryTotal_Mensual _SummaryMensual2MesosEnrera; SummaryRegalo_Mensual _SummaryRegaloMensual; decimal _MaxGastoMensual; string _Header; try { _DataMesAnterior = _GetMesAny(); _Data2MesosEnrera = _GetMesAnterior(); _Usuari = context.AspNetUsers.Where(x => x.Id == _Email.idUser).FirstOrDefault(); _Header = context.ValuesEnvioEmail.Where(x => x.idUser == _Usuari.Id).FirstOrDefault().Header; _SummaryMensual = context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari.Id && x.Mes == _DataMesAnterior.Mes && x.Año == _DataMesAnterior.Any).FirstOrDefault(); _SummaryMensual2MesosEnrera = context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari.Id && x.Mes == _Data2MesosEnrera.Mes && x.Año == _Data2MesosEnrera.Any).FirstOrDefault(); _SummaryRegaloMensual = context.SummaryRegalo_Mensual.Where(x => x.idUser == _Usuari.Id && x.Mes == _DataMesAnterior.Mes && x.Año == _DataMesAnterior.Any).FirstOrDefault(); _MaxGastoMensual = context.SummaryTotal_Mensual.Where(x => x.idUser == _Usuari.Id && x.Año == _Data2MesosEnrera.Any).Max(x => x.GastoTotal); //Primera linea del mail _Res = String.Format(Resources.Descripciones.mailLinea1, _Header); //Linea on enviem el total de gasto del mes anterior if (_Email.TotalGastadoMesAnterior == true) { if (_SummaryMensual != null) { _Res += String.Format(Resources.Descripciones.mailTotalGastadoMesAnterior, _GetMesLetras(_SummaryMensual.Mes), _SummaryMensual.GastoTotal); _Res += _MejoraGastoRespecto2MesesAtras(_SummaryMensual, _SummaryMensual2MesosEnrera); _Res += _VerMaximoGastoAnual(_SummaryMensual, _MaxGastoMensual); _Res += _GastoMedioMensual(_SummaryMensual, _Usuari.Id, _SummaryMensual.Mes, _Data2MesosEnrera); _Res += _GastoMaximoDia(_SummaryMensual, _Usuari.Id); _Res += _AhorroDelMes(_SummaryMensual, _SummaryMensual2MesosEnrera, _Usuari.Id); _Res += _TiposGastos(_SummaryMensual, _Usuari.Id); _Res += _GruposGastos(_SummaryMensual, _Usuari.Id); _Res += _TotalGastosAnual(_SummaryMensual, _Usuari.Id); } else { _Res = Resources.Descripciones.mailNoGasto; } } /* * //Linea d'estalvi respecte gastos * if (_Email.AhorroMesAnterior == true && _SummaryMensual != null && _SummaryMensual.AhorroFinDeMes != 0) * { * _Res += String.Format(Resources.Descripciones.mailAhorroMesAnterior, _SummaryMensual.AhorroFinDeMes); * } * * //Linea de regals el mes anterior * if (_Email.RegalosMesAnterior == true && _SummaryRegaloMensual != null) * { * _Res += String.Format(Resources.Descripciones.mailRegaloMesAnterior, _SummaryRegaloMensual.Valor); * } */ _Res += Resources.Descripciones.mailBottom; } 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); }