using Exferia_Aplicacion.General; using Exferia_Aplicacion.Modelos_Listado_Filtros; using Exferia_Aplicacion.Modelos_Maestros; using Exferia_EntityFramework; using Exferia_KairosPRO._1_Modelos; using Exferia_KairosPRO._2_Datos; using Exferia_KairosPRO.General; using Exferia_KairosPRO_EF; using System; using System.Collections.Generic; using System.Drawing; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Transactions; namespace Exferia_KairosPRO { public class Datos_KairosPRO { #region KRS_ConfiguracionesEmails private void KRS_ConfiguracionesEmails_Grabar(GEN_ConfiguracionesEmails _mdl_GEN_ConfiguracionesEmails) { try { //Relleno el modelo KRS_ConfiguracionesEmails mdl_KRS_ConfiguracionesEmails = new KRS_ConfiguracionesEmails(); mdl_KRS_ConfiguracionesEmails.id = _mdl_GEN_ConfiguracionesEmails.id; mdl_KRS_ConfiguracionesEmails.codigo = _mdl_GEN_ConfiguracionesEmails.codigo; mdl_KRS_ConfiguracionesEmails.descripcion = _mdl_GEN_ConfiguracionesEmails.descripcion; mdl_KRS_ConfiguracionesEmails.nombreAMostrar = _mdl_GEN_ConfiguracionesEmails.nombreAMostrar; mdl_KRS_ConfiguracionesEmails.email = _mdl_GEN_ConfiguracionesEmails.email; //SMTP mdl_KRS_ConfiguracionesEmails.smtp_Servidor = _mdl_GEN_ConfiguracionesEmails.smtp_Servidor != null ? _mdl_GEN_ConfiguracionesEmails.smtp_Servidor : ""; mdl_KRS_ConfiguracionesEmails.smtp_Puerto = _mdl_GEN_ConfiguracionesEmails.smtp_Puerto != null ? _mdl_GEN_ConfiguracionesEmails.smtp_Puerto : ""; //Comprueba si hace falta autenticación mdl_KRS_ConfiguracionesEmails.smtp_RequiereAutenticacion = _mdl_GEN_ConfiguracionesEmails.smtp_RequiereAutenticacion != null ? _mdl_GEN_ConfiguracionesEmails.smtp_RequiereAutenticacion.Value : false; if (mdl_KRS_ConfiguracionesEmails.smtp_RequiereAutenticacion.Value) { mdl_KRS_ConfiguracionesEmails.smtp_Usuario = _mdl_GEN_ConfiguracionesEmails.smtp_Usuario; mdl_KRS_ConfiguracionesEmails.smtp_Clave = _mdl_GEN_ConfiguracionesEmails.smtp_Clave; mdl_KRS_ConfiguracionesEmails.smtp_ConexionSSL = _mdl_GEN_ConfiguracionesEmails.smtp_ConexionSSL != null ? _mdl_GEN_ConfiguracionesEmails.smtp_ConexionSSL.Value : false; } //POP3 //Compruebo si pop3 esta relleno mdl_KRS_ConfiguracionesEmails.pop3 = _mdl_GEN_ConfiguracionesEmails.pop3 != null ? _mdl_GEN_ConfiguracionesEmails.pop3.Value : false; if (mdl_KRS_ConfiguracionesEmails.pop3.Value) { mdl_KRS_ConfiguracionesEmails.pop3_Servidor = _mdl_GEN_ConfiguracionesEmails.pop3_Servidor; mdl_KRS_ConfiguracionesEmails.pop3_Puerto = _mdl_GEN_ConfiguracionesEmails.pop3_Puerto; mdl_KRS_ConfiguracionesEmails.pop3_Usuario = _mdl_GEN_ConfiguracionesEmails.pop3_Usuario; mdl_KRS_ConfiguracionesEmails.pop3_Clave = _mdl_GEN_ConfiguracionesEmails.pop3_Clave; } //Clase de negocio necesaria KRS_ConfiguracionesEmails_Datos obj_KRS_ConfiguracionesEmails_Datos = new KRS_ConfiguracionesEmails_Datos(); obj_KRS_ConfiguracionesEmails_Datos.Grabar(mdl_KRS_ConfiguracionesEmails); } catch (Exception ex) { Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_ConfiguracionesEmails_Grabar)); } } private void KRS_ConfiguracionesEmails_Borrar(long _lng_idConfiguracionEmail) { try { //Clase de negocio necesaria KRS_ConfiguracionesEmails_Datos obj_KRS_ConfiguracionesEmails_Datos = new KRS_ConfiguracionesEmails_Datos(); obj_KRS_ConfiguracionesEmails_Datos.Borrar(_lng_idConfiguracionEmail); } catch (Exception ex) { Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_ConfiguracionesEmails_Borrar)); } } #endregion #region KRS_Departamentos private void KRS_Departamentos_InsertarActualizar(CTA_Departamentos _mdl_CTA_Departamentos, List _lst_CTA_DepartamentosEmails) { KRS_Departamentos_Datos obj_KRS_Departamentos_Datos = new KRS_Departamentos_Datos(); KRS_DepartamentosEmails_Datos obj_KRS_DepartamentosEmails_Datos = new KRS_DepartamentosEmails_Datos(); INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo(); mdl_ValorDevuelto_Modelo.TodoCorrecto = true; using (TransactionScope transaccion_SQL = new TransactionScope(TransactionScopeOption.Required)) { try { if (_mdl_CTA_Departamentos != null) { KRS_Departamentos mdl_KRS_Departamentos = new KRS_Departamentos(); mdl_KRS_Departamentos.id = _mdl_CTA_Departamentos.id; mdl_KRS_Departamentos.codigo = _mdl_CTA_Departamentos.codigo; mdl_KRS_Departamentos.descripcion = _mdl_CTA_Departamentos.descripcion; mdl_KRS_Departamentos.fechaBorrado = _mdl_CTA_Departamentos.fechaBorrado; mdl_ValorDevuelto_Modelo = obj_KRS_Departamentos_Datos.Grabar(mdl_KRS_Departamentos); //Ahora grabamos los emails relacionados if (mdl_ValorDevuelto_Modelo.TodoCorrecto) { //Borramos todos los emails, relacionados y luego añadimos los nuevos mdl_ValorDevuelto_Modelo = obj_KRS_DepartamentosEmails_Datos.Borrar((object)mdl_KRS_Departamentos.id); if (_lst_CTA_DepartamentosEmails != null && _lst_CTA_DepartamentosEmails.Count > 0) { foreach (CTA_DepartamentosEmails mdl_CTA_DepartamentoEmails in _lst_CTA_DepartamentosEmails) { KRS_DepartamentosEmails mdl_KRS_DepartamentosEmails = new KRS_DepartamentosEmails(); mdl_KRS_DepartamentosEmails.id = mdl_CTA_DepartamentoEmails.id; mdl_KRS_DepartamentosEmails.email = mdl_CTA_DepartamentoEmails.email; mdl_KRS_DepartamentosEmails.idDepartamento = mdl_CTA_DepartamentoEmails.idDepartamento; //Una Vez relleno el modelo, es el turno de grabar mdl_ValorDevuelto_Modelo = obj_KRS_DepartamentosEmails_Datos.Grabar(mdl_KRS_DepartamentosEmails); if (!mdl_ValorDevuelto_Modelo.TodoCorrecto) { transaccion_SQL.Dispose(); } } } //Termino de transaccion transaccion_SQL.Complete(); } } transaccion_SQL.Dispose(); } catch (Control_Errores ex) { Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_Departamentos_InsertarActualizar)); transaccion_SQL.Dispose(); } } } private void KRS_Departamentos_Borrar(long _lng_idDepartamento) { KRS_Departamentos_Datos obj_KRS_Departamentos_Datos = new KRS_Departamentos_Datos(); try { //Borramos el departamento con sus relaciones obj_KRS_Departamentos_Datos.Borrar(_lng_idDepartamento); } catch (Control_Errores ex) { Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_Departamentos_Borrar)); } } #endregion #region KRS_Empleados private void KRS_Empleados_InsertarActualizar(MAE_Empleados _mdl_MAE_Empleados, bool _bol_Sincronizar, Image _img_FotoEmpleado, bool _bol_EsTecnico) { KRS_Empleados mdl_KRS_Empleados = null; KRS_EmpleadosFotos mdl_KRS_EmpleadosFotos = new KRS_EmpleadosFotos(); //Clases de negocio necesarias KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos(); KRS_EmpleadosFotos_Datos obj_KRS_EmpleadosFotos_Datos = new KRS_EmpleadosFotos_Datos(); try { if (_bol_Sincronizar) { //Obtenemos el empleado si existe mdl_KRS_Empleados = obj_KRS_Empleados_Datos.Obtener_Modelo_Por_Id(_mdl_MAE_Empleados.id, Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO, false, false); if (mdl_KRS_Empleados != null) { //Asignamos los valores que se pueden cambiar desde el ERP mdl_KRS_Empleados.idDepartamento = _mdl_MAE_Empleados.idDepartamento; mdl_KRS_Empleados.email = _mdl_MAE_Empleados.email != null ? _mdl_MAE_Empleados.email : ""; mdl_KRS_Empleados.nombre = _mdl_MAE_Empleados.nombre; mdl_KRS_Empleados.tecnico = _bol_EsTecnico; mdl_KRS_Empleados.idEmpresa = _mdl_MAE_Empleados.idEmpresa; mdl_KRS_Empleados.fechaBaja = _mdl_MAE_Empleados.fechaBaja; mdl_KRS_Empleados.fechaBorrado = null; } else { //Asignamos los valores obtenidos por parametros del ERP mdl_KRS_Empleados = new KRS_Empleados(); mdl_KRS_Empleados.id = _mdl_MAE_Empleados.id; mdl_KRS_Empleados.idDepartamento = _mdl_MAE_Empleados.idDepartamento; mdl_KRS_Empleados.email = _mdl_MAE_Empleados.email != null ? _mdl_MAE_Empleados.email : ""; mdl_KRS_Empleados.nombre = _mdl_MAE_Empleados.nombre; mdl_KRS_Empleados.fechaBaja = _mdl_MAE_Empleados.fechaBaja; mdl_KRS_Empleados.idEmpresa = _mdl_MAE_Empleados.idEmpresa; mdl_KRS_Empleados.codigoValidacion = Funciones_KairosPRO.Quitar_Letras_DNI(_mdl_MAE_Empleados.dni); mdl_KRS_Empleados.tecnico = _bol_EsTecnico; mdl_KRS_Empleados.sacarFotoFichaje = false; mdl_KRS_Empleados.fechaBorrado = null; //Buscar el Uso Horario del Ordenador por defecto mdl_KRS_Empleados.usoHorario = TimeZoneInfo.Local.Id; } obj_KRS_Empleados_Datos.Grabar(mdl_KRS_Empleados); //Si la foto no es nula la añadimos y grabamos if (_img_FotoEmpleado != null) { mdl_KRS_EmpleadosFotos.foto = Funciones.Convertir_Image_Arraybytes(_img_FotoEmpleado); mdl_KRS_EmpleadosFotos.idEmpleado = _mdl_MAE_Empleados.id; obj_KRS_EmpleadosFotos_Datos.Grabar(mdl_KRS_EmpleadosFotos, _mdl_MAE_Empleados.id); } else { //Si es nula, miramos si hay que borrarla obj_KRS_EmpleadosFotos_Datos.Borrar(mdl_KRS_Empleados.id); } } else { //Si no esta chequeado comprobamos si existe el empleado, si existe, actualizamos su fecha de baja obj_KRS_Empleados_Datos.Actualizar_FechaBaja(_mdl_MAE_Empleados.id); } } catch (Control_Errores) { } catch (Exception ex) { Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_Empleados_InsertarActualizar)); } } private void KRS_Empleados_InsertarActualizar_Por_Modelo(INTERNO_MAE_Empleado_AUXILIAR _mdl_INTERNO_MAE_Empleados_AUXILIAR) { KRS_Empleados mdl_KRS_Empleados = null; KRS_EmpleadosFotos mdl_KRS_EmpleadosFotos = new KRS_EmpleadosFotos(); //Clases de negocio necesarias KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos(); KRS_EmpleadosFotos_Datos obj_KRS_EmpleadosFotos_Datos = new KRS_EmpleadosFotos_Datos(); try { if (_mdl_INTERNO_MAE_Empleados_AUXILIAR.Sincronizacion != null && _mdl_INTERNO_MAE_Empleados_AUXILIAR.Sincronizacion.Value) { //Obtenemos el empleado si existe mdl_KRS_Empleados = obj_KRS_Empleados_Datos.Obtener_Modelo_Por_Id(_mdl_INTERNO_MAE_Empleados_AUXILIAR.id, Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO, false, false); if (mdl_KRS_Empleados != null) { //Asignamos los valores que se pueden cambiar desde el ERP mdl_KRS_Empleados.idDepartamento = _mdl_INTERNO_MAE_Empleados_AUXILIAR.idDepartamento; mdl_KRS_Empleados.email = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Email != null ? _mdl_INTERNO_MAE_Empleados_AUXILIAR.Email : ""; mdl_KRS_Empleados.nombre = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Nombre; mdl_KRS_Empleados.tecnico = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Tecnico; mdl_KRS_Empleados.idEmpresa = _mdl_INTERNO_MAE_Empleados_AUXILIAR.idEmpresa; mdl_KRS_Empleados.fechaBaja = _mdl_INTERNO_MAE_Empleados_AUXILIAR.FechaBaja; mdl_KRS_Empleados.fechaBorrado = null; } else { //Rellenamos los datos pertinentes y luego actualizamos en base de datos mdl_KRS_Empleados = new KRS_Empleados(); mdl_KRS_Empleados.id = _mdl_INTERNO_MAE_Empleados_AUXILIAR.id; mdl_KRS_Empleados.idDepartamento = _mdl_INTERNO_MAE_Empleados_AUXILIAR.idDepartamento; mdl_KRS_Empleados.email = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Email != null ? _mdl_INTERNO_MAE_Empleados_AUXILIAR.Email : ""; mdl_KRS_Empleados.nombre = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Nombre; mdl_KRS_Empleados.fechaBaja = _mdl_INTERNO_MAE_Empleados_AUXILIAR.FechaBaja; mdl_KRS_Empleados.codigoValidacion = _mdl_INTERNO_MAE_Empleados_AUXILIAR.CodigoValidacion; mdl_KRS_Empleados.idEmpresa = _mdl_INTERNO_MAE_Empleados_AUXILIAR.idEmpresa; mdl_KRS_Empleados.tecnico = false; mdl_KRS_Empleados.sacarFotoFichaje = false; mdl_KRS_Empleados.fechaBorrado = null; //Buscar el Uso Horario del Ordenador por defecto mdl_KRS_Empleados.usoHorario = TimeZoneInfo.Local.Id; } //Ahora Grabamos el empleado obj_KRS_Empleados_Datos.Grabar(mdl_KRS_Empleados); if (_mdl_INTERNO_MAE_Empleados_AUXILIAR.Foto != null) { mdl_KRS_EmpleadosFotos.foto = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Foto; mdl_KRS_EmpleadosFotos.idEmpleado = _mdl_INTERNO_MAE_Empleados_AUXILIAR.id; //Ahora Grabamos la foto del empleado obj_KRS_EmpleadosFotos_Datos.Grabar(mdl_KRS_EmpleadosFotos, mdl_KRS_Empleados.id); } else { //Si es nula, miramos si hay que borrarla obj_KRS_EmpleadosFotos_Datos.Borrar(mdl_KRS_Empleados.id); } } } catch (Control_Errores ex) { Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_Empleados_InsertarActualizar_Por_Modelo)); } } private void KRS_Empleados_Actualizar_FechaBorrado(long _lng_idEmpleado) { KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos(); try { obj_KRS_Empleados_Datos.Actualizar_FechaBorrado(_lng_idEmpleado); } catch (Control_Errores) { throw; } } #endregion #region Otros private List Buscar_Datos_Filtros_Relacionados(string _str_Tabla_Nombre, string _str_Campo_Id, string _str_Campo_Codigo, string _str_Campo_Descripcion, string _str_Campo_FechaBorrado, string _str_Where) { return Compartidas_Datos_KairosPRO.Buscar_Datos_Filtros_Relacionados(_str_Tabla_Nombre, _str_Campo_Id, _str_Campo_Codigo, _str_Campo_Descripcion, _str_Campo_FechaBorrado, _str_Where); } #endregion #region Externos private INTERNO_HorasTrabajadasResumen_Modelo Obtener_HorasTrabajadas_Resumen_EXTERNA( DateTime _dtt_FechaInicio, DateTime _dtt_FechaFin, long _lng_idEmpleado, long _lng_CodigoCliente) { INTERNO_HorasTrabajadasResumen_Modelo mdl_INTERNO_HorasTrabajadasResumen_Modelo = new INTERNO_HorasTrabajadasResumen_Modelo(); mdl_INTERNO_HorasTrabajadasResumen_Modelo.codigoCliente = _lng_CodigoCliente; mdl_INTERNO_HorasTrabajadasResumen_Modelo.idEmpleado = _lng_idEmpleado; try { #region Datos de Conexion Funciones_FicherosXML.CargarDatosXML_ConexionBD(); Funciones_FicherosXML.CargarDatosXML_ConexionBD_KairosPRO(); Funciones_FicherosXML.CargarDatosXML_Licencia(); Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO = _lng_CodigoCliente; #endregion //Empleado List lst_idEmpleados = new List(); lst_idEmpleados.Add(_lng_idEmpleado); //Fechas y horas TimeSpan tms_Inicio = TimeSpan.ParseExact("00:00", "hh\\:mm", CultureInfo.InvariantCulture); TimeSpan tms_Fin = TimeSpan.ParseExact("23:59", "hh\\:mm", CultureInfo.InvariantCulture); //idEmpresa KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos(); List lst_idEmpresas = obj_KRS_Empleados_Datos.Obtener_Empresas_Segun_CodigoCliente(_lng_CodigoCliente); long lng_idEmpresa = -1; if (lst_idEmpresas!=null && lst_idEmpresas.Count>0) { lng_idEmpresa=lst_idEmpresas.First(); } //KRS_AusenciasProgramadas List lst_INTERNO_ComboBox_Modelo_AUSENCIASPROGRAMADAS = new List(); KRS_AusenciasProgramadasTipos_Datos obj_KRS_AusenciasProgramadasTipos_Datos = new KRS_AusenciasProgramadasTipos_Datos(); List lst_KRS_AusenciasProgramadasTipos = obj_KRS_AusenciasProgramadasTipos_Datos.Obtener_ModeloListado(false); if (lst_KRS_AusenciasProgramadasTipos != null && lst_KRS_AusenciasProgramadasTipos.Count > 0) { foreach (KRS_AusenciasProgramadasTipos mdl_KRS_AusenciasProgramadasTipos in lst_KRS_AusenciasProgramadasTipos) { lst_INTERNO_ComboBox_Modelo_AUSENCIASPROGRAMADAS.Add(new INTERNO_ComboBox_Modelo(mdl_KRS_AusenciasProgramadasTipos.id.ToString(), mdl_KRS_AusenciasProgramadasTipos.descripcion,null)); } } //KRS_PresenciasProgramadas List lst_INTERNO_ComboBox_Modelo_PRESENCIASPROGRAMADAS = new List(); //Jornada List lst_INTERNO_ComboBox_Modelo_Jornada = ListadosEstaticos.Devolver_ConsultaDetallada_JornadaEmpleado_SINDIASTRABAJADOS(); //Horas Extras List lst_INTERNO_ComboBox_Modelo_HorasExtras = ListadosEstaticos.Devolver_ConsultaDetallada_HorasExtras(); //Funcion creada para generar el listado que rellena el informe List lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO = Funciones_KairosPRO.CargarDatos_ConsultaDetallada_JornadaEmpleado(_dtt_FechaInicio, _dtt_FechaFin, tms_Inicio, tms_Fin, lst_idEmpleados, lng_idEmpresa, lst_INTERNO_ComboBox_Modelo_PRESENCIASPROGRAMADAS, lst_INTERNO_ComboBox_Modelo_AUSENCIASPROGRAMADAS, false, lst_INTERNO_ComboBox_Modelo_Jornada, lst_INTERNO_ComboBox_Modelo_HorasExtras); if (lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO != null && lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO.Count>0) { #region Resto del resumen foreach (INTERNO_AUX_ConsultaDetalladaJornada_Modelo mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo in lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO.Where(m => m.Tipo_Linea!=Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_SOLICITUDESVARIAS.Codigo)) { //HorasTeoricas if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASTEORICAS.Codigo== mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea) { mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasTeoricas = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado; } //HorasReales else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASREALES.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea) { mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasReales = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado; } //HorasContabilizables else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASCONTABILIZABLES.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea) { mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasContabilizables = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado; } //Saldo else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_SALDO.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea) { mdl_INTERNO_HorasTrabajadasResumen_Modelo.Saldo = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado; } //HorasExtrasReales else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASEXTRAS_REALES.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea) { mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasExtrasReales = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado; } //HorasExtrasReales_PorConvenio else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASEXTRAS_REALES_CONVENIO.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea) { mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasExtrasReales_PorConvenio = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado; } //HorasExtrasAutorizadas else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASEXTRAS_AUTORIZADAS.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea) { mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasExtrasAutorizadas = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado; } //HorasExtrasAutorizadas_PorConvenio else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASEXTRAS_AUTORIZADAS_CONVENIO.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea) { mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasExtrasAutorizadas_PorConvenio = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado; } } #endregion #region Ausencias int int_Ausencias_Dias = 0; int int_Ausencias_Horas = 0; int int_Ausencias_Minutos = 0; foreach (INTERNO_AUX_ConsultaDetalladaJornada_Modelo mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo in lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO.Where(m => m.Tipo_Linea== Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_SOLICITUDESVARIAS.Codigo)) { if (mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim().Length>0 && mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim() != "0" && mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim() != "00:00") { //Tipo Dia if (mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.SumaDia) { int_Ausencias_Dias += int.Parse(mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim()); } //Tipo hora else { string[] arr_Horas = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim().Split(':'); if (arr_Horas.Count()>0) { //Horas int_Ausencias_Horas += int.Parse(arr_Horas[0]); //Minutos int_Ausencias_Minutos += int.Parse(arr_Horas[1]); } } } } //Añadir las ausencias mdl_INTERNO_HorasTrabajadasResumen_Modelo.TiempoAbsentismo = int_Ausencias_Dias + " día/s || " + (int_Ausencias_Horas + ":" + string.Format("{0:00}", int_Ausencias_Minutos) + " hora/s"); #endregion } } catch (Exception ex) { Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(Obtener_HorasTrabajadas_Resumen_EXTERNA)); } return mdl_INTERNO_HorasTrabajadasResumen_Modelo; } private List Obtener_HorasTrabajadas_EXTERNA(DateTime _dtt_FechaInicio, DateTime _dtt_FechaFin, long _lng_idEmpleado, long _lng_CodigoCliente) { List lst_INTERNO_HorasTrabajadas_Modelo = new List(); try { #region Datos de Conexion Funciones_FicherosXML.CargarDatosXML_ConexionBD(); Funciones_FicherosXML.CargarDatosXML_ConexionBD_KairosPRO(); Funciones_FicherosXML.CargarDatosXML_Licencia(); Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO = _lng_CodigoCliente; #endregion //Empleado List lst_idEmpleados = new List(); lst_idEmpleados.Add(_lng_idEmpleado); //idEmpresa KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos(); List lst_idEmpresas = obj_KRS_Empleados_Datos.Obtener_Empresas_Segun_CodigoCliente(_lng_CodigoCliente); long lng_idEmpresa = -1; if (lst_idEmpresas != null && lst_idEmpresas.Count > 0) { lng_idEmpresa = lst_idEmpresas.First(); } //Funcion creada para generar el listado que rellena el informe List lst_INTERNO_AUX_ConsultaDetallada_Modelo_RESULTADO = Funciones_KairosPRO.CargarDatos_ConsultaDetallada(lst_idEmpleados,_dtt_FechaInicio, _dtt_FechaFin, lng_idEmpresa); if (lst_INTERNO_AUX_ConsultaDetallada_Modelo_RESULTADO != null && lst_INTERNO_AUX_ConsultaDetallada_Modelo_RESULTADO.Count > 0) { foreach (INTERNO_AUX_ConsultaDetallada_Modelo mdl_INTERNO_AUX_ConsultaDetallada_Modelo in lst_INTERNO_AUX_ConsultaDetallada_Modelo_RESULTADO) { INTERNO_HorasTrabajadas_Modelo mdl_INTERNO_HorasTrabajadas_Modelo = new INTERNO_HorasTrabajadas_Modelo(); mdl_INTERNO_HorasTrabajadas_Modelo.codigoCliente = _lng_CodigoCliente; mdl_INTERNO_HorasTrabajadas_Modelo.idEmpleado = _lng_idEmpleado; mdl_INTERNO_HorasTrabajadas_Modelo.fecha = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.Fecha.ToString("dd/MM/yyyy"); mdl_INTERNO_HorasTrabajadas_Modelo.HorasTeoricas = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.TiempoARealizar.ToString("hh\\:mm"); mdl_INTERNO_HorasTrabajadas_Modelo.HorasReales = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.TiempoReal.ToString("hh\\:mm"); mdl_INTERNO_HorasTrabajadas_Modelo.HorasContabilizables = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.TiempoRealizado.ToString("hh\\:mm"); //Saldo string str_signo = ""; if (mdl_INTERNO_AUX_ConsultaDetallada_Modelo.Saldo.TotalSeconds < 0) { str_signo = "-"; } mdl_INTERNO_HorasTrabajadas_Modelo.Saldo = str_signo + mdl_INTERNO_AUX_ConsultaDetallada_Modelo.Saldo.ToString("hh\\:mm"); mdl_INTERNO_HorasTrabajadas_Modelo.HorasExtrasReales = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.HorasExtras_Reales.ToString("hh\\:mm"); mdl_INTERNO_HorasTrabajadas_Modelo.HorasExtrasReales_PorConvenio = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.HorasExtras_Reales_PorConvenio.ToString("hh\\:mm"); mdl_INTERNO_HorasTrabajadas_Modelo.HorasExtrasAutorizadas = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.HorasExtras_Autorizadas.ToString("hh\\:mm"); mdl_INTERNO_HorasTrabajadas_Modelo.HorasExtrasAutorizadas_PorConvenio = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.HorasExtras_Autorizadas_PorConvenio.ToString("hh\\:mm"); mdl_INTERNO_HorasTrabajadas_Modelo.TiempoAbsentismo = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.TiempoAbsentismo; //Añadir al listado lst_INTERNO_HorasTrabajadas_Modelo.Add(mdl_INTERNO_HorasTrabajadas_Modelo); } } } catch (Exception ex) { Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(Obtener_HorasTrabajadas_EXTERNA)); } return lst_INTERNO_HorasTrabajadas_Modelo; } #endregion } }