示例#1
0
        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"));
        }
示例#2
0
 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);
     }
 }
示例#3
0
 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);
            }
        }
示例#6
0
        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);
            //}
        }
示例#7
0
        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 }));
            }
        }
示例#8
0
        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;
        }
示例#9
0
        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>();
            }
        }
示例#10
0
        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"));
        }
示例#11
0
        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);
                    }
                }
            }
            /*****************************************************************************/
        }