Пример #1
0
        public Boolean ModificarDB_POR_ID_CALENDARIO(ro_Empleado_Novedad_Det_Info info)
        {
            try
            {
                using (EntitiesRoles context = new EntitiesRoles())
                {
                    var contact = context.ro_empleado_novedad_det.First(v => v.IdEmpresa == info.IdEmpresa &&
                                                                        v.IdEmpleado == info.IdEmpleado &&
                                                                        v.IdCalendario == info.IdCalendario &&
                                                                        v.IdRubro == info.IdRubro);

                    contact.IdRubro     = info.IdRubro;
                    contact.FechaPago   = info.FechaPago;
                    contact.Valor       = info.Valor;
                    contact.EstadoCobro = info.EstadoCobro;
                    contact.Estado      = info.Estado;
                    contact.Observacion = info.Observacion;
                    contact.Num_Horas   = info.NumHoras;
                    context.SaveChanges();

                    mensaje = "Se ha procedido a actualizar la información exitosamente...";
                }
                return(true);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.InnerException + " " + ex.Message;
                mensaje = "Error al grabar" + ex.InnerException;
                return(false);
            }
        }
Пример #2
0
        public Boolean ModificarDB(ro_Empleado_Novedad_Det_Info prI, ref string mensaje)
        {
            try
            {
                using (EntitiesRoles context = new EntitiesRoles())
                {
                    var contact = context.ro_empleado_novedad_det.First(VProdu => VProdu.IdEmpresa == prI.IdEmpresa &&
                                                                        VProdu.IdNovedad == prI.IdNovedad && VProdu.IdEmpleado == prI.IdEmpleado && VProdu.Secuencia == prI.Secuencia);

                    contact.IdRubro           = prI.IdRubro;
                    contact.FechaPago         = prI.FechaPago;
                    contact.Valor             = prI.Valor;
                    contact.EstadoCobro       = prI.EstadoCobro;
                    contact.Estado            = prI.Estado;
                    contact.Observacion       = prI.Observacion;
                    contact.Num_Horas         = prI.NumHoras;
                    contact.IdNomina_tipo     = prI.IdNominaLiqui;
                    contact.IdNomina_Tipo_Liq = prI.IdNominaLiqui;
                    context.SaveChanges();

                    mensaje = "Se ha procedido a actualizar la información exitosamente...";
                }
                return(true);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.InnerException + " " + ex.Message;
                mensaje = "Error al grabar" + ex.InnerException;
                return(false);
            }
        }
