/// <summary> /// Retorna una ENTIDAD de registro de la Entidad Asistencia.Calendarios /// En la BASE de DATO la Tabla : [Asistencia.Calendarios] /// <summary> /// <returns>Entidad</returns> public BECalendario Find(string prm_CodigoCalendario) { BECalendario miEntidad = new BECalendario(); try { using (_CROMTimeDataContext SQLDC = new _CROMTimeDataContext(conexion)) { var resul = SQLDC.omgc_mnt_GetByIdCodeCalendarios(prm_CodigoCalendario); foreach (var item in resul) { miEntidad = new BECalendario() { CodigoCalendario = item.CodigoCalendario, Descripcion = item.Descripcion, Anio = item.Anio, Estado = item.Estado, SegUsuarioCrea = item.SegUsuarioCrea, SegUsuarioEdita = item.SegUsuarioEdita, SegFechaHoraCrea = item.SegFechaHoraCrea, SegFechaHoraEdita = item.SegFechaHoraEdita, SegMaquinaOrigen = item.SegMaquinaOrigen, }; } } } catch (Exception ex) { throw ex; } return(miEntidad); }
/// <summary> /// Almacena el registro de una ENTIDAD de registro de Tipo Calendarios /// En la BASE de DATO la Tabla : [Asistencia.Calendarios] /// <summary> /// <param name = >itemCalendarios</param> public ReturnValor Insert(BECalendario itemCalendarios) { try { using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) { oReturnValor.Exitosa = oCalendariosData.Insert(itemCalendarios); foreach (BECalendarioDia itemCalendariosDias in itemCalendarios.listaCalendariosDias) { oReturnValor.CodigoRetorno = oCalendariosDiasData.Insert(itemCalendariosDias); } if (oReturnValor.Exitosa && oReturnValor.CodigoRetorno != null) { oReturnValor.Message = HelpEventos.MessageEvento(HelpEventos.Process.NEW); tx.Complete(); } else { oReturnValor.Exitosa = false; } } } catch (Exception ex) { oReturnValor = HelpException.mTraerMensaje(ex); } return(oReturnValor); }
/// <summary> /// Almacena el registro de una ENTIDAD de registro de Tipo Calendarios /// En la BASE de DATO la Tabla : [Asistencia.Calendarios] /// <summary> /// <param name = >itemCalendarios</param> public ReturnValor Update(BECalendario itemCalendarios) { try { using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) { oReturnValor.Exitosa = oCalendariosData.Update(itemCalendarios); foreach (BECalendarioDia itemCalendariosDias in itemCalendarios.listaCalendariosDias) { itemCalendariosDias.CodigoCalendario = itemCalendarios.CodigoCalendario; itemCalendariosDias.SegUsuarioCrea = itemCalendarios.SegUsuarioCrea; itemCalendariosDias.SegUsuarioEdita = itemCalendarios.SegUsuarioEdita; if (itemCalendariosDias.Registro == null) { oReturnValor.CodigoRetorno = oCalendariosDiasData.Insert(itemCalendariosDias); } else { oReturnValor.Exitosa = oCalendariosDiasData.Update(itemCalendariosDias); } } if (oReturnValor.Exitosa) { oReturnValor.Message = HelpEventos.MessageEvento(HelpEventos.Process.EDIT); tx.Complete(); } } } catch (Exception ex) { oReturnValor = HelpException.mTraerMensaje(ex); } return(oReturnValor); }
/// <summary> /// Retorna una ENTIDAD de registro de la Entidad Asistencia.Calendarios /// En la BASE de DATO la Tabla : [Asistencia.Calendarios] /// <summary> /// <returns>Entidad</returns> public BECalendario Find(string prm_CodigoCalendario, bool prm_Estado) { BECalendario miEntidad = new BECalendario(); try { miEntidad = oCalendariosData.Find(prm_CodigoCalendario); miEntidad.listaCalendariosDias = oCalendariosDiasData.List(prm_CodigoCalendario, string.Empty, string.Empty, prm_Estado, HelpTMaestras.CodigoTabla(HelpTMaestras.TM.DiasDeLaSemana)); foreach (BECalendarioDia itemCalendariosDias in miEntidad.listaCalendariosDias) { itemCalendariosDias.itemHorario = oHorarioData.Find(itemCalendariosDias.CodigoHorario); } } catch (Exception ex) { throw ex; } return(miEntidad); }
/// <summary> /// Almacena el registro de una ENTIDAD de registro de Tipo Calendarios /// En la BASE de DATO la Tabla : [Asistencia.Calendarios] /// <summary> /// <param name = >itemCalendarios</param> public bool Update(BECalendario itemCalendarios) { int codigoRetorno = -1; try { using (_CROMTimeDataContext SQLDC = new _CROMTimeDataContext(conexion)) { codigoRetorno = SQLDC.omgc_mnt_UpdateCalendarios( itemCalendarios.CodigoCalendario, itemCalendarios.Descripcion, itemCalendarios.Anio, itemCalendarios.Estado, itemCalendarios.SegUsuarioEdita); } } catch (Exception ex) { throw ex; } return(codigoRetorno == 0 ? true : false); }
/// <summary> /// Retorna un LISTA de registros de la Entidad Maestros.Personas /// En la BASE de DATO la Tabla : [Maestros.Personas] /// <summary> /// <returns>List</returns> public List <BETimeEmpleado> ListMarcaciones(int pcodEmpresa, DateTime prm_FechaHoraINI, DateTime prm_FechaHoraFIN, string pUserLogin) { List <BEPersona> miListaPersonas = new List <BEPersona>(); List <BETimeEmpleado> listaTimeEmpleado = new List <BETimeEmpleado>(); CalendariosLogic oCalendariosLogic = new CalendariosLogic(); try { // ITERA la Lista de Empleados foreach (BEPersona itemPersona in prm_miListaPersonas) { List <BEPersonaAtributo> listaPersonasAtributos = new List <BEPersonaAtributo>(); listaPersonasAtributos = oPersonasLogic.ListBy_PersonasAtributos(itemPersona.codEmpresa, itemPersona.CodigoPersona); BETimeEmpleado itemTimeEmpleado = new BETimeEmpleado(); itemTimeEmpleado.CodigoPersona = itemPersona.CodigoPersona; itemTimeEmpleado.Apellidos = itemPersona.itemDatoAdicional.ApellidoPaterno + " " + itemPersona.itemDatoAdicional.ApellidoMaterno; itemTimeEmpleado.Nombres = itemPersona.itemDatoAdicional.Nombre1 + " " + itemPersona.itemDatoAdicional.Nombre2; // Datos y Valores del Empleado para el Control de Asistencia itemPersona.itemDatoAdicional = oPersonasLogic.FindPersonasDatosAdicionales(itemPersona.codEmpresa, itemTimeEmpleado.CodigoPersona, pUserLogin); string CODIGO_CALENDARIO = string.Empty; string TARJETA_MARCACION = string.Empty; //HelpMaestras. // Si Tiene CALENDARIO CODIGO_CALENDARIO = AtributoPersona(listaPersonasAtributos, ConfigurationManager.AppSettings["DEFAULT_CodigoCalendario"].ToString()); TARJETA_MARCACION = AtributoPersona(listaPersonasAtributos, ConfigurationManager.AppSettings["DEFAULT_NroDeTarjeta"].ToString()); if (!string.IsNullOrEmpty(CODIGO_CALENDARIO)) { TARJETA_MARCACION = TARJETA_MARCACION.Trim().PadLeft(Convert.ToInt32(ConfigurationManager.AppSettings["DEFAULT_LongNumCard"]), '0'); itemTimeEmpleado.listaMarcaciones = oMarcacionesLogic.List(TARJETA_MARCACION, prm_FechaHoraINI, prm_FechaHoraFIN); // Lista de TimeMarcaciones Datos completos de la Asistencia del Empleado List <BETimeMarcacion> listaTimeMarcaciones = new List <BETimeMarcacion>(); // Lista de Marcaciones Datos completos del Registro de Marcaciones del RELOJ List <BEMarcacion> listaMarcacionesFECHA_Actual = new List <BEMarcacion>(); // Fecha de INICIO DateTime FECHA_Actual = prm_FechaHoraINI; // CONTAR desde el PRIMER Dia Hasta el ULTIMO Día de UNo en UNO double TOTAL_DE_DIAS = Math.Round(HelpTime.CantidadDias(prm_FechaHoraINI, prm_FechaHoraFIN, HelpTime.TotalTiempo.Dias, true), 0); ++TOTAL_DE_DIAS; for (int i = 1; i <= TOTAL_DE_DIAS; ++i) { // itemTimeMarcaciones para llenar un Registro de Marcación del EMPLEADO BETimeMarcacion itemTimeMarcaciones = new BETimeMarcacion(); string DiaSemanaNOMBRE = string.Empty; // Se Encuentra el Día de la Semana en Número y Nombre int DiaSemanaNUMERO = HelpTime.DiaDeLaSemana(FECHA_Actual, out DiaSemanaNOMBRE); itemTimeMarcaciones.CodigoPersona = itemPersona.CodigoPersona; itemTimeMarcaciones.CodigoPersonaNombre = itemPersona.RazonSocial; foreach (BEPersonaAtributo item in listaPersonasAtributos) { if (item.CodigoArguTipoAtributo == ConfigCROM.AppConfig(pcodEmpresa, ConfigTool.DEFAULT_Atributo_NumerRUC))// - ruc { itemTimeMarcaciones.CodigoPersonaDNI = item.DescripcionAtributo; } } itemTimeMarcaciones.DiaSemana = DiaSemanaNOMBRE.Substring(0, 3); itemTimeMarcaciones.FechaHora = Convert.ToDateTime(FECHA_Actual.ToShortDateString()); string DIA_SEMANA_NOMBRE = string.Empty; int DIA_SEMANA_NUMERO = HelpTime.DiaDeLaSemana(itemTimeMarcaciones.FechaHora, out DIA_SEMANA_NOMBRE); BECalendario itemCalendarios = new BECalendario(); itemCalendarios = oCalendariosLogic.Find(CODIGO_CALENDARIO, true); List <BECalendarioDia> itemCalendariosDias = new List <BECalendarioDia>(); // Encontrar el Horario de Trabajo de la FECHA_Actual del BUCLE var queryCalendariosDIA = from itemDIA in itemCalendarios.listaCalendariosDias //where itemDIA.FechaInicio == itemTimeMarcaciones.FechaHora where itemDIA.CodigoArguDiaSemana == "ADIAS00" + DIA_SEMANA_NUMERO.ToString().Trim() select itemDIA; itemCalendariosDias = queryCalendariosDIA.ToList <BECalendarioDia>(); // Se Obtiene Todas las Marcaciones del EMPLEADO por la Fecha actual del BUCLE var queryMarcasFECHA_Actual = from ListaMarcasFECHA_Actual in itemTimeEmpleado.listaMarcaciones where ListaMarcasFECHA_Actual.FechaTexto.ToShortDateString() == FECHA_Actual.ToShortDateString() select ListaMarcasFECHA_Actual; listaMarcacionesFECHA_Actual = queryMarcasFECHA_Actual.ToList <BEMarcacion>(); int MARCAS_CANTIDAD = listaMarcacionesFECHA_Actual.Count; int MARCAS_CONTADOR = 0; int MARCAS_VECES = 0; itemTimeMarcaciones.HorarioEntrada = itemCalendariosDias[0].itemHorario.HEntrada == "00:00" ? "__:__" : itemCalendariosDias[0].itemHorario.HEntrada; itemTimeMarcaciones.HorasTeoricasTIME60 = HelpTime.CantidadTiempoEn_HH_MM(Convert.ToDouble(itemCalendariosDias[0].itemHorario.HorasLabor)); itemTimeMarcaciones.HorasTeoricasDOUBLE = Convert.ToDouble(itemCalendariosDias[0].itemHorario.HorasLabor); // SI TIENE MAS de una MARCACIÓN if (MARCAS_CANTIDAD > 0) { // Colocar las Marcaciones existentes en el registro Horizontal de itemTimeMarcaciones MarcacionesDeVerticalaHorizontal(listaMarcacionesFECHA_Actual, itemTimeMarcaciones, ref MARCAS_CONTADOR, ref MARCAS_VECES); CalcularTiempoPersona(itemTimeMarcaciones, itemCalendariosDias[0].itemHorario, MARCAS_VECES); itemTimeEmpleado.listaTimeMarcaciones.Add(itemTimeMarcaciones); } else { itemTimeMarcaciones.Entra01 = string.Empty; itemTimeMarcaciones.Entra02 = string.Empty; itemTimeMarcaciones.Salid01 = string.Empty; itemTimeMarcaciones.Salid02 = string.Empty; string decripcion = null; if (DetectaAGENDA(itemTimeEmpleado.CodigoPersona, FECHA_Actual, FECHA_Actual.Year, ref decripcion)) { itemTimeMarcaciones.MarcacionesDescripcion = decripcion; } else if (DetectaFERIADO(itemCalendariosDias[0].itemHorario, FECHA_Actual, ref decripcion)) { itemTimeMarcaciones.MarcacionesDescripcion = decripcion; } else { itemTimeMarcaciones.CONTADOR_VecesFalta = 1; itemTimeMarcaciones.MarcacionesDescripcion = decripcion; } itemTimeEmpleado.listaTimeMarcaciones.Add(itemTimeMarcaciones); } // La variable FECHA_Actual es Igual al Acumulado de prm_FechaHoraINI en UNO (Contador=i) FECHA_Actual = prm_FechaHoraINI.AddDays(i); } listaTimeEmpleado.Add(itemTimeEmpleado); } } } catch (Exception ex) { var returnValor = HelpException.mTraerMensaje(ex, false, this.GetType().Name + '.' + MethodBase.GetCurrentMethod().Name, pUserLogin, pcodEmpresa.ToString()); throw new Exception(returnValor.Message); } return(listaTimeEmpleado); }