Exemple #1
0
        public ActionResult Guardar([Bind(Include = "Total_Horas_Laboradas,Extras_Diurnas,Extras_Nocturnas,Fecha_Inicial_Pago, Fecha_Final_Pago,ID_Empleado,Aporte_Salud,Aporte_Pension")] NominaViewModel infonomina)
        {
            if (ModelState.IsValid)
            {
                var fecha_inicio_empleado = db.Empleadoes.FirstOrDefault(e => e.ID_Empleado == infonomina.ID_Empleado).Cargo_Empleado.FirstOrDefault().Fecha_Inicio;

                Nomina nomina = new Nomina
                {
                    Total_Horas_Laboradas = infonomina.Total_Horas_Laboradas,
                    Extras_Diurnas        = infonomina.Extras_Diurnas,
                    Extras_Nocturnas      = infonomina.Extras_Nocturnas,
                    Fecha_Inicial_Pago    = infonomina.Fecha_Inicial_Pago,
                    Fecha_Final_Pago      = infonomina.Fecha_Final_Pago,
                    ID_Empleado           = infonomina.ID_Empleado,
                    Aporte_Salud          = infonomina.Aporte_Salud,
                    Aporte_Pension        = infonomina.Aporte_Pension
                };

                if (fecha_inicio_empleado > infonomina.Fecha_Inicial_Pago)
                {
                    TempData["Error"] = "FUERA DEL RANGO DE PAGO";

                    return(RedirectToAction("Index", new { id = infonomina.ID_Empleado }));
                }

                db.Nominas.Add(nomina);
                db.SaveChanges();

                return(RedirectToAction("ListEmployee", "Employee"));
            }

            return(View("ListEmployee", "Employee"));
        }
Exemple #2
0
        public ActionResult Index(int id)
        {
            Empleado empleado = db.Empleadoes.Find(id);

            if (empleado == null)
            {
                return(HttpNotFound());
            }

            NominaViewModel nomina        = new NominaViewModel();
            var             cargoEmpleado = empleado.Cargo_Empleado.FirstOrDefault();

            nomina.Nombre           = empleado.Nombre;
            nomina.Apellido         = empleado.Apellido;
            nomina.Numero_Documento = empleado.Numero_Documento;
            nomina.Salario_Basico   = cargoEmpleado.Salario_Basico;
            nomina.Cargo            = cargoEmpleado.Cargo.Descripción_Cargo;
            nomina.Jornada          = cargoEmpleado.Jornada.Nombre;
            nomina.ID_Empleado      = empleado.ID_Empleado;


            if (cargoEmpleado.TipoContrato == ContractType.ContratoIndefinido.ToString())
            {
                nomina.Aporte_Salud   = nomina.Salario_Basico * (decimal)0.04;
                nomina.Aporte_Pension = nomina.Salario_Basico * (decimal)0.04;
            }

            if (nomina.Salario_Basico <= 1656232)
            {
                nomina.AuxilioTransporte += 97032;
            }

            if (TempData["Error"] != null && !string.IsNullOrEmpty(TempData["Error"].ToString()))
            {
                ViewBag.Error = TempData["Error"].ToString();
            }

            return(View(nomina));
        }
Exemple #3
0
        public List <NominaViewModel> ObtenerInfo()
        {
            string[] paths;

            List <NominaViewModel> nominaViewModels = new List <NominaViewModel>();

            paths = this.obtenerListaArchivos();
            XmlDocument xml = new XmlDocument();
            int         i   = 0;

            paths.ToList().ForEach(path =>
            {
                NominaViewModel nominaViewModel = new NominaViewModel();
                DateTime fecha     = DateTime.Now;
                string fechaString = String.Empty;
                if (path.Contains("CANCELACION"))
                {
                    return;
                }
                try
                {
                    xml.Load(path);
                }
                catch (Exception e)
                {
                    return;
                }
                XDocument doc = XDocument.Load(path);
                if (!tieneTimbrado(doc))
                {
                    Console.WriteLine("No tiene timbrado");
                    return;
                }
                else
                {
                    //Console.WriteLine("Tiene timbrado");
                    Console.WriteLine("Leyendo la iteración {0} del archivo {1}", i++, path);
                }
                nominaViewModel.path             = path;
                nominaViewModel.Nombre           = this.obtenerInfo(doc, "RECEPTOR", "NOMBRE");
                nominaViewModel.RFC              = this.obtenerInfo(doc, "RECEPTOR", "RFC");
                nominaViewModel.UUID             = this.obtenerInfo(doc, "TIMBREFISCALDIGITAL", "UUID");
                fechaString                      = this.obtenerInfo(doc, "NOMINA", "FECHAFINALPAGO");
                nominaViewModel.FechaFinalPago   = DateTimeOffset.Parse(fechaString).DateTime;
                fechaString                      = this.obtenerInfo(doc, "NOMINA", "FECHAINICIALPAGO");
                nominaViewModel.FechaInicialPago = DateTimeOffset.Parse(fechaString).DateTime;
                fechaString                      = this.obtenerInfo(doc, "NOMINA", "FECHAPAGO");
                nominaViewModel.FechaPago        = DateTimeOffset.Parse(fechaString).DateTime;
                fechaString                      = this.obtenerInfo(doc, "TIMBREFISCALDIGITAL", "FECHATIMBRADO");
                nominaViewModel.FechaTimbrado    = DateTimeOffset.Parse(fechaString).DateTime;

                //Console.WriteLine("PERCEPCIONES");
                //this.leerChildren(doc, "PERCEPCIONES");
                //Console.WriteLine("DEDUCCIONES");
                this.leerChildren(doc, "DEDUCCIONES");
                //Console.WriteLine("OTROS PAGOS");
                //this.leerChildren(doc, "OTROSPAGOS");
                //Console.WriteLine("CONCEPTOS");
                //this.leerChildren(doc, "CONCEPTOS");
                double r = this.obtenerReintegroOtrosPagos(doc);
                if (r == 0)
                {
                    nominaViewModel.ReintegroISR = this.obtenerReintegro(doc);
                }
                else
                {
                    nominaViewModel.ReintegroISR = r;
                }
                nominaViewModel.RetencionISR = this.obtenerISR(doc);
                nominaViewModels.Add(nominaViewModel);
            });
            return(nominaViewModels);
        }