示例#1
0
        /// <summary>
        /// Obtiene un resumen de las asistencias, inasistencias y tardanzas del empleado
        /// </summary>
        /// <param name="codigoEmpleado">Codigo del Empleado o Candidato</param>
        /// <returns></returns>
        public BE.UI.PlanillaAsistenciaResumenEmpleado ObtenerResumenAsistenciaEmpleado(string codigoEmpleado)
        {
            BE.UI.PlanillaAsistenciaResumenEmpleado uiResumenAsistencia = null;
            try
            {
                DataTable dtAsistencia = new DA.Planilla().ListarAsistenciaResumen(this.anho, this.mes, codigoEmpleado);

                foreach (DataRow drItem in dtAsistencia.Rows)
                {
                    uiResumenAsistencia = new BE.UI.PlanillaAsistenciaResumenEmpleado();

                    uiResumenAsistencia.IdPlanilla                    = int.Parse(drItem["IdPlanilla"].ToString());
                    uiResumenAsistencia.CodigoEmpleado                = drItem["CodigoEmpleado"].ToString();
                    uiResumenAsistencia.CantidadAsistencias           = int.Parse(drItem["CantidadAsistencias"].ToString());
                    uiResumenAsistencia.CantidadTardanzas             = int.Parse(drItem["CantidadTardanzas"].ToString());
                    uiResumenAsistencia.CantidadInasistenciasNormales = int.Parse(drItem["CantidadInasistenciasNormales"].ToString());
                    uiResumenAsistencia.CantidadInasistenciasFeriados = int.Parse(drItem["CantidadInasistenciasFeriados"].ToString());

                    break;
                }

                return(uiResumenAsistencia);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        /// <summary>
        /// Lista la asistencia que es parte del descuento por inasistencia de la planilla
        /// </summary>
        /// <param name="idPlanilla">ID de la planilla</param>
        /// <param name="codigoEmpleado">Codigo del Empleado</param>
        /// <returns></returns>
        public List <BE.UI.PlanillaAsistencia> ListarAsistenciaFaltas(int idPlanilla,
                                                                      string codigoEmpleado)
        {
            try
            {
                var lstDetalleFaltas = new List <BE.UI.PlanillaAsistencia>();

                var lstBePlanillaAsistencias = new DA.Planilla().ListarPlanillaAsistencia(idPlanilla);

                lstBePlanillaAsistencias = lstBePlanillaAsistencias.Where(x =>
                                                                          x.CodigoEmpleado == codigoEmpleado &&
                                                                          x.MinutosInasistenciaTotal > 0
                                                                          ).ToList();

                foreach (BE.PlanillaAsistencia bePlanillaAsistencia in lstBePlanillaAsistencias)
                {
                    var uiPlanillaAsistencia = this.PlanillaAsistenciaBeToUi(bePlanillaAsistencia);
                    lstDetalleFaltas.Add(uiPlanillaAsistencia);
                }

                return(lstDetalleFaltas);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#3
0
        /// <summary>
        /// Lista la asistencia que es parte del bono Feriado de la planilla
        /// </summary>
        /// <param name="idPlanilla">ID de la planilla</param>
        /// <param name="codigoEmpleado">Codigo del Empleado</param>
        /// <returns></returns>
        public List <BE.UI.PlanillaAsistencia> ListarAsistenciaFeriado(int idPlanilla,
                                                                       string codigoEmpleado)
        {
            try
            {
                var lstDetalleHorarioNocturno = new List <BE.UI.PlanillaAsistencia>();

                var lstBePlanillaAsistencias = new DA.Planilla().ListarPlanillaAsistencia(idPlanilla);

                lstBePlanillaAsistencias = lstBePlanillaAsistencias.Where(x => x.CodigoEmpleado == codigoEmpleado &&
                                                                          (x.MinutosAsistenciaFeriadoDiurna > 0 || x.MinutosAsistenciaFeriadoNocturna > 0)
                                                                          ).ToList();

                foreach (BE.PlanillaAsistencia bePlanillaAsistencia in lstBePlanillaAsistencias)
                {
                    var uiPlanillaAsistencia = this.PlanillaAsistenciaBeToUi(bePlanillaAsistencia);
                    lstDetalleHorarioNocturno.Add(uiPlanillaAsistencia);
                }

                return(lstDetalleHorarioNocturno);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#4
0
 public bool Eliminar()
 {
     try
     {
         int rowsAffected = new DA.Planilla().Eliminar(this.anho, this.mes);
         return(rowsAffected > 0);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
示例#5
0
        public BE.Planilla Obtener()
        {
            BE.Planilla bePlanilla = null;
            try
            {
                var daPlanilla = new DA.Planilla();

                bePlanilla = daPlanilla.Obtener(this.anho, this.mes);

                //if (bePlanilla != null)
                //    bePlanilla.Detalles = daPlanilla.Detalle(bePlanilla.ID);

                return(bePlanilla);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#6
0
        public void Resumen(out int cantidadEmpleados,
                            out double totalSueldos,
                            out double totalPagos,
                            out double totalEssalud,
                            out double totalSnp,
                            out double totalAfp)
        {
            int    cntEmpleados = 0;
            double ttlSueldos   = 0.0;
            double ttlPagos     = 0.0;
            double ttlEssalud   = 0.0;
            double ttlSnp       = 0.0;
            double ttlAfp       = 0.0;

            try
            {
                DataTable dt = new DA.Planilla().Resumen(this.anho, this.mes);
                if (dt != null)
                {
                    if (dt.Rows.Count == 1)
                    {
                        cntEmpleados = int.Parse(dt.Rows[0]["CantidadEmpleados"].ToString());
                        ttlSueldos   = double.Parse(dt.Rows[0]["TotalSueldos"].ToString());
                        ttlPagos     = double.Parse(dt.Rows[0]["TotalPagos"].ToString());
                        ttlEssalud   = double.Parse(dt.Rows[0]["TotalEsSalud"].ToString());
                        ttlSnp       = double.Parse(dt.Rows[0]["TotalSNP"].ToString());
                        ttlAfp       = double.Parse(dt.Rows[0]["TotalAFP"].ToString());
                    }
                }

                cantidadEmpleados = cntEmpleados;
                totalSueldos      = ttlSueldos;
                totalPagos        = ttlPagos;
                totalEssalud      = ttlEssalud;
                totalSnp          = ttlSnp;
                totalAfp          = ttlAfp;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#7
0
        public List <BE.UI.PlanillaAsistencia> ListarAsistencia()
        {
            var lstUiPlanillaAsistencias = new List <BE.UI.PlanillaAsistencia>();

            try
            {
                var daPlanilla = new DA.Planilla();

                DataTable dtAsistencia = daPlanilla.ListarAsistencias(this.anho, this.mes);
                foreach (DataRow drItem in dtAsistencia.Rows)
                {
                    #region Obtener datos de asistencia

                    string   codEmpleado = drItem["Codigo"].ToString();
                    string   nomEmpleado = drItem["Empleado"].ToString();
                    DateTime fecha       = DateTime.Parse(drItem["Fecha"].ToString());
                    int      semana      = int.Parse(drItem["Semana"].ToString());

                    DateTime fechaHoraNocturnoInicio = DateTime.Parse(drItem["FechaHoraNocheInicial"].ToString());
                    DateTime fechaHoraNocturnoFinal  = DateTime.Parse(drItem["FechaHoraNocheFinal"].ToString());

                    //Fecha y Hora segun horario programado
                    DateTime fechaHoraHorarioInicio = DateTime.Parse(drItem["FechaHoraHorarioInicial"].ToString());
                    DateTime fechaHoraHorarioFinal  = DateTime.Parse(drItem["FechaHoraHorarioFinal"].ToString());
                    int      horasHorario           = int.Parse(drItem["HorasHorario"].ToString());

                    //Fecha y Hora segun horario Asistencia
                    int      horasAsistencia           = int.Parse(drItem["HorasAsistencia"].ToString());
                    DateTime fechaHoraAsistenciaInicio = new DateTime(1900, 01, 01);
                    DateTime fechaHoraAsistenciaFinal  = new DateTime(1900, 01, 01);
                    if (horasAsistencia > 0) //Si Asistio
                    {
                        fechaHoraAsistenciaInicio = DateTime.Parse(drItem["FechaHoraAsistenciaInicial"].ToString());
                        fechaHoraAsistenciaFinal  = DateTime.Parse(drItem["FechaHoraAsistenciaFinal"].ToString());
                    }

                    #endregion

                    int minutosAsistenciaNormalesTotales                    = 0;
                    int minutosAsistenciaNormalesDiurnas                    = 0;
                    int minutosAsistenciaNormalesNocturnas                  = 0;
                    int minutosAsistenciaNormalesDiurnasPrimerasExtras      = 0;
                    int minutosAsistenciaNormalesNocturnasPrimerasExtras    = 0;
                    int minutosAsistenciaNormalesDiurnasPosterioresExtras   = 0;
                    int minutosAsistenciaNormalesNocturnasPosterioresExtras = 0;

                    int minutosTardanzaNormalesTotales   = 0;
                    int minutosTardanzaNormalesDiurnas   = 0;
                    int minutosTardanzaNormalesNocturnas = 0;

                    int minutosAsistenciaFeriadosTotales                    = 0;
                    int minutosAsistenciaFeriadosDiurnas                    = 0;
                    int minutosAsistenciaFeriadosNocturnas                  = 0;
                    int minutosAsistenciaFeriadosDiurnasPrimerasExtras      = 0;
                    int minutosAsistenciaFeriadosNocturnasPrimerasExtras    = 0;
                    int minutosAsistenciaFeriadosDiurnasPosterioresExtras   = 0;
                    int minutosAsistenciaFeriadosNocturnasPosterioresExtras = 0;

                    int minutosTardanzaFeriadosTotales   = 0;
                    int minutosTardanzaFeriadosDiurnas   = 0;
                    int minutosTardanzaFeriadosNocturnas = 0;

                    int minutosInasistenciasTotales  = 0;
                    int minutosInasistenciasNormales = 0;
                    int minutosInasistenciasFeriados = 0;

                    #region Calcular Horas Normales y Extras

                    if (horasAsistencia > 0)
                    {
                        #region Calcular Minutos de Asistencias

                        this.ObtenerMinutosAsistencia(fechaHoraNocturnoInicio,
                                                      fechaHoraNocturnoFinal,
                                                      fechaHoraHorarioInicio,
                                                      fechaHoraHorarioFinal,
                                                      out minutosAsistenciaNormalesDiurnas,
                                                      out minutosAsistenciaNormalesNocturnas,
                                                      out minutosAsistenciaNormalesDiurnasPrimerasExtras,
                                                      out minutosAsistenciaNormalesNocturnasPrimerasExtras,
                                                      out minutosAsistenciaNormalesDiurnasPosterioresExtras,
                                                      out minutosAsistenciaNormalesNocturnasPosterioresExtras,
                                                      out minutosAsistenciaFeriadosDiurnas,
                                                      out minutosAsistenciaFeriadosNocturnas,
                                                      out minutosAsistenciaFeriadosDiurnasPrimerasExtras,
                                                      out minutosAsistenciaFeriadosNocturnasPrimerasExtras,
                                                      out minutosAsistenciaFeriadosDiurnasPosterioresExtras,
                                                      out minutosAsistenciaFeriadosNocturnasPosterioresExtras);

                        minutosAsistenciaNormalesTotales = minutosAsistenciaNormalesDiurnas
                                                           + minutosAsistenciaNormalesNocturnas
                                                           + minutosAsistenciaNormalesDiurnasPrimerasExtras
                                                           + minutosAsistenciaNormalesNocturnasPrimerasExtras
                                                           + minutosAsistenciaNormalesDiurnasPosterioresExtras
                                                           + minutosAsistenciaNormalesNocturnasPosterioresExtras;

                        minutosAsistenciaFeriadosTotales = minutosAsistenciaFeriadosDiurnas
                                                           + minutosAsistenciaFeriadosNocturnas
                                                           + minutosAsistenciaFeriadosDiurnasPrimerasExtras
                                                           + minutosAsistenciaFeriadosNocturnasPrimerasExtras
                                                           + minutosAsistenciaFeriadosDiurnasPosterioresExtras
                                                           + minutosAsistenciaFeriadosNocturnasPosterioresExtras;

                        #endregion

                        #region Calcular Minutos de Tardanza

                        this.ObtenerMinutosTardanza(fechaHoraNocturnoInicio,
                                                    fechaHoraNocturnoFinal,
                                                    fechaHoraHorarioInicio,
                                                    fechaHoraAsistenciaInicio,
                                                    out minutosTardanzaNormalesDiurnas,
                                                    out minutosTardanzaNormalesNocturnas,
                                                    out minutosTardanzaFeriadosDiurnas,
                                                    out minutosTardanzaFeriadosNocturnas);

                        minutosTardanzaNormalesTotales = minutosTardanzaNormalesDiurnas
                                                         + minutosTardanzaNormalesNocturnas;

                        minutosTardanzaFeriadosTotales = minutosTardanzaFeriadosDiurnas
                                                         + minutosTardanzaFeriadosNocturnas;

                        #endregion
                    }
                    else
                    {
                        #region Calcular Minutos de Inasistencia

                        this.ObtenerMinutosInasistencia(fechaHoraHorarioInicio,
                                                        fechaHoraHorarioFinal,
                                                        out minutosInasistenciasNormales,
                                                        out minutosInasistenciasFeriados);

                        minutosInasistenciasTotales = minutosInasistenciasNormales
                                                      + minutosInasistenciasFeriados;

                        #endregion
                    }

                    #endregion

                    var uiPlanillaAsistencia = new BE.UI.PlanillaAsistencia();

                    uiPlanillaAsistencia.Codigo = codEmpleado;
                    //uiPlanillaAsistencia.NombreEmpleado = nomEmpleado;
                    uiPlanillaAsistencia.Fecha  = fecha;
                    uiPlanillaAsistencia.Semana = semana;

                    uiPlanillaAsistencia.FechaHoraInicio = fechaHoraHorarioInicio;
                    uiPlanillaAsistencia.FechaHoraFinal  = fechaHoraHorarioFinal;

                    //Asistencia Normales
                    uiPlanillaAsistencia.AsistenciaNormalTotal          = minutosAsistenciaNormalesTotales;
                    uiPlanillaAsistencia.AsistenciaNormalDiurna         = minutosAsistenciaNormalesDiurnas;
                    uiPlanillaAsistencia.AsistenciaNormalNocturna       = minutosAsistenciaNormalesNocturnas;
                    uiPlanillaAsistencia.AsistenciaNormalDiurnaExtra1   = minutosAsistenciaNormalesDiurnasPrimerasExtras;
                    uiPlanillaAsistencia.AsistenciaNormalNocturnaExtra1 = minutosAsistenciaNormalesNocturnasPrimerasExtras;
                    uiPlanillaAsistencia.AsistenciaNormalDiurnaExtra2   = minutosAsistenciaNormalesDiurnasPosterioresExtras;
                    uiPlanillaAsistencia.AsistenciaNormalNocturnaExtra2 = minutosAsistenciaNormalesNocturnasPosterioresExtras;

                    //Tardanza Normales
                    uiPlanillaAsistencia.TardanzaNormalTotal    = minutosTardanzaNormalesTotales;
                    uiPlanillaAsistencia.TardanzaNormalDiurna   = minutosTardanzaNormalesDiurnas;
                    uiPlanillaAsistencia.TardanzaNormalNocturna = minutosTardanzaNormalesNocturnas;

                    //Asistencia Feriados
                    uiPlanillaAsistencia.AsistenciaFeriadoTotal          = minutosAsistenciaFeriadosTotales;
                    uiPlanillaAsistencia.AsistenciaFeriadoDiurna         = minutosAsistenciaFeriadosDiurnas;
                    uiPlanillaAsistencia.AsistenciaFeriadoNocturna       = minutosAsistenciaFeriadosNocturnas;
                    uiPlanillaAsistencia.AsistenciaFeriadoDiurnaExtra1   = minutosAsistenciaFeriadosDiurnasPrimerasExtras;
                    uiPlanillaAsistencia.AsistenciaFeriadoNocturnaExtra1 = minutosAsistenciaFeriadosNocturnasPrimerasExtras;
                    uiPlanillaAsistencia.AsistenciaFeriadoDiurnaExtra2   = minutosAsistenciaFeriadosDiurnasPosterioresExtras;
                    uiPlanillaAsistencia.AsistenciaFeriadoNocturnaExtra2 = minutosAsistenciaFeriadosNocturnasPosterioresExtras;

                    //Tardanza Feriado
                    uiPlanillaAsistencia.TardanzaFeriadoTotal    = minutosTardanzaFeriadosTotales;
                    uiPlanillaAsistencia.TardanzaFeriadoDiurna   = minutosTardanzaFeriadosDiurnas;
                    uiPlanillaAsistencia.TardanzaFeriadoNocturna = minutosTardanzaFeriadosNocturnas;

                    //Tardanza Inasistencias
                    uiPlanillaAsistencia.InasistenciaTotal   = minutosInasistenciasTotales;
                    uiPlanillaAsistencia.InasistenciaNormal  = minutosInasistenciasNormales;
                    uiPlanillaAsistencia.InasistenciaFeriado = minutosInasistenciasFeriados;

                    lstUiPlanillaAsistencias.Add(uiPlanillaAsistencia);
                }

                return(lstUiPlanillaAsistencias);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#8
0
        public List <BE.UI.PlanillaDetalle> ListarPlantillaDetalle()
        {
            try
            {
                var lstUiPlantillaDetalle = new List <BE.UI.PlanillaDetalle>();

                var daPlanilla = new DA.Planilla();

                var bePlanilla = daPlanilla.Obtener(this.anho, this.mes);
                if (bePlanilla != null)
                {
                    int idPlanilla           = bePlanilla.ID;
                    var lstBePlanillaDetalle = new DA.Planilla().Detalle(idPlanilla);

                    foreach (BE.PlanillaDetalle beDetalle in lstBePlanillaDetalle)
                    {
                        var uiPlanillaDetalle = new BE.UI.PlanillaDetalle();

                        uiPlanillaDetalle.Periodo = this.anho.ToString() + "/" + this.mes.ToString();

                        uiPlanillaDetalle.EmpleadoCodigo = beDetalle.CodigoEmpleado;
                        uiPlanillaDetalle.EmpleadoNombre = new DA.Trabajador().ObtenerNombreCompleto(beDetalle.CodigoEmpleado);

                        var beCargo = new DA.Cargo().Obtener(beDetalle.IdCargo);
                        if (beCargo != null)
                        {
                            uiPlanillaDetalle.CargoID     = beDetalle.IdCargo;
                            uiPlanillaDetalle.CargoNombre = beCargo.Nombre;
                        }

                        uiPlanillaDetalle.Base = beDetalle.SueldoBase;
                        uiPlanillaDetalle.AsignacionFamiliar = beDetalle.AsignacionFamiliar;

                        uiPlanillaDetalle.CalcularPor = "M";

                        uiPlanillaDetalle.BonoNocturnoCantidad    = beDetalle.CantidadMinutosBonoNocturno;
                        uiPlanillaDetalle.BonoNocturnoTotal       = beDetalle.TotalMinutoBonoNocturno;
                        uiPlanillaDetalle.BonoHorasExtrasCantidad = beDetalle.CantidadMinutosBonoHorasExtras;
                        uiPlanillaDetalle.BonoHorasExtrasTotal    = beDetalle.TotalMinutoBonoHorasExtras;
                        uiPlanillaDetalle.BonoFeriadoCantidad     = beDetalle.CantidadMinutosBonoFeriado;
                        uiPlanillaDetalle.BonoFeriadoTotal        = beDetalle.TotalMinutoBonoFeriado;

                        uiPlanillaDetalle.DescuentoTardanzaCantidad     = beDetalle.CantidadMinutosDescuentoTardanza;
                        uiPlanillaDetalle.DescuentoTardanzaTotal        = beDetalle.TotalMinutoDescuentoTardanza;
                        uiPlanillaDetalle.DescuentoInasistenciaCantidad = beDetalle.CantidadMinutosDescuentoInasistencia;
                        uiPlanillaDetalle.DescuentoInasistenciaTotal    = beDetalle.TotalDescuentoInasistencia;

                        uiPlanillaDetalle.SnpNombre = "ONP";
                        uiPlanillaDetalle.SnpTotal  = beDetalle.SnpTotal;

                        if (beDetalle.Afp != null && beDetalle.Afp.IdAfp > 0)
                        {
                            var beAfp = new BE.Afp()
                            {
                                IdAfp = beDetalle.Afp.IdAfp
                            };
                            if (new DA.Afp().Obtener(ref beAfp))
                            {
                                uiPlanillaDetalle.AfpID     = beAfp.IdAfp;
                                uiPlanillaDetalle.AfpNombre = beAfp.Nombre;
                            }
                        }

                        uiPlanillaDetalle.AfpTipo = beDetalle.AfpTipo;
                        uiPlanillaDetalle.AfpAporteObligatorio = beDetalle.AfpAporteObligatorio;
                        uiPlanillaDetalle.AfpAporteVoluntario  = beDetalle.AfpAporteVoluntario;
                        uiPlanillaDetalle.AfpSeguro            = beDetalle.AfpSeguro;
                        uiPlanillaDetalle.AfpComision          = beDetalle.AfpComision;
                        uiPlanillaDetalle.AfpTotal             = beDetalle.AfpTotal;

                        uiPlanillaDetalle.ImpuestoTotal          = beDetalle.ImpuestoTotal;
                        uiPlanillaDetalle.RetencionJudicialTotal = beDetalle.RetencionJudicialTotal;
                        uiPlanillaDetalle.AdelantoTotal          = beDetalle.AdelantoTotal;
                        uiPlanillaDetalle.PrestamoTotal          = beDetalle.PrestamoTotal;
                        uiPlanillaDetalle.GratificacionTotal     = 0.0;
                        uiPlanillaDetalle.EsSaludTotal           = beDetalle.EsSaludTotal;
                        uiPlanillaDetalle.MovilidadTotal         = beDetalle.TotalMovilidad;

                        uiPlanillaDetalle.TotalBase  = beDetalle.TotalSueldoBase;
                        uiPlanillaDetalle.TotalBruto = beDetalle.TotalSueldoBruto;
                        uiPlanillaDetalle.TotalNeto  = beDetalle.TotalSueldoNeto;
                        uiPlanillaDetalle.TotalPagar = beDetalle.TotaPago;

                        lstUiPlantillaDetalle.Add(uiPlanillaDetalle);
                    }
                }
                bePlanilla = null;

                return(lstUiPlantillaDetalle);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }