Esempio n. 1
0
        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);
        }