public ActionResult verLiquidacionTrabajador(string rutTrabajador, int mes, int anio)
        {
            liquidacion LiquidacionTrabajador = liquidacion.obtenerLiquidacionPorFecha(rutTrabajador,mes,anio);

            trabajador Trabajador = new trabajador();
            Trabajador.rut = rutTrabajador;
            Trabajador = Trabajador.obtenerTrabajador();

            ViewData["liquidacion"] = LiquidacionTrabajador;
            ViewData["trabajador"] = Trabajador;

            return View("../Trabajador/verLiquidacion");
        }
        public ActionResult nuevoDiaNoTrabajado(string rut)
        {
            if (Session["rol"] != null && (Session["rol"].Equals("admin") || Session["rol"].Equals("contabilidad")))
            {
                trabajador trab = new trabajador();
                trab.rut = rut;
                trab = trab.obtenerTrabajador();

                ViewBag.Rut = rut;
                ViewBag.NombreTrabajador = trab.nombres + trab.apellidos;

                return View();
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
Exemple #3
0
        public liquidacion generarLiquidacion()
        {
            datosPagoTrabajador datosPago = datosPagoTrabajador.obtenerDatosPago(rut);

            trabajador Trabajador = new trabajador();
            Trabajador.rut = rut;
            Trabajador = Trabajador.obtenerTrabajador();

            porcentaje_descuento_apv = Trabajador.porcentajeAPV;

            sueldo_base = datosPago.sueldoBase;
            obra=Trabajador.obra;
            bono_produccion=datosPago.bonoProduccion;
            bono_responsabilidad=datosPago.bonoResponsabilidad;
            gratificacion=datosPago.gratificacion;

            bono_colacion=datosPago.bonoColacion;
            bono_movilizacion=datosPago.bonoMovilizacion;
            viatico=datosPago.viatico;
            desgaste_herramientas=datosPago.desgasteHerramientas;

            //CALCULO VALOR HORA
            double valor_dia = datosPago.sueldoBase / 30;
            double valor_hora = valor_dia * 7;
            valor_hora = valor_hora / datosPago.cantidadHorasSemanales;
            valor_hora_extra = valor_hora * 1.5;

               // cantidad_horas_extras = horasExtras.obtenerHorasExtrasMes(rut,mes_actual,anio_actual);
            sueldo_imponible = datosPago.sueldoBase + datosPago.gratificacion + datosPago.bonoProduccion + datosPago.bonoResponsabilidad;//+ Convert.ToInt32(cantidad_horas_extras*valor_hora_extra);

            sueldo_bruto = sueldo_imponible + asignacion_familiar + bono_colacion + bono_movilizacion + viatico + desgaste_herramientas;

            //ASIGNACION FAMILIAR
            List<cargafamiliar> cargas = Models.cargafamiliar.obtenerCargas(rut);
            numero_cargas=cargas.Count;

            asignacion_familiar = numero_cargas*Convert.ToInt32(asignacionFamiliar.obtenerAsignacionSegunMontoImponible(sueldo_imponible));

            //AFP
            Models.afp afp_trabajador = Models.afp.obtenerAFP(Trabajador.afp);
            porcentaje_descuento_afp_sis=afp_trabajador.sis;
            porcentaje_descuento_afp=afp_trabajador.tasa;

            //SALUD
            if (!Trabajador.salud.Equals("Fonasa"))
            {

                //OBTENER PLAN ISAPRE
                double UFIsapre = Trabajador.porcentajeSalud;

                //VALOR UF
                double valorUF = uf.obtenerUF(mes_actual,anio_actual).valor;

                if (UFIsapre != 0)
                {
                    porcentaje_descuento_salud = 0;

                    descuento_isapre_uf = UFIsapre*valorUF;
                }

            }

            //AFC
            if (Trabajador.tipo_regimen.Equals("Antiguo"))
            {
                porcentaje_descuento_afc = Trabajador.porcentajeAFC;
            }
            else {
                //SEGURO CESANTIA
                if (Trabajador.tipo_contrato.Equals("Fijo"))
                {//OBTENER PORCENTAJE AFC
                    seguroCesantia SeguroCesantia= seguroCesantia.obtenerPlazoFijo();
                    porcentaje_descuento_afc_trabajador = SeguroCesantia.trabajador;
                    porcentaje_descuento_afc_empleador = SeguroCesantia.empleador;
                    porcentaje_descuento_afc = porcentaje_descuento_afc_trabajador;

                }else{
                    seguroCesantia SeguroCesantia = seguroCesantia.obtenerPlazoIndefinido();
                    porcentaje_descuento_afc_trabajador= SeguroCesantia.trabajador;
                    porcentaje_descuento_afc_empleador = SeguroCesantia.empleador;
                    porcentaje_descuento_afc = porcentaje_descuento_afc_trabajador;
                }

            }

            //CALCULOS
            if (porcentaje_descuento_apv == 0)
            {
                apv=0;
            }
            else
            {
                apv= Convert.ToInt32(sueldo_imponible * porcentaje_descuento_apv)/100;
            }

            if (porcentaje_descuento_afp == 0)
            {
                afp = 0;
            }
            else {
                afp = Convert.ToInt32(sueldo_imponible * porcentaje_descuento_afp)/100;
                afp_sis_cargo_empleador = Convert.ToInt32(sueldo_imponible * porcentaje_descuento_afp_sis) / 100;

            }

            if (porcentaje_descuento_salud == 0) {

                salud = Convert.ToInt32(descuento_isapre_uf);
                //salud = 0;
            }else{
                salud = Convert.ToInt32(sueldo_imponible * porcentaje_descuento_salud)/100;
            }

            if (porcentaje_descuento_afc == 0)
            {
                afc = 0;
                afc_cargo_empleador = Convert.ToInt32(sueldo_imponible * porcentaje_descuento_afc_empleador) / 100;
            }
            else {
                afc = Convert.ToInt32(sueldo_imponible * porcentaje_descuento_afc)/100;
                afc_cargo_empleador = Convert.ToInt32(sueldo_imponible * porcentaje_descuento_afc_empleador) / 100;
            }

            double descuentos=afc + afp + apv + salud;
            double total_despues_descuentos = sueldo_imponible - descuentos;
            sueldo_liquido=Convert.ToInt32(total_despues_descuentos+ asignacion_familiar + datosPago.bonoColacion + datosPago.bonoMovilizacion +datosPago.viatico +datosPago.desgasteHerramientas);

            DateTime fechaInicio = new DateTime(anio_actual,mes_actual,1);
            DateTime fechaFinal = new DateTime(anio_actual, mes_actual, 30);
            cantidad_dias_notrabajados = diasNoTrabajados.cantidadDiasNoTrabajados(rut, fechaInicio, fechaFinal);
            descuento_noTrabajo = Convert.ToInt32(cantidad_dias_notrabajados * valor_dia);

            dias_licencia = licenciasTrabajadores.cantidadDiasLicencia(rut, fechaInicio, fechaFinal);
            descuento_licencia = Convert.ToInt32(dias_licencia * valor_dia);
            sueldo_liquido = sueldo_liquido - descuento_licencia - descuento_noTrabajo;

            return this;
        }
Exemple #4
0
        public void generarFiniquito()
        {
            trabajador Trabajador = new trabajador();
            Trabajador.rut = rut;
            Trabajador=Trabajador.obtenerTrabajador();
            nombre_completo = Trabajador.nombres + " " + Trabajador.apellidos;
            fecha_ingreso_empresa = Trabajador.fechaIngresoEmpresa;

            int dias_feriados = feriados.ObtenerdiasRango(fecha_ingreso_empresa,fecha_finiquito);

            int sueldo = 0;
            datosPagoTrabajador datosPago = datosPagoTrabajador.obtenerDatosPago(rut);
            sueldo = datosPago.sueldoBase;
            valor_dia = sueldo / 30;

            int meses_diferencia = fecha_finiquito.Month - fecha_ingreso_empresa.Month;
            int mes_finiquito = fecha_finiquito.Month;
            int anio_finiquito = fecha_finiquito.Year;
            int dias_diferencia = DateTime.DaysInMonth(anio_finiquito, mes_finiquito) - fecha_finiquito.Day;

            double feriado_proporcional = (meses_diferencia*factor_mes + dias_diferencia*factor_dia) + dias_feriados;

            total_finiquito = Convert.ToInt32(feriado_proporcional * valor_dia);
        }
 public ActionResult verTrabajador(string rut)
 {
     if (Session["rol"] != null && (Session["rol"].Equals("admin") || Session["rol"].Equals("contabilidad")))
     {
         trabajador Trabajador = new trabajador();
         Trabajador.rut = rut;
         ViewData["listaIsapres"] = isapre.obtenerTodasIsapres();
         ViewData["listaAFP"] = afp.obtenerTodasAFP();
         ViewData["obras"] = faena.obtenerTodas();
         ViewData["trabajador"] = Trabajador.obtenerTrabajador();
         return View();
     }
     else
     {
         return RedirectToAction("Index", "Home");
     }
 }
        public ActionResult verLiquidacion(string rutTrabajador)
        {
            DateTime fecha_actual = DateTime.Today;
            liquidacion LiquidacionTrabajador = new liquidacion(fecha_actual.Year,fecha_actual.Month);

            LiquidacionTrabajador.rut = rutTrabajador;

            LiquidacionTrabajador = LiquidacionTrabajador.generarLiquidacion();
            LiquidacionTrabajador.borrarLiquidacion();
            LiquidacionTrabajador.guardarLiquidacion();
            trabajador Trabajador = new trabajador();
            Trabajador.rut = rutTrabajador;
            Trabajador = Trabajador.obtenerTrabajador();

            ViewData["liquidacion"] = LiquidacionTrabajador;
            ViewData["trabajador"] = Trabajador;
            return View();
        }
        public ActionResult licencias(string rut)
        {
            if (Session["rol"] != null && (Session["rol"].Equals("admin") || Session["rol"].Equals("contabilidad")))
            {
                trabajador trab = new trabajador();
                trab.rut = rut;
                trab= trab.obtenerTrabajador();

                ViewBag.Rut = rut;
                ViewBag.NombreTrabajador = trab.nombres + trab.apellidos;

                List<licenciasTrabajadores> licencias = licenciasTrabajadores.obtenerTodas(rut);

                return View(licencias);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
        public ActionResult guardarDatosPersonales(FormCollection form)
        {
            if (Session["rol"] != null && (Session["rol"].Equals("admin") || Session["rol"].Equals("contabilidad")))
            {
                trabajador Trabajador = new trabajador();
                Trabajador.rut = (string)form["rutTrabajador"];

                Trabajador.direccion=(string)form["direccion"];
                Trabajador.telefono=(string)form["telefono"];
                Trabajador.cargo=(string)form["cargo"];
                Trabajador.tipo_contrato = (string)form["tipo_contrato"];

                Trabajador.obra=(string)form["obra"];
                string tieneapv=(string)form["apv"];

                if (tieneapv.Equals("No"))
                {

                    Trabajador.porcentajeAPV = 0;
                }
                else {
                    try
                    {
                        Trabajador.porcentajeAPV = Convert.ToDouble((string)form["porcentajeAPV"]);
                    }
                    catch (Exception)
                    {
                        Trabajador.porcentajeAPV = 0;
                    }
                }

                try
                {
                    Trabajador.porcentajeAFC = Convert.ToDouble((string)form["porcentajeAFC"]);
                }
                catch (Exception)
                {
                    Trabajador.porcentajeAFC = 0;
                }

                try
                {
                    Trabajador.porcentajeSalud = Convert.ToDouble((string)form["porcentajeSalud"]);
                }
                catch (Exception)
                {
                    Trabajador.porcentajeSalud = 0;
                }
                try
                {
                    Trabajador.porcentajeAFP = Convert.ToDouble((string)form["porcentajeAFP"]);
                }
                catch (Exception)
                {
                    Trabajador.porcentajeAFP = 0;
                }

                Trabajador.afp = (string)form["afp"];
                Trabajador.salud = (string)form["salud"];

                Trabajador.guardarDatosPersonales();

                ViewData["listaIsapres"] = isapre.obtenerTodasIsapres();
                ViewData["listaAFP"] = afp.obtenerTodasAFP();
                ViewData["obras"] = faena.obtenerTodas();
                ViewData["trabajador"] = Trabajador.obtenerTrabajador();
                return View("verTrabajador");
            }
            else {
                return RedirectToAction("Index", "Home");
            }
        }
        public ActionResult datosPago(string rutTrabajador)
        {
            if (Session["rol"]!=null && (Session["rol"].Equals("admin") || Session["rol"].Equals("contabilidad")))
            {
                if (datosPagoTrabajador.existenDatos(rutTrabajador))
                {
                    datosPagoTrabajador datosPago = datosPagoTrabajador.obtenerDatosPago(rutTrabajador);

                    trabajador trab = new trabajador();
                    trab.rut = rutTrabajador;
                    trab = trab.obtenerTrabajador();

                    ViewBag.NombreTrabajador = trab.nombres + trab.apellidos;

                    return View(datosPago);
                }
                else
                {
                    datosPagoTrabajador datosPago = new datosPagoTrabajador();
                    datosPago.rut = rutTrabajador;

                    trabajador trab = new trabajador();
                    trab.rut = rutTrabajador;
                    trab = trab.obtenerTrabajador();

                    ViewBag.NombreTrabajador = trab.nombres + trab.apellidos;

                    return View(datosPago);
                }
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }