public ActionResult Agregar(CompensacionViewModel model) { var compensacion = model.Compensacion; ModelState.Remove("Persona"); var persona = _context.Personal.FirstOrDefault(p => p.Id == compensacion.PersonaId); if (compensacion.HorasCompensadas <= persona.HorasExtraAcumuladas) { if (compensacion.Id == 0) { _context.Compensaciones.Add(compensacion); var horasExtra = new HorasExtra() { PersonaId = compensacion.PersonaId, Fecha = compensacion.Fecha, Motivo = "Compensación", Aumenta = false, HorasCantidad = compensacion.HorasCompensadas }; _context.HorasExtra.Add(horasExtra); } else { var compensacionInDb = _context.Compensaciones.Single(p => p.Id == model.Compensacion.Id); compensacionInDb.Fecha = compensacion.Fecha; compensacionInDb.HorasCompensadas = compensacion.HorasCompensadas; compensacionInDb.PersonaId = compensacion.PersonaId; var horasExtraInDb = _context.HorasExtra.FirstOrDefault(p => p.Fecha == compensacion.Fecha && p.PersonaId == compensacion.Id); if (horasExtraInDb != null) { horasExtraInDb.PersonaId = compensacion.PersonaId; horasExtraInDb.Fecha = compensacion.Fecha; horasExtraInDb.Motivo = "Compensación"; horasExtraInDb.Aumenta = false; horasExtraInDb.HorasCantidad = compensacion.HorasCompensadas; } } _context.SaveChanges(); var compensaciones = _context.Compensaciones.Include(m => m.Persona).ToList(); return(View("ListarCompensaciones", compensaciones)); } var viewModel = new CompensacionViewModel() { Personas = _context.Personal.ToList() }; ViewBag.Error = "Horas Extra Insuficientes"; return(View("AgregarCompensacion", viewModel)); }
//[Route("Mantenimiento/Asistencia/Guardar")] public ActionResult Guardar(List <Asistencia> listaModel) { foreach (var asistencia in listaModel) { var asistenciaInDb = _context.Asistencias.Include(p => p.Persona).Include(m => m.Persona.Turno).Single(p => p.Id == asistencia.Id); asistenciaInDb.HoraLLegada = asistencia.HoraLLegada; asistenciaInDb.HoraSalida = asistencia.HoraSalida; _context.Entry(asistenciaInDb).State = EntityState.Modified; if (asistenciaInDb.HoraSalida != null) { if (asistenciaInDb.HoraSalida > asistenciaInDb.Persona.Turno.HoraFin) { var existe = _context.HorasExtra.FirstOrDefault(m => m.Fecha == asistenciaInDb.Fecha && m.PersonaId == asistenciaInDb.PersonaId); var horasDiferencia = asistenciaInDb.HoraSalida - asistenciaInDb.Persona.Turno.HoraFin; if (existe == null) { var horasExtra = new HorasExtra() { PersonaId = asistenciaInDb.PersonaId, Fecha = asistenciaInDb.Fecha, Motivo = "Horas Extra", Aumenta = true, HorasCantidad = horasDiferencia, }; _context.HorasExtra.Add(horasExtra); } else { var horasExtra = _context.HorasExtra.SingleOrDefault(x => x.Id == existe.Id); if (horasExtra != null) { horasExtra.HorasCantidad = horasDiferencia; } } } } } _context.SaveChanges(); return(RedirectToAction("TomarAsistencia")); }
//Usado como trigger para la animacion de fade-out del login private async void Window_Loaded(object sender, RoutedEventArgs e) { lgc = new LoginControl(); _ = await lgc.verificarUsuario(); anims[0].Begin(); if (LoginControl.tipoUsuario == null) { Close(); } anim = true; Mouse.OverrideCursor = Cursors.Wait; if (LoginControl.tipoUsuario == tiposUsuario[0]) { empleados = new Empleados(); planillas = new Planillas(); sucursales = new Sucursales(); configuracion = new Configuracion(); reportes = new Reportes(); activarTodos(); } else if (LoginControl.tipoUsuario == tiposUsuario[1]) { HorasExtra = new HorasExtra(); UsuariosDispositivo = new UsuariosDispositivo(); ocultarTodos(); } else if (LoginControl.tipoUsuario == tiposUsuario[2]) { configuracion = new Configuracion(); activarIT(); } frPpal.IsEnabled = true; Mouse.OverrideCursor = Cursors.Arrow; }
/// <summary> /// Función que lee los nodos XML de un documento CFDI /// </summary> /// <param name="padre"></param> private void LeerNodos(XmlNode padre) { // Procesamos el nodo switch (padre.Prefix) { case "cfdi": { switch (padre.LocalName) { case "Comprobante": cfdi = new Comprobante(); cfdi.atributos = leerAtributos(padre); break; case "Emisor": cfdi.Emisor = new Emisor(); cfdi.Emisor.atributos = leerAtributos(padre); break; case "DomicilioFiscal": cfdi.Emisor.DomicilioFiscal = new DomicilioFiscal(); cfdi.Emisor.DomicilioFiscal.atributos = leerAtributos(padre); break; case "ExpedidoEn": cfdi.Emisor.ExpedidoEn = new ExpedidoEn(); cfdi.Emisor.ExpedidoEn.atributos = leerAtributos(padre); break; case "RegimenFiscal": cfdi.Emisor.RegimenFiscal = padre.Attributes["Regimen"].Value; break; case "Receptor": cfdi.Receptor = new Receptor(); cfdi.Receptor.atributos = leerAtributos(padre); break; case "Domicilio": cfdi.Receptor.Domicilio = new Domicilio(); cfdi.Receptor.Domicilio.atributos = leerAtributos(padre); break; case "Conceptos": cfdi.Conceptos = new Conceptos(); break; case "Concepto": Concepto concepto = new Concepto(); concepto.atributos = leerAtributos(padre); cfdi.Conceptos.Agregar(concepto); break; case "Impuestos": cfdi.Impuestos = new Impuestos(); cfdi.Impuestos.atributos = leerAtributos(padre); break; case "Traslados": cfdi.Impuestos.Traslados = new Traslados(); break; case "Traslado": Traslado traslado = new Traslado(); traslado.atributos = leerAtributos(padre); cfdi.Impuestos.Traslados.Agregar(traslado); break; case "Retenciones": cfdi.Impuestos.Retenciones = new Retenciones(); break; case "Retencion": Retencion retencion = new Retencion(); retencion.atributos = leerAtributos(padre); cfdi.Impuestos.Retenciones.Agregar(retencion); break; } break; } case "tfd": { switch (padre.LocalName) { case "TimbreFiscalDigital": TimbreFiscalDigital timbre = new TimbreFiscalDigital(); timbre.atributos = leerAtributos(padre); cfdi.AgregarComplemento(timbre); break; } break; } case "nomina": { switch (padre.LocalName) { case "Nomina": Nomina nomina = new Nomina(); nomina.atributos = leerAtributos(padre); cfdi.AgregarComplemento(nomina); break; case "Percepciones": Percepciones percepciones = new Percepciones(); percepciones.atributos = leerAtributos(padre); nomina = cfdi.Complemento("nomina") as Nomina; nomina.Percepciones = new Percepciones(); break; case "Percepcion": Percepcion percepcion = new Percepcion(); percepcion.atributos = leerAtributos(padre); nomina = cfdi.Complemento("nomina") as Nomina; nomina.Percepciones.Agregar(percepcion); break; case "Deducciones": Deducciones deducciones = new Deducciones(); deducciones.atributos = leerAtributos(padre); nomina = cfdi.Complemento("nomina") as Nomina; nomina.Deducciones = deducciones; break; case "Deduccion": Deduccion deduccion = new Deduccion(); deduccion.atributos = leerAtributos(padre); nomina = cfdi.Complemento("nomina") as Nomina; nomina.Deducciones.Agregar(deduccion); break; case "Incapacidades": nomina = cfdi.Complemento("nomina") as Nomina; nomina.Incapacidades = new Incapacidades(); break; case "Incapacidad": Incapacidad incapacidad = new Incapacidad(); incapacidad.atributos = leerAtributos(padre); nomina = cfdi.Complemento("nomina") as Nomina; nomina.Incapacidades.Agregar(incapacidad); break; case "HorasExtras": nomina = cfdi.Complemento("nomina") as Nomina; nomina.HorasExtras = new HorasExtras(); break; case "HorasExtra": HorasExtra horasExtra = new HorasExtra(); horasExtra.atributos = leerAtributos(padre); nomina = cfdi.Complemento("nomina") as Nomina; nomina.HorasExtras.Agregar(horasExtra); break; } break; } case "ecc": { switch (padre.LocalName) { case "EstadoDeCuentaCombustible": EstadoDeCuentaCombustible edoCta = new EstadoDeCuentaCombustible(); edoCta.atributos = leerAtributos(padre); cfdi.AgregarComplemento(edoCta); break; case "Conceptos": EstadoDeCuentaCombustible combustible = cfdi.Complemento("combustible") as EstadoDeCuentaCombustible; combustible.conceptos = new ConceptosEstadoDeCuentaCombustibles(); break; case "ConceptoEstadoDeCuentaCombustible": ConceptoEstadoDeCuenta concepto = new ConceptoEstadoDeCuenta(); concepto.atributos = leerAtributos(padre); combustible = cfdi.Complemento("combustible") as EstadoDeCuentaCombustible; combustible.Agregar(concepto); break; case "Traslados": combustible = cfdi.Complemento("combustible") as EstadoDeCuentaCombustible; combustible.conceptos[combustible.conceptos.Elementos - 1].traslados = new TrasladosConceptosEstadoDeCuentaCombustible(); break; case "Traslado": TrasladoEstadoDeCuentaCombustible traslado = new TrasladoEstadoDeCuentaCombustible(); traslado.atributos = leerAtributos(padre); combustible = cfdi.Complemento("combustible") as EstadoDeCuentaCombustible; combustible.conceptos[combustible.conceptos.Elementos - 1].AgregaTraslado(traslado); break; } break; } case "implocal": { switch (padre.LocalName) { case "ImpuestosLocales": ImpuestosLocales implocal = new ImpuestosLocales(); implocal.atributos = leerAtributos(padre); cfdi.AgregarComplemento(implocal); break; } break; } } // Procesamos los nodos hijos for (int i = 0; i < padre.ChildNodes.Count; i++) { if (padre.ChildNodes[i].NodeType == XmlNodeType.Element) { LeerNodos(padre.ChildNodes[i]); } } }