Пример #3
0
        public double Get_valor_rebaja_Desahucio(int idEmpresa, decimal idEmpleado, string idRubro)
        {
            try
            {
                ro_Empleado_Novedad_Det_Info Reg = new ro_Empleado_Novedad_Det_Info();

                EntitiesRoles db = new EntitiesRoles();

                var datos = from a in db.ro_empleado_novedad_det
                            where a.IdEmpresa == idEmpresa &&
                            a.IdEmpleado == idEmpleado &&
                            a.IdRubro == idRubro &&
                            a.EstadoCobro == "PEN" &&
                            a.Estado == "A"
                            select a;
                if (datos.Count() > 0)
                {
                    return(datos.FirstOrDefault().Valor);
                }
                else
                {
                    return(0);
                }
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }
Пример #4
0
        private ro_Empleado_Novedad_Info Get_Novedad(ro_descuento_no_planificados_Info info)
        {
            try
            {
                int secuencia = 0;
                ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();

                info_novedad.IdEmpresa     = info.IdEmpresa;
                info_novedad.IdEmpleado    = info.IdEmpleado;
                info_novedad.IdNomina_Tipo = info.IdNomina_Tipo;
                if (info.lista.Count() > 0)
                {
                    info_novedad.IdNomina_TipoLiqui = info.lista.FirstOrDefault().IdNomina_Tipo_Liq;
                }
                if (info.IdNovedad != null)
                {
                    info_novedad.IdNovedad = Convert.ToDecimal(info.IdNovedad);
                }
                info_novedad.IdUsuario        = info.IdUsuario;
                info_novedad.Fecha            = info.Fecha_Incidente;
                info_novedad.Fecha_Transac    = DateTime.Now;
                info_novedad.TotalValor       = info.Valor;
                info_novedad.Fecha_PrimerPago = info.Fecha_Incidente;
                info_novedad.NumCoutas        = info.lista.Count();
                info_novedad.Estado           = "A";

                foreach (var item in info.lista)
                {
                    ro_Empleado_Novedad_Det_Info info_det = new ro_Empleado_Novedad_Det_Info();
                    secuencia++;
                    info_det.IdEmpresa     = item.IdEmpresa;
                    info_det.IdNomina      = item.IdNomina_Tipo;
                    info_det.IdNominaLiqui = item.IdNomina_Tipo_Liq;
                    info_det.IdEmpleado    = item.IdEmpleado;
                    info_det.IdNovedad     = info_novedad.IdNovedad;
                    info_det.IdRubro       = item.IdRubro;
                    info_det.FechaPago     = item.Fecha_Descuento;
                    info_det.EstadoCobro   = "PEN";
                    info_det.Valor         = item.Valor;
                    info_det.Observacion   = info.Observacion;
                    info_det.Estado        = "A";
                    info_det.Secuencia     = secuencia;
                    info_novedad.LstDetalle.Add(info_det);
                }



                return(info_novedad);
            }
            catch (Exception ex)
            {
                mensaje = ex.ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(mensaje);
            }
        }
        private List <ro_Empleado_Novedad_Info> Get_Novedades(List <ro_fectividad_x_empleado_Adm_x_periodo_Det_Info> lista)
        {
            try
            {
                List <ro_Empleado_Novedad_Info> listado_novedades = new List <ro_Empleado_Novedad_Info>();

                foreach (var item in lista)
                {
                    if (item.valor_ganado > 0)
                    {
                        ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                        info_novedad.IdEmpresa          = item.IdEmpresa;
                        info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = item.IdNomina_Tipo_Liq;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.Fecha            = item.fechaPago;
                        info_novedad.TotalValor       = Convert.ToDouble(item.valor_ganado);
                        info_novedad.Fecha_PrimerPago = DateTime.Now;
                        info_novedad.NumCoutas        = 1;
                        info_novedad.IdUsuario        = param.IdUsuario;
                        info_novedad.Fecha_Transac    = DateTime.Now;
                        info_novedad.Estado           = "A";
                        info_novedad.IdCalendario     = item.IdPeriodo.ToString();


                        // detalle de la novedad

                        ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                        info_detalle.IdEmpresa      = item.IdEmpresa;
                        info_detalle.IdEmpleado     = item.IdEmpleado;
                        info_detalle.Secuencia      = 1;
                        info_detalle.IdRol          = null;
                        info_detalle.IdRubro        = item.IdRubro;
                        info_detalle.FechaPago      = item.fechaPago;
                        info_detalle.Valor          = Convert.ToDouble(item.valor_ganado);
                        info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                        info_detalle.EstadoCobro    = "PEN";
                        info_detalle.Estado         = "A";
                        info_detalle.IdCalendario   = item.IdPeriodo.ToString();
                        info_novedad.InfoNovedadDet = info_detalle;
                        listado_novedades.Add(info_novedad);
                    }
                }

                return(listado_novedades);
            }
            catch (Exception ex)
            {
                mensaje = ex.ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(mensaje);
            }
        }
Пример #6
0
        public List <ro_Empleado_Novedad_Det_Info> Get_List_Novedad_x_Periodo(int idEmpresa, int idNomina, int idNominaLiqui, DateTime fechaIni, DateTime fechaFin)
        {
            try
            {
                List <ro_Empleado_Novedad_Det_Info> listado = new List <ro_Empleado_Novedad_Det_Info>();


                using (EntitiesRoles db = new EntitiesRoles())
                {
                    var sresult = from a in db.vwro_Empleado_Novedades
                                  where a.IdEmpresa == idEmpresa &&
                                  ((a.FechaPago >= fechaIni) &&
                                   (a.FechaPago <= fechaFin)) &&
                                  a.IdNomina_Tipo == idNomina &&
                                  a.IdNomina_TipoLiqui == idNominaLiqui &&
                                  a.Estado_det == "A" &&
                                  a.EstadoCobro == "PEN"
                                  select a;

                    foreach (var item in sresult)
                    {
                        ro_Empleado_Novedad_Det_Info Reg = new ro_Empleado_Novedad_Det_Info();

                        Reg.IdEmpresa     = item.IdEmpresa;
                        Reg.IdEmpleado    = Convert.ToDecimal(item.IdEmpleado);
                        Reg.IdNomina      = item.IdNomina_Tipo;
                        Reg.IdNominaLiqui = item.IdNomina_TipoLiqui;
                        Reg.IdNovedad     = item.IdNovedad;
                        Reg.IdRubro       = item.IdRubro;
                        Reg.EstadoCobro   = (item.EstadoCobro).Trim();
                        Reg.Fecha         = Convert.ToDateTime(item.Fecha);
                        Reg.Valor         = item.Valor;
                        Reg.Observacion   = item.Observacion;
                        Reg.Secuencia     = item.IdTransaccion;
                        Reg.Estado        = item.Estado_det;
                        if (Reg.NumHoras != null)
                        {
                            Reg.NumHoras = Convert.ToDouble(item.Num_Horas);
                        }
                        listado.Add(Reg);
                    }
                }
                return(listado);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }
Пример #7
0
        public List <ro_Empleado_Novedad_Det_Info> Get_List_Empleado_Novedad_Det_x_Periodo(int IdEmpresa, decimal IdEmpleado, int idNominaTipo, int idNominaTipoLiqui, string idRubro, DateTime fechaInicio, DateTime fechaFinal, ref string msg)
        {
            try
            {
                lista = new List <ro_Empleado_Novedad_Det_Info>();

                EntitiesRoles db = new EntitiesRoles();

                var datos = (from a in db.vwro_Empleado_Novedades
                             join b in db.ro_nomina_tipo_liqui_orden on a.IdRubro equals b.IdRubro
                             where a.IdEmpresa == IdEmpresa && a.IdEmpleado == IdEmpleado &&
                             a.IdNomina_Tipo == idNominaTipo && a.IdNomina_TipoLiqui == idNominaTipoLiqui && a.IdRubro == idRubro &&
                             (a.FechaPago >= fechaInicio && a.FechaPago <= fechaFinal)
                             select a);

                foreach (var item in datos)
                {
                    ro_Empleado_Novedad_Det_Info Reg = new ro_Empleado_Novedad_Det_Info();

                    Reg.IdEmpresa   = item.IdEmpresa;
                    Reg.IdNovedad   = item.IdNovedad;
                    Reg.IdEmpleado  = Convert.ToDecimal(item.IdEmpleado);
                    Reg.IdRubro     = item.IdRubro;
                    Reg.FechaPago   = item.FechaPago;
                    Reg.Valor       = item.Valor;
                    Reg.Observacion = item.Observacion;
                    Reg.Estado      = item.Estado_det;
                    Reg.EstadoCab   = item.Estado;

                    Reg.EstadoCobro = item.EstadoCobro;

                    Reg.em_codigo = item.em_codigo;
                    Reg.em_nombre = item.pe_nombreCompleto.Trim();
                    Reg.em_cedula = item.pe_cedulaRuc.Trim();
                    if (Reg.NumHoras != null)
                    {
                        Reg.NumHoras = Convert.ToDouble(item.Num_Horas);
                    }

                    lista.Add(Reg);
                }
                return(lista);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }
Пример #8
0
        public List <ro_Empleado_Novedad_Det_Info> Get_List_Empleado_Novedad_Det_x_Rubro(int idEmpresa, decimal idTransaccion, string idRubro)
        {
            try
            {
                lista = new List <ro_Empleado_Novedad_Det_Info>();

                EntitiesRoles ORol = new EntitiesRoles();

                var sresult = (from a in ORol.vwro_Empleado_Novedades
                               where a.IdEmpresa == idEmpresa && a.IdRubro == idRubro && a.IdTransaccion == idTransaccion
                               select a);
                //where A.IdEmpresa == IdEmpresa && A.IdRubro  == idrubro && A.IdNovedad == idNovedad
                //where A.IdEmpresa == IdEmpresa && A.IdEmpleado == idEmpleado && A.IdNovedad == idNovedad

                foreach (var item in sresult)
                {
                    ro_Empleado_Novedad_Det_Info Reg = new ro_Empleado_Novedad_Det_Info();

                    Reg.IdEmpresa   = item.IdEmpresa;
                    Reg.IdNovedad   = item.IdNovedad;
                    Reg.IdEmpleado  = Convert.ToDecimal(item.IdEmpleado);
                    Reg.IdRubro     = item.IdRubro;
                    Reg.FechaPago   = item.FechaPago;
                    Reg.Valor       = item.Valor;
                    Reg.Observacion = item.Observacion;
                    Reg.Estado      = item.Estado_det;
                    Reg.EstadoCab   = item.Estado;

                    Reg.EstadoCobro = item.EstadoCobro;

                    Reg.em_codigo = item.em_codigo;
                    Reg.em_nombre = item.pe_nombreCompleto.Trim();
                    Reg.em_cedula = item.pe_cedulaRuc.Trim();
                    if (Reg.NumHoras != null)
                    {
                        Reg.NumHoras = Convert.ToDouble(item.Num_Horas);
                    }

                    lista.Add(Reg);
                }
                return(lista);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }
Пример #9
0
        public bool Modificar_DB(ro_fectividad_Entrega_x_Periodo_Empleado_Info info)
        {
            bool    ba            = false;
            int     idefectividad = 0;
            decimal id_nov        = 0;

            try
            {
                if (data.Modificar_DB(info))
                {
                    foreach (var item in info.lista)
                    {
                        item.IdEmpresa     = info.IdEmpresa;
                        item.IdNomina_Tipo = info.IdNomina_Tipo;
                        item.IdEfectividad = info.IdEfectividad;
                        item.IdEfectividad = idefectividad;
                        item.IdPeriodo     = info.IdPeriodo;
                    }



                    if (data_detalle.Modificar_DB(info.lista))
                    {
                        foreach (var item in Get_Novedades(info.lista))
                        {
                            info_detalle = novedad_detalle_bus.get_si_existe_novedad(item.IdEmpresa, item.IdEmpleado, item.IdRubro, item.IdCalendario);
                            if (info_detalle != null)
                            {
                                item.IdNovedad = info_detalle.IdNovedad;
                                ba             = bus_novedad.ModificarDB(item);
                            }
                            else
                            {
                                ba = bus_novedad.GrabarDB(item, ref id_nov);
                            }
                        }
                    }
                }

                return(ba);
            }
            catch (Exception ex)
            {
                mensaje = ex.ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(mensaje);
            }
        }
Пример #10
0
        public List <ro_Empleado_Novedad_Det_Info> Get_List_Empleado_Novedad_Det(int IdEmpresa, decimal IdEmpleado, decimal idNovedad, decimal Secuencia)
        {
            try
            {
                lista = new List <ro_Empleado_Novedad_Det_Info>();


                EntitiesRoles ORol = new EntitiesRoles();

                var sresult = from A in ORol.vwro_Empleado_Novedades
                              where A.IdEmpresa == IdEmpresa &&
                              A.IdEmpleado == IdEmpleado &&
                              A.IdNovedad == idNovedad &&
                              A.IdTransaccion == Secuencia
                              select A;

                foreach (var item in sresult)
                {
                    ro_Empleado_Novedad_Det_Info Reg = new ro_Empleado_Novedad_Det_Info();

                    Reg.IdEmpresa   = item.IdEmpresa;
                    Reg.IdNovedad   = item.IdNovedad;
                    Reg.IdEmpleado  = Convert.ToDecimal(item.IdEmpleado);
                    Reg.IdRubro     = item.IdRubro;
                    Reg.EstadoCobro = (item.EstadoCobro).Trim();
                    Reg.ru_tipo     = (item.ru_tipo == "I")?"Ingreso":"Egreso";
                    Reg.FechaPago   = item.FechaPago;
                    Reg.Valor       = item.Valor;
                    Reg.Observacion = item.Observacion;
                    Reg.Secuencia   = item.IdTransaccion;
                    if (Reg.NumHoras != null)
                    {
                        Reg.NumHoras = Convert.ToDouble(item.Num_Horas);
                    }

                    Reg.Estado = item.Estado_det;
                    lista.Add(Reg);
                }
                return(lista);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }
Пример #11
0
 public Boolean ModificarDB_POR_ID_CALENDARIO(ro_Empleado_Novedad_Det_Info info)
 {
     try
     {
         return(oData.ModificarDB_POR_ID_CALENDARIO(info));
     }
     catch (Exception ex)
     {
         Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
         throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ModificarEstadoCobroDB", ex.Message), ex)
               {
                   EntityType = typeof(ro_Empleado_Novedad_Det_Bus)
               };
     }
 }
Пример #12
0
 public Boolean AnularDB(ro_Empleado_Novedad_Det_Info info)
 {
     try
     {
         return(oData.AnularDB(info));
     }
     catch (Exception ex)
     {
         Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
         throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "AnularDB", ex.Message), ex)
               {
                   EntityType = typeof(ro_Empleado_Novedad_Det_Bus)
               };
     }
 }
Пример #13
0
 public Boolean ModificarDB(ro_Empleado_Novedad_Det_Info prI, ref string mensaje)
 {
     try
     {
         return(oData.ModificarDB(prI, ref mensaje));
     }
     catch (Exception ex)
     {
         Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
         throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ModificarDB", ex.Message), ex)
               {
                   EntityType = typeof(ro_Empleado_Novedad_Det_Bus)
               };
     }
 }
Пример #14
0
 public ro_Empleado_Novedad_Info Get_novedad_info(ro_Remplazo_x_emplado_Info info)
 {
     try
     {
         ro_Empleado_Novedad_Info novedad_info = new ro_Empleado_Novedad_Info();
         novedad_info.IdEmpresa          = info.IdEmpresa;
         novedad_info.IdEmpleado         = info.IdEmpleado;
         novedad_info.IdNomina_Tipo      = (int)info.IdNomina_Tipo;
         novedad_info.Fecha              = (DateTime)info.Fecha_descuenta_rol;
         novedad_info.TotalValor         = info.Total_pagar_remplazo;
         novedad_info.Fecha_PrimerPago   = (DateTime)info.Fecha_descuenta_rol;
         novedad_info.NumCoutas          = 1;
         novedad_info.Fecha_Transac      = DateTime.Now;
         novedad_info.IdUsuario          = info.IdUsuario;
         novedad_info.Estado             = "A";
         novedad_info.IdCalendario       = info.IdPeriodo.ToString();
         novedad_info.IdNomina_Tipo      = (int)info.IdNomina_Tipo;
         novedad_info.IdNomina_TipoLiqui = (int)info.IdNomina_TipoLiqui;
         novedad_info.IdUsuario          = info.IdUsuario;
         if (info.IdNovedad != null)
         {
             novedad_info.IdNovedad = (decimal)info.IdNovedad;
         }
         // creo el detalle de la novedad.
         ro_Empleado_Novedad_Det_Info Novedad_detalle_info = new ro_Empleado_Novedad_Det_Info();
         Novedad_detalle_info.IdEmpleado   = info.IdEmpresa;
         Novedad_detalle_info.IdEmpleado   = info.IdEmpleado;
         Novedad_detalle_info.Secuencia    = 1;
         Novedad_detalle_info.IdRubro      = info.IdRubro;
         Novedad_detalle_info.Valor        = info.Total_pagar_remplazo;
         Novedad_detalle_info.EstadoCobro  = "PEN";
         Novedad_detalle_info.Estado       = "A";
         Novedad_detalle_info.IdCalendario = info.IdPeriodo.ToString();
         Novedad_detalle_info.Observacion  = info.Observacion;
         novedad_info.InfoNovedadDet       = Novedad_detalle_info;
         //  novedad_info.InfoNovedadDet
         return(novedad_info);
     }
     catch (Exception ex)
     {
         mensaje = ex.ToString();
         tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
         tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
         oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
         throw new Exception(mensaje);
     }
 }
Пример #15
0
        public ro_Empleado_Novedad_Det_Info get_si_existe_novedad(int idEmpresa, decimal idEmpleado, string idRubro, string idcalendario)
        {
            try
            {
                ro_Empleado_Novedad_Det_Info Reg = new ro_Empleado_Novedad_Det_Info();

                EntitiesRoles db = new EntitiesRoles();

                var datos = from a in db.ro_empleado_novedad_det
                            where a.IdEmpresa == idEmpresa &&
                            a.IdEmpleado == idEmpleado &&
                            a.IdRubro == idRubro &&
                            a.IdCalendario == idcalendario
                            select a;

                foreach (var item in datos)
                {
                    Reg.IdEmpresa   = item.IdEmpresa;
                    Reg.IdNovedad   = item.IdNovedad;
                    Reg.IdEmpleado  = Convert.ToDecimal(item.IdEmpleado);
                    Reg.Secuencia   = item.Secuencia;
                    Reg.IdRubro     = item.IdRubro;
                    Reg.EstadoCobro = (item.EstadoCobro).Trim();
                    Reg.FechaPago   = item.FechaPago;
                    Reg.Valor       = item.Valor;
                    Reg.Observacion = item.Observacion;
                    Reg.Estado      = item.Estado;
                    Reg.EstadoCobro = item.EstadoCobro;
                    if (Reg.NumHoras != null)
                    {
                        Reg.NumHoras = Convert.ToDouble(item.Num_Horas);
                    }
                }
                return(Reg);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }
Пример #16
0
        public Boolean GrabarDB(ro_Empleado_Novedad_Det_Info ro_info, ref string mensaje)
        {
            try
            {
                using (EntitiesRoles context = new EntitiesRoles())
                {
                    EntitiesRoles EDB = new EntitiesRoles();

                    var address = new ro_empleado_novedad_det();

                    address.IdEmpresa         = ro_info.IdEmpresa;
                    address.IdNovedad         = ro_info.IdNovedad;
                    address.IdEmpleado        = ro_info.IdEmpleado;
                    address.Secuencia         = ro_info.Secuencia;
                    address.FechaPago         = ro_info.FechaPago;
                    address.Valor             = ro_info.Valor;
                    address.EstadoCobro       = "PEN";
                    address.Estado            = "A";
                    address.Observacion       = ro_info.Observacion;
                    address.IdRubro           = ro_info.IdRubro;
                    address.IdCalendario      = ro_info.IdCalendario;
                    address.Num_Horas         = ro_info.NumHoras;
                    address.IdNomina_tipo     = ro_info.IdNomina;
                    address.IdNomina_Tipo_Liq = ro_info.IdNominaLiqui;
                    context.ro_empleado_novedad_det.Add(address);
                    context.SaveChanges();

                    mensaje = "Se ha procedido a grabar la información exitosamente...";

                    return(true);
                }
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }
Пример #17
0
        private void ucGe_Menu_event_btnGuardar_y_Salir_Click(object sender, EventArgs e)
        {
            ucGe_Menu.Focus();
            detalle_actaualizar = new List <ro_Empleado_Novedad_Det_Info>();
            foreach (var item in detalle)
            {
                ro_Empleado_Novedad_Det_Info info = new ro_Empleado_Novedad_Det_Info();
                info.IdEmpresa   = item.IdEmpresa;
                info.IdEmpleado  = item.IdEmpleado;
                info.IdNovedad   = item.IdNovedad;
                info.Secuencia   = Convert.ToInt32(item.Secuencia);
                info.FechaPago   = item.InfoNovedadDet.FechaPago;
                info.EstadoCobro = "PEN";

                bus_novedad_det.ModificarDB(info);
            }

            MessageBox.Show("Registros actualizados correctamente", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.Close();
        }
Пример #18
0
        public Boolean Modificar_Nov(ro_Empleado_Novedad_Info info)
        {
            try
            {
                using (EntitiesRoles context = new EntitiesRoles())
                {
                    double total = 0;

                    var contact = context.ro_empleado_Novedad.First(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdNovedad == info.IdNovedad && minfo.IdEmpleado == info.IdEmpleado);

                    var q = from C in context.ro_empleado_novedad_det
                            where C.IdEmpresa == info.IdEmpresa && C.IdEmpleado == info.IdEmpleado &&
                            C.IdNovedad == info.IdNovedad
                            select C;

                    foreach (var item in q)
                    {
                        ro_Empleado_Novedad_Det_Info Obj = new ro_Empleado_Novedad_Det_Info();

                        Obj.Valor = item.Valor;
                        total     = total + Obj.Valor;
                    }

                    contact.MotivoModiica = info.MotivoModifica;
                    contact.TotalValor    = total;


                    context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }
Пример #19
0
        public Boolean EliminarDB(ro_Empleado_Novedad_Det_Info prI, ref string mensaje)
        {
            try
            {
                using (EntitiesRoles context = new EntitiesRoles())
                {
                    var S = context.Database.ExecuteSqlCommand("Delete from dbo.ro_empleado_novedad_det where IdEmpresa =" + prI.IdEmpresa + "AND IdNovedad =" + prI.IdNovedad + "AND IdEmpleado =" + prI.IdEmpleado + "AND secuencia =" + prI.Secuencia);
                }

                return(true);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }
Пример #20
0
        public Boolean GrabarDB_SaldosNegativos(ro_Empleado_Novedad_Info info, ref decimal IdNovedad)
        {
            try
            {
                string msg  = "";
                int    secu = 0;
                info.TotalValor = info.TotalValor * -1;
                if (oData.GrabarDB(info, ref IdNovedad))
                {
                    ro_Empleado_Novedad_Det_Info item = new ro_Empleado_Novedad_Det_Info();
                    item.IdNovedad     = IdNovedad;
                    item.Secuencia     = 1;
                    item.IdNovedad     = IdNovedad;
                    item.IdEmpresa     = info.IdEmpresa;
                    item.IdEmpleado    = info.IdEmpleado;
                    item.IdNomina      = info.IdNomina_Tipo;
                    item.IdNominaLiqui = info.IdNomina_TipoLiqui;
                    item.IdRubro       = info.IdRubro;
                    item.EstadoCobro   = "PEN";
                    item.Estado        = "A";
                    item.Observacion   = "Esta novedad fue generada por saldo negativo";
                    item.FechaPago     = info.Fecha_PrimerPago;
                    item.Fecha         = DateTime.Now;
                    item.IdCalendario  = info.IdCalendario;
                    item.Fecha         = info.Fecha;
                    item.Valor         = info.TotalValor;
                    novedad_detalle_bus.GrabarDB(item, ref msg);
                }

                return(true);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "GrabarDB", ex.Message), ex)
                      {
                          EntityType = typeof(ro_Empleado_Novedad_Bus)
                      };
            }
        }
        public bool Modificar_DB(ro_fectividad_Entrega_x_Periodo_Empleado_Info info)
        {
            bool    ba     = false;
            decimal id_nov = 0;

            try
            {
                if (data.Modificar_DB(info))
                {
                    var ro_fectividad_Entrega_tipoServicio_info = ro_fectividad_Entrega_tipoServicio_Data.Get_Info(info.IdEmpresa, (int)info.IdServicioTipo);
                    if (ro_fectividad_Entrega_tipoServicio_info.Genera_novedad == true)
                    {
                        foreach (var item in Get_Novedades(info.lista, Convert.ToInt32(info.IdServicioTipo)))
                        {
                            info_detalle = novedad_detalle_bus.get_si_existe_novedad(item.IdEmpresa, item.IdEmpleado, item.IdRubro, item.IdCalendario);
                            if (info_detalle != null)
                            {
                                item.IdNovedad = info_detalle.IdNovedad;
                                ba             = bus_novedad.ModificarDB(item);
                            }
                            else
                            {
                                ba = bus_novedad.GrabarDB(item, ref id_nov);
                            }
                        }
                    }
                }

                return(ba);
            }
            catch (Exception ex)
            {
                mensaje = ex.ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(mensaje);
            }
        }
        public bool Modificar_DB(ro_fectividad_x_empleado_Adm_x_periodo_Info info)
        {
            bool    bandera = false;
            decimal id_nov  = 0;

            try
            {
                if (data.Modificar_DB(info))
                {
                    if (Bus_Detalle.Modificar_DB(info.detalle))
                    {
                        foreach (var item in Get_Novedades(info.detalle))
                        {
                            info_detalle = bus_detalle_novedad.get_si_existe_novedad(item.IdEmpresa, item.IdEmpleado, item.IdRubro, item.IdCalendario);
                            if (info_detalle != null)
                            {
                                item.IdNovedad = info_detalle.IdNovedad;
                                bandera        = bus_novedad.ModificarDB(item);
                            }
                            else
                            {
                                bandera = bus_novedad.GrabarDB(item, ref id_nov);
                            }
                        }
                    }
                }

                return(bandera);
            }
            catch (Exception ex)
            {
                mensaje = ex.ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(mensaje);
            }
        }
Пример #23
0
 public Boolean AnularDB(ro_Empleado_Novedad_Det_Info info)
 {
     try
     {
         using (EntitiesRoles context = new EntitiesRoles())
         {
             var contact = context.ro_empleado_novedad_det.First(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdNovedad == info.IdNovedad && minfo.IdRubro == info.IdRubro && minfo.IdEmpleado == info.IdEmpleado && minfo.Secuencia == info.Secuencia);
             contact.Estado      = "I";
             contact.Observacion = info.Observacion;
             context.SaveChanges();
         }
         return(true);
     }
     catch (Exception ex)
     {
         string arreglo = ToString();
         tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
         tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
         mensaje = ex.InnerException + " " + ex.Message;
         oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
         throw new Exception(ex.InnerException.ToString());
     }
 }
Пример #24
0
        private List <ro_Empleado_Novedad_Info> Get_Novedades(List <ro_fectividad_Entrega_x_Periodo_Empleado_Det_Info> lista)
        {
            try
            {
                List <ro_Empleado_Novedad_Info>    listado_novedades  = new List <ro_Empleado_Novedad_Info>();
                ero_parametro_x_pago_variable_tipo tipo_variable      = new ero_parametro_x_pago_variable_tipo();
                ro_Grupo_empleado_det_Info         info_grupo_detalle = new ro_Grupo_empleado_det_Info();


                foreach (var item in lista)
                {
                    string IdRubro      = "";
                    double Valor_ganado = 0;

                    #region EFEC_ENTRE
                    if (item.Efectividad_Entrega_aplica > 0)
                    {
                        tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_ENTRE;
                        ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                        info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable).FirstOrDefault();

                        info_novedad.IdEmpresa          = item.IdEmpresa;
                        info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.Fecha            = item.fecha_Pago;
                        info_novedad.TotalValor       = item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                        info_novedad.NumCoutas        = 1;
                        info_novedad.IdUsuario        = param.IdUsuario;
                        info_novedad.Fecha_Transac    = DateTime.Now;
                        info_novedad.Estado           = "A";
                        info_novedad.IdCalendario     = item.IdPeriodo.ToString();


                        // detalle de la novedad

                        ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                        info_detalle.IdEmpresa      = item.IdEmpresa;
                        info_detalle.IdEmpleado     = item.IdEmpleado;
                        info_detalle.Secuencia      = 1;
                        info_detalle.IdRol          = null;
                        info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                        info_detalle.FechaPago      = item.fecha_Pago;
                        info_detalle.Valor          = item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                        info_detalle.EstadoCobro    = "PEN";
                        info_detalle.Estado         = "A";
                        info_detalle.IdCalendario   = item.IdPeriodo.ToString();
                        info_novedad.InfoNovedadDet = info_detalle;
                        listado_novedades.Add(info_novedad);
                    }

                    #endregion



                    #region EFEC_ENTRE
                    if (item.Efectividad_Entrega_aplica > 0)
                    {
                        tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_ENTRE;
                        ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                        info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable).FirstOrDefault();

                        info_novedad.IdEmpresa          = item.IdEmpresa;
                        info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.Fecha            = item.fecha_Pago;
                        info_novedad.TotalValor       = item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                        info_novedad.NumCoutas        = 1;
                        info_novedad.IdUsuario        = param.IdUsuario;
                        info_novedad.Fecha_Transac    = DateTime.Now;
                        info_novedad.Estado           = "A";
                        info_novedad.IdCalendario     = item.IdPeriodo.ToString();


                        // detalle de la novedad

                        ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                        info_detalle.IdEmpresa      = item.IdEmpresa;
                        info_detalle.IdEmpleado     = item.IdEmpleado;
                        info_detalle.Secuencia      = 1;
                        info_detalle.IdRol          = null;
                        info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                        info_detalle.FechaPago      = item.fecha_Pago;
                        info_detalle.Valor          = item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                        info_detalle.EstadoCobro    = "PEN";
                        info_detalle.Estado         = "A";
                        info_detalle.IdCalendario   = item.IdPeriodo.ToString();
                        info_novedad.InfoNovedadDet = info_detalle;
                        listado_novedades.Add(info_novedad);
                    }

                    #endregion



                    #region EFEC_VOL
                    if (item.Efectividad_Entrega_aplica > 0)
                    {
                        tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_VOL;
                        ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                        info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable).FirstOrDefault();

                        info_novedad.IdEmpresa          = item.IdEmpresa;
                        info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.Fecha            = item.fecha_Pago;
                        info_novedad.TotalValor       = item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;;
                        info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                        info_novedad.NumCoutas        = 1;
                        info_novedad.IdUsuario        = param.IdUsuario;
                        info_novedad.Fecha_Transac    = DateTime.Now;
                        info_novedad.Estado           = "A";
                        info_novedad.IdCalendario     = item.IdPeriodo.ToString();


                        // detalle de la novedad

                        ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                        info_detalle.IdEmpresa      = item.IdEmpresa;
                        info_detalle.IdEmpleado     = item.IdEmpleado;
                        info_detalle.Secuencia      = 1;
                        info_detalle.IdRol          = null;
                        info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                        info_detalle.FechaPago      = item.fecha_Pago;
                        info_detalle.Valor          = item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                        info_detalle.EstadoCobro    = "PEN";
                        info_detalle.Estado         = "A";
                        info_detalle.IdCalendario   = item.IdPeriodo.ToString();
                        info_novedad.InfoNovedadDet = info_detalle;
                        listado_novedades.Add(info_novedad);
                    }

                    #endregion
                }

                return(listado_novedades);
            }
            catch (Exception ex)
            {
                mensaje = ex.ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(mensaje);
            }
        }
Пример #25
0
        public void AsignarValor_Novedad()
        {
            BanderaSiPeriodoProcesado      = false;
            ListaNovedadesGrabarCab        = new List <ro_Empleado_Novedad_Info>();
            listaNovedadGrabar_Detalle_TMP = new List <ro_Empleado_Novedad_Det_Info>();
            int      Sec_Detalle = 0, IdNomina_TipoLiqui = 0;
            DateTime Fecha_PrimerPago = DateTime.Now;

            listaNovedadGrabar_Detalle = new List <ro_Empleado_Novedad_Det_Info>();
            try
            {
                NumeroPeriodoNominaMensual = ListadoPeriodosMensual.Where(v => v.check == true).Count();
                NumeroPeriodoNominaSemanal = ListadoPeriodosSemanal.Where(v => v.check == true).Count();

                // recoro mi lista obtenida desde excell
                foreach (var item in lista)
                {
                    Sec_Detalle = 0;
                    if (item.existeerror != "ERROR")// solo tomo a los empleado que existen en la base
                    {
                        listaNovedadGrabar_Detalle     = new List <ro_Empleado_Novedad_Det_Info>();
                        ListaNovedadesGraba_x_empleado = new List <ro_Novedad_x_Empleado_Info>();

                        // para crear la lista detalle de novedad
                        InfoNovedadGrabarDetalle = new ro_Empleado_Novedad_Det_Info();
                        ValorNovedad             = 0;

                        // llenar la lista para la tabla ro_Empleado_Novedad_Det

                        if (item.IdNomina == 2)                                                    // pregunto si es nomina semanal
                        {
                            ValorNovedad = Math.Round(item.Valor / NumeroPeriodoNominaSemanal, 2); // obtego el valor de novedad en caso de ser nomina semanal
                            foreach (var item_P in ListadoPeriodosSemanal.Where(v => v.check == true).ToList())
                            {
                                if (item_P.Procesado == "S")
                                {
                                    BanderaSiPeriodoProcesado = true;
                                    PeriodoProcesado          = item_P.IdPeriodo.ToString();
                                }


                                Sec_Detalle        = Sec_Detalle + 1;
                                IdNomina_TipoLiqui = item_P.IdNomina_TipoLiqui;
                                if (Sec_Detalle == 1)
                                {
                                    Fecha_PrimerPago = item_P.pe_FechaIni;
                                }
                                InfoNovedadGrabarDetalle           = new ro_Empleado_Novedad_Det_Info();
                                InfoNovedadGrabarDetalle.em_cedula = item.em_cedula;
                                InfoNovedadGrabarDetalle.Nombre    = item.Nombre;
                                InfoNovedadGrabarDetalle.Apellidos = item.Apellidos;

                                InfoNovedadGrabarDetalle.Nomina       = item.Nomina;
                                InfoNovedadGrabarDetalle.em_nombre    = item.em_nombre;
                                InfoNovedadGrabarDetalle.IdEmpresa    = param.IdEmpresa;
                                InfoNovedadGrabarDetalle.IdNovedad    = 0;
                                InfoNovedadGrabarDetalle.IdEmpleado   = item.IdEmpleado;
                                InfoNovedadGrabarDetalle.Secuencia    = Sec_Detalle;
                                InfoNovedadGrabarDetalle.IdRol        = "";
                                InfoNovedadGrabarDetalle.IdRubro      = "";
                                InfoNovedadGrabarDetalle.FechaPago    = item_P.pe_FechaIni.AddDays(1);
                                InfoNovedadGrabarDetalle.Valor        = ValorNovedad;
                                InfoNovedadGrabarDetalle.EstadoCobro  = "PEN";
                                InfoNovedadGrabarDetalle.Observacion  = cmbNovedad.Text;
                                InfoNovedadGrabarDetalle.Estado       = "A";
                                InfoNovedadGrabarDetalle.IdRubro      = Convert.ToString(cmbNovedad.EditValue);
                                InfoNovedadGrabarDetalle.IdCalendario = IdCalendario;
                                listaNovedadGrabar_Detalle.Add(InfoNovedadGrabarDetalle);

                                listaNovedadGrabar_Detalle_TMP.Add(InfoNovedadGrabarDetalle);


                                // creo la lista para la tabla ro_Novedad_x_Empleado
                            }
                        }

                        else
                        {
                            ValorNovedad = Math.Round(item.Valor / NumeroPeriodoNominaMensual, 2);// obtego el valor de novedad en caso de ser nomina mensual
                            foreach (var item_P in ListadoPeriodosMensual.Where(v => v.check == true).ToList())
                            {
                                if (item_P.Procesado == "S")
                                {
                                    BanderaSiPeriodoProcesado = true;
                                    PeriodoProcesado          = item_P.IdPeriodo.ToString();
                                }

                                Sec_Detalle = Sec_Detalle + 1;
                                if (Sec_Detalle == 1)
                                {
                                    Fecha_PrimerPago = item_P.pe_FechaIni;
                                }
                                IdNomina_TipoLiqui = item_P.IdNomina_TipoLiqui;

                                InfoNovedadGrabarDetalle              = new ro_Empleado_Novedad_Det_Info();
                                InfoNovedadGrabarDetalle.em_cedula    = item.em_cedula;
                                InfoNovedadGrabarDetalle.Nombre       = item.Nombre;
                                InfoNovedadGrabarDetalle.Apellidos    = item.Apellidos;
                                InfoNovedadGrabarDetalle.Nomina       = item.Nomina;
                                InfoNovedadGrabarDetalle.em_nombre    = item.em_nombre;
                                InfoNovedadGrabarDetalle.IdEmpresa    = param.IdEmpresa;
                                InfoNovedadGrabarDetalle.IdNovedad    = 0;
                                InfoNovedadGrabarDetalle.IdEmpleado   = item.IdEmpleado;
                                InfoNovedadGrabarDetalle.Secuencia    = Sec_Detalle;
                                InfoNovedadGrabarDetalle.IdRol        = "";
                                InfoNovedadGrabarDetalle.IdRubro      = "";
                                InfoNovedadGrabarDetalle.FechaPago    = item_P.pe_FechaIni.AddDays(1);
                                InfoNovedadGrabarDetalle.Valor        = ValorNovedad;
                                InfoNovedadGrabarDetalle.EstadoCobro  = "PEN";
                                InfoNovedadGrabarDetalle.Observacion  = cmbNovedad.Text;
                                InfoNovedadGrabarDetalle.Estado       = "A";
                                InfoNovedadGrabarDetalle.IdRubro      = Convert.ToString(cmbNovedad.EditValue);
                                InfoNovedadGrabarDetalle.IdCalendario = IdCalendario;

                                listaNovedadGrabar_Detalle.Add(InfoNovedadGrabarDetalle);
                                listaNovedadGrabar_Detalle_TMP.Add(InfoNovedadGrabarDetalle);



                                // creo la lista para la tabla ro_Novedad_x_Empleado
                            }
                        }


                        // creo la lista para la tabla ro_Empleado_Novedad
                        InfoNovedadGrabarCAB                    = new ro_Empleado_Novedad_Info();
                        InfoNovedadGrabarCAB.IdEmpresa          = param.IdEmpresa;
                        InfoNovedadGrabarCAB.IdNovedad          = Convert.ToInt32(cmbNovedad.EditValue);
                        InfoNovedadGrabarCAB.IdEmpleado         = item.IdEmpleado;
                        InfoNovedadGrabarCAB.IdNomina_Tipo      = item.IdNomina;
                        InfoNovedadGrabarCAB.IdNomina_TipoLiqui = IdNomina_TipoLiqui;
                        InfoNovedadGrabarCAB.Fecha              = Fecha_Excle;
                        InfoNovedadGrabarCAB.TotalValor         = item.Valor;
                        InfoNovedadGrabarCAB.Fecha_PrimerPago   = Fecha_PrimerPago;
                        InfoNovedadGrabarCAB.NumCoutas          = Sec_Detalle;
                        InfoNovedadGrabarCAB.IdUsuario          = param.IdUsuario;
                        InfoNovedadGrabarCAB.Fecha_Transac      = DateTime.Now;
                        InfoNovedadGrabarCAB.IdCalendario       = IdCalendario;



                        // asigno los detalle a la cabecera
                        InfoNovedadGrabarCAB.LstDetalle = listaNovedadGrabar_Detalle;
                        // InfoNovedadGrabarCAB.lstNovedadEmpleado = ListaNovedadesGraba_x_empleado;


                        ListaNovedadesGrabarCab.Add(InfoNovedadGrabarCAB);
                    }

                    gridControlNovedades.DataSource = listaNovedadGrabar_Detalle_TMP;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
Пример #26
0
        // llenar grid con datos hoja seleccionada
        public void GetListaDelExcel(string RutaFile)
        {
            lista = new List <ro_Empleado_Novedad_Det_Info>();
            int Secuencia = 0;

            try
            {
                // leo el excel
                OleDbConnectionStringBuilder cb = new OleDbConnectionStringBuilder();
                cb.DataSource = RutaFile;
                if (Path.GetExtension(cb.DataSource).ToUpper() == ".XLS")
                {
                    cb.Provider = "Microsoft.Jet.OLEDB.4.0";
                    cb.Add("Extended Properties", "Excel 8.0;HDR=YES;IMEX=0;");
                }
                else if (Path.GetExtension(cb.DataSource).ToUpper() == ".XLSX")
                {
                    cb.Provider = "Microsoft.ACE.OLEDB.12.0";
                    cb.Add("Extended Properties", "Excel 12.0 Xml;HDR=YES;IMEX=0;");
                }
                using (OleDbConnection conexion = new OleDbConnection(cb.ConnectionString))
                {
                    string Hoja = LimpiarCadena(cmbHoja.Text);
                    conexion.Open();
                    string Sql = "SELECT Cedula,Nombre,Concepto,sum(Valor),Fecha " +
                                 "FROM [" + Hoja + "$]  where Valor > 0 " +
                                 "group by Cedula,Nombre,Concepto,Fecha";

                    OleDbCommand    Cmd    = new OleDbCommand(Sql, conexion);
                    OleDbDataReader Reader = Cmd.ExecuteReader();
                    while (Reader.Read())
                    {
                        Secuencia = Secuencia + 1;
                        string Cedula = "";
                        ro_Empleado_Novedad_Det_Info Info = new ro_Empleado_Novedad_Det_Info();

                        if (Reader.IsDBNull(0) == false)
                        {
                            // verifico si empleado existe en la base
                            Cedula = Reader.GetString(0);
                            if (Cedula.Length == 9)
                            {
                                Cedula = "0" + Cedula;
                            }


                            ro_Empleado_Info emp = new ro_Empleado_Info();
                            try
                            {
                                emp = lstTodosEmp.First(var => var.InfoPersona.pe_cedulaRuc == Cedula);
                            }
                            catch (Exception)
                            {
                            }
                            if (emp.IdEmpleado != 0 && emp.IdEmpleado != null)// si existe en la base
                            {
                                Info.IdEmpresa   = param.IdEmpresa;
                                Info.IdEmpleado  = emp.IdEmpleado;
                                Info.em_codigo   = emp.em_codigo;
                                Info.em_cedula   = emp.InfoPersona.pe_cedulaRuc;
                                Info.em_nombre   = emp.NomCompleto;
                                Info.EstadoCobro = "PEN";
                                Info.Estado      = "A";
                                Info.existeerror = "N";
                                Info.Valor       = Reader.GetDouble(3);
                                Info.Fecha_Excel = Reader.GetDateTime(4);
                                Fecha_Excle      = Info.Fecha_Excel;
                                Info.IdNovedad   = Secuencia;
                                Info.IdNomina    = emp.IdNomina_Tipo;
                                Info.Nomina      = emp.Nomina;
                                Info.Nombre      = emp.InfoPersona.pe_nombre;
                                Info.Apellidos   = emp.InfoPersona.pe_apellido;
                            }

                            else
                            {
                                Info.IdEmpresa   = param.IdEmpresa;
                                Info.IdEmpleado  = 0;
                                Info.em_cedula   = Reader.GetString(0);
                                Info.em_codigo   = "";
                                Info.em_nombre   = Reader.GetString(1);
                                Info.EstadoCobro = "PEN";
                                Info.Estado      = "I";
                                Info.existeerror = "ERROR";
                                Info.Observacion = "Empleado no existe en la Base ó Ya fue Liquidado";
                                Info.IdNovedad   = Secuencia;
                                Info.Nomina      = "";
                                Info.Valor       = Reader.GetDouble(3);
                                Info.IdNomina    = emp.IdNomina_Tipo;
                            }
                            lista.Add(Info);
                        }
                    }
                    // obtengo idCalendario
                    InfoCalendario = Bus_Calendario.Get_Info_Calendario(Convert.ToDateTime(Fecha_Excle));
                    IdCalendario   = InfoCalendario.IdCalendario.ToString();

                    Reader.Close();
                    conexion.Close();
                }
            }
            catch (Exception ex)
            {
                Bandera_ValidarPagina = false;
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
Пример #27
0
        public bool GuardarNovedad(List <ro_empleado_Novedad_x_horasExtras_Pendiente_Aprobar_Info> lista)
        {
            try
            {
                decimal id_nov = 0;

                ro_Empleado_Novedad_Bus BUS_NOVEDAD = new ro_Empleado_Novedad_Bus();
                info_parametro = bus_parametros.Get_info(param.IdEmpresa);
                foreach (var item in lista)
                {
                    if (item.Max_num_horas_sab_dom > 1 && item.Calculo_Horas_extras_Sobre >= 160)
                    {
                        // creo la cabecera de la novedad
                        ro_Empleado_Novedad_Info     info         = new ro_Empleado_Novedad_Info();
                        ro_Empleado_Novedad_Det_Info info_Detalle = new ro_Empleado_Novedad_Det_Info();

                        info.IdEmpresa          = item.IdEmpresa;
                        info.IdEmpleado         = item.IdEmpleado;
                        info.IdNomina_Tipo      = item.IdTipoNomina;
                        info.IdNomina_TipoLiqui = item.IdNomina_tipo;
                        info.TotalValor         = (Convert.ToDouble(item.SueldoActual / item.Calculo_Horas_extras_Sobre) * 2) * item.Max_num_horas_sab_dom;
                        if (Convert.ToDateTime(item.es_fecha_registro).Day > info_parametro.Corte_Horas_extras)
                        {
                            info.Fecha_PrimerPago = item.FechaPago.AddMonths(1);
                            info.Fecha            = item.FechaPago;
                        }
                        else
                        {
                            info.Fecha_PrimerPago = item.FechaPago;
                            info.Fecha            = item.es_fecha_registro;
                        }
                        info.NumCoutas     = 1;
                        info.Num_Horas     = item.Max_num_horas_sab_dom;
                        info.Fecha_Transac = DateTime.Now;
                        info.IdUsuario     = param.IdUsuario;
                        info.IdCalendario  = item.es_fecha_registro.Year.ToString() + item.es_fecha_registro.Month.ToString().PadLeft(2, '0') + item.es_fecha_registro.Day.ToString().PadLeft(2, '0');
                        info.IdPeriodo     = item.IdPeriodo;
                        // creo el detalle
                        info_Detalle.IdEmpleado = param.IdEmpresa;
                        info_Detalle.IdEmpleado = item.IdEmpleado;
                        info_Detalle.Secuencia  = 1;
                        info_Detalle.IdRubro    = "9";
                        if (Convert.ToDateTime(item.es_fecha_registro).Day >= info_parametro.Corte_Horas_extras)
                        {
                            info_Detalle.FechaPago = item.es_fecha_registro.AddMonths(1);
                        }
                        else
                        {
                            info_Detalle.FechaPago = item.FechaPago;
                        }
                        info_Detalle.Valor        = (Convert.ToDouble(item.SueldoActual / item.Calculo_Horas_extras_Sobre) * 2) * item.Max_num_horas_sab_dom;
                        info_Detalle.EstadoCobro  = "PEN";
                        info_Detalle.Observacion  = "Horas extras al 100% correspondiente al" + item.es_fecha_registro.ToString().Substring(0, 10);
                        info_Detalle.NumHoras     = item.Max_num_horas_sab_dom;
                        info_Detalle.Estado       = "A";
                        info_Detalle.IdCalendario = item.es_fecha_registro.Year.ToString() + item.es_fecha_registro.Month.ToString().PadLeft(2, '0') + item.es_fecha_registro.Day.ToString().PadLeft(2, '0');
                        info_Detalle.IdPeriodos   = item.IdPeriodo;
                        info.InfoNovedadDet       = info_Detalle;
                        BUS_NOVEDAD.GrabarDB(info, ref id_nov);
                    }
                }

                data.ModificarDB(lista);// modifico el valor de estado aprobado
                return(true);
            }
            catch (Exception ex)
            {
                mensaje = ex.ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(mensaje);
            }
        }
        private List <ro_Empleado_Novedad_Info> Get_Novedades(List <ro_fectividad_Entrega_x_Periodo_Empleado_Det_Info> lista, int TipoServicio)
        {
            try
            {
                ro_fectividad_Entrega_tipoServicio_Data odata_servicio = new ro_fectividad_Entrega_tipoServicio_Data();

                var info_servicio = odata_servicio.Get_Info(param.IdEmpresa, TipoServicio);

                List <ro_Empleado_Novedad_Info>    listado_novedades  = new List <ro_Empleado_Novedad_Info>();
                ero_parametro_x_pago_variable_tipo tipo_variable      = new ero_parametro_x_pago_variable_tipo();
                ro_Grupo_empleado_det_Info         info_grupo_detalle = new ro_Grupo_empleado_det_Info();


                foreach (var item in lista)
                {
                    #region SI LA VARIABLE ES VEVIDAS

                    if (info_servicio.ts_codigo == etipoServicio.BEBIDAS.ToString())
                    {
                        #region EFEC_ENTRE
                        if (item.Efectividad_Entrega_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_ENTRE;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha            = item.fecha_Pago;
                            info_novedad.TotalValor       = item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo + "VB";

                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa      = item.IdEmpresa;
                            info_detalle.IdEmpleado     = item.IdEmpleado;
                            info_detalle.Secuencia      = 1;
                            info_detalle.IdRol          = null;
                            info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago      = item.fecha_Pago;
                            info_detalle.Valor          = (item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo + "VB";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                        #region EFEC_ENTRE
                        if (item.Recuperacion_cartera_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.REC_CAR;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha            = item.fecha_Pago;
                            info_novedad.TotalValor       = item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo.ToString() + "VB";


                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa      = item.IdEmpresa;
                            info_detalle.IdEmpleado     = item.IdEmpleado;
                            info_detalle.Secuencia      = 1;
                            info_detalle.IdRol          = null;
                            info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago      = item.fecha_Pago;
                            info_detalle.Valor          = (item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo.ToString() + "VB";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                        #region EFEC_VOL
                        if (item.Efectividad_Volumen_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_VOL;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha            = item.fecha_Pago;
                            info_novedad.TotalValor       = item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;;
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo.ToString() + "VB";


                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa      = item.IdEmpresa;
                            info_detalle.IdEmpleado     = item.IdEmpleado;
                            info_detalle.Secuencia      = 1;
                            info_detalle.IdRol          = null;
                            info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago      = item.fecha_Pago;
                            info_detalle.Valor          = (item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo.ToString() + "VB";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                    }

                    #endregion


                    #region SI LA VARIABLE ES ALIMENTOS

                    if (info_servicio.ts_codigo == etipoServicio.ALIMENTOS.ToString())
                    {
                        #region EFEC_ENTRE
                        if (item.Efectividad_Entrega_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_ENTRE_ALIM;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha = item.fecha_Pago;
                            if (item.Efectividad_Entrega_aplica <= 1)
                            {
                                info_novedad.TotalValor = (item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_novedad.TotalValor = item.Efectividad_Entrega_aplica;
                            }
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo + "VA";

                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa  = item.IdEmpresa;
                            info_detalle.IdEmpleado = item.IdEmpleado;
                            info_detalle.Secuencia  = 1;
                            info_detalle.IdRol      = null;
                            info_detalle.IdRubro    = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago  = item.fecha_Pago;
                            if (item.Efectividad_Entrega_aplica <= 1)
                            {
                                info_detalle.Valor = (item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_detalle.Valor = item.Efectividad_Entrega_aplica;
                            }
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo + "VA";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);

                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                        #region EFEC_ENTRE
                        if (item.Recuperacion_cartera_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.REC_CAR_ALIM;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha = item.fecha_Pago;
                            if (item.Recuperacion_cartera_aplica <= 1)
                            {
                                info_novedad.TotalValor = item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                            }
                            else
                            {
                                info_novedad.TotalValor = item.Recuperacion_cartera_aplica;
                            }
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo.ToString() + "VA";


                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa  = item.IdEmpresa;
                            info_detalle.IdEmpleado = item.IdEmpleado;
                            info_detalle.Secuencia  = 1;
                            info_detalle.IdRol      = null;
                            info_detalle.IdRubro    = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago  = item.fecha_Pago;
                            if (item.Recuperacion_cartera_aplica <= 1)
                            {
                                info_detalle.Valor = (item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_detalle.Valor = item.Recuperacion_cartera_aplica;
                            }
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo.ToString() + "VA";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                        #region EFEC_VOL
                        if (item.Efectividad_Volumen > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_VOL_ALIM;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha = item.fecha_Pago;
                            if (item.Efectividad_Volumen_aplica <= 1)
                            {
                                info_novedad.TotalValor = (item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_novedad.TotalValor = item.Efectividad_Volumen_aplica;
                            }
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo.ToString() + "VA";


                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa  = item.IdEmpresa;
                            info_detalle.IdEmpleado = item.IdEmpleado;
                            info_detalle.Secuencia  = 1;
                            info_detalle.IdRol      = null;
                            info_detalle.IdRubro    = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago  = item.fecha_Pago;
                            if (item.Efectividad_Volumen_aplica <= 1)
                            {
                                info_detalle.Valor = (item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_detalle.Valor = item.Efectividad_Volumen_aplica;
                            }
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo.ToString() + "VA";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                    }

                    #endregion
                }

                return(listado_novedades);
            }
            catch (Exception ex)
            {
                mensaje = ex.ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(mensaje);
            }
        }
Пример #29
0
        public List <ro_Empleado_Novedad_Det_Info> Get_list_Horas_Extras(List <ro_marcaciones_x_Jornada_Info> lista, double Suel_Actual)
        {
            try
            {
                info_parametro = bus_parametros_calculo_horas_extras.Get_info(param.IdEmpresa);
                List <ro_Empleado_Novedad_Det_Info> lista_novedad_detalle = new List <ro_Empleado_Novedad_Det_Info>();

                // recorro las marcaciones y sumo las horas extras del 25%, 50%, 100%
                foreach (var item in lista)
                {
                    if (item.IdEmpleado == 28)
                    {
                    }

                    Horas_25   = 0; Horas_50 = 0; Horas_100 = 0; horas = 0; minutos = 0; Horas_tmp = 0;
                    es_hora    = new TimeSpan();
                    IdEmpleado = item.IdEmpleado;
                    fecha_pago = Convert.ToDateTime(item.es_fechaRegistro);
                    Nombre     = item.pe_NombreCompleto;
                    Cedula     = item.pe_cedula;
                    int dia_Semana = (int)Convert.ToDateTime(item.es_fechaRegistro).DayOfWeek;
                    if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0)// si tiene una sola jornada le resto la hora de almuerzo
                    {
                        if (dia_Semana == 6 || dia_Semana == 0 || item.EsFeriado == "S")
                        {
                            if (item.es_tot_horasTrabajadas >= 1)
                            {
                                if (item.es_tot_horasTrabajadas > 9)
                                {
                                    item.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas - 1;
                                }
                                else
                                {
                                    item.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                                }
                            }
                        }
                        else
                        {
                            item.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas - 1;
                            horas   = ((TimeSpan)item.es_Hora_ingreso_jornada1).Hours;
                            minutos = ((TimeSpan)item.es_Hora_ingreso_jornada1).Minutes;
                            item.es_Hora_ingreso_jornada1 = new TimeSpan(horas, minutos, 0);
                        }
                    }
                    if (dia_Semana == 6 || dia_Semana == 0 || item.EsFeriado == "S")// sumo las horas trabajadas al 100% correspondiente al sabado y domingo
                    {
                        Horas_100 = item.es_tot_horasTrabajadas;
                    }
                    else
                    {
                        if (item.es_tot_horasTrabajadas > 0)// si trabajo mas de ocho horas
                        {
                            #region Horas al 100% de 00:00 a 06:00
                            if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0)//si trabajo una sola jornada y tiene horas al 100% de 00:00 a 06:00
                            {
                                if (
                                    (item.es_Hora_ingreso_jornada1 > inicioHora100 && item.es_Hora_ingreso_jornada1 < finalHora100) ||
                                    (item.es_Hora_salida_jornada1 > inicioHora100 && item.es_Hora_salida_jornada1 < finalHora100) ||
                                    (item.es_Hora_ingreso_jornada1 > inicioHora100 && item.es_Hora_ingreso_jornada1 > finalHora100 && ((TimeSpan)item.es_Hora_ingreso_jornada1).Hours > 12)



                                    )
                                {
                                    Horas_100 = Get_Horas_100_x_dia(item);// calculo de horas al 100%
                                }
                            }
                            else// si tiene doble jornada
                            {
                            }



                            #endregion
                            #region Horas al 50% de 18:00 a 24:00

                            if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0)// tiene horas al 50% de 06:00h a 24:00h en una sola jornada
                            {
                                if ((item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 < finalHora50) ||
                                    (item.es_Hora_salida_jornada1 > inicioHora50 && item.es_Hora_salida_jornada1 < finalHora50) ||
                                    (item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 > finalHora50)
                                    )
                                {
                                    Horas_50 = Get_Horas_50_x_dia(item);// calculo de horas al 50%
                                }
                            }
                            else// si tiene horas al 50% y trabajo dos jornadas
                            {
                                if (((item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 < finalHora50) ||
                                     (item.es_Hora_salida_jornada1 > inicioHora50 && item.es_Hora_salida_jornada1 < finalHora50) ||
                                     (item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 > finalHora50))
                                    ||
                                    ((item.es_Hora_ingreso_jornada2 > inicioHora50 && item.es_Hora_ingreso_jornada2 < finalHora50) ||
                                     (item.es_Hora_salida_jornada2 > inicioHora50 && item.es_Hora_salida_jornada2 < finalHora50) ||
                                     (item.es_Hora_ingreso_jornada2 > inicioHora50 && item.es_Hora_ingreso_jornada2 > finalHora50))
                                    )
                                {
                                    Horas_50 = Get_Horas_50_x_dia_con_dos_jornadas(item);// calculo de horas al 50% con doble jornada
                                }
                            }
                            #endregion
                            #region Horas al 25% de 19:00 a 06:00
                            if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0) // tiene horas al 25% de 19:00h a 06:00h en una sola jornada
                            {                                                         // tiene horas al 25% de 19:00h a 06:00h en la jornada 1
                                if ((item.es_Hora_ingreso_jornada1 >= inicioHora25 && item.es_Hora_ingreso_jornada1 <= finalHora25) ||
                                    (item.es_Hora_salida_jornada1 >= inicioHora25 && item.es_Hora_salida_jornada1 <= finalHora25) ||
                                    (item.es_Hora_ingreso_jornada1 >= inicioHora25 && item.es_Hora_ingreso_jornada1 >= finalHora25) ||
                                    (item.es_Hora_ingreso_jornada1 <= inicioHora25 && item.es_Hora_ingreso_jornada1 >= finalHora25 && ((TimeSpan)item.es_Hora_ingreso_jornada1).Hours > 12)

                                    )
                                {
                                    if (((TimeSpan)item.es_Hora_ingreso_jornada1).Hours > 0)
                                    {
                                        if (dia_Semana != 6 && dia_Semana != 7)
                                        {
                                            Horas_25 = Get_Horas_25_x_dia(item); // calculo de horas al 25%
                                        }
                                    }
                                }
                            }
                            else
                            {
                            }
                            #endregion
                        }
                    }



                    // creo las novedades
                    if (info_parametro.Se_calcula_horas_Extras_al100)
                    {
                        if (Horas_100 > 0)// si es que tiene horas al 100%
                        {
                            ro_Empleado_Novedad_Det_Info info_novedad_100 = new ro_Empleado_Novedad_Det_Info();
                            info_novedad_100.IdEmpresa     = param.IdEmpresa;
                            info_novedad_100.IdEmpleado    = IdEmpleado;
                            info_novedad_100.Nombre        = Nombre;
                            info_novedad_100.em_cedula     = Cedula;
                            info_novedad_100.IdNovedad     = 0;
                            info_novedad_100.Secuencia     = 1;
                            info_novedad_100.IdRubro       = "9";
                            info_novedad_100.FechaPago     = fecha_pago;
                            info_novedad_100.Sueldo_Actual = Suel_Actual;
                            info_novedad_100.Calculo_Horas_extras_Sobre = item.grupo.Calculo_Horas_extras_Sobre;

                            if (item.grupo.Calculo_Horas_extras_Sobre > 0)
                            {
                                info_novedad_100.Valor = Math.Round(Horas_100 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 2), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            else
                            {
                                info_novedad_100.Valor = Math.Round(Horas_100 * ((Suel_Actual / 160) * 2), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            info_novedad_100.NumHoras    = Horas_100;
                            info_novedad_100.Observacion = "Horas extras al 100% correspondiente al " + fecha_pago.Month.ToString().PadLeft(2, '0') + "/" + fecha_pago.Year;
                            info_novedad_100.es_Hora_ingreso_jornada1 = item.es_Hora_ingreso_jornada1;
                            info_novedad_100.es_Hora_ingreso_jornada2 = item.es_Hora_ingreso_jornada2;
                            info_novedad_100.es_Hora_salida_jornada1  = item.es_Hora_salida_jornada1;
                            info_novedad_100.es_Hora_salida_jornada2  = item.es_Hora_salida_jornada2;
                            if (item.es_Fech_remplazo != null)
                            {
                                info_novedad_100.es_Fech_remplazo = Convert.ToDateTime(item.es_Fech_remplazo);
                            }
                            info_novedad_100.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                            info_novedad_100.cargo        = item.cargo;
                            info_novedad_100.departamento = item.departamento;
                            lista_novedad_detalle.Add(info_novedad_100);
                        }
                    }
                    if (info_parametro.Se_calcula_horas_Extras_al50)
                    {
                        if (Horas_50 > 0)// si es que tiene horas al 50%
                        {
                            ro_Empleado_Novedad_Det_Info info_novedad_50 = new ro_Empleado_Novedad_Det_Info();

                            info_novedad_50.IdEmpresa     = param.IdEmpresa;
                            info_novedad_50.IdEmpleado    = IdEmpleado;
                            info_novedad_50.Nombre        = Nombre;
                            info_novedad_50.em_cedula     = Cedula;
                            info_novedad_50.IdNovedad     = 0;
                            info_novedad_50.Secuencia     = 1;
                            info_novedad_50.IdRubro       = "8";
                            info_novedad_50.FechaPago     = fecha_pago;
                            info_novedad_50.Sueldo_Actual = Suel_Actual;
                            info_novedad_50.Calculo_Horas_extras_Sobre = item.grupo.Calculo_Horas_extras_Sobre;

                            if (item.grupo.Calculo_Horas_extras_Sobre > 0)
                            {
                                info_novedad_50.Valor = Math.Round(Horas_50 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 1.5), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            else
                            {
                                info_novedad_50.Valor = Math.Round(Horas_50 * ((Suel_Actual / 160) * 1.5), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            info_novedad_50.NumHoras    = Horas_50;
                            info_novedad_50.Observacion = "Horas extras al 50% correspondiente al " + fecha_pago.Month.ToString().PadLeft(2, '0') + "/" + fecha_pago.Year;
                            info_novedad_50.es_Hora_ingreso_jornada1 = item.es_Hora_ingreso_jornada1;
                            info_novedad_50.es_Hora_ingreso_jornada2 = item.es_Hora_ingreso_jornada2;
                            info_novedad_50.es_Hora_salida_jornada1  = item.es_Hora_salida_jornada1;
                            info_novedad_50.es_Hora_salida_jornada2  = item.es_Hora_salida_jornada2;
                            if (item.es_Fech_remplazo != null)
                            {
                                info_novedad_50.es_Fech_remplazo = Convert.ToDateTime(item.es_Fech_remplazo);
                            }
                            info_novedad_50.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                            info_novedad_50.cargo        = item.cargo;
                            info_novedad_50.departamento = item.departamento;
                            lista_novedad_detalle.Add(info_novedad_50);
                        }
                    }

                    if (info_parametro.Se_calcula_horas_Extras_al25)
                    {
                        if (Horas_25 > 0)// si es que tiene horas al 25%
                        {
                            ro_Empleado_Novedad_Det_Info info_novedad_25 = new ro_Empleado_Novedad_Det_Info();
                            info_novedad_25.IdEmpresa     = param.IdEmpresa;
                            info_novedad_25.IdEmpleado    = IdEmpleado;
                            info_novedad_25.Nombre        = Nombre;
                            info_novedad_25.em_cedula     = Cedula;
                            info_novedad_25.IdNovedad     = 0;
                            info_novedad_25.Secuencia     = 1;
                            info_novedad_25.IdRubro       = "7";
                            info_novedad_25.FechaPago     = fecha_pago;
                            info_novedad_25.Sueldo_Actual = Suel_Actual;
                            info_novedad_25.Calculo_Horas_extras_Sobre = item.grupo.Calculo_Horas_extras_Sobre;
                            if (item.grupo.Calculo_Horas_extras_Sobre > 0)
                            {
                                info_novedad_25.Valor = Math.Round(Horas_25 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 0.25), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            else
                            {
                                info_novedad_25.Valor = Math.Round(Horas_25 * ((Suel_Actual / 160) * 0.25), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            info_novedad_25.NumHoras    = Horas_25;
                            info_novedad_25.Observacion = "Horas extras al 25% correspondiente al " + fecha_pago.Month.ToString().PadLeft(2, '0') + "/" + fecha_pago.Year;
                            info_novedad_25.es_Hora_ingreso_jornada1 = item.es_Hora_ingreso_jornada1;
                            info_novedad_25.es_Hora_ingreso_jornada2 = item.es_Hora_ingreso_jornada2;
                            info_novedad_25.es_Hora_salida_jornada1  = item.es_Hora_salida_jornada1;
                            info_novedad_25.es_Hora_salida_jornada2  = item.es_Hora_salida_jornada2;

                            if (item.es_Fech_remplazo != null)
                            {
                                info_novedad_25.es_Fech_remplazo = Convert.ToDateTime(item.es_Fech_remplazo);
                            }
                            info_novedad_25.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                            info_novedad_25.cargo        = item.cargo;
                            info_novedad_25.departamento = item.departamento;
                            lista_novedad_detalle.Add(info_novedad_25);
                        }
                    }



                    // ro nomina por horas extras para la liquidacion
                    ro_Nomina_X_Horas_Extras_Info Info_ro_Nomina_X_Horas_Extras = new Info.Roles.ro_Nomina_X_Horas_Extras_Info();
                    Info_ro_Nomina_X_Horas_Extras.IdEmpresa         = item.IdEmpresa;
                    Info_ro_Nomina_X_Horas_Extras.IdEmpleado        = item.IdEmpleado;
                    Info_ro_Nomina_X_Horas_Extras.IdNominaTipo      = item.Id_nomina_Tipo;
                    Info_ro_Nomina_X_Horas_Extras.IdNominaTipoLiqui = 1;
                    Info_ro_Nomina_X_Horas_Extras.IdPeriodo         = 2016;
                    Info_ro_Nomina_X_Horas_Extras.IdCalendario      = 20145;
                    Info_ro_Nomina_X_Horas_Extras.IdTurno           = 1;
                    Info_ro_Nomina_X_Horas_Extras.IdHorario         = 1;
                    Info_ro_Nomina_X_Horas_Extras.FechaRegistro     = Convert.ToDateTime(item.es_fechaRegistro);

                    Info_ro_Nomina_X_Horas_Extras.time_entrada1 = item.es_Hora_ingreso_jornada1;
                    Info_ro_Nomina_X_Horas_Extras.time_entrada2 = item.es_Hora_ingreso_jornada2;
                    Info_ro_Nomina_X_Horas_Extras.time_salida1  = item.es_Hora_salida_jornada1;
                    Info_ro_Nomina_X_Horas_Extras.time_salida2  = item.es_Hora_salida_jornada2;
                    if (Horas_25 < 0)
                    {
                        Horas_25 = 0;
                    }

                    if (Horas_50 < 0)
                    {
                        Horas_50 = 0;
                    }

                    if (Horas_100 < 0)
                    {
                        Horas_100 = 0;
                    }

                    Info_ro_Nomina_X_Horas_Extras.hora_extra25  = Horas_25;
                    Info_ro_Nomina_X_Horas_Extras.hora_extra50  = Horas_50;
                    Info_ro_Nomina_X_Horas_Extras.hora_extra100 = Horas_100;

                    Info_ro_Nomina_X_Horas_Extras.hora_atraso    = 0;
                    Info_ro_Nomina_X_Horas_Extras.hora_temprano  = 0;
                    Info_ro_Nomina_X_Horas_Extras.hora_trabajada = item.es_tot_horasTrabajadas;
                    Info_ro_Nomina_X_Horas_Extras.UsuarioIngresa = param.IdUsuario;
                    lista_nomina_x_horas_Hextras.Add(Info_ro_Nomina_X_Horas_Extras);
                }



                return(lista_novedad_detalle);
            }
            catch (Exception)
            {
                return(new List <ro_Empleado_Novedad_Det_Info>());
            }
        }
Пример #30
0
        public Boolean pu_AgregarNovedadPorEmpleado(int idEmpresa, decimal idEmpleado, int idNominaTipo, int idNominaTipoLiqui, int idPeriodo, DateTime fechaInicial, DateTime fechaFinal, Boolean acreditaRol)
        {
            try {
                string idRubroHoraNocturnaExtra25 = "7";
                string idRubroHoraExtra50         = "8";
                string idRubroHoraExtra100        = "9";

                double valorSueldo  = 0;
                double valorHoraMes = 0;

                //OBTENER EL VALOR DEL SUELDO
                valorSueldo = oHistoricoSueldoBus.Get_List_HistoricoSueldo(idEmpresa, idEmpleado).FirstOrDefault().SueldoActual;

                //OBTENER EL VALOR DE LA HORA DE TRABAJO DIURNO
                valorHoraMes = Convert.ToDouble(valorSueldo / 240); //CORRESPONDE A UNA JORNADA DE 8 HORAS X 30 DIAS

                ro_Nomina_X_Horas_Extras_Info info = new ro_Nomina_X_Horas_Extras_Info();
                ro_Empleado_Novedad_Det_Info  tmp  = new ro_Empleado_Novedad_Det_Info();

                //OBTIENE LAS HORAS EXTRAS DEL EMPLEADO GENERADAS EN EL PROCESO DE CALCULO
                info = Get_Info_Nomina_X_Horas_Extras(idEmpresa, idEmpleado, idNominaTipo, idNominaTipoLiqui, idPeriodo, ref mensaje);

                if (info.hora_extra25 > 0)
                {
                    ro_Empleado_Novedad_Info     oRo_Empleado_Novedad_Cab_Info = new ro_Empleado_Novedad_Info();
                    ro_Empleado_Novedad_Det_Info oRo_Empleado_Novedad_Det_Info = new ro_Empleado_Novedad_Det_Info();

                    decimal idNovedad = 0;

                    oRo_Empleado_Novedad_Cab_Info.IdEmpresa          = info.IdEmpresa;
                    oRo_Empleado_Novedad_Cab_Info.IdEmpleado         = info.IdEmpleado;
                    oRo_Empleado_Novedad_Cab_Info.IdNomina_Tipo      = idNominaTipo;
                    oRo_Empleado_Novedad_Cab_Info.IdNomina_TipoLiqui = idNominaTipoLiqui;
                    oRo_Empleado_Novedad_Cab_Info.Fecha         = fechaFinal;
                    oRo_Empleado_Novedad_Cab_Info.TotalValor    = info.hora_extra25 * valorHoraMes * 1.25;
                    oRo_Empleado_Novedad_Cab_Info.IdUsuario     = param.IdUsuario;
                    oRo_Empleado_Novedad_Cab_Info.Fecha_Transac = param.Fecha_Transac;
                    oRo_Empleado_Novedad_Cab_Info.Estado        = "A";

                    //BORRAR VALORES PREVIOS DE NOVEDADES
                    tmp = oRo_Empleado_Novedad_Det_Bus.Get_Info_Novedad_det(idEmpresa, idEmpleado, idRubroHoraNocturnaExtra25, fechaFinal, ref mensaje);
                    oRo_Empleado_Novedad_Det_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdEmpleado, tmp.IdNovedad, tmp.Secuencia, ref mensaje);                   //BORRA EL DETALLE
                    oRo_Empleado_Novedad_Cab_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdNovedad, tmp.IdEmpleado, idNominaTipo, idNominaTipoLiqui, ref mensaje); //BORRA LA CABECERA

                    //GUARDA LA CABECERA
                    if (acreditaRol)
                    {
                        if (oRo_Empleado_Novedad_Cab_Bus.GrabarDB(oRo_Empleado_Novedad_Cab_Info, ref idNovedad, ref mensaje))
                        {
                            oRo_Empleado_Novedad_Det_Info.IdEmpresa   = info.IdEmpresa;
                            oRo_Empleado_Novedad_Det_Info.IdNovedad   = idNovedad;
                            oRo_Empleado_Novedad_Det_Info.IdEmpleado  = info.IdEmpleado;
                            oRo_Empleado_Novedad_Det_Info.Secuencia   = 1;
                            oRo_Empleado_Novedad_Det_Info.IdRubro     = idRubroHoraNocturnaExtra25;
                            oRo_Empleado_Novedad_Det_Info.FechaPago   = fechaFinal.Date;
                            oRo_Empleado_Novedad_Det_Info.Valor       = info.hora_extra25 * valorHoraMes * 1.25;
                            oRo_Empleado_Novedad_Det_Info.EstadoCobro = "PEN";
                            oRo_Empleado_Novedad_Det_Info.Observacion = "Generado Automáticamente por el Cálculo de Horas Extras";
                            oRo_Empleado_Novedad_Det_Info.Estado      = "A";
                            oRo_Empleado_Novedad_Det_Info.NumHoras    = info.hora_extra25;
                            //GUARDA EL DETALLE
                            oRo_Empleado_Novedad_Det_Bus.GrabarDB(oRo_Empleado_Novedad_Det_Info, ref mensaje);
                        }
                    }
                }

                if (info.hora_extra50 > 0)
                {
                    ro_Empleado_Novedad_Info     oRo_Empleado_Novedad_Cab_Info = new ro_Empleado_Novedad_Info();
                    ro_Empleado_Novedad_Det_Info oRo_Empleado_Novedad_Det_Info = new ro_Empleado_Novedad_Det_Info();

                    decimal idNovedad = 0;

                    oRo_Empleado_Novedad_Cab_Info.IdEmpresa          = info.IdEmpresa;
                    oRo_Empleado_Novedad_Cab_Info.IdEmpleado         = info.IdEmpleado;
                    oRo_Empleado_Novedad_Cab_Info.IdNomina_Tipo      = idNominaTipo;
                    oRo_Empleado_Novedad_Cab_Info.IdNomina_TipoLiqui = idNominaTipoLiqui;
                    oRo_Empleado_Novedad_Cab_Info.Fecha         = fechaFinal;
                    oRo_Empleado_Novedad_Cab_Info.TotalValor    = Math.Round(info.hora_extra50 * valorHoraMes * 1.5, 2);
                    oRo_Empleado_Novedad_Cab_Info.IdUsuario     = param.IdUsuario;
                    oRo_Empleado_Novedad_Cab_Info.Fecha_Transac = param.Fecha_Transac;
                    oRo_Empleado_Novedad_Cab_Info.Estado        = "A";


                    //BORRAR VALORES PREVIOS DE NOVEDADES
                    tmp = oRo_Empleado_Novedad_Det_Bus.Get_Info_Novedad_det(idEmpresa, idEmpleado, idRubroHoraExtra50, fechaFinal, ref mensaje);
                    oRo_Empleado_Novedad_Det_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdEmpleado, tmp.IdNovedad, tmp.Secuencia, ref mensaje);
                    oRo_Empleado_Novedad_Cab_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdNovedad, tmp.IdEmpleado, idNominaTipo, idNominaTipoLiqui, ref mensaje); //BORRA LA CABECERA

                    //GUARDA LA CABECERA
                    if (acreditaRol)
                    {
                        if (oRo_Empleado_Novedad_Cab_Bus.GrabarDB(oRo_Empleado_Novedad_Cab_Info, ref idNovedad, ref mensaje))
                        {
                            oRo_Empleado_Novedad_Det_Info.IdEmpresa   = info.IdEmpresa;
                            oRo_Empleado_Novedad_Det_Info.IdNovedad   = idNovedad;
                            oRo_Empleado_Novedad_Det_Info.IdEmpleado  = info.IdEmpleado;
                            oRo_Empleado_Novedad_Det_Info.Secuencia   = 1;
                            oRo_Empleado_Novedad_Det_Info.IdRubro     = idRubroHoraExtra50;
                            oRo_Empleado_Novedad_Det_Info.FechaPago   = fechaFinal.Date;
                            oRo_Empleado_Novedad_Det_Info.Valor       = Math.Round(info.hora_extra50 * valorHoraMes * 1.5, 2);
                            oRo_Empleado_Novedad_Det_Info.EstadoCobro = "PEN";
                            oRo_Empleado_Novedad_Det_Info.Observacion = "Generado Automáticamente por el Cálculo de Horas Extras";
                            oRo_Empleado_Novedad_Det_Info.Estado      = "A";
                            oRo_Empleado_Novedad_Det_Info.NumHoras    = info.hora_extra50;

                            //GUARDA EL DETALLE
                            oRo_Empleado_Novedad_Det_Bus.GrabarDB(oRo_Empleado_Novedad_Det_Info, ref mensaje);
                        }
                    }
                }

                if (info.hora_extra100 > 0)
                {
                    ro_Empleado_Novedad_Info     oRo_Empleado_Novedad_Cab_Info = new ro_Empleado_Novedad_Info();
                    ro_Empleado_Novedad_Det_Info oRo_Empleado_Novedad_Det_Info = new ro_Empleado_Novedad_Det_Info();

                    decimal idNovedad = 0;

                    oRo_Empleado_Novedad_Cab_Info.IdEmpresa          = info.IdEmpresa;
                    oRo_Empleado_Novedad_Cab_Info.IdEmpleado         = info.IdEmpleado;
                    oRo_Empleado_Novedad_Cab_Info.IdNomina_Tipo      = idNominaTipo;
                    oRo_Empleado_Novedad_Cab_Info.IdNomina_TipoLiqui = idNominaTipoLiqui;
                    oRo_Empleado_Novedad_Cab_Info.Fecha         = fechaFinal;
                    oRo_Empleado_Novedad_Cab_Info.TotalValor    = info.hora_extra100 * valorHoraMes * 2;
                    oRo_Empleado_Novedad_Cab_Info.IdUsuario     = param.IdUsuario;
                    oRo_Empleado_Novedad_Cab_Info.Fecha_Transac = param.Fecha_Transac;
                    oRo_Empleado_Novedad_Cab_Info.Estado        = "A";

                    //BORRAR VALORES PREVIOS DE NOVEDADES
                    tmp = oRo_Empleado_Novedad_Det_Bus.Get_Info_Novedad_det(idEmpresa, idEmpleado, idRubroHoraExtra100, fechaFinal, ref mensaje);
                    oRo_Empleado_Novedad_Det_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdEmpleado, tmp.IdNovedad, tmp.Secuencia, ref mensaje);
                    oRo_Empleado_Novedad_Cab_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdNovedad, tmp.IdEmpleado, idNominaTipo, idNominaTipoLiqui, ref mensaje); //BORRA LA CABECERA

                    //GUARDA LA CABECERA
                    if (acreditaRol)
                    {
                        if (oRo_Empleado_Novedad_Cab_Bus.GrabarDB(oRo_Empleado_Novedad_Cab_Info, ref idNovedad, ref mensaje))
                        {
                            oRo_Empleado_Novedad_Det_Info.IdEmpresa   = info.IdEmpresa;
                            oRo_Empleado_Novedad_Det_Info.IdNovedad   = idNovedad;
                            oRo_Empleado_Novedad_Det_Info.IdEmpleado  = info.IdEmpleado;
                            oRo_Empleado_Novedad_Det_Info.Secuencia   = 1;
                            oRo_Empleado_Novedad_Det_Info.IdRubro     = idRubroHoraExtra100;
                            oRo_Empleado_Novedad_Det_Info.FechaPago   = fechaFinal.Date;
                            oRo_Empleado_Novedad_Det_Info.Valor       = info.hora_extra100 * valorHoraMes * 2;
                            oRo_Empleado_Novedad_Det_Info.EstadoCobro = "PEN";
                            oRo_Empleado_Novedad_Det_Info.Observacion = "Generado Automáticamente por el Cálculo de Horas Extras";
                            oRo_Empleado_Novedad_Det_Info.Estado      = "A";
                            oRo_Empleado_Novedad_Det_Info.NumHoras    = info.hora_extra100;

                            //GUARDA EL DETALLE
                            oRo_Empleado_Novedad_Det_Bus.GrabarDB(oRo_Empleado_Novedad_Det_Info, ref mensaje);
                        }
                    }
                }


                return(true);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "pu_AgregarNovedadPorEmpleado", ex.Message), ex)
                      {
                          EntityType = typeof(ro_Nomina_X_Horas_Extras_Bus)
                      };
            }
        }