// GET: IdentificacaoCrianca public ActionResult Index() { //carregar o objeto com base no id do usuário logado (pode estar na sessão, classe autenticação) // direcionar para a view passando o objeto carregado (objeto IdentificacaoCriancaModel) //ViewBag.UF = new SelectList(new Dictionary<int, string>() { { 1, "BA" }, { 2, "SP" } }, "key", "value"); //ViewBag.Municipio = new SelectList(new Dictionary<int, string>() { { 1, "Salvador" }, { 2, "Feira de Santana" } }, "key", "value"); ViewBag.Etnia = new SelectList(new Dictionary <string, string>() { { "1", "Branca" }, { "2", "Amarela" }, { "3", "Parda" }, { "4", "Negra" }, { "5", "Indigena" } }, "key", "value"); ViewBag.UF = new SelectList(UFModel.ObterUF(), "uff_id_uf", "uff_ds_uf"); int idUsuarioLogado = UsuarioModel.ObterUsuarioSessao().idUsuario; IdentificacaoCriancaModel identificacaoCrianca = IdentificacaoCriancaModel.ObterRegistro(idUsuarioLogado); identificacaoCrianca.dataNascimento = String.IsNullOrEmpty(identificacaoCrianca.dataNascimento) ? "" : identificacaoCrianca.dataNascimento.ToString(); ViewBag.Municipio = new SelectList(MunicipioModel.ObterMunicipio(identificacaoCrianca.idUf), "mun_id_municipio", "mun_ds_municipio"); ViewBag.Mensagem = TempData["mensagem"] == null ? "" : TempData["mensagem"].ToString(); return(View(identificacaoCrianca)); }
// GET: MudancaEndereco public ActionResult Index() { ViewBag.UF = new SelectList(UFModel.ObterUF(), "uff_id_uf", "uff_ds_uf"); ViewBag.Municipio = new SelectList(MunicipioModel.ObterMunicipio(0), "mun_id_municipio", "mun_ds_municipio"); int idUsuarioLogado = UsuarioModel.ObterUsuarioSessao().idUsuario; ViewBag.Mensagem = TempData["mensagem"] == null ? "" : TempData["mensagem"].ToString(); return(View(MudancaEnderecoModel.ObterRegistro(idUsuarioLogado))); }
public ActionResult Index() { ViewBag.UF = new SelectList(UFModel.ObterUF(), "uff_id_uf", "uff_ds_uf"); ViewBag.Municipio = new SelectList(MunicipioModel.ObterMunicipio(0), "mun_id_municipio", "mun_ds_municipio"); int idUsuarioLogado = UsuarioModel.ObterUsuarioSessao().idUsuario; DadosRecemNascidoModel obj = DadosRecemNascidoModel.ObterRegistro(idUsuarioLogado); if (obj.idUf > 0) { CarregaMunicipios(obj.idUf); } ViewBag.Mensagem = TempData["mensagem"] == null ? "" : TempData["mensagem"].ToString(); return(View(obj)); }
public static bool ActualizarIndicadoresEconomicos(RequestIE Request, remuneracionesContext db) { bool Result = false; try { if (!string.IsNullOrWhiteSpace(Request.MontoIMM) && !string.IsNullOrWhiteSpace(Request.MontoUTM) && !string.IsNullOrWhiteSpace(Request.MontoUF)) { IMMModel IMMactiva = db.IMMModel.SingleOrDefault(x => x.EstaActiva); IMMactiva.EstaActiva = false; db.IMMModel.Update(IMMactiva); IMMModel NuevaIMM = new IMMModel() { Nombre = IMMactiva.Nombre, Fecha = Utiles.ToDD_MM_AAAA_Multi(Request.FechaIMM), Valor = Convert.ToDecimal(Request.MontoIMM), EstaActiva = true }; db.IMMModel.Add(NuevaIMM); UTMModel UTMactiva = db.UTMModel.SingleOrDefault(x => x.EstaActiva); UTMactiva.EstaActiva = false; db.UTMModel.Update(UTMactiva); UTMModel NuevaUTM = new UTMModel() { Nombre = UTMactiva.Nombre, Fecha = Utiles.ToDD_MM_AAAA_Multi(Request.FechaUTM), Valor = Convert.ToDecimal(Request.MontoUTM), EstaActiva = true }; db.UTMModel.Add(NuevaUTM); UFModel UFactiva = db.UFModel.SingleOrDefault(x => x.EstaActiva); UFactiva.EstaActiva = false; db.UFModel.Update(UFactiva); UFModel NuevaUF = new UFModel() { Nombre = UFactiva.Nombre, Fecha = Utiles.ToDD_MM_AAAA_Multi(Request.FechaUF), Valor = Convert.ToDecimal(Request.MontoUF), EstaActiva = true }; db.UFModel.Add(NuevaUF); db.SaveChanges(); Result = true; } } catch (Exception) { Result = false; } return(Result); }
public static LiquidacionEmpleado ObtenerLiquidacionEmpleado(int IdEmp, remuneracionesContext db) { if (IdEmp <= 0) { return(null); } var Liquidacion = new LiquidacionEmpleado(); try { //Falta listar los topes y tramos. //Tope Gratificacion //Tope Seguro de cesantia //Tope Imposiciones -> al parecer tiene que ver con las afp o con todos los descuentos //Tope Salud //Si es fonasa calcular por el 7% //calcular monto AFP //Seguro de Cesantia //----- GRATIFICACION ----- //Existen calculos de gratificaciones del articulo 50 y el articulo 47 //----- CONTRATOS -------- //----- LOS PLAZOS DE TODOS LOS CONTRATOS VAN EN LA CLAUSULA NOVENA DE LOS ARTICULOS ------------------ //contrato individual y contrato colectivo Articulo 6 indiviual -> empleador a trabajador //Colectivo de uno o más empleadores con una o más organizaciones sindicales //Contrato por plazo: Plazo fijo, indefinido //Contrato por obra o faena Articulo 10 bis //Contrato por jornada parcial Articulo 40 bis //Contratos Especiales Articulos 77 al 152 //------SALUD------- //Cuando calculamos salud aveces hay montos adicionales por reglas que desconozco //Es Isapre -> (Pueden ser muchas) o Fonasa que está aislado y con sus reglas //Isapre tiene más beneficios pero es más costoso y cada isapre tiene sus montos y reglas además de reglas estantard para cada una //Fonasa es más economico y más barato pero con más problemas de atención y menos beneficios. //Se puede definir como Fonasa para el sector(publico) y Isapre (Privado) //Si estás en fonasa te asignan un tramo el que indicara tu nivel de cobertura dependiendo del sueldo tendrás más cobertura o no siempre será el 7% de tu sueldo //En Isapre si puedes elegir //Fonasa en fijo Isapre es dinamico //IMPORTANTE Si tienes y Isapre y el 7% de tu sueldo llega a un monto que cubre tu plan de isapre solo se descuenta ese 7% en caso //Que el 7% de tu sueldo no cubra el plan de la isapre a la que perteneces entonces se cobrará adicional //Considerar Seguro de vida... //DESCUENTOS //Además de la AFP hay que considerar cosas como el S.I.S = Seguro de invalidez y sobrevivencia. //Considerar Aguinaldo //Considerar anticipo //Considerar APV //Cuota sindical //Impuesto Unico //CALCULO IMPUESTO UNICO // Any IPU = "Impuesto Unico" //1.- Revisar la tabla proveida por el SII //2.- Revisar el tramo en el que está el trabajador //3.- Calcular antes el imponible tributable F(Total Imponible - Descuentos) //------ VARIABLES CALCULO IMPUESTO UNICO -------- //1.- F((Imponible tributable * Factor(Es el exento de la tabla IPU)) - Monto Rebaja) // simplificado ((ImponibleT * Exento) - MontoRebaja) List <RentasTopasImpModel> TopesRentasImponibles = db.RentasTopasImpModel.ToList(); decimal AFPTope = TopesRentasImponibles.SingleOrDefault(x => x.Tope_id == TipoTope.AFP && x.EstaActiva == true).UFCLP; decimal IPSTope = TopesRentasImponibles.SingleOrDefault(x => x.Tope_id == TipoTope.IPS && x.EstaActiva == true).UFCLP; decimal SCesantiaTope = TopesRentasImponibles.SingleOrDefault(x => x.Tope_id == TipoTope.SEGURO_CESANTIA && x.EstaActiva == true).UFCLP; List <RentasMinImponibles> rentasMinImponibles = db.RentasMinImponibles.ToList(); List <AFCModel> AFCRules = db.AFCModel.Where(x => x.EstaActivo == true).ToList(); UTMModel UTM = db.UTMModel.SingleOrDefault(x => x.EstaActiva == true); IMMModel SueldoMinimo = db.IMMModel.SingleOrDefault(x => x.EstaActiva == true); UFModel UF = db.UFModel.SingleOrDefault(x => x.EstaActiva == true); IndicadoresEconomicos Indicadores = new IndicadoresEconomicos() { UF = UF, UTM = UTM, SueldoMinimo = SueldoMinimo }; int CantidadHorasTrabajadas = 0; Liquidacion.indicadoresEco = Indicadores; var LstHaberImponible = new List <HaberImponible>(); var LstHaberNoImponible = new List <HaberNoImponible>(); var LstDescuentos = new List <DescuentosLiquidacion>(); Tbempleados ObjEmpleado = db.Tbempleados.Include(e => e.EmpresaEmpleado) .Include(s => s.SueldoEmp) .Include(c => c.ContratoEmp) .ThenInclude(cargo => cargo.Cargo) .Include(p => p.PrevisionEmp) .ThenInclude(a => a.AFP) .SingleOrDefault(Emp => Emp.Id == IdEmp); InfoEmpleadoEmpresa InfoEmp = new InfoEmpleadoEmpresa() { EmpleadoId = ObjEmpleado.Id.ToString(), NombreEmpleado = ObjEmpleado.Nombre, RutEmpleado = ObjEmpleado.Rut, CargoEmpleado = ObjEmpleado.ContratoEmp.Cargo.Nombre, FechaIngresoEmpleado = ObjEmpleado.FechaCreacion.ToString("dd-MM-yyyy"), RazonSocialEmpresa = ObjEmpleado.EmpresaEmpleado.RazonSocial, RutEmpresa = ObjEmpleado.EmpresaEmpleado.Rut, DireccionEmpresa = ObjEmpleado.EmpresaEmpleado.Direccion }; List <ImpuestoUnico> InfoImpuestoUnicoActual = db.ImpuestoUnico.Where(x => x.EstaActiva == true).ToList(); AfpModel AFP = ObjEmpleado.PrevisionEmp.AFP; ContratoEmpleado Contrato = ObjEmpleado.ContratoEmp; CantidadHorasTrabajadas = Contrato.HorasDeJornada; if (ObjEmpleado != null) { var HyDemp = ServiciosHyD.ObtenerHyDEmpleado(IdEmp, db); if (HyDemp.Item1.Count() <= 0 || HyDemp.Item2.Count() <= 0) { return(null); } LstHaberImponible = HyDemp.Item1.Where(x => x.Categoria_id == CategoriaHaberes.IMPONIBLE) .Select(x => new HaberImponible { NombreHaber = x.Nombre, MontoHaber = x.ValorCalculo }).ToList(); LstHaberNoImponible = HyDemp.Item1.Where(x => x.Categoria_id == CategoriaHaberes.NOIMPONIBLE) .Select(x => new HaberNoImponible { NombreHaber = x.Nombre, MontoHaber = x.ValorCalculo }).ToList(); LstDescuentos = HyDemp.Item2.Select(x => new DescuentosLiquidacion { NombreDescuento = x.Nombre, MontoDescuento = x.ValorCalculo }).ToList(); decimal CalculoDescuentoAFP = CalculosLiquidacion.CalculoAFPIndefinido(AFP.DependientesTasaAfp, ObjEmpleado.SueldoEmp.SueldoBase, AFPTope); string DescuentoAFPNombre = CalculosLiquidacion.VistaPorcentajeLiquidacion(AFP.DependientesTasaAfp, CalculoDescuentoAFP, AFP.NombreAfp); //Busca el registro del descuento AFP y updatea el monto LstDescuentos.Where(x => x.NombreDescuento == AFP.NombreAfp) .Select(x => { x.NombreDescuento = DescuentoAFPNombre; x.MontoDescuento = CalculoDescuentoAFP; return(x); }).ToList(); //verificar si hay que calcularla o se deja directamente así decimal MontoGratificacion = CalculosLiquidacion.CalcularGratificacionLegal(ObjEmpleado.SueldoEmp.SueldoBase, 0, 0, db); var GratificacionLegal = new HaberImponible() { NombreHaber = "Gratificación", MontoHaber = MontoGratificacion }; LstHaberImponible.Add(GratificacionLegal); decimal TotalHaberesImponibles = LstHaberImponible.Sum(x => x.MontoHaber); decimal TotalHaberesNoImp = LstHaberNoImponible.Sum(x => x.MontoHaber); decimal TotalDescuentoCesantia = CalculosLiquidacion.CalculoSeguroDeCesantia(TotalHaberesImponibles, AFCRules.FirstOrDefault().FinanciamientoEmpleado, SCesantiaTope); var DescuentoCesantia = new DescuentosLiquidacion() { NombreDescuento = "Seguro de Cesantia", MontoDescuento = TotalDescuentoCesantia }; LstDescuentos.Add(DescuentoCesantia); decimal TotalDescuentoSalud = CalculosLiquidacion.CalculoFonasa(TotalHaberesImponibles); if (ObjEmpleado.PrevisionEmp.IsapreId > 0 && ObjEmpleado.PrevisionEmp.MontoPactadoIsapre > 0) { decimal MontoIsapre = 0; MontoIsapre = CalculosLiquidacion.ProcesarMontoPactadoIsapre(ObjEmpleado.PrevisionEmp, UF.Valor); if (MontoIsapre > TotalDescuentoSalud) { decimal MontoAdicional = 0; MontoAdicional = CalculosLiquidacion.MontoIsapreAdicional(TotalDescuentoSalud, MontoIsapre); var DescuentoIsapre = new DescuentosLiquidacion() { NombreDescuento = "Isapre", MontoDescuento = TotalDescuentoSalud }; var DescuentosAdicional = new DescuentosLiquidacion() { NombreDescuento = "Adicional", MontoDescuento = MontoAdicional }; LstDescuentos.Add(DescuentoIsapre); LstDescuentos.Add(DescuentosAdicional); } else if (TotalDescuentoSalud >= MontoIsapre) { var DescuentosSaludIsapre = new DescuentosLiquidacion() { NombreDescuento = "Isapre", MontoDescuento = TotalDescuentoSalud }; LstDescuentos.Add(DescuentosSaludIsapre); } } else { var DescuentoSaludFonasa = new DescuentosLiquidacion() { NombreDescuento = "Fonasa", MontoDescuento = TotalDescuentoSalud }; LstDescuentos.Add(DescuentoSaludFonasa); } decimal TotalDescuentos = LstDescuentos.Sum(x => x.MontoDescuento); decimal TotalImponibleTributable = CalculosLiquidacion.CalcularImponibleTributable(TotalHaberesImponibles, TotalDescuentos); bool EstaAfectaAimp = CalculosLiquidacion.EstaAfectaAimpuestos(InfoImpuestoUnicoActual, TotalImponibleTributable); decimal TotalImpuestoUnico = 0; if (EstaAfectaAimp) { TotalImpuestoUnico = CalculosLiquidacion.CalculoImpuestoUnico(InfoImpuestoUnicoActual, TotalImponibleTributable); } if (TotalImpuestoUnico > 0) { var DescuentoImpuestoUnico = new DescuentosLiquidacion() { NombreDescuento = "Impuesto Único", MontoDescuento = TotalImpuestoUnico }; LstDescuentos.Add(DescuentoImpuestoUnico); } decimal TotalHaberes = TotalHaberesImponibles + TotalHaberesNoImp; Liquidacion.MesLiquidacion = Utiles.obtenerNombreMes(DateTime.Now.Month); Liquidacion.InfoEmpleado = InfoEmp; Liquidacion.lstHaberImponible = LstHaberImponible; Liquidacion.lstHaberNoImponible = LstHaberNoImponible; Liquidacion.HorasTrabajadas = ObjEmpleado.ContratoEmp.HorasDeJornada; Liquidacion.indicadoresEco = Indicadores; Liquidacion.lstDescuentos = LstDescuentos; Liquidacion.FechaLiquidacion = DateTime.Now.ToString("dd-MM-yyyy"); Liquidacion.TotalHaberes = TotalHaberes; Liquidacion.TotalDescuentos = TotalDescuentos; Liquidacion.TotalHaberesImp = TotalHaberesImponibles; Liquidacion.TotalHaberesNoImp = TotalHaberesNoImp; Liquidacion.TotalLiquido = TotalHaberes - TotalDescuentos; } } catch (Exception ex) { return(null); } return(Liquidacion); }