Пример #1
0
        private void CargarEmpleados(bool Seleccione = false)
        {
            try
            {
                var lstEmpleados  = new LN.Empleado().Combo();
                var lstCandidatos = new LN.Candidato().Combo();
                lstEmpleados.AddRange(lstCandidatos);
                var lstTrabajadores = lstEmpleados.OrderBy(o => o.Nombre).Distinct().ToList();

                if (Seleccione == true)
                {
                    lstTrabajadores.Insert(0, new BE.Record()
                    {
                        Codigo = "0", Nombre = "Seleccione"
                    });
                }

                this.cboEmpleado.DataSource    = lstTrabajadores;
                this.cboEmpleado.DisplayMember = "Nombre";
                this.cboEmpleado.ValueMember   = "Codigo";
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        /// <summary>
        /// Cargar solo empleados que cumplan mas de 1 año de ingreso o de vacaciones
        /// </summary>
        private void CargarComboEmpleados()
        {
            try
            {
                var fechaActual = DateTime.Now;

                var lstUiEmpleadosVacaciones = new LN.Empleado().ListarVacaciones(fechaActual);

                lstUiEmpleadosVacaciones = lstUiEmpleadosVacaciones.OrderBy(x => x.EmpleadoApellidosNombres).ToList();

                lstUiEmpleadosVacaciones.Insert(0, new BE.UI.EmpleadoVacacion()
                {
                    Id                       = 0,
                    EmpleadoCodigo           = "0",
                    EmpleadoApellidosNombres = "Seleccione",
                    EmpleadoFechaIngreso     = DateTime.Now,
                    EmpleadoFechaVacacion    = null
                });

                this.cboEmpleado.DataSource    = lstUiEmpleadosVacaciones;
                this.cboEmpleado.DisplayMember = "EmpleadoApellidosNombres";
                this.cboEmpleado.ValueMember   = "EmpleadoCodigo";
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #3
0
        private void btnEliminar_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.dgvEmpleados.CurrentRow != null)
                {
                    if (Util.ConfirmationMessage("¿Desea eliminar al empleado seleccionado?") == false)
                    {
                        return;
                    }

                    var uiEmpleado = (BE.UI.Empleado) this.dgvEmpleados.CurrentRow.DataBoundItem;

                    var  beEmpleado = new LN.Empleado().Obtener(uiEmpleado.Id);
                    bool rpta       = new LN.Empleado().Eliminar(beEmpleado);

                    if (true)
                    {
                        Util.InformationMessage("Se elimino el empleado seleccionado");
                        this.CargarEmpleados();
                    }
                }
            }
            catch (Exception ex)
            {
                Util.ErrorMessage(ex.Message);
            }
        }
Пример #4
0
        private List <BE.Record> ListadoTrabajadores()
        {
            var lstEmpleados  = new LN.Empleado().Combo();
            var lstCandidatos = new LN.Candidato().Combo();

            lstEmpleados.AddRange(lstCandidatos);

            var lstTrabajadores = lstEmpleados.OrderBy(o => o.Nombre).Distinct().ToList();

            return(lstTrabajadores);
        }
Пример #5
0
        private void CargarEmpleados()
        {
            var lstUiEmpleados  = new LN.Empleado().ListaSimple();
            var lstUiCandidatos = new LN.Candidato().ListaSimple();

            lstUiEmpleados.AddRange(lstUiCandidatos);
            var lstUiTrabajadores = lstUiEmpleados.OrderBy(o => o.ApellidosNombres).ToList();

            this.cboEmpleado.DataSource    = lstUiTrabajadores;
            this.cboEmpleado.DisplayMember = "ApellidosNombres";
            this.cboEmpleado.ValueMember   = "Codigo";
        }
Пример #6
0
        private void CargarMotivosCese()
        {
            var lstMotivosCese = new LN.Empleado().Combo();

            lstMotivosCese.Insert(0, new BE.Record()
            {
                Codigo = "", Nombre = "Seleccione"
            });

            this.cboEmpleado.DataSource    = lstMotivosCese;
            this.cboEmpleado.DisplayMember = "Nombre";
            this.cboEmpleado.ValueMember   = "Codigo";
        }
Пример #7
0
        private void cboEmpleado_SelectionChangeCommitted(object sender, EventArgs e)
        {
            try
            {
                if (this.cboEmpleado.SelectedIndex == 0)
                {
                    this.txtEmpleadoCodigo.Clear();
                    this.txtEmpleadoFechaIngreso.Clear();
                    this.txtEmpleadoSueldo.Text            = "0.00";
                    this.txtEmpleadoAsignacionFamilar.Text = "0.00";

                    this.txtBancoNombre.Clear();
                    this.txtBancoCuenta.Clear();
                }
                else
                {
                    var beRecord = (BE.Record) this.cboEmpleado.SelectedItem;

                    var beEmpleado = new LN.Empleado().Obtener(beRecord.Codigo, true);

                    if (beEmpleado != null && beEmpleado.Recurso != null)
                    {
                        this.txtEmpleadoCodigo.Text = beEmpleado.Codigo;

                        this.txtEmpleadoFechaIngreso.Text = beEmpleado.Recurso.FechaInicio.ToString("dd/MM/yyyy");
                        this.txtEmpleadoSueldo.Text       = beEmpleado.Recurso.Sueldo.ToString("N2");

                        double asigFam = 0.0;
                        if (beEmpleado.Recurso.NumeroHijos > 0)
                        {
                            var beSueldo = new LN.SueldoMinimo().Actual(DateTime.Now);
                            if (beSueldo != null)
                            {
                                asigFam = beSueldo.Monto / 10;
                            }
                        }
                        this.txtEmpleadoAsignacionFamilar.Text = asigFam.ToString("N2");

                        this.txtBancoNombre.Text = beEmpleado.Recurso.BancoCTS.Nombre;
                        this.txtBancoCuenta.Text = beEmpleado.Recurso.CuentaCTS;
                    }
                }
            }
            catch (Exception ex)
            {
                Util.ErrorMessage(ex.Message);
            }
        }
Пример #8
0
        private void CargarEmpleados()
        {
            var lstEmpleados  = new LN.Empleado().Combo();
            var lstCandidatos = new LN.Candidato().Combo();

            lstEmpleados.AddRange(lstCandidatos);
            var lstTrabajador = lstEmpleados.OrderBy(o => o.Codigo).Distinct().ToList();

            lstTrabajador.Insert(0, new BE.Record()
            {
                Codigo = "", Nombre = "Seleccione"
            });

            this.cboEmpleado.DataSource    = lstTrabajador;
            this.cboEmpleado.DisplayMember = "Nombre";
            this.cboEmpleado.ValueMember   = "Codigo";
        }
Пример #9
0
        private void Editar(BE.UI.Empleado uiEmpleado)
        {
            try
            {
                var beEmpleado = new LN.Empleado().Obtener(uiEmpleado.Id);

                var frmEmpleadoEdit = FrmEmpleadoMant.Instance();
                frmEmpleadoEdit.MdiParent = this.MdiParent;
                frmEmpleadoEdit.Show();
                frmEmpleadoEdit.Cargar(beEmpleado);
                frmEmpleadoEdit.frmEmpleadosList = this;
            }
            catch (Exception ex)
            {
                throw ex;
                throw;
            }
        }
Пример #10
0
        private List <BE.Record> ListadoEmpleados()
        {
            try
            {
                var lstEmpleados  = new LN.Empleado().Combo();
                var lstCandidatos = new LN.Candidato().Combo();
                lstEmpleados.AddRange(lstCandidatos);

                var lstBeRegistros = new List <BE.Record>();
                lstBeRegistros = lstEmpleados.OrderBy(o => o.Codigo).Distinct().ToList();

                return(lstBeRegistros);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #11
0
        private void btnAgregar_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.cboEmpleado.SelectedIndex == 0)
                {
                    this.cboEmpleado.Focus();
                    throw new Exception("Seleccione un empleado");
                }

                DateTime ingreso = this.DtpFechaHoraEntrada.Value;
                DateTime salida  = this.DtpFechaHoraSalida.Value;
                if (ingreso > salida)
                {
                    this.DtpFechaHoraEntrada.Focus();
                    throw new Exception("La fecha y hora de ingreso es mayor a la fecha y hora de salida");
                }
                TimeSpan tiempo = salida.Subtract(ingreso);

                string codigoEmpleado = this.cboEmpleado.SelectedValue.ToString();
                string nombreEmpleado = new LN.Empleado().ObtenerNombreCompleto(codigoEmpleado);
                int    turno          = this.cboTurno.SelectedIndex + 1;

                var uiAsistencia = new BE.UI.Asistencia();
                uiAsistencia.ID                     = 0;
                uiAsistencia.EmpleadoCodigo         = codigoEmpleado;
                uiAsistencia.EmpleadoNombreCompleto = nombreEmpleado;
                uiAsistencia.Turno                  = turno;
                uiAsistencia.FechaHoraEntrada       = ingreso;
                uiAsistencia.FechaHoraSalida        = salida;
                uiAsistencia.Tiempo                 = tiempo;
                uiAsistencia.Origen                 = "M";
                uiAsistencia.Fecha                  = this.DtpFechaHoraEntrada.Value;

                this.lstUiAsistencias.Add(uiAsistencia);

                this.CargarListadoAsistencia(this.lstUiAsistencias);
                this.LimpiarRegistroManual();
            }
            catch (Exception ex)
            {
                Util.ErrorMessage(ex.Message);
            }
        }
Пример #12
0
        private void cboEmpleado_SelectionChangeCommitted(object sender, EventArgs e)
        {
            try
            {
                var beRecord = (BE.Record) this.cboEmpleado.SelectedItem;
                this.txtEmpleadoCodigo.Text = beRecord.Codigo;

                if (beRecord.Codigo.Length > 0)
                {
                    var beEmpleado = new LN.Empleado().Obtener(beRecord.Codigo);
                    if (beEmpleado != null)
                    {
                        this.txtSueldo.Text = beEmpleado.Recurso.Sueldo.ToString("N2");
                    }
                }
            }
            catch (Exception ex)
            {
                Util.ErrorMessage(ex.Message);
            }
        }
Пример #13
0
        private List <BE.Record> ListaTrabajadores()
        {
            try
            {
                List <BE.Record> lstTrabajadores = new List <BE.Record>();

                var lstEmpleados  = new LN.Empleado().Combo();
                var lstCandidatos = new LN.Candidato().Combo();

                lstEmpleados.AddRange(lstCandidatos);
                lstTrabajadores = lstEmpleados.OrderBy(o => o.Codigo).Distinct().ToList();

                lstEmpleados  = null;
                lstCandidatos = null;

                return(lstTrabajadores);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #14
0
        private void CargarEmpleados()
        {
            try
            {
                var lstEmpleados = new LN.Empleado().Combo();

                lstEmpleados = lstEmpleados.OrderBy(x => x.Nombre).ToList();

                lstEmpleados.Insert(0, new BE.Record()
                {
                    Codigo = "0", Nombre = "Seleccione"
                });

                this.cboEmpleado.DataSource    = lstEmpleados;
                this.cboEmpleado.DisplayMember = "Nombre";
                this.cboEmpleado.ValueMember   = "Codigo";
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #15
0
        /// <summary>
        /// Monto de bono que se le asigna por cargo o función.
        /// </summary>
        /// <param name="codigoEmpleado">Codigo de Empleado o Candidato</param>
        /// <returns></returns>
        private double BonoCargo(string codigoEmpleado)
        {
            try
            {
                double bonoXcargo = 0.0;

                var beEmpleado = new LN.Empleado().Obtener(codigoEmpleado);
                if (beEmpleado != null)
                {
                    var beEmpleadoRecurso = new LN.Empleado().ObtenerRecurso(beEmpleado.IdEmpleado);
                    if (beEmpleadoRecurso != null)
                    {
                        if (beEmpleadoRecurso.Cargo != null)
                        {
                            if (lstUiCargos == null)
                            {
                                lstUiCargos = new LN.Cargo().Listar();
                            }

                            int idCargo = beEmpleadoRecurso.Cargo.IdCargo;
                            var uiBono  = lstUiCargos.FirstOrDefault(x => x.Id == idCargo);
                            if (uiBono != null)
                            {
                                bonoXcargo = uiBono.Bono;
                            }
                        }
                    }
                }

                return(bonoXcargo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #16
0
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                #region Validar
                if (this.cboPeriodoFiltro.SelectedIndex == 0)
                {
                    this.cboPeriodoFiltro.Focus();
                    throw new Exception("Seleccione un periodo");
                }

                if (this.cboEmpleadoFiltro.SelectedIndex == 0)
                {
                    this.cboEmpleadoFiltro.Focus();
                    throw new Exception("Seleccione un empleado");
                }
                #endregion

                #region Cargar en memoria
                var beRecord = (BE.Record) this.cboEmpleadoFiltro.SelectedItem;
                this.uiGratificacion.EmpleadoCodigo  = beRecord.Codigo;
                this.uiGratificacion.EmpleadoNombres = beRecord.Nombre;

                var beEmpleado = new LN.Empleado().Obtener(beRecord.Codigo);
                this.uiGratificacion.SueldoBase = beEmpleado.Recurso.Sueldo;
                this.uiGratificacion.DescuentoRetencioJudicial = 0.0;

                var beSueldoMinimo = new LN.SueldoMinimo().Actual(DateTime.Now);
                var beParametros   = new BE.Parametros(beSueldoMinimo.Monto);
                this.uiGratificacion.AsignacionFamiliar = beParametros.AsignacionFamiliar;
                #endregion

                #region Resumen y Detalle

                this.txtPeriodo.Text         = this.uiGratificacion.Periodo;
                this.txtDias.Text            = this.uiGratificacion.Dias.ToString();
                this.txtFechaInicial.Text    = this.uiGratificacion.FechaInicial.ToString("dd/MM/yyyy");
                this.txtFechaFinal.Text      = this.uiGratificacion.FechaFinal.ToString("dd/MM/yyyy");
                this.txtEmpleadoCodigo.Text  = this.uiGratificacion.EmpleadoCodigo;
                this.txtEmpleadoNombres.Text = this.uiGratificacion.EmpleadoNombres;
                this.txtSueldoBase.Text      = this.uiGratificacion.SueldoBase.ToString("N2");
                this.txtSueldoAsigFam.Text   = this.uiGratificacion.AsignacionFamiliar.ToString("N2");

                int    anho                 = this.uiGratificacion.Anho;
                int    mesIni               = this.uiGratificacion.FechaInicial.Month;
                int    mesFin               = this.uiGratificacion.FechaFinal.Month;
                string codEmpleado          = this.uiGratificacion.EmpleadoCodigo;
                double bonoNocturnoTotal    = 0;
                double bonoHorasExtrasTotal = 0;
                int    diasCalculo          = 0;

                this.uiGratificacion.Detalle = new List <BE.UI.GratificacionDetalle>();
                for (int mes = mesIni; mes <= mesFin; mes++)
                {
                    double bonoNocturno      = 0;
                    double bonoHorasExtras   = 0;
                    int    diasMes           = DateTime.DaysInMonth(anho, mes);
                    int    diasInasistencias = 0;

                    var uiPlantillaDetalle = new LN.Planilla(anho, mes).ObtenerPlantillaDetalle(codEmpleado);
                    if (uiPlantillaDetalle != null)
                    {
                        bonoNocturno    = uiPlantillaDetalle.BonoNocturnoTotal;
                        bonoHorasExtras = uiPlantillaDetalle.BonoHorasExtrasTotal;

                        double inasistencias = uiPlantillaDetalle.DescuentoInasistenciaCantidad;
                        switch (uiPlantillaDetalle.CalcularPor)
                        {
                        case "M":
                            diasInasistencias = (int)inasistencias / 360;
                            break;

                        case "H":
                            diasInasistencias = (int)inasistencias / 60;
                            break;

                        default:
                            diasInasistencias = (int)inasistencias;
                            break;
                        }
                    }

                    bonoNocturnoTotal    += bonoNocturno;
                    bonoHorasExtrasTotal += bonoHorasExtras;
                    diasCalculo          += diasMes - diasInasistencias;

                    var uiGratificacionDetalle = new BE.UI.GratificacionDetalle();
                    uiGratificacionDetalle.Anho              = anho;
                    uiGratificacionDetalle.MesId             = mes;
                    uiGratificacionDetalle.MesNombre         = Util.GetNameOfMonth(mes);
                    uiGratificacionDetalle.EmpleadoCodigo    = codEmpleado;
                    uiGratificacionDetalle.BonoNocturno      = bonoNocturno;
                    uiGratificacionDetalle.BonoHorasExtras   = bonoHorasExtras;
                    uiGratificacionDetalle.DiasMes           = DateTime.DaysInMonth(anho, mes);
                    uiGratificacionDetalle.DiasInasistencias = diasInasistencias;
                    uiGratificacionDetalle.DiasCalculo       = uiGratificacionDetalle.DiasMes - uiGratificacionDetalle.DiasInasistencias;

                    this.uiGratificacion.Detalle.Add(uiGratificacionDetalle);
                }

                var source = new BindingSource();
                source.DataSource = this.uiGratificacion.Detalle;
                this.dgvDetalleGratificaciones.DataSource = source;

                this.FormatoDetalleGratificacion();

                this.txtDetalleBonoNocturno.Text    = bonoNocturnoTotal.ToString("N2");
                this.txtDetalleBonoHorasExtras.Text = bonoHorasExtrasTotal.ToString("N2");
                this.txtDetalleDiasCalculo.Text     = diasCalculo.ToString();

                this.uiGratificacion.BonoNocturno    = bonoNocturnoTotal / 6;
                this.uiGratificacion.BonoHorasExtras = bonoHorasExtrasTotal / 6;
                this.uiGratificacion.DiasCalculo     = diasCalculo;

                this.txtBonoNocturno.Text = this.uiGratificacion.BonoNocturno.ToString("N2");
                this.txtBonoExtra.Text    = this.uiGratificacion.BonoHorasExtras.ToString("N2");

                this.txtDescuentoRJ.Text       = this.uiGratificacion.DescuentoRetencioJudicial.ToString("N2");
                this.txtDescuentoImpuesto.Text = this.uiGratificacion.DescuentoImpuestos.ToString("N2");

                double gratificacionBruta = this.uiGratificacion.BonoNocturno
                                            + this.uiGratificacion.BonoHorasExtras
                                            + this.uiGratificacion.SueldoBase
                                            + this.uiGratificacion.AsignacionFamiliar;
                this.uiGratificacion.GratificacionBruta = (gratificacionBruta / this.uiGratificacion.Dias) * this.uiGratificacion.DiasCalculo;

                this.txtGratificacionBruta.Text = this.uiGratificacion.GratificacionBruta.ToString("N2");

                this.uiGratificacion.GratificacionBono = gratificacionBruta * beParametros.EsSaludFactor;
                this.txtGratificacionBonificacion.Text = this.uiGratificacion.GratificacionBono.ToString("N2");

                this.uiGratificacion.GratificacionNeta = this.uiGratificacion.GratificacionBruta + this.uiGratificacion.GratificacionBono;
                this.txtGratificacionNeta.Text         = this.uiGratificacion.GratificacionNeta.ToString("N2");

                this.uiGratificacion.GratificacionPago = this.uiGratificacion.GratificacionNeta
                                                         - this.uiGratificacion.DescuentoRetencioJudicial
                                                         - this.uiGratificacion.DescuentoImpuestos;

                this.txtGratificacionPago.Text = this.uiGratificacion.GratificacionPago.ToString("N2");

                #endregion

                this.txtDescuentoImpuesto.ReadOnly = false;
            }
            catch (Exception ex)
            {
                Util.ErrorMessage(ex.Message);
            }
        }
Пример #17
0
        public void CargarEmpleados(string filtro = "", string valor = "", int idEmpleado = 0)
        {
            try
            {
                Util.PointerLoad(this);

                var lstEmpleados = new LN.Empleado().Listar();

                if (valor.Length > 0)
                {
                    switch (filtro)
                    {
                    case "1":     //Documento
                        lstEmpleados = lstEmpleados.Where(x => x.DocumentoCodigo == valor).ToList();
                        break;

                    case "2":     //Sala
                        int idSala = int.Parse(valor);
                        lstEmpleados = lstEmpleados.Where(x => x.SalaId == idSala).ToList();
                        break;

                    case "3":     //Sexo
                        lstEmpleados = lstEmpleados.Where(x => x.SexoCodigo == valor).ToList();
                        break;

                    case "4":     //Activo
                        lstEmpleados = lstEmpleados.Where(x => x.Activo == valor).ToList();
                        break;

                    case "5":     //Cargo
                        int idCargo = int.Parse(valor);
                        lstEmpleados = lstEmpleados.Where(x => x.CargoId == idCargo).ToList();
                        break;

                    default:     //Todos
                        break;
                    }
                }

                var nroEmpleados = lstEmpleados.Count.ToString();

                var sorted = new SortableBindingList <BE.UI.Empleado>(lstEmpleados);

                this.dgvEmpleados.DataSource = sorted;
                this.txtNroEmpleados.Text    = nroEmpleados;

                if (idEmpleado > 0)
                {
                    this.dgvEmpleados.Rows.OfType <DataGridViewRow>().Where(x => (int)x.Cells["Id"].Value == idEmpleado).ToArray <DataGridViewRow>()[0].Selected = true;
                    this.dgvEmpleados.FirstDisplayedScrollingRowIndex = this.dgvEmpleados.SelectedRows[0].Index;
                    this.dgvEmpleados.Update();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                Util.PointerReady(this);
            }
        }
Пример #18
0
        private void btnCalcular_Click(object sender, EventArgs e)
        {
            try
            {
                #region Validaciones

                if (this.cboBono.SelectedIndex == 0)
                {
                    this.cboBono.Focus();
                    throw new Exception("Seleccione un tipo de Bono");
                }

                #endregion

                Util.PointerLoad(this);

                #region Calcular

                this.Anho = int.Parse(this.cboAnho.SelectedValue.ToString());
                this.Mes  = int.Parse(this.cboMes.SelectedValue.ToString());
                int      dia          = DateTime.DaysInMonth(this.Anho, this.Mes);
                DateTime fechaPeriodo = new DateTime(this.Anho, this.Mes, dia);

                var    beBono     = ((BE.UI.Bono) this.cboBono.SelectedItem);
                int    bonoId     = beBono.Id;
                string bonoTipo   = beBono.Calculado ? "Calculado" : "Manual"; //Manual o Calculado
                string bonoNombre = beBono.Nombre;
                double bonoMonto  = 0.0;
                beBono = null;

                if (new LN.BonoEmpleado().ExisteCalculo(this.Anho, this.Mes, bonoId))
                {
                    if (Util.ConfirmationMessage("Ya existe un calculo de bonos para este periodo. ¿Desea continua?") == false)
                    {
                        return;
                    }
                }

                List <BE.Record> lstTrabajadores = new List <BE.Record>();
                var lstEmpleados  = new LN.Empleado().Combo();
                var lstCandidatos = new LN.Candidato().Combo();
                lstEmpleados.AddRange(lstCandidatos);
                lstTrabajadores = lstEmpleados.OrderBy(o => o.Codigo).Distinct().ToList();
                lstEmpleados    = null;
                lstCandidatos   = null;

                this.lstUiBonosEmpleados = new List <BE.UI.BonoEmpleado>();

                foreach (BE.Record beTrabajador in lstTrabajadores)
                {
                    var uiBonoEmpleado = new BE.UI.BonoEmpleado();

                    uiBonoEmpleado.Fecha                  = fechaPeriodo;
                    uiBonoEmpleado.EmpleadoCodigo         = beTrabajador.Codigo;
                    uiBonoEmpleado.EmpleadoNombreCompleto = beTrabajador.Nombre;
                    uiBonoEmpleado.BonoID                 = bonoId;
                    uiBonoEmpleado.BonoTipo               = bonoTipo;
                    uiBonoEmpleado.BonoNombre             = bonoNombre;

                    switch (bonoId)
                    {
                    case 1:     //Disciplina
                        bonoMonto = this.BonoDisciplina(beTrabajador.Codigo);
                        break;

                    case 2:     //Meta
                        int idSalaTrabajador  = 0;
                        var beEmpleadoRecurso = new LN.Empleado().ObtenerRecurso(beTrabajador.Codigo);
                        if (beEmpleadoRecurso != null)
                        {
                            idSalaTrabajador = beEmpleadoRecurso.Sala.IdSala;
                            bonoMonto        = this.BonoMeta(idSalaTrabajador, beTrabajador.Codigo);
                        }
                        beEmpleadoRecurso = null;
                        break;

                    case 3:     //Cargo
                        bonoMonto = this.BonoCargo(beTrabajador.Codigo);
                        break;

                    default:
                        bonoMonto = 0.0;
                        break;
                    }

                    uiBonoEmpleado.Monto  = bonoMonto;
                    uiBonoEmpleado.Motivo = "";

                    if (bonoMonto > 0.0)
                    {
                        lstUiBonosEmpleados.Add(uiBonoEmpleado);
                    }
                }

                #endregion

                #region Mostrar

                this.txtAnhoMes.Text  = fechaPeriodo.ToString("yyyy/MM");
                this.txtTipoBono.Text = bonoNombre;

                var source = new BindingSource();
                source.DataSource        = this.lstUiBonosEmpleados;
                this.dgvBonos.DataSource = source;

                this.txtNroBonos.Text = this.lstUiBonosEmpleados.Count.ToString();

                #endregion
            }
            catch (Exception ex)
            {
                Util.ErrorMessage(ex.Message);
            }
            finally
            {
                Util.PointerReady(this);
            }
        }
Пример #19
0
        private void btnImprimir_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.uiVacacion == null)
                {
                    return;
                }

                if (Util.ConfirmationMessage("¿Desea imprimir el Calculo de Vacaciones?") == false)
                {
                    return;
                }

                //Obtener o Calcular Recibo

                BE.UI.VacacionRecibo uiVacacionRecibo = new LN.Vacacion().ObtenerRecibo(this.uiVacacion.Id);
                if (uiVacacionRecibo == null)
                {
                    uiVacacionRecibo = new BE.UI.VacacionRecibo();

                    uiVacacionRecibo.Id         = 0;
                    uiVacacionRecibo.IdVacacion = this.uiVacacion.Id;

                    uiVacacionRecibo.Anho      = this.uiVacacion.VacacionFechaInicial.Year;
                    uiVacacionRecibo.Mes       = this.uiVacacion.VacacionFechaInicial.Month;
                    uiVacacionRecibo.MesNombre = Util.GetNameOfMonth(this.uiVacacion.VacacionFechaInicial.Month);

                    var beEmpresa = new LN.Empresa().Obtener();
                    uiVacacionRecibo.EmpresaNombre   = beEmpresa.NombreComercial;
                    uiVacacionRecibo.EmpresaDistrito = beEmpresa.Ubigeo.Nombre;
                    beEmpresa = null;

                    var beEmpleado = new LN.Empleado().Obtener(this.uiVacacion.EmpleadoCodigo);
                    uiVacacionRecibo.EmpleadoCodigo       = beEmpleado.Codigo;
                    uiVacacionRecibo.EmpleadoNombres      = beEmpleado.Nombres;
                    uiVacacionRecibo.EmpleadoApellidos    = $"{beEmpleado.ApellidoPaterno} {beEmpleado.ApellidoMaterno}";
                    uiVacacionRecibo.EmpleadoNroDocumento = beEmpleado.NumeroDocumento;
                    beEmpleado = null;

                    uiVacacionRecibo.Detalle              = "Vacaciones correspondiente al ejercicio " + DateTime.Now.Year.ToString();
                    uiVacacionRecibo.PeriodoInicio        = this.uiVacacion.PeriodoFechaInicial;
                    uiVacacionRecibo.PeriodoFinal         = this.uiVacacion.PeriodoFechaFinal;
                    uiVacacionRecibo.VacacionInicio       = this.uiVacacion.VacacionFechaInicial;
                    uiVacacionRecibo.VacacionFinal        = this.uiVacacion.VacacionFechaInicial;
                    uiVacacionRecibo.Sueldo               = this.uiVacacion.EmpleadoSueldo;
                    uiVacacionRecibo.AsignacionFamiliar   = this.uiVacacion.EmpleadoAsignacionFamiliar;
                    uiVacacionRecibo.PromedioHorasExtras  = this.uiVacacion.PromedioHorasExtras;
                    uiVacacionRecibo.PromedioBonificacion = this.uiVacacion.PromedioBonificacion;
                    uiVacacionRecibo.Redondeo             = this.uiVacacion.Redondeo;
                    uiVacacionRecibo.TotalBruto           = this.uiVacacion.TotalBruto;

                    uiVacacionRecibo.RetencionJudicialMonto = this.uiVacacion.RetencionJudicialMonto;

                    string pensionEntidad = "";
                    if (this.uiVacacion.PensionTipo == BE.UI.TipoPensionEnum.AFP)
                    {
                        pensionEntidad = $"AFP - {this.uiVacacion.PensionNombre}";
                    }
                    else if (this.uiVacacion.PensionTipo == BE.UI.TipoPensionEnum.ONP)
                    {
                        pensionEntidad = "ONP";
                    }
                    uiVacacionRecibo.PensionEntidad = pensionEntidad;
                    uiVacacionRecibo.PensionMonto   = this.uiVacacion.PensionMonto;

                    uiVacacionRecibo.TotalDescuento = this.uiVacacion.TotalDescuento;

                    uiVacacionRecibo.TotalNeto        = this.uiVacacion.TotalNeto;
                    uiVacacionRecibo.TotalNetoLiteral = new NumeroLetras().Convertir(this.uiVacacion.TotalNeto);

                    bool rpta = new LN.Vacacion().RegistrarRecibo(uiVacacionRecibo);
                    if (rpta == false)
                    {
                        return;
                    }
                }

                //Mostrar
                var frmPlanillaVista = FrmImpresion.Instance();
                frmPlanillaVista.MdiParent = this.MdiParent;
                frmPlanillaVista.Show();
                frmPlanillaVista.ImpresionVacacion(this.uiVacacion.Id);
            }
            catch (Exception ex)
            {
                Util.ErrorMessage(ex.Message);
            }
        }
        private BE.UI.PlanillaBoleta CalcularBoleta(int anho, int mes, string codigoEmpleado)
        {
            try
            {
                var uiDetalle = new LN.Planilla(anho, mes).ObtenerPlantillaDetalle(codigoEmpleado);
                if (uiDetalle != null)
                {
                    this.uiPlanillaBoleta = new BE.UI.PlanillaBoleta();

                    this.uiPlanillaBoleta.Id = 0;

                    var uiPlanilla = new LN.Planilla(anho, mes).Obtener();
                    if (this.uiPlanillaBoleta != null)
                    {
                        this.uiPlanillaBoleta.IdPlanilla = uiPlanilla.ID;
                    }
                    uiPlanilla = null;

                    this.uiPlanillaBoleta.Anho      = anho;
                    this.uiPlanillaBoleta.Mes       = mes;
                    this.uiPlanillaBoleta.MesNombre = Util.GetNameOfMonth(mes);
                    this.uiPlanillaBoleta.MesDias   = DateTime.DaysInMonth(anho, mes);

                    #region Asignar datos de Empresa

                    var beEmpresa = new LN.Empresa().Obtener();
                    this.uiPlanillaBoleta.EmpresaNombre    = beEmpresa.NombreComercial;
                    this.uiPlanillaBoleta.EmpresaRuc       = beEmpresa.RUC;
                    this.uiPlanillaBoleta.EmpresaDistrito  = beEmpresa.Ubigeo.Nombre;
                    this.uiPlanillaBoleta.EmpresaDireccion = beEmpresa.DomicilioFiscal;
                    beEmpresa = null;

                    #endregion

                    #region Asignar datos de Empleado

                    var beEmpleado = new LN.Empleado().Obtener(uiDetalle.EmpleadoCodigo);
                    this.uiPlanillaBoleta.EmpleadoCodigo       = beEmpleado.Codigo;
                    this.uiPlanillaBoleta.EmpleadoNombres      = beEmpleado.Nombres;
                    this.uiPlanillaBoleta.EmpleadoApellidos    = $"{beEmpleado.ApellidoPaterno} {beEmpleado.ApellidoMaterno}";
                    this.uiPlanillaBoleta.EmpleadoNroDocumento = beEmpleado.NumeroDocumento;
                    beEmpleado = null;

                    var beEmpleadoRecurso = new LN.Empleado().ObtenerRecurso(uiDetalle.EmpleadoCodigo);
                    this.uiPlanillaBoleta.EmpleadoCargo         = beEmpleadoRecurso.Cargo.Nombre;
                    this.uiPlanillaBoleta.EmpleadoFechaIngreso  = beEmpleadoRecurso.FechaInicio;
                    this.uiPlanillaBoleta.EmpleadoFechaCese     = beEmpleadoRecurso.FechaCese;
                    this.uiPlanillaBoleta.EmpleadoEsSaludCodigo = beEmpleadoRecurso.Autogenerado;
                    if (beEmpleadoRecurso.ONP == true)
                    {
                        this.uiPlanillaBoleta.EmpleadoSppCodigo  = "";
                        this.uiPlanillaBoleta.EmpleadoSppEntidad = uiDetalle.SnpNombre;
                    }
                    else
                    {
                        this.uiPlanillaBoleta.EmpleadoSppCodigo  = beEmpleadoRecurso.CUSPP;
                        this.uiPlanillaBoleta.EmpleadoSppEntidad = uiDetalle.AfpNombre;
                    }
                    beEmpleadoRecurso = null;

                    var uiVacacion = new LN.Vacacion().ObtenerUltimo(codigoEmpleado);
                    if (uiVacacion != null)
                    {
                        this.uiPlanillaBoleta.EmpleadoVacacionSalida  = uiVacacion.VacacionFechaInicial;
                        this.uiPlanillaBoleta.EmpleadoVacacionRetorno = uiVacacion.VacacionFechaFinal;
                    }
                    uiVacacion = null;

                    #endregion

                    #region Asignar datos del Resumen

                    this.uiPlanillaBoleta.DiasLaborados    = 0;
                    this.uiPlanillaBoleta.DiasNoLaborados  = 0;
                    this.uiPlanillaBoleta.DiasSinGoceHaber = 0;
                    this.uiPlanillaBoleta.DiasSubsidiado   = 0;
                    this.uiPlanillaBoleta.HorasNormales    = 0;

                    #endregion

                    #region Asignar datos del Sueldo

                    this.uiPlanillaBoleta.Sueldo               = uiDetalle.Base;
                    this.uiPlanillaBoleta.AsignacionFamiliar   = uiDetalle.AsignacionFamiliar;
                    this.uiPlanillaBoleta.BonificacionNocturna = uiDetalle.BonoNocturnoTotal;
                    this.uiPlanillaBoleta.MovilidadTranslado   = new LN.Movilidad().ObtenerTotal(anho, mes, codigoEmpleado);

                    this.uiPlanillaBoleta.SubsidioDescansoMedico  = 0.0; //FALTA
                    this.uiPlanillaBoleta.BonificacionHorasExtras = uiDetalle.BonoHorasExtrasTotal;
                    this.uiPlanillaBoleta.CantidadHorasExtras     = uiDetalle.BonoHorasExtrasCantidad;

                    this.uiPlanillaBoleta.Cts                       = 0.0; //FALTA
                    this.uiPlanillaBoleta.Vacaciones                = 0.0; //FALTA
                    this.uiPlanillaBoleta.FeriadoDominical          = 0.0; //FALTA
                    this.uiPlanillaBoleta.Gratificacion             = 0.0; //FALTA
                    this.uiPlanillaBoleta.BonificacionGratificacion = 0.0; //FALTA

                    #endregion

                    #region Asignar datos de Aportes y Deducciones

                    this.uiPlanillaBoleta.AfpFondoMonto             = uiDetalle.AfpAporteObligatorio;
                    this.uiPlanillaBoleta.AfpSeguroMonto            = uiDetalle.AfpSeguro;
                    this.uiPlanillaBoleta.AfpComisionMonto          = uiDetalle.AfpComision;
                    this.uiPlanillaBoleta.IpssVidaMonto             = 0.0; //FALTA
                    this.uiPlanillaBoleta.OnpMonto                  = uiDetalle.SnpTotal;
                    this.uiPlanillaBoleta.RentaQuintaMonto          = 0.0; //FALTA
                    this.uiPlanillaBoleta.InasistenciasDias         = uiDetalle.DescuentoInasistenciaCantidad;
                    this.uiPlanillaBoleta.InasistenciasMonto        = uiDetalle.DescuentoInasistenciaTotal;
                    this.uiPlanillaBoleta.AdelantoMonto             = uiDetalle.AdelantoTotal;
                    this.uiPlanillaBoleta.TardanzaMinutos           = uiDetalle.DescuentoTardanzaCantidad;
                    this.uiPlanillaBoleta.TardanzaMonto             = uiDetalle.DescuentoTardanzaTotal;
                    this.uiPlanillaBoleta.GratificacionMonto        = 0.0; //FALTA
                    this.uiPlanillaBoleta.RetencionJudicialMonto    = uiDetalle.RetencionJudicialTotal;
                    this.uiPlanillaBoleta.SeguroVidaTrabajadorMonto = 0.0; //FALTA
                    this.uiPlanillaBoleta.IpssSaludTrabajadorMonto  = 0.0; //FALTA
                    this.uiPlanillaBoleta.SeguroVidaEmpleadoMonto   = 0.0; //FALTA
                    this.uiPlanillaBoleta.IpssSaludEmpleadoMonto    = 0.0; //FALTA

                    #endregion

                    //var propertyInfos = uiBoleta.GetType().GetProperties()
                    //    .Where(x => x.PropertyType == typeof(double) && x.CanWrite == true)
                    //    .ToList();
                    //foreach (var prop in propertyInfos)
                    //{
                    //    prop.SetValue(uiBoleta, Math.Round((double)prop.GetValue(uiBoleta), 2));
                    //}

                    uiPlanillaBoleta.GetType().GetProperties()
                    .Where(x => x.PropertyType == typeof(double) && x.CanWrite == true)
                    .ToList()
                    .ForEach(x => x.SetValue(
                                 uiPlanillaBoleta,
                                 Math.Round((double)x.GetValue(uiPlanillaBoleta), 2)
                                 )
                             );
                }

                return(uiPlanillaBoleta);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #21
0
        private bool Calcular(string codigoEmpleado, DateTime fechaConsulta)
        {
            bool calculado = false;

            try
            {
                using (var lnEmpleado = new LN.Empleado())
                {
                    var uiEmpleadoCompleto = lnEmpleado.ObtenerEmpleadoCompleto(codigoEmpleado, fechaConsulta);

                    if (uiEmpleadoCompleto != null)
                    {
                        //Rescartar el detalle
                        var lstUiVacacionDetalle = this.uiVacacion.Detalle;

                        //Limpiar
                        this.uiVacacion = new BE.UI.Vacacion();

                        //Asignar nuevos valores
                        this.uiVacacion.Detalle = lstUiVacacionDetalle;

                        this.uiVacacion.PeriodoFechaInicial = this.dtpPeriodoInicio.Value.Date;
                        this.uiVacacion.PeriodoFechaFinal   = this.dtpPeriodoFinal.Value.Date;

                        var fechaVacacionInicio = this.dtpVacacionSalida.Value;
                        int diasVacaciones      = int.Parse(this.txtDescansoDias.Text);
                        this.uiVacacion.VacacionFechaInicial = fechaVacacionInicio.Date;
                        this.uiVacacion.VacacionFechaFinal   = fechaVacacionInicio.AddDays(diasVacaciones).Date;
                        this.uiVacacion.VacacionDias         = diasVacaciones;

                        this.uiVacacion.EmpleadoCodigo         = uiEmpleadoCompleto.Codigo;
                        this.uiVacacion.EmpleadoNombreCompleto = $"{uiEmpleadoCompleto.Apellidos}, {uiEmpleadoCompleto.Nombres}";

                        this.uiVacacion.EmpleadoSueldo             = uiEmpleadoCompleto.Sueldo;
                        this.uiVacacion.EmpleadoAsignacionFamiliar = lnEmpleado.ObtenerAsignacionFamiliar(codigoEmpleado);

                        double sumHorasExtras      = double.Parse(this.txtSumaHorasExtras.Text);
                        double sumBoninificaciones = double.Parse(this.txtSumaBonos.Text);
                        int    numMeses            = int.Parse(this.txtCantidadMeses.Text);

                        double promHorasExtras      = sumHorasExtras / numMeses;
                        double promBoninificaciones = sumBoninificaciones / numMeses;
                        this.uiVacacion.PromedioHorasExtras  = promHorasExtras;
                        this.uiVacacion.PromedioBonificacion = promBoninificaciones;

                        this.uiVacacion.PensionTipo = uiEmpleadoCompleto.PensionTipo;
                        if (uiEmpleadoCompleto.PensionTipo == BE.UI.TipoPensionEnum.AFP)
                        {
                            this.uiVacacion.PensionId           = uiEmpleadoCompleto.AfpId;
                            this.uiVacacion.PensionNombre       = uiEmpleadoCompleto.AfpNombre;
                            this.uiVacacion.PensionTipoComision = uiEmpleadoCompleto.AfpComisionCodigo;
                            this.uiVacacion.PensionPorcentaje   = uiEmpleadoCompleto.AfpComisionPorcentaje;
                        }
                        else
                        {
                            this.uiVacacion.PensionId           = 0;
                            this.uiVacacion.PensionNombre       = "ONP";
                            this.uiVacacion.PensionTipoComision = "";
                            this.uiVacacion.PensionPorcentaje   = uiEmpleadoCompleto.OnpComisionPorcentaje;
                        }

                        double factorPension = this.uiVacacion.PensionPorcentaje / 100;
                        double totalPension  = this.uiVacacion.TotalBruto;
                        this.uiVacacion.PensionMonto = totalPension * factorPension;

                        this.uiVacacion.RetencionJudicialMonto = uiEmpleadoCompleto.RetencionJudicialNominal;

                        calculado = true;
                    }
                }

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