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")); }
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)); }
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); }