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");
            }
        }
Beispiel #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;
        }
Beispiel #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);
        }
Beispiel #5
0
        public trabajador obtenerTrabajador()
        {
            trabajador Trabajador = new trabajador();
            SqlConnection cnx = conexion.crearConexion();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = cnx;
            cmd.CommandText = "SELECT * from trabajador WHERE rut='" + rut + "'";
            cmd.CommandType = CommandType.Text;
            SqlDataReader dr = cmd.ExecuteReader();

            while (dr.Read())
            {

                Trabajador.rut = (string)dr["rut"];
                Trabajador.nombres = (string)dr["nombres"];
                Trabajador.apellidos = (string)dr["apellidos"];
                Trabajador.obra = (string)dr["obra"];
                Trabajador.cargo = (string)dr["cargo"];
                Trabajador.direccion = (string)dr["direccion"];
                Trabajador.telefono = (string)dr["telefono"];
                Trabajador.salud = (string)dr["salud"];
                Trabajador.afp = (string)dr["afp"];
                Trabajador.fechaIngresoEmpresa = (DateTime)dr["fechaIngresoEmpresa"];
                Trabajador.fechaIngresoSistema = (DateTime)dr["fechaIngresoSistema"];
                Trabajador.tipo_contrato = (string)dr["tipo_contrato"];
                Trabajador.tipo_regimen = (string)dr["tipo_regimen"];

                try
                {
                    Trabajador.porcentajeAFP = (double)dr["porcentajeAFP"];
                }
                catch (Exception) {
                    Trabajador.porcentajeAFP = 0;
                }

                try
                {
                    Trabajador.porcentajeAPV = (double)dr["porcentajeAPV"];
                }
                catch (Exception) {
                    Trabajador.porcentajeAPV = 0;
                }

                try
                {
                    Trabajador.porcentajeSalud = (double)dr["porcentajeSalud"];
                }
                catch (Exception) {
                    Trabajador.porcentajeSalud = 0;
                }
                try
                {
                    Trabajador.porcentajeAFC = (double)dr["porcentajeAFC"];
                }
                catch (Exception)
                {
                    Trabajador.porcentajeAFC = 0;
                }

            }
            cnx.Close();
            return Trabajador;
        }
Beispiel #6
0
        public static List<trabajador> obtenerTodos()
        {
            List<trabajador> listaTrabajadores = new List<trabajador>();
            SqlConnection cnx = conexion.crearConexion();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = cnx;
            cmd.CommandText = "SELECT * from trabajador ORDER BY apellidos ASC";
            cmd.CommandType = CommandType.Text;
            SqlDataReader dr = cmd.ExecuteReader();

            while (dr.Read())
            {
                trabajador Trabajador = new trabajador();

                Trabajador.rut = (string)dr["rut"];
                Trabajador.nombres = (string)dr["nombres"];
                Trabajador.apellidos = (string)dr["apellidos"];
                Trabajador.obra = (string)dr["obra"];
                Trabajador.cargo = (string)dr["cargo"];
                Trabajador.direccion = (string)dr["direccion"];
                Trabajador.telefono = (string)dr["telefono"];
                Trabajador.salud = (string)dr["salud"];
                Trabajador.afp = (string)dr["afp"];
                Trabajador.fechaIngresoEmpresa = (DateTime)dr["fechaIngresoSistema"];
                Trabajador.fechaIngresoSistema = (DateTime)dr["fechaIngresoEmpresa"];
                Trabajador.tipo_contrato = (string)dr["tipo_contrato"];
                Trabajador.tipo_regimen = (string)dr["tipo_regimen"];

                try
                {
                    Trabajador.porcentajeAFP = (double)dr["porcentajeAFP"];
                }
                catch (Exception)
                {
                    Trabajador.porcentajeAFP = 0;
                }

                try
                {
                    Trabajador.porcentajeAPV = (double)dr["porcentajeAPV"];
                }
                catch (Exception)
                {
                    Trabajador.porcentajeAPV = 0;
                }

                try
                {
                    Trabajador.porcentajeSalud = (double)dr["porcentajeSalud"];
                }
                catch (Exception)
                {
                    Trabajador.porcentajeSalud = 0;
                }
                try
                {
                    Trabajador.porcentajeAFC = (double)dr["porcentajeAFC"];
                }
                catch (Exception)
                {
                    Trabajador.porcentajeAFC = 0;
                }

                if (!Trabajador.obra.Equals(""))
                {
                    listaTrabajadores.Add(Trabajador);
                }
            }
            cnx.Close();

            return listaTrabajadores;
        }
 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 agregarNuevo(HttpPostedFileBase file, FormCollection form)
        {
            if (Session["rol"] != null && (Session["rol"].Equals("admin") || Session["rol"].Equals("contabilidad")))
            {
                mensaje = 0;
                string rut = (string)form["rut"];
                string nombres = (string)form["nombres"];
                string apellidos = (string)form["apellidos"];

                string fecha1 = (string)form["fechaIngresoEmpresa"];
                string[] fecha_1 = fecha1.Split('/');
                int dia1 = Convert.ToInt32(fecha_1[0]);
                int mes1 = Convert.ToInt32(fecha_1[1]);
                int ano1 = Convert.ToInt32(fecha_1[2]);

                DateTime fechaIngresoEmpresa = new DateTime(ano1, mes1, dia1);

                string fecha2 = (string)form["fechaIngresoSistema"];
                string[] fecha_2 = fecha2.Split('/');
                int dia2 = Convert.ToInt32(fecha_2[0]);
                int mes2 = Convert.ToInt32(fecha_2[1]);
                int ano2 = Convert.ToInt32(fecha_2[2]);

                DateTime fechaIngresoSistema = new DateTime(ano2, mes2, dia2);

                string direccion = (string)form["direccion"];
                string telefono = (string)form["telefono"];
                string obra = (string)form["obra"];
                string cargo = (string)form["cargo"];

                string tipo_regimen = (string)form["tipo_regimen"];
                string tipo_contrato = (string)form["tipo_contrato"];

                string porcentajeAFP;
                string porcentajeAPV;
                string porcentajeSalud;
                string porcentajeAFC;
                string sueldo_acordado;
                try
                {
                    sueldo_acordado = (string)form["sueldo_acordado"];
                }
                catch (Exception)
                {
                    sueldo_acordado = "";
                }
                try
                {
                    porcentajeAFC = (string)form["porcentajeAFC"];
                }
                catch (Exception)
                {
                    porcentajeAFC = "";
                }
                try
                {
                    porcentajeAFP = (string)form["porcentajeAFP"];
                }
                catch (Exception)
                {
                    porcentajeAFP = "";
                }

                try
                {
                    porcentajeAPV = (string)form["porcentajeAPV"];
                }
                catch (Exception ex)
                {
                    porcentajeAPV = "";
                }

                try
                {

                    porcentajeSalud = (string)form["porcentajeSalud"];
                }
                catch (Exception ex)
                {

                    porcentajeSalud = "";
                }

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

                string extImage = Convert.ToString(Request.Files["file"].ContentType);
                string[] infoImage = extImage.Split('/');

                try
                {
                    string fileExtension = System.IO.Path.GetExtension(Request.Files["file"].FileName);
                    string fileLocation = Server.MapPath("~/Images/copiasCI/") + rut + "." + infoImage[1];//Request.Files["file"].FileName;
                    Request.Files["file"].SaveAs(fileLocation);
                    trabajador Trabajador = new trabajador();

                    Trabajador.obra = obra;
                    Trabajador.rut = rut;
                    Trabajador.nombres = nombres;
                    Trabajador.apellidos = apellidos;
                    Trabajador.salud = salud;
                    Trabajador.afp = afp;
                    Trabajador.cargo = cargo;
                    Trabajador.direccion = direccion;
                    Trabajador.telefono = telefono;
                    Trabajador.fechaIngresoEmpresa = fechaIngresoEmpresa;
                    Trabajador.fechaIngresoSistema = fechaIngresoSistema;

                    if (!porcentajeAFP.Equals(""))
                    {

                        Trabajador.porcentajeAFP = Convert.ToDouble(porcentajeAFP);

                    }

                    if (!porcentajeAFC.Equals(""))
                    {

                        Trabajador.porcentajeAFC = Convert.ToDouble(porcentajeAFC);

                    }

                    if (!porcentajeAPV.Equals(""))
                    {
                        Trabajador.porcentajeAPV = Convert.ToDouble(porcentajeAPV);
                    }

                    if (!porcentajeSalud.Equals(""))
                    {
                        Trabajador.porcentajeSalud = Convert.ToDouble(porcentajeSalud);
                    }
                    Trabajador.tipo_contrato=tipo_contrato;
                    Trabajador.tipo_regimen=tipo_regimen;
                    Trabajador.guardarTrabajador();
                    mensaje = 1;
                }
                catch (Exception ex)
                {
                    mensaje = 2;
                    trabajador.eliminarTrabajador(rut);
                    Console.Write(ex);

                }

                return RedirectToAction("todos", "Trabajador");
            }
            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");
            }
        }