public void Get() { try { info = new ro_Parametro_calculo_Horas_Extras_Info(); info.IdEmpresa = param.IdEmpresa; info.Se_calcula_horas_Extras_al100 = check_se_paga_horasal100.Checked; info.Se_calcula_horas_Extras_al25 = check_se_paga_horasal25.Checked; info.Se_calcula_horas_Extras_al50 = check_se_paga_horasal50.Checked; info.Corte_Horas_extras = Convert.ToInt32(txt_diasCorte.EditValue); info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo = check_reverso.Checked; if (check_reverso.Checked == true) { info.IdRubro_rev_Horas = cmb_rubros.EditValue.ToString(); } if (cmb_Desahucio.EditValue != null) { info.IdRubro_Rebaja_Desahucio = cmb_Desahucio.EditValue.ToString(); } if (txtMinutoLoch.EditValue != null) { info.MinutosLunch = Convert.ToInt32(txtMinutoLoch.EditValue); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); Log_Error_bus.Log_Error(ex.ToString()); } }
public void Cargar_configuracion() { try { info = bus_parametros.Get_info(param.IdEmpresa); if (info != null) { check_se_paga_horasal100.Checked = info.Se_calcula_horas_Extras_al100; check_se_paga_horasal25.Checked = info.Se_calcula_horas_Extras_al25; check_se_paga_horasal50.Checked = info.Se_calcula_horas_Extras_al50; txt_diasCorte.EditValue = info.Corte_Horas_extras; check_reverso.Checked = info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo; if (info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo) { cmb_rubros.EditValue = info.IdRubro_rev_Horas; } txtMinutoLoch.EditValue = info.MinutosLunch; cmb_Desahucio.EditValue = info.IdRubro_Rebaja_Desahucio; } } catch (Exception ex) { MessageBox.Show(ex.ToString()); Log_Error_bus.Log_Error(ex.ToString()); } }
private void frmRo_Procesar_Rol_Mant_Load(object sender, EventArgs e) { try { listadoNomina = oRo_Nomina_Tipo_Bus.Get_List_Nomina_Tipo(param.IdEmpresa); cmbnomina.Properties.DataSource = listadoNomina; pu_Limpiar(); switch (param.IdCliente_Ven_x_Default) { case Cl_Enumeradores.eCliente_Vzen.FJ: info_parametro_fj = bus_parametro_fj.Get_info(param.IdEmpresa); break; default: break; } } catch (Exception ex) { Log_Error_bus.Log_Error(ex.ToString()); MessageBox.Show(ex.ToString()); } }
public bool ModificarDB(ro_Parametro_calculo_Horas_Extras_Info info) { try { using (EntityRoles_FJ db = new EntityRoles_FJ()) { var modific = db.ro_Parametro_calculo_Horas_Extras.FirstOrDefault(v => v.IdEmpresa == info.IdEmpresa); modific.Se_calcula_horas_Extras_al100 = info.Se_calcula_horas_Extras_al100; modific.Se_calcula_horas_Extras_al50 = info.Se_calcula_horas_Extras_al50; modific.Se_calcula_horas_Extras_al25 = info.Se_calcula_horas_Extras_al25; modific.Corte_Horas_extras = info.Corte_Horas_extras; modific.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo = info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo; modific.IdRubro_rev_Horas = info.IdRubro_rev_Horas; modific.IdRubro_Rebaja_Desahucio = info.IdRubro_Rebaja_Desahucio; modific.considera_fecha_corte_dias_efectivo = info.considera_fecha_corte_dias_efectivo; modific.solo_graba_dias_efectivos = info.solo_graba_dias_efectivos; modific.dias_integrales = info.dias_integrales; modific.MinutosLunch = info.MinutosLunch; db.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); oDataLog.Guardar_Log_Error(Log_Error_sis, ref MensajeError); MensajeError = ex.ToString(); throw new Exception(ex.ToString()); } }
public bool Guardar_DB(ro_Parametro_calculo_Horas_Extras_Info info) { try { return(data.GuardarDB(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); } }
public bool GuardarDB(ro_Parametro_calculo_Horas_Extras_Info info) { try { using (EntityRoles_FJ db = new EntityRoles_FJ()) { var query = from q in db.ro_Parametro_calculo_Horas_Extras where q.IdEmpresa == info.IdEmpresa select q; if (query.Count() == 0) { ro_Parametro_calculo_Horas_Extras add = new ro_Parametro_calculo_Horas_Extras(); add.IdEmpresa = info.IdEmpresa; add.Se_calcula_horas_Extras_al100 = info.Se_calcula_horas_Extras_al100; add.Se_calcula_horas_Extras_al50 = info.Se_calcula_horas_Extras_al50; add.Se_calcula_horas_Extras_al25 = info.Se_calcula_horas_Extras_al25; add.Corte_Horas_extras = info.Corte_Horas_extras; add.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo = info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo; add.IdRubro_rev_Horas = info.IdRubro_rev_Horas; add.IdRubro_Rebaja_Desahucio = info.IdRubro_Rebaja_Desahucio; add.MinutosLunch = info.MinutosLunch; add.considera_fecha_corte_dias_efectivo = info.considera_fecha_corte_dias_efectivo; add.solo_graba_dias_efectivos = info.solo_graba_dias_efectivos; add.dias_integrales = info.dias_integrales; db.ro_Parametro_calculo_Horas_Extras.Add(add); db.SaveChanges(); } else { ModificarDB(info); } 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 MensajeError); MensajeError = ex.ToString(); throw new Exception(ex.ToString()); } }
public ro_Parametro_calculo_Horas_Extras_Info Get_info(int IdEmpresa) { try { ro_Parametro_calculo_Horas_Extras_Info info = new ro_Parametro_calculo_Horas_Extras_Info(); using (EntityRoles_FJ db = new EntityRoles_FJ()) { var query = from q in db.ro_Parametro_calculo_Horas_Extras where q.IdEmpresa == IdEmpresa select q; foreach (var item in query) { info.IdEmpresa = item.IdEmpresa; info.Se_calcula_horas_Extras_al100 = item.Se_calcula_horas_Extras_al100; info.Se_calcula_horas_Extras_al25 = item.Se_calcula_horas_Extras_al25; info.Se_calcula_horas_Extras_al50 = item.Se_calcula_horas_Extras_al50; info.Corte_Horas_extras = item.Corte_Horas_extras; info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo = item.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo; info.IdRubro_rev_Horas = item.IdRubro_rev_Horas; info.IdRubro_Rebaja_Desahucio = item.IdRubro_Rebaja_Desahucio; info.MinutosLunch = item.MinutosLunch; info.considera_fecha_corte_dias_efectivo = item.considera_fecha_corte_dias_efectivo; info.solo_graba_dias_efectivos = item.solo_graba_dias_efectivos; info.dias_integrales = item.dias_integrales; } return(info); } } 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 MensajeError); MensajeError = ex.ToString(); throw new Exception(ex.ToString()); } }
public bool Considera_fecha_corte_dias_efectivos(int IdEmpresa) { try { bool valo = false; ro_Parametro_calculo_Horas_Extras_Info info = new ro_Parametro_calculo_Horas_Extras_Info(); using (EntityRoles_FJ db = new EntityRoles_FJ()) { var query = from q in db.ro_Parametro_calculo_Horas_Extras where q.IdEmpresa == IdEmpresa select q; foreach (var item in query) { if (item.considera_fecha_corte_dias_efectivo == true) { valo = true; } else { valo = false; } } return(valo); } } 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 MensajeError); MensajeError = ex.ToString(); throw new Exception(ex.ToString()); } }
public void Cargar_configuracion() { try { info = bus_parametros.Get_info(param.IdEmpresa); if (info != null) { check_se_paga_horasal100.Checked = info.Se_calcula_horas_Extras_al100; check_se_paga_horasal25.Checked = info.Se_calcula_horas_Extras_al25; check_se_paga_horasal50.Checked = info.Se_calcula_horas_Extras_al50; txt_diasCorte.EditValue = info.Corte_Horas_extras; check_reverso.Checked = info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo; txt_diaa_integrales.EditValue = info.dias_integrales; if (info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo) { cmb_rubros.EditValue = info.IdRubro_rev_Horas; } txtMinutoLoch.EditValue = info.MinutosLunch; cmb_Desahucio.EditValue = info.IdRubro_Rebaja_Desahucio; if (info.considera_fecha_corte_dias_efectivo != null) { chek_considera_fecha_corte.Checked = Convert.ToBoolean(info.considera_fecha_corte_dias_efectivo); } if (info.solo_graba_dias_efectivos != null) { che_soloGraba_dias_efectivos.Checked = Convert.ToBoolean(info.solo_graba_dias_efectivos); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); Log_Error_bus.Log_Error(ex.ToString()); } }
public List <ro_marcaciones_x_Jornada_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_marcaciones_x_Jornada_Info> lista_horas_extras_25_50_100 = new List <ro_marcaciones_x_Jornada_Info>(); // recorro las marcaciones y sumo las horas extras del 25%, 50%, 100% foreach (var item in lista) { 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) ) { if (item.es_tot_horasTrabajadas > 8) { Horas_100 = Get_Horas_100_x_dia(item);// calculo de horas al 100% } } else { } } else//si trabajo dos jornada y tiene horas al 100% de 00:00 a 06:00 { if ( ((TimeSpan)item.es_Hora_salida_jornada2).TotalHours >= inicioHora100.TotalHours && ((TimeSpan)item.es_Hora_ingreso_jornada2).TotalHours >= inicioHora100.TotalHours) { Horas_100 = Get_Horas_100_x_dia_con_dos_jornadas(item);// calculo de horas al 100% } } #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) ) { if (item.es_tot_horasTrabajadas > 8) { 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)) ) { if (item.es_tot_horasTrabajadas > 8) { 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 (item.pe_cedula == "0803134915") { } if (dia_Semana != 6 && dia_Semana != 7) { Horas_25 = Get_Horas_25_x_dia(item); // calculo de horas al 25% } } } } else { if ((item.es_Hora_ingreso_jornada2 >= inicioHora25 && item.es_Hora_ingreso_jornada2 <= finalHora25) || (item.es_Hora_salida_jornada2 >= inicioHora25 && item.es_Hora_salida_jornada2 <= finalHora25) || (item.es_Hora_ingreso_jornada2 >= inicioHora25 && item.es_Hora_ingreso_jornada2 >= finalHora25) || (item.es_Hora_ingreso_jornada2 <= inicioHora25 && item.es_Hora_ingreso_jornada2 >= finalHora25 && ((TimeSpan)item.es_Hora_ingreso_jornada2).Hours > 12) ) { if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours > 0) { if (dia_Semana != 6 && dia_Semana != 7) { Horas_25 = Get_Horas_25_x_dia(item); // calculo de horas al 25% } } } } #endregion } } if (Horas_50 < 0) { Horas_50 = Horas_50 * -1; } // creo las novedades if (info_parametro.Se_calcula_horas_Extras_al100 == true || info_parametro.Se_calcula_horas_Extras_al50 == true || info_parametro.Se_calcula_horas_Extras_al25 == true) { if (Horas_100 > 0 || Horas_25 > 0 || Horas_50 > 0)// si es que tiene horas al 100% { ro_marcaciones_x_Jornada_Info info_horas_extras = new ro_marcaciones_x_Jornada_Info(); info_horas_extras.IdEmpresa = param.IdEmpresa; info_horas_extras.IdEmpleado = IdEmpleado; info_horas_extras.pe_NombreCompleto = Nombre; info_horas_extras.em_cedula = Cedula; info_horas_extras.secuencia = 1; info_horas_extras.IdRubro = "9"; info_horas_extras.FechaPago = fecha_pago; info_horas_extras.Sueldo_Actual = Suel_Actual; info_horas_extras.Calculo_Horas_extras_Sobre = item.grupo.Calculo_Horas_extras_Sobre; // HORAS SOBRETIEMPO 100 if (Horas_100 > 0) { if (item.grupo.Calculo_Horas_extras_Sobre > 0) { info_horas_extras.Valor_100 = Math.Round(Horas_100 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 2), 2); } else { info_horas_extras.Valor_100 = Math.Round(Horas_100 * ((Suel_Actual / 160) * 2), 2); } } // HORAS SOBRETIEMPO 50 if (Horas_50 > 0) { if (item.grupo.Calculo_Horas_extras_Sobre > 0) { info_horas_extras.Valor_50 = Math.Round(Horas_50 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 1.5), 2); } else { info_horas_extras.Valor_50 = Math.Round(Horas_50 * ((Suel_Actual / 160) * 0.5), 2); } } if (Horas_25 > 0) { // HORAS SOBRETIEMPO 25 if (item.grupo.Calculo_Horas_extras_Sobre > 0) { info_horas_extras.Valor_25 = Math.Round(Horas_25 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 0.25), 2); } else { info_horas_extras.Valor_25 = Math.Round(Horas_25 * ((Suel_Actual / 160) * 0.25), 2); } } if (item.es_tot_horasTrabajadas > 0) { info_horas_extras.Horas_100 = Horas_100; info_horas_extras.Horas_50 = Horas_50; info_horas_extras.Horas_25 = Horas_25; } else { if (dia_Semana == 6 || dia_Semana == 0 || item.EsFeriado == "S") { info_horas_extras.Horas_100 = Horas_100; info_horas_extras.Horas_50 = Horas_50; info_horas_extras.Horas_25 = Horas_25; } else { info_horas_extras.Horas_100 = 0; info_horas_extras.Horas_50 = 0; info_horas_extras.Horas_25 = 0; } } info_horas_extras.Observacion = "Horas extras correspondiente al " + fecha_pago.Month.ToString().PadLeft(2, '0') + "/" + fecha_pago.Year; info_horas_extras.es_Hora_ingreso_jornada1 = item.es_Hora_ingreso_jornada1; info_horas_extras.es_Hora_ingreso_jornada2 = item.es_Hora_ingreso_jornada2; info_horas_extras.es_Hora_salida_jornada1 = item.es_Hora_salida_jornada1; info_horas_extras.es_Hora_salida_jornada2 = item.es_Hora_salida_jornada2; if (item.es_Fech_remplazo != null) { info_horas_extras.es_Fech_remplazo = Convert.ToDateTime(item.es_Fech_remplazo); } info_horas_extras.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas; info_horas_extras.cargo = item.cargo; info_horas_extras.departamento = item.departamento; lista_horas_extras_25_50_100.Add(info_horas_extras); } } } return(lista_horas_extras_25_50_100); } catch (Exception) { return(new List <ro_marcaciones_x_Jornada_Info>()); } }
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); } }
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>()); } }