public Mensaje SaveDeleteVacAplicacionJSP(List <VacacionesAplicacion> entitysCambios, List <VacacionesAplicacion> entitysDelete, DBContextAdapter dbContext) { listEsp = new List <VacacionesAplicacion>(); try { commit = true; inicializaVariableMensaje(); setSession(dbContext.context); getSession().Database.BeginTransaction(); if (entitysDelete.Count > 0) { object[] clavesDelete = new object[entitysDelete.Count]; object[] claveDeleteDis = new object[entitysCambios.Count]; for (int i = 0; i < entitysDelete.Count; i++) { clavesDelete[i] = entitysDelete[i].id; if (i == 0) { claveDeleteDis[i] = entitysDelete[i].vacacionesDisfrutadas_ID; } else if (entitysDelete[i].vacacionesDisfrutadas_ID != entitysDelete[i - 1].vacacionesDisfrutadas_ID) { claveDeleteDis[claveDeleteDis.Length - 1] = entitysDelete[i].vacacionesDisfrutadas_ID; } } commit = deleteListQuerys(typeof(VacacionesAplicacion).Name, new CamposWhere("VacacionesAplicacion.id", clavesDelete, OperadorComparacion.IN, OperadorLogico.AND), dbContext); //deleteListQuerys("VacacionesAplicacion", "Id", clavesDelete); if (commit) { getSession().SaveChanges(); commit = deleteListQuerys(typeof(VacacionesAplicacion).Name, new CamposWhere("VacacionesDisfrutadas.id", claveDeleteDis, OperadorComparacion.IN, OperadorLogico.AND), dbContext); if (commit) { getSession().SaveChanges(); } } } for (int i = 0; i < entitysCambios.Count; i++) { if (entitysCambios[i].id == 0) { VacacionesDisfrutadas vacDis = entitysCambios[i].vacacionesDisfrutadas; getSession().Set <VacacionesDisfrutadas>().Add(vacDis); getSession().SaveChanges(); entitysCambios[i].vacacionesDisfrutadas = null; entitysCambios[i].vacacionesDisfrutadas_ID = vacDis.id; getSession().Set <VacacionesAplicacion>().Add(entitysCambios[i]); getSession().SaveChanges(); } else { VacacionesDisfrutadas vacDis = entitysCambios[i].vacacionesDisfrutadas; getSession().Set <VacacionesDisfrutadas>().Add(vacDis); getSession().SaveChanges(); entitysCambios[i].vacacionesDisfrutadas = null; entitysCambios[i].vacacionesDisfrutadas_ID = vacDis.id; getSession().Set <VacacionesAplicacion>().AddOrUpdate(entitysCambios[i]); getSession().SaveChanges(); } } if (commit) { mensajeResultado.resultado = true; mensajeResultado.noError = 0; mensajeResultado.error = ""; getSession().Database.CurrentTransaction.Commit(); } else { getSession().Database.CurrentTransaction.Rollback(); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("saveDeleteVacacionesAplicacion()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; getSession().Database.CurrentTransaction.Rollback(); } return(mensajeResultado); }
public Mensaje agregarVacacionesAuto(RazonesSociales razonSocial, PlazasPorEmpleadosMov plaEmp, PeriodosNomina periodoNomina, object[,] tablaFactorIntegracion, PagarPrimaVacionalyVacacionesAuto pagarVacaAuto, DBContextSimple dbContextSimple) { try { VacacionesDisfrutadas vacDis = new VacacionesDisfrutadas(); Mensaje vacDisgau = new Mensaje(); VacacionesDisfrutadas vacDisconId = new VacacionesDisfrutadas(); VacacionesDisfrutadasDAO vacaDisfrutadas = new VacacionesDisfrutadasDAO(); VacacionesAplicacion VacAplic = new VacacionesAplicacion(); VacacionesDevengadas vacacionesDeven = null; DateTime fechaEmplado = new DateTime(); if (vacDev.getDevengadaActual() == null || vacDev.getDevengadaActual().Count == 0) { mensajeResultado = calcularVacacionesDevengadasEmpleados(razonSocial, tablaFactorIntegracion, dbContextSimple, null); if (mensajeResultado.noError != 0) { return(mensajeResultado); } } if (vacDev.getDevengadaActual().Count > 0) { vacacionesDeven = vacDev.getDevengadaActual()[plaEmp.plazasPorEmpleado.empleados.clave]; DateTime calfecha = new DateTime(); DateTime fechaActual = DateTime.Now.Date; DateTime calfechaActual = DateTime.Now; if (vacacionesDeven != null) { vacacionAplicacionActual = new VacacionesAplicacion(); calfecha = plaEmp.plazasPorEmpleado.fechaPrestaciones.Value; calfecha.AddYears(calfecha.Year + vacacionesDeven.ejercicio.Value); fechaEmplado = calfecha.Date; DateTime fechaPerIni = periodoNomina.fechaInicial.Value.Date; DateTime fechaPerFinal = periodoNomina.fechaFinal.Value.Date; if (fechaEmplado.CompareTo(fechaPerIni) >= 0 && fechaEmplado.CompareTo(fechaPerFinal) <= 0) { if (pagarVacaAuto == PagarPrimaVacionalyVacacionesAuto.PRIMACACIONALALANIVERSARIO) { vacDis.empleados = plaEmp.plazasPorEmpleado.empleados; vacDis.diasPrimaDisfrutados = vacacionesDeven.diasPrimaVaca; vacDis.diasVacDisfrutados = (0); vacDis.ejercicioAplicacion = calfechaActual.Year; vacDis.pagarPrimaVacacional = true; vacDis.pagarVacaciones = false; vacDis.periodoAplicacion = periodoNomina; vacDis.periodoPago = periodoNomina; vacDis.razonesSociales = razonSocial; vacDis.registroInicial = false; vacDis.regresoVac = calfechaActual; vacDis.salidaVacac = calfechaActual; vacDis.statusVacaciones = StatusVacaciones.PORCALCULAR; vacDis.tipoNominaAplicacion = periodoNomina.tipoNomina; vacDis.tipoCorridaAplicacion = periodoNomina.tipoCorrida; dbContextSimple.Set <VacacionesDisfrutadas>().Add(vacDis); dbContextSimple.SaveChanges(); vacDisconId = vacDis; VacAplic.diasPrima = vacacionesDeven.diasPrimaVaca; VacAplic.diasVac = 0; VacAplic.vacacionesDevengadas = vacacionesDeven; VacAplic.vacacionesDisfrutadas = vacDisconId; dbContextSimple.Set <VacacionesAplicacion>().AddOrUpdate(VacAplic); dbContextSimple.SaveChanges(); vacacionAplicacionActual = VacAplic; } else if (pagarVacaAuto == PagarPrimaVacionalyVacacionesAuto.PRIMACACIONALYVACACIONESALANIVERSARIO) { vacDis.empleados = plaEmp.plazasPorEmpleado.empleados; vacDis.diasPrimaDisfrutados = vacacionesDeven.diasPrimaVaca; vacDis.diasVacDisfrutados = vacacionesDeven.diasVacaciones; vacDis.ejercicioAplicacion = calfechaActual.Year; vacDis.pagarPrimaVacacional = true; vacDis.pagarVacaciones = false; vacDis.periodoAplicacion = periodoNomina; vacDis.periodoPago = periodoNomina; vacDis.razonesSociales = razonSocial; vacDis.registroInicial = false; vacDis.regresoVac = calfechaActual; vacDis.salidaVacac = calfechaActual; vacDis.statusVacaciones = StatusVacaciones.PORCALCULAR; vacDis.tipoNominaAplicacion = periodoNomina.tipoNomina; dbContextSimple.Set <VacacionesDisfrutadas>().Add(vacDis); dbContextSimple.SaveChanges(); vacDisconId = vacDis; VacAplic.diasPrima = vacacionesDeven.diasPrimaVaca; VacAplic.diasVac = vacacionesDeven.diasVacaciones; VacAplic.vacacionesDevengadas = vacacionesDeven; VacAplic.vacacionesDisfrutadas = vacDisconId; dbContextSimple.Set <VacacionesAplicacion>().AddOrUpdate(VacAplic); dbContextSimple.SaveChanges(); vacacionAplicacionActual = VacAplic; } } } } mensajeResultado.resultado = vacacionAplicacionActual; mensajeResultado.noError = 0; mensajeResultado.error = ""; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("agregarVacacionesAuto()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; dbContextSimple.Database.CurrentTransaction.Rollback(); } return(mensajeResultado); }