private static void ControlLicenciaDEMO(ref bool version, ref bool LICENCIAVALIDA, LicenciaBE LICENCIA, DateTime dateExpiracion) { if (DateTime.Now <= dateExpiracion && LICENCIA.LENG8 == "SI") // { int Dias = (int)HelpTime.CantidadDias(DateTime.Now, dateExpiracion, HelpTime.TotalTiempo.Dias, true); oReturnValor.Message = "¡QUEDAN [ " + Dias.ToString().PadLeft(5, '0') + " ] DIAS de la Versión de DEMOSTRACION del Sistema! \n [ Empresa : " + LICENCIA.LENG6 + " ] Versión de Demostración !"; LICENCIAVALIDA = true; } else { LICENCIA.LENG8 = "NO"; oReturnValor.Message = "¡ SE EXPIRO LA LICENCIA DE PRUEBA PARA EL SISTEMA ! \n Contactarse con Orlando Carril al Cel:01-997405565 Versión de Demostración Agotada...!"; LICENCIAVALIDA = false; } version = false; }
public static int DiasDePrestamo(DateTime prmFechaInicio, int DefaultDiasPrestamo, int DIAS_TOLERANCIA) { int DIAS_DE_PRESTAMO = 0; List <BEFeriado> lstFeriados = new List <BEFeriado>(); FeriadosLogic oFeriadosLogic = new FeriadosLogic(); lstFeriados = oFeriadosLogic.List(DateTime.Now.AddHours(GlobalSettings.GetDEFAULT_HorasFechaActualCloud()).Year.ToString(), string.Empty, null, true); int TOTAL_DIAS_A_CONTAR = (DefaultDiasPrestamo + DIAS_TOLERANCIA); DateTime Fecha_Final = DateTime.Now.AddHours(GlobalSettings.GetDEFAULT_HorasFechaActualCloud()); for (int dia = 1; dia <= TOTAL_DIAS_A_CONTAR; ++dia) { DateTime FechaABuscar = prmFechaInicio.AddDays(dia); string FechaFijaAnual = "0000" + FechaABuscar.Month.ToString().Trim().PadLeft(2, '0') + FechaABuscar.Day.ToString().Trim().PadLeft(2, '0'); string FechaVariaAnual = DateTime.Now.Year.ToString().Trim() + FechaABuscar.Month.ToString().Trim().PadLeft(2, '0') + FechaABuscar.Day.ToString().Trim().PadLeft(2, '0'); if (FechaABuscar.DayOfWeek == DayOfWeek.Sunday) { ++TOTAL_DIAS_A_CONTAR; } else { if (lstFeriados.Exists(x => x.Feriado == FechaFijaAnual)) { ++TOTAL_DIAS_A_CONTAR; } if (lstFeriados.Exists(x => x.Feriado == FechaVariaAnual)) { ++TOTAL_DIAS_A_CONTAR; } } Fecha_Final = FechaABuscar; } double ndiasx = HelpTime.CantidadDias(Convert.ToDateTime(DateTime.Now.AddHours(GlobalSettings.GetDEFAULT_HorasFechaActualCloud()).ToShortDateString()), Convert.ToDateTime(Fecha_Final.ToShortDateString()), HelpTime.TotalTiempo.Dias, true); return(DIAS_DE_PRESTAMO = Convert.ToInt32(ndiasx)); }
/// <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); }