public ActionResult DeleteUnidadDeTiempo(Int32 UnidadTiempoId) { try { UnidadTiempo unidadtiempo = context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == UnidadTiempoId); if (unidadtiempo.EsActivo) { unidadtiempo.EsActivo = false; //Si estaba como activo ponemos a otro por defecto como activo UnidadTiempo unidadtiempoNuevoActivo = context.UnidadTiempo.Where(x => x.Estado.Equals("ACT")).First(); if (unidadtiempoNuevoActivo != null) { unidadtiempoNuevoActivo.EsActivo = true; } } unidadtiempo.Estado = ConstantHelpers.EstadoInactivo; context.UnidadTiempo.Where(x => x.Orden > unidadtiempo.Orden && x.Estado.Equals(ConstantHelpers.EstadoActivo)).ToList().ForEach(x => x.Orden = x.Orden - 1); context.Entry(unidadtiempo).State = System.Data.Entity.EntityState.Modified; context.SaveChanges(); PostMessage(MessageType.Success); } catch { PostMessage(MessageType.Error); } return(RedirectToAction("LstUnidadDeTiempo")); }
public Boolean guardar(clsUnidadTiempo UnidadTiempo) { try { using (CuentasPorCobrarEntities ent = new CuentasPorCobrarEntities()) { //ojo mon se lo crea pa tener referencia //monetariodet es el nombre de la tabla int x = this.getIdSiguiente(); UnidadTiempo uni = new UnidadTiempo() { idEmpresa = UnidadTiempo.idEmpresa, idUnidadTiempo = x, Descripcion = UnidadTiempo.Descripcion, Estado = UnidadTiempo.Estado, }; ent.AddToUnidadTiempo(uni); ent.SaveChanges(); } return(true); } catch (Exception) { return(false); } }
public void Fill(CargarDatosContext datacontext) { baseFill(datacontext); if (UnidadTiempoId.HasValue) { UnidadTiempo unidadtiempo = datacontext.context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == UnidadTiempoId.Value); this.Descripcion = unidadtiempo.Descripcion; this.Anio = unidadtiempo.Anio; this.Mes = unidadtiempo.Mes; this.EsActivo = unidadtiempo.EsActivo; this.Orden = unidadtiempo.Orden; } }
public List <object> EvaluarTiempoPorHoras(List <Pedido> pedidos) { double minutos; double cantidad; List <object> pedidossFechas = new List <object>(); foreach (Pedido pedido in pedidos) { double horas = Math.Abs(_calcularDiferenciaDeFechas.DirerenciaFechaActualYFechaEvento(pedido.FechaPedido, _fechaActual)); minutos = horas * 60; double tiempoViaje = Math.Round(minutos); UnidadTiempo unidadTiempo = UnidadTiempo.Minutos; // pedido.EstadoPedido.TipoExpresiones = evento.Fecha > _fechaActual ? Estatus.Ocurrirá : Estatus.Ocurrió; if (horas > 1 && horas < 24) { tiempoViaje = Math.Round(horas); unidadTiempo = UnidadTiempo.Horas; } if (horas > 24 && horas < 730) { cantidad = horas / 24; tiempoViaje = Math.Round(cantidad); unidadTiempo = UnidadTiempo.Dias; } if (horas > 730) { cantidad = horas / 730; tiempoViaje = (Math.Round(cantidad) + 1); unidadTiempo = UnidadTiempo.Meses; } pedidossFechas.Add(tiempoViaje); pedidossFechas.Add(unidadTiempo); } return(pedidossFechas); }
public void CargarDatos(CargarDatosContext dataContext, Int32?anio) { baseFill(dataContext); UnidadTiempo _UnidadTiempo = dataContext.context.UnidadTiempo.FirstOrDefault(x => x.EsActivo); DesUnidadTiempo = _UnidadTiempo == null ? String.Empty : _UnidadTiempo.Descripcion; this.Anio = anio ?? DateTime.Now.Year; NEdificios = dataContext.context.Edificio.Where(x => x.Estado.Equals("ACT")).Count().ToString(); NUsuariosAdmin = dataContext.context.Usuario.Where(x => x.Rol.Equals("ADM")).Count().ToString(); var anioActual = DateTime.Now.Year; for (int i = 2018; i <= anioActual; i++) { LstAnios.Add(new SelectListItem { Value = i.ToString(), Text = i.ToString() }); } var lstEdificio = dataContext.context.Edificio.Where(x => x.Estado == ConstantHelpers.EstadoActivo).Select(x => x.EdificioId + "-" + x.Nombre).ToList(); var lstVisitas = dataContext.context.Visita.Where(x => x.Fecha.Year == this.Anio && x.Tipo == "WEB").ToList(); foreach (var edi in lstEdificio) { var auxSplit = edi.Split('-'); var edificioId = auxSplit[0].ToInteger(); var cant = lstVisitas.Count(x => x.EdificioId == edificioId); DicVisitaEdificioWeb.Add(edi, cant); } lstVisitas = dataContext.context.Visita.Where(x => x.Fecha.Year == this.Anio && x.Tipo == "APP").ToList(); foreach (var edi in lstEdificio) { var auxSplit = edi.Split('-'); var edificioId = auxSplit[0].ToInteger(); var cant = lstVisitas.Count(x => x.EdificioId == edificioId); DicVisitaEdificioApp.Add(edi, cant); } }
public void Fill(CargarDatosContext datacontext, Int32 EdificioId, Int32?UnidadTiempoId) { baseFill(datacontext); this.EdificioId = EdificioId; this.UnidadTiempoId = UnidadTiempoId; //LstTrabajadores = datacontext.context.Trabajador.Where(x => x.EdificioId == EdificioId && x.Estado == ConstantHelpers.EstadoActivo).ToList(); var lstunidadtiempo = datacontext.context.UnidadTiempo.OrderByDescending(x => x.Anio).OrderByDescending(x => x.Mes).Where(x => x.Estado == ConstantHelpers.EstadoActivo); foreach (var item in lstunidadtiempo) { LstComboUnidadTiempo.Add(new SelectListItem { Value = item.UnidadTiempoId.ToString(), Text = item.Descripcion.ToUpper() }); } Edificio = datacontext.context.Edificio.Find(EdificioId); objUnidadTiempo = datacontext.context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == UnidadTiempoId); PlanillaR planillaR = datacontext.context.PlanillaR.FirstOrDefault(x => x.EdificioId == EdificioId && x.UnidadTiempoId == UnidadTiempoId); if (planillaR != null) { RutaExcel = planillaR.RutaExcel; RutaPDF = planillaR.RutaPDF; } //Ruta = //foreach (var item in LstTrabajadores) //{ // Planilla p = datacontext.context.Planilla.Where(x => x.TrabajadorId == item.TrabajadorId && x.UnidadTiempoId == UnidadTiempoId).FirstOrDefault(); // PlanillaQuincena pq = datacontext.context.PlanillaQuincena.Where(x => x.TrabajadorId == item.TrabajadorId && x.UnidadTiempoId == UnidadTiempoId).FirstOrDefault(); // if (p != null && pq != null) // { // p.AdelantoQuincena = pq.TotalQuincena ?? 0; // } // LstPlanilla.Add(p); //} }
public ActionResult ExportPlanillaMensual(Int32 UnidadTiempoId, Int32 EdificioId) { try { ReporteLogic reportLogic = new ReporteLogic(); reportLogic.Server = Server; reportLogic.context = context; List <Planilla> lista = context.Planilla.Where(x => x.UnidadTiempoId == UnidadTiempoId && x.Trabajador.EdificioId == EdificioId).ToList(); UnidadTiempo unidadTiempo = context.UnidadTiempo.Find(UnidadTiempoId); Edificio edificio = context.Edificio.Find(EdificioId); String Titulo = "REPORTE MENSUAL - " + edificio.Nombre + " - " + unidadTiempo.Descripcion; MemoryStream outputMemoryStream = reportLogic.GetReportMensual(Titulo, lista); return(File(outputMemoryStream, "application/vnd.ms-excel", Titulo + ".xls")); } catch (Exception ex) { PostMessage(MessageType.Error, "Ocurrió un error, por favor inténtelo más tarde"); return(RedirectToAction("EditPlanilla", new { EdificioId = EdificioId, UnidadTiempoId = UnidadTiempoId })); } }
private void CargarAcumuladoActual(CargarDatosContext datacontext, UnidadTiempo unidadTiempoIdSig) { #region antiguoMetodo // var edificio = datacontext.context.Edificio.FirstOrDefault(x => x.EdificioId == EdificioId); // List<Cuota> lstIngresos = new List<Cuota>(); //// List<DetalleGasto> lstGastos = new List<DetalleGasto>(); // Decimal saldoAnterior = 0M; // var departamentos = edificio.Departamento.ToList(); // foreach (var depa in departamentos) // { // Cuota cuota = datacontext.context.Cuota.FirstOrDefault(x => x.DepartamentoId == depa.DepartamentoId && x.UnidadTiempoId == unidadTiempoIdSig.UnidadTiempoId); // if (cuota == null) continue; // lstIngresos.Add(cuota); // } // Gasto Gasto = datacontext.context.Gasto.FirstOrDefault(x => x.EdificioId == EdificioId && x.UnidadTiempoId == unidadTiempoIdSig.UnidadTiempoId && x.Estado.Equals(ConstantHelpers.EstadoActivo)); // if (Gasto == null) return; // var lstGastos = datacontext.context.DetalleGasto.Where(x => x.GastoId == Gasto.GastoId && x.Estado.Equals(ConstantHelpers.EstadoActivo)).ToList(); // UnidadTiempo objUnidadTiempoAnterior = datacontext.context.UnidadTiempo.FirstOrDefault(x => x.Orden == unidadTiempoIdSig.Orden - 1 && x.Estado.Equals(ConstantHelpers.EstadoActivo)); // if (objUnidadTiempoAnterior == null) // { // saldoAnterior = 0M; // } // else // { // var GastoMesAnterior = datacontext.context.Gasto.FirstOrDefault(x => x.EdificioId == EdificioId && x.UnidadTiempoId == objUnidadTiempoAnterior.UnidadTiempoId && x.Estado.Equals(ConstantHelpers.EstadoActivo)); // saldoAnterior = GastoMesAnterior.SaldoMes.Value; // } // Decimal TotalIngresosTotal = 0M; // Decimal TotalIngresosMora = 0M; // Decimal TotalIngresosCuota = 0M; // Decimal TotalGastos = 0M; // List<Departamento> LstDepartamentos = new List<Departamento>(); // LstDepartamentos = datacontext.context.Departamento.Where(x => x.EdificioId == EdificioId && x.Estado.Equals(ConstantHelpers.EstadoActivo)).ToList(); // List<DateTime> LstFechasEmision = new List<DateTime>(); // UnidadTiempo unidadTiempoActual = unidadTiempoIdSig; // for (int i = 0; i < lstIngresos.Count; i++) // if (!lstIngresos[i].Pagado) // LstFechasEmision.Add(new DateTime(unidadTiempoActual.Anio, unidadTiempoActual.Mes, edificio.DiaEmisionCuota)); // else // LstFechasEmision.Add(DateTime.MinValue); // UnidadTiempo unidadTiempoAnterior = unidadTiempoActual; // while (true) // { // if (unidadTiempoAnterior.Orden == 1) break; // unidadTiempoAnterior = datacontext.context.UnidadTiempo.FirstOrDefault(x => x.Orden == unidadTiempoAnterior.Orden - 1 && x.Estado.Equals(ConstantHelpers.EstadoActivo)); // if (unidadTiempoAnterior == null) break; // CuotaComun cuotaComun = datacontext.context.CuotaComun.FirstOrDefault(x => x.EdificioId == EdificioId && x.UnidadTiempoId == unidadTiempoAnterior.UnidadTiempoId); // if (cuotaComun == null || cuotaComun.Pagado) break; // for (int i = 0; i < lstIngresos.Count; i++) // if (!lstIngresos[i].Pagado) // { // LstFechasEmision[i] = new DateTime(unidadTiempoAnterior.Anio, unidadTiempoAnterior.Mes, edificio.DiaEmisionCuota); // } // } // for (int i = 0; i < LstDepartamentos.Count; i++) // { // // int DiasTranscurridosMora = LstFechasEmision[i].Equals(DateTime.MinValue) ? 0 : (DateTime.Now.Date - LstFechasEmision[i].Date).Days - 1; ; // int DiasTranscurridosMora = LstFechasEmision[i].Equals(DateTime.MinValue) ? 0 : (FechaActualMora.Date - LstFechasEmision[i].Date).Days - 1; ; // Decimal moraUnitaria = edificio.TipoMora.Equals(ConstantHelpers.TipoMoraPorcentual) ? edificio.MontoCuota * edificio.PMora.Value / 100M : edificio.PMora.Value; // LstDepartamentos[i].MontoMora = moraUnitaria * DiasTranscurridosMora; // } // foreach (var gasto in lstGastos) // { // TotalGastos += gasto.Monto; // } // foreach (var cuota in lstIngresos) // { // cuota.Mora = cuota.Departamento.OmitirMora ? 0M : cuota.Departamento.MontoMora; // TotalIngresosMora += cuota.Mora; // TotalIngresosCuota += cuota.Total; // TotalIngresosTotal += cuota.Total + cuota.Mora; // } // SaldoActual = TotalIngresosTotal - TotalGastos; // Decimal SaldoAcumulado = 0M; // if (Gasto.SaldoMes != null) // SaldoAcumulado = Gasto.SaldoMes.Value; //Se utiliza el saldo acumulado de ese entonces // else // SaldoAcumulado = saldoAnterior + SaldoActual; // AcumuladoActual = SaldoAcumulado; // GastosActual = TotalGastos; // IngresosActual = TotalIngresosTotal; // UnidadTiempoAcumuladoActual = unidadTiempoActual.Descripcion; #endregion Decimal TotalPagosCuotas = datacontext.context.Cuota.Where(X => X.Pagado && X.Departamento.EdificioId == EdificioId).Sum(X => X.Total); Decimal TotalIngresosAdicionales = datacontext.context.Ingreso.Where(X => X.EdificioId == EdificioId).Sum(X => X.DetalleIngreso.Sum(Y => Y.Monto)); Decimal TotalGasto = datacontext.context.Gasto.Where(X => X.EdificioId == EdificioId).Sum(X => X.DetalleGasto.Sum(Y => Y.Monto)); GastosActual = datacontext.context.Gasto.Where(X => X.UnidadTiempoId == UnidadTiempoId && EdificioId == X.EdificioId).Sum(X => X.DetalleGasto.Sum(Y => Y.Monto)); IngresosActual = datacontext.context.Gasto.Where(X => X.UnidadTiempoId == UnidadTiempoId && EdificioId == X.EdificioId).Sum(X => X.DetalleGasto.Sum(Y => Y.Monto)); SaldoActual = IngresosActual - GastosActual; Acumulado = TotalPagosCuotas + TotalIngresosAdicionales - TotalGasto; AcumuladoActual = Acumulado - SaldoActual; }
public void Fill(CargarDatosContext datacontext) { try { baseFill(datacontext); UnidadTiempo unidadTiempoSig = null; Gasto gastoAcumulado = datacontext.context.Gasto.OrderBy(x => - x.UnidadTiempo.Orden).FirstOrDefault(x => x.Estado.Equals(ConstantHelpers.EstadoActivo) && x.EdificioId == EdificioId && x.SaldoMes.HasValue); if (gastoAcumulado != null) { Acumulado = gastoAcumulado.SaldoMes.Value; UltimaUnidadTiempoAcumulado = gastoAcumulado.UnidadTiempo.Descripcion; unidadTiempoSig = datacontext.context.UnidadTiempo.FirstOrDefault(x => x.Orden == gastoAcumulado.UnidadTiempo.Orden + 1 && x.Estado.Equals(ConstantHelpers.EstadoActivo)); } Edificio = datacontext.context.Edificio.FirstOrDefault(x => x.EdificioId == EdificioId); TipoMora = Edificio.TipoMora; MoraUnitariaGuardad = (double)Edificio.PMora.Value; List <UnidadTiempo> lstunidadtiempo = datacontext.context.UnidadTiempo.OrderBy(x => - x.Orden).Where(x => x.Estado == ConstantHelpers.EstadoActivo).ToList(); foreach (var item in lstunidadtiempo) { LstComboUnidadTiempo.Add(new SelectListItem { Value = item.UnidadTiempoId.ToString(), Text = item.Descripcion.ToUpper() }); } FechaActualMora = DateTime.Now; try { if (unidadTiempoSig != null) { CargarAcumuladoActual(datacontext, unidadTiempoSig); } } catch (Exception ex) { } if (UnidadTiempoId.HasValue) { LstLeyenda = datacontext.context.Leyenda.Where(X => X.BalanceUnidadTiempoEdificio.UnidadDeTiempoId == UnidadTiempoId && X.BalanceUnidadTiempoEdificio.EdificioId == EdificioId).ToList(); LeyendasPorDepartamento = new List <string>(); LstDepartamentos = new List <Departamento>(); LstDepartamentos = datacontext.context.Departamento.Where(x => x.EdificioId == EdificioId && x.Estado.Equals(ConstantHelpers.EstadoActivo)).ToList(); UnidadTiempo unidadTiempoActual = datacontext.context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == UnidadTiempoId); List <DateTime> LstFechasEmision = new List <DateTime>(); //LstDepartamentos.ForEach(x => x.MontoMora = ); LstCuota = datacontext.context.Cuota.Where(x => x.UnidadTiempoId == UnidadTiempoId && x.Departamento.EdificioId == EdificioId).ToList(); CuotasPorUnidadTiempo.Add(unidadTiempoActual.UnidadTiempoId.ToString(), LstCuota); UnidadTiempo unidadTiempoAnterior = unidadTiempoActual; LstUnidadTiempoString.Add(unidadTiempoAnterior.Descripcion.Remove(unidadTiempoAnterior.Descripcion.Length - 5)); // DateTime fechaEmisionUnidadTiempoActual = new DateTime(unidadTiempoActual.Anio, unidadTiempoActual.Mes, Edificio.DiaEmisionCuota); // LstDepartamentos.ForEach(x => LstFechasEmision.Add(new DateTime(unidadTiempoAnterior.Anio, unidadTiempoAnterior.Mes, Edificio.DiaEmisionCuota))); for (int i = 0; i < LstCuota.Count; i++) { if (LstCuota[i].Leyenda.HasValue) { LeyendasPorDepartamento.Add(LstCuota[i].Leyenda.Value.ToString()); } else { LeyendasPorDepartamento.Add(" "); } if (!LstCuota[i].Pagado) { LstFechasEmision.Add(new DateTime(unidadTiempoAnterior.Anio, unidadTiempoAnterior.Mes, Edificio.DiaEmisionCuota)); } else { LstFechasEmision.Add(DateTime.MinValue); } } while (true) { if (unidadTiempoAnterior.Orden == 1) { break; } unidadTiempoAnterior = datacontext.context.UnidadTiempo.FirstOrDefault(x => x.Orden == unidadTiempoAnterior.Orden - 1 && x.Estado.Equals(ConstantHelpers.EstadoActivo)); if (unidadTiempoAnterior == null) { break; } CuotaComun cuotaComun = datacontext.context.CuotaComun.FirstOrDefault(x => x.EdificioId == EdificioId && x.UnidadTiempoId == unidadTiempoAnterior.UnidadTiempoId); if (cuotaComun == null || cuotaComun.Pagado) { break; } LstUnidadTiempoString.Add(unidadTiempoAnterior.Descripcion.Remove(unidadTiempoAnterior.Descripcion.Length - 5)); LstCuota = datacontext.context.Cuota.Where(x => x.UnidadTiempo.Estado.Equals(ConstantHelpers.EstadoActivo) && x.UnidadTiempo.Mes == unidadTiempoAnterior.Mes && x.UnidadTiempo.Anio == unidadTiempoAnterior.Anio && x.Departamento.EdificioId == EdificioId).ToList(); CuotasPorUnidadTiempo.Add(unidadTiempoAnterior.UnidadTiempoId.ToString(), LstCuota); for (int i = 0; i < Math.Min(LstCuota.Count, LstFechasEmision.Count); i++) { if (!LstCuota[i].Pagado) { LstFechasEmision[i] = new DateTime(unidadTiempoAnterior.Anio, unidadTiempoAnterior.Mes, Edificio.DiaEmisionCuota); } } } for (int i = 0; i < LstDepartamentos.Count; i++) { int DiasTranscurridosMora = ((LstDepartamentos[i].FechaPago.HasValue ? LstDepartamentos[i].FechaPago.Value.Date : FechaActualMora.Date) - FechaActualMora.Date).Days - 1; DiasTranscurridosMora = DiasTranscurridosMora < 0 ? 0 : DiasTranscurridosMora; Decimal moraUnitaria = Edificio.TipoMora.Equals(ConstantHelpers.TipoMoraPorcentual) ? Edificio.MontoCuota * Edificio.PMora.Value / 100M : Edificio.PMora.Value; LstDepartamentos[i].MontoMora = moraUnitaria * DiasTranscurridosMora; LstDepartamentos[i].FechaPago = LstDepartamentos[i].FechaPago == null ? DateTime.Now : LstDepartamentos[i].FechaPago; } //foreach (Cuota c in LstCuota) //{ // LstEstadoCuota.Add(c.Estado == "FIN"); // if (HasDebt(c)) LstObservacion.Add(ConstantHelpers.DeudasActivas); // else LstObservacion.Add(ConstantHelpers.DeudasCerradas); //} } } catch (Exception) { CuotasPorUnidadTiempo = new Dictionary <string, List <Cuota> >(); LstUnidadTiempoString = new List <string>(); LstDepartamentos = new List <Departamento>(); } }
public ActionResult AddEditUnidadDeTiempo(AddEditUnidadDeTiempoViewModel ViewModel) { if (!ModelState.IsValid) { ViewModel.Fill(CargarDatosContext()); TryUpdateModel(ViewModel); return(View(ViewModel)); } try { UnidadTiempo unidaddetiempo = null; if (ViewModel.UnidadTiempoId.HasValue) { if (context.UnidadTiempo.Any(x => x.Estado.Equals("ACT") && x.UnidadTiempoId != ViewModel.UnidadTiempoId && x.Mes == ViewModel.Mes && x.Anio == ViewModel.Anio)) { //Ya existe, retornar error de Already exist PostMessage(MessageType.AExist); return(RedirectToAction("LstUnidadDeTiempo")); } unidaddetiempo = context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == ViewModel.UnidadTiempoId); unidaddetiempo.Descripcion = ConstantHelpers.ObtenerMesPorValorId(ViewModel.Mes.ToString()).ToUpper() + " " + ViewModel.Anio; unidaddetiempo.Anio = ViewModel.Anio.ToInteger(); unidaddetiempo.Mes = ViewModel.Mes; if (ViewModel.Orden != null && ViewModel.Orden <= 0) { PostMessage(MessageType.Error); return(RedirectToAction("LstUnidadDeTiempo")); } unidaddetiempo.Orden = ViewModel.Orden; context.Entry(unidaddetiempo).State = System.Data.Entity.EntityState.Modified; } else { if (context.UnidadTiempo.Any(x => x.Estado.Equals("ACT") && x.Mes == ViewModel.Mes && x.Anio == ViewModel.Anio)) { //Ya existe, retornar error de Already exist PostMessage(MessageType.AExist); return(RedirectToAction("LstUnidadDeTiempo")); } unidaddetiempo = new UnidadTiempo(); unidaddetiempo.Descripcion = ConstantHelpers.ObtenerMesPorValorId(ViewModel.Mes.ToString()).ToUpper() + " " + ViewModel.Anio; unidaddetiempo.Anio = ViewModel.Anio.ToInteger(); unidaddetiempo.Mes = ViewModel.Mes; unidaddetiempo.Estado = ConstantHelpers.EstadoActivo; unidaddetiempo.Orden = context.UnidadTiempo.Where(x => x.Estado.Equals(ConstantHelpers.EstadoActivo)).Count() + 1; context.UnidadTiempo.Add(unidaddetiempo); } List <UnidadTiempo> lstUnidadTiempo = context.UnidadTiempo.ToList(); if (ViewModel.EsActivo) { foreach (UnidadTiempo objUnidadTiempo in lstUnidadTiempo) { objUnidadTiempo.EsActivo = false; } unidaddetiempo.EsActivo = ViewModel.EsActivo; } //if(unidaddetiempo.Anio == lstUnidadTiempo.Max( x => x.Anio) + 1) //{ // try // { // var anioAnterior = unidaddetiempo.Anio - 1; // var LstEquipos = context.DatoEdificio.Where(X => X.Tipo.Contains("Equipo") && X.AplicaMantenimiento == true && X.UnidadTiempo.Anio == anioAnterior).ToList(); // foreach (var item in LstEquipos) // { // var equipo = new DatoEdificio(); // equipo.EdificioId = item.EdificioId; // equipo.Tipo = item.Tipo; // equipo.Dato = item.Dato; // equipo.Nombre = item.Nombre; // equipo.UnidadTiempo = unidaddetiempo; // equipo.AplicaMantenimiento = true; // context.DatoEdificio.Add(equipo); // } // var LstDatos = context.DatoEdificio.Where(X => X.Tipo.Contains("Crono") && X.UnidadTiempo.Anio == anioAnterior).ToList(); // foreach (var item in LstDatos) // { // var crono = new DatoEdificio(); // crono.EdificioId = item.EdificioId; // crono.Tipo = item.Tipo; // crono.Dato = item.Dato; // crono.Nombre = item.Nombre; // crono.UnidadTiempo = unidaddetiempo; // crono.AplicaMantenimiento = true; // context.DatoEdificio.Add(crono); // } // } // catch (Exception ex) // { // PostMessage(MessageType.Warning, "No se pudo replicar el cronograma del año pasado, error: " + ex.Message + (ex.InnerException != null ? ex.InnerException.Message : String.Empty)); // } // //} context.SaveChanges(); PostMessage(MessageType.Success); } catch { PostMessage(MessageType.Error); } return(RedirectToAction("LstUnidadDeTiempo")); }
public ActionResult EditPlanilla(EditPlanillaViewModel model, FormCollection formCollection) { try { if (!ModelState.IsValid) { model.Fill(CargarDatosContext(), model.EdificioId, model.UnidadTiempoId); TryUpdateModel(model); PostMessage(MessageType.Error, i18n.ValidationStrings.DatosIncorrectos); return(View(model)); } using (TransactionScope transaction = new TransactionScope()) { bool eraNull = false; PlanillaR planillaR = context.PlanillaR.FirstOrDefault(x => x.EdificioId == model.EdificioId && x.UnidadTiempoId == model.UnidadTiempoId); if (planillaR == null) { planillaR = new PlanillaR(); planillaR.UnidadTiempoId = model.UnidadTiempoId.Value; planillaR.EdificioId = model.EdificioId; eraNull = true; } if (model.Archivo != null && model.Archivo.ContentLength != 0) { Edificio objEdificio = context.Edificio.FirstOrDefault(x => x.EdificioId == model.EdificioId); string _rutaarchivoserv = Server.MapPath("~"); string _rutaarchivodir = _rutaarchivoserv + Path.Combine("Resources/Files", objEdificio.Acronimo); if (!System.IO.Directory.Exists(_rutaarchivodir)) { Directory.CreateDirectory(_rutaarchivodir); } UnidadTiempo objUnidadTiempo = context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == model.UnidadTiempoId); _rutaarchivodir = Path.Combine(_rutaarchivodir, objUnidadTiempo.Descripcion); if (!System.IO.Directory.Exists(_rutaarchivodir)) { Directory.CreateDirectory(_rutaarchivodir); } string _nombrearcIni = model.EdificioId + "_" + DateTime.Now.Ticks.ToString() + "_"; string _nombrearc = _nombrearcIni + Path.GetExtension(model.Archivo.FileName); //string _rutaPDF = _rutaarchivodir; _rutaarchivodir = Path.Combine(_rutaarchivodir, _nombrearc); //ACA guardar la ruta!!! PD: tambien guardar el PDF que se convirtio //_editado.NormasConvivencia = _nombrearc; model.Archivo.SaveAs(_rutaarchivodir); // string _nombrearcParaPDF = _nombrearcIni + "PDF.pdf"; //Workbook excelGuardado = new Workbook(); //excelGuardado.LoadFromFile(_rutaarchivodir); //_rutaPDF = Path.Combine(_rutaPDF, _nombrearcParaPDF); //excelGuardado.SaveToFile(_rutaPDF, FileFormat.PDF); planillaR.RutaExcel = _nombrearc; // planillaR.RutaPDF = _nombrearcParaPDF; //CAMBIAR AQUI POR EL CONVERTIDO! //aca guardar el pdf //var filename = Guid.NewGuid().ToString().Substring(0, 8) + "_" + Path.GetFileName(model.Archivo.FileName); //var path = Path.Combine(Server.MapPath("~/Resources/Files/Normas"), filename); //if (!System.IO.Directory.Exists(Path.Combine(Server.MapPath("~/Resources/Files/Normas")))) // Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Resources/Files/Normas"))); //var file = System.IO.File.Create(path); //_editado.NormasConvivencia= path; } if (model.ArchivoPublico != null && model.ArchivoPublico.ContentLength != 0) { Edificio objEdificio = context.Edificio.FirstOrDefault(x => x.EdificioId == model.EdificioId); string _rutaarchivoserv = Server.MapPath("~"); string _rutaarchivodir = _rutaarchivoserv + Path.Combine("Resources/Files", objEdificio.Acronimo); if (!System.IO.Directory.Exists(_rutaarchivodir)) { Directory.CreateDirectory(_rutaarchivodir); } UnidadTiempo objUnidadTiempo = context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == model.UnidadTiempoId); _rutaarchivodir = Path.Combine(_rutaarchivodir, objUnidadTiempo.Descripcion); if (!System.IO.Directory.Exists(_rutaarchivodir)) { Directory.CreateDirectory(_rutaarchivodir); } string _nombrearcIni = model.EdificioId + "_" + DateTime.Now.Ticks.ToString() + "_"; string _nombrearc = _nombrearcIni + Path.GetExtension(model.ArchivoPublico.FileName); //string _rutaPDF = _rutaarchivodir; _rutaarchivodir = Path.Combine(_rutaarchivodir, _nombrearc); model.ArchivoPublico.SaveAs(_rutaarchivodir); planillaR.RutaPDF = _nombrearc; } if (eraNull) { context.PlanillaR.Add(planillaR); } //Ya no va lo siguiente //var LstTrabajadores = context.Trabajador.Where(x => x.EdificioId == model.EdificioId && x.Estado == ConstantHelpers.EstadoActivo).ToList(); //foreach (var trabajador in LstTrabajadores) //{ // var horasExtras25 = formCollection["planilla-horas-extras-25-" + trabajador.TrabajadorId]; // var montoHorasExtras25 = formCollection["planilla-adicional-25-" + trabajador.TrabajadorId]; // var horasExtras35 = formCollection["planilla-horas-extras-35-" + trabajador.TrabajadorId]; // var montoHorasExtras35 = formCollection["planilla-adicional-35-" + trabajador.TrabajadorId]; // var feriados = formCollection["planilla-feriados-" + trabajador.TrabajadorId]; // var montoFeriados = formCollection["planilla-monto-feriados-" + trabajador.TrabajadorId]; // var descuentoAusencia = formCollection["planilla-descuentos-" + trabajador.TrabajadorId]; // var aumentoReemplazo = formCollection["planilla-reemplazo-" + trabajador.TrabajadorId]; // var totalMes = formCollection["planilla-total-mes-" + trabajador.TrabajadorId]; // var adelantoQuincena = formCollection["planilla-adelanto-quincena-" + trabajador.TrabajadorId]; // var segundaQuincena = formCollection["planilla-segunda-quincena-" + trabajador.TrabajadorId]; // var essalud = formCollection["planilla-essalud-" + trabajador.TrabajadorId]; // Decimal totalDescuentos = 0, aporteObligatorio = 0, primaSeguro = 0, comisionAFP = 0; // if (trabajador.AFPId != null) // { // foreach (var item in context.ComisionAFP.Where(x => x.AFPId == trabajador.AFPId).ToList()) // { // var desc = totalMes.ToDecimal() * item.Comision / 100; // totalDescuentos += desc; // if (item.TipoDescuento.Detalle.ToUpper().Contains("APORTE")) aporteObligatorio = desc; // if (item.TipoDescuento.Detalle.ToUpper().Contains("PRIMA")) primaSeguro = desc; // if (item.TipoDescuento.Detalle.ToUpper().Contains("COMISION") && item.TipoDescuento.Acronimo == trabajador.ComisionFlujo) comisionAFP = desc; // } // } // else // { // var descuento = context.ComisionAFP.Where(x => x.TipoDescuento.Acronimo == "ONP").FirstOrDefault(); // if (descuento != null) // { // totalDescuentos = totalMes.ToDecimal() * descuento.Comision / 100; // } // } // var sueldoNeto = totalMes.ToDecimal() - totalDescuentos; // var segundaQuincenaNeto = sueldoNeto - adelantoQuincena.ToDecimal(); // var gratificacionesMes = totalMes.ToDecimal() * 109 / 600; // var CTSMes = 0; // var reemplazoVacaciones = 0; // Planilla planilla; // bool editar = true; // planilla = context.Planilla.Where(x => x.TrabajadorId == trabajador.TrabajadorId && x.UnidadTiempoId == model.UnidadTiempoId).FirstOrDefault(); // if (planilla == null) // { // editar = false; // planilla = new Planilla(); // } // planilla.TrabajadorId = trabajador.TrabajadorId; // planilla.UnidadTiempoId = model.UnidadTiempoId.Value; // planilla.HorasExtras = horasExtras25.ToDecimal() + horasExtras35.ToDecimal(); // planilla.Feriado = feriados.ToDecimal(); // planilla.AdelantoQuincena = adelantoQuincena.ToDecimal(); // planilla.SegundaQuincena = segundaQuincena.ToDecimal(); // planilla.ESSALUD = essalud.ToDecimal(); // planilla.AporteObligatorio = aporteObligatorio; // planilla.PrimaSeguro = primaSeguro; // planilla.ComisionAFP = comisionAFP; // planilla.TotalDescuentos = totalDescuentos; // planilla.SueldoTotalNeto = sueldoNeto; // planilla.SegundaQuincenaNeto = segundaQuincenaNeto; // planilla.CTSMes = CTSMes; // planilla.ReemplazoVacaciones = reemplazoVacaciones; // planilla.HorasExtras25 = horasExtras25.ToDecimal(); // planilla.HorasExtras35 = horasExtras35.ToDecimal(); // planilla.MontoFeriados = montoFeriados.ToDecimal(); // planilla.DescuenoAusencia = descuentoAusencia.ToDecimal(); // planilla.AumentoReemplazo = aumentoReemplazo.ToDecimal(); // planilla.TotalMes = totalMes.ToDecimal(); // planilla.MontoHorasExtras25 = montoHorasExtras25.ToDecimal(); // planilla.MontoHorasExtras35 = montoHorasExtras35.ToDecimal(); // planilla.GratificacionesMes = gratificacionesMes.ToDecimal(); // if (!editar) context.Planilla.Add(planilla); //} PostMessage(MessageType.Success, "Guardado Correctamente"); context.SaveChanges(); transaction.Complete(); return(RedirectToAction("LstEdificio", "Building")); } } catch (Exception ex) { model.Fill(CargarDatosContext(), model.EdificioId, model.UnidadTiempoId); TryUpdateModel(model); PostMessage(MessageType.Error, "Ocurrió un error, por favor inténtelo más tarde"); return(View(model)); } }
public void CargarDatos(CargarDatosContext dataContext) { baseFill(dataContext); UnidadTiempo _UnidadTiempo = dataContext.context.UnidadTiempo.FirstOrDefault(x => x.EsActivo); DesUnidadTiempo = _UnidadTiempo == null ? String.Empty : _UnidadTiempo.Descripcion; Int32 EdificioId = dataContext.session.GetEdificioId(); Edificio _Edificio = dataContext.context.Edificio.FirstOrDefault(x => x.EdificioId == EdificioId); DesEdificio = _Edificio == null ? String.Empty : _Edificio.Nombre; Int32 DepartamentoId = dataContext.session.GetDepartamentoId(); Departamento _Departamento = dataContext.context.Departamento.FirstOrDefault(x => x.DepartamentoId == DepartamentoId); this.AlertaMora = _Departamento.AlertaMora; DesDepartamento = _Departamento == null ? String.Empty : _Departamento.Numero; if (_UnidadTiempo == null) { MontoCuota = 0; } else { Cuota _Cuota = dataContext.context.Cuota.FirstOrDefault(x => x.UnidadTiempoId == _UnidadTiempo.UnidadTiempoId && x.DepartamentoId == DepartamentoId); MontoCuota = _Cuota == null ? Decimal.Zero : _Cuota.Total; DesEstadoCuota = _Cuota == null ? String.Empty : _Cuota.Estado; } /*************************************************************************/ if (AlertaMora) { var fechaActual = DateTime.Now; var unidadTiempoActivo = dataContext.context.UnidadTiempo.FirstOrDefault(X => X.EsActivo); var LstCuotas = dataContext.context.Cuota.Include(x => x.Departamento) .Include(x => x.UnidadTiempo) .Include(x => x.Departamento.Propietario) .Where(x => x.Departamento.EdificioId == EdificioId && x.Pagado == false && x.UnidadTiempoId < unidadTiempoActivo.UnidadTiempoId && x.UnidadTiempo.Estado == ConstantHelpers.EstadoActivo && x.DepartamentoId == DepartamentoId && (x.UnidadTiempo.Mes - fechaActual.Month != 0 || x.UnidadTiempo.Anio - fechaActual.Year != 0)).OrderBy(x => x.UnidadTiempo.Orden).ToList(); foreach (var item in LstCuotas) { if (!LstMeses.ContainsKey(item.UnidadTiempo.Orden.Value)) { LstMeses.Add(item.UnidadTiempo.Orden.Value, item.UnidadTiempo.Descripcion); LstTotalCuadro.Add(item.UnidadTiempo.Orden.Value, 0); } } LstTotalCuadro.Add(-1, 0); LstCuotas = LstCuotas.OrderBy(x => x.DepartamentoId).ToList(); List <Int32> LstDepartamentoId = new List <Int32>(); LstCuotas = LstCuotas.OrderBy(x => x.DepartamentoId).ToList(); Decimal TotalGeneral = 0; var NombreInquilino = String.Empty; ContNombreInquilino = 0; String Registro; Decimal Total = 0; foreach (var item in LstCuotas) { Registro = String.Empty; if (LstDepartamentoId.Contains(item.DepartamentoId) == false) { var objTitular = item.Departamento.Propietario.FirstOrDefault(x => x.ParentescoTitular.Contains("Titular")); if (objTitular == null) { objTitular = item.Departamento.Propietario.FirstOrDefault(); } Registro = item.Departamento.Numero; Registro += "#" + (objTitular != null ? objTitular.Nombres : String.Empty); if (objTitular != null) { NombreInquilino = objTitular.Inquilino.FirstOrDefault() == null ? String.Empty : objTitular.Inquilino.FirstOrDefault().Nombres; } else { NombreInquilino = String.Empty; } if (!String.IsNullOrEmpty(NombreInquilino)) { ContNombreInquilino++; } Registro += "#" + NombreInquilino; foreach (var mes in LstMeses) { Total = 0; var cuota = LstCuotas.FirstOrDefault(x => x.Departamento.Numero == item.Departamento.Numero && x.UnidadTiempo.Orden == mes.Key); Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.Total - cuota.CuotaExtraordinaria) : "0"); Total += cuota != null ? ((cuota.Total - cuota.CuotaExtraordinaria).Value) : 0; if (LstTotalCuadro.ContainsKey(mes.Key)) { LstTotalCuadro[mes.Key] += Total; } TotalGeneral += Total; } Registro += "#" + String.Format("{0:#,##0.00}", TotalGeneral); LstTotalCuadro[-1] += TotalGeneral; TotalGeneral = 0; LstDepartamentoId.Add(item.DepartamentoId); LstCuadro.Add(Registro); } } LstCuotas = LstCuotas.Where(x => x.CuotaExtraordinaria > 0).ToList(); foreach (var item in LstCuotas) { if (!LstMesesExtraordinaria.ContainsKey(item.UnidadTiempo.Orden.Value)) { LstMesesExtraordinaria.Add(item.UnidadTiempo.Orden.Value, item.UnidadTiempo.Descripcion); LstTotalCuadroExtraordinario.Add(item.UnidadTiempo.Orden.Value, 0); } } LstTotalCuadroExtraordinario.Add(-1, 0); LstDepartamentoId = new List <Int32>(); LstCuotas = LstCuotas.OrderBy(x => x.DepartamentoId).ToList(); TotalGeneral = 0; foreach (var item in LstCuotas) { Registro = String.Empty; if (LstDepartamentoId.Contains(item.DepartamentoId) == false) { var objTitular = item.Departamento.Propietario.FirstOrDefault(x => x.ParentescoTitular.Contains("Titular")); if (objTitular == null) { objTitular = item.Departamento.Propietario.FirstOrDefault(); } Registro = item.Departamento.Numero; Registro += "#" + (objTitular != null ? objTitular.Nombres : String.Empty); if (objTitular != null) { NombreInquilino = objTitular.Inquilino.FirstOrDefault() == null ? String.Empty : objTitular.Inquilino.FirstOrDefault().Nombres; } else { NombreInquilino = String.Empty; } if (!String.IsNullOrEmpty(NombreInquilino)) { ContNombreInquilino++; } Registro += "#" + NombreInquilino; foreach (var mes in LstMeses) { Total = 0; var cuota = LstCuotas.FirstOrDefault(x => x.Departamento.Numero == item.Departamento.Numero && x.UnidadTiempo.Orden == mes.Key); Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.CuotaExtraordinaria) : "0"); Total += cuota != null ? (cuota.CuotaExtraordinaria.Value) : 0; if (LstTotalCuadroExtraordinario.ContainsKey(mes.Key)) { LstTotalCuadroExtraordinario[mes.Key] += Total; } TotalGeneral += Total; } Registro += "#" + String.Format("{0:#,##0.00}", Total); LstTotalCuadroExtraordinario[-1] += TotalGeneral; TotalGeneral = 0; LstDepartamentoId.Add(item.DepartamentoId); LstCuadroExtraordinaria.Add(Registro); } } } /*****************************************************************************/ }