Exemplo n.º 1
0
        public JsonResult GetTrabajadores(BoletaPago obj)
        {
            var bussingLogic = new GP.BusinessLogic.BLBoletaPago();
            var response     = bussingLogic.GetTrabajadores(obj);

            return(Json(response));
        }
Exemplo n.º 2
0
        public void Test1_CalcularDescuentoAFP()
        {
            PeriodoPago periodoPago = new PeriodoPago
            {
                FechaInicio = DateTime.Parse("10/10/2019"),
                FechaFin    = DateTime.Parse("10/11/2019")
            };
            AFP aFP = new AFP
            {
                Porcentaje = 13
            };
            Contrato contrato = new Contrato
            {
                AsignacionFamiliar = true,
                AFP = aFP
            };
            BoletaPago boletaPago = new BoletaPago
            {
                PeriodoPago = periodoPago,
                Contrato    = contrato,
                TotalHoras  = 40,
                ValorHora   = 10,
            };
            Decimal CalcularDescuentoAFP_Esperado = 208;
            Decimal CalcularDescuentoAFP_Obtenido = boletaPago.CalcularDescuentoAFP();

            Assert.AreEqual(CalcularDescuentoAFP_Esperado, CalcularDescuentoAFP_Obtenido);
        }
Exemplo n.º 3
0
        public void Test1_CalcularTotalIngresos()
        {
            PeriodoPago periodoPago = new PeriodoPago
            {
                FechaInicio = DateTime.Parse("10/10/2019"),
                FechaFin    = DateTime.Parse("10/11/2019")
            };
            //AFP aFP = new AFP
            //{
            //    Porcentaje = 13
            //};
            Contrato contrato = new Contrato
            {
                AsignacionFamiliar = true,
                //AFP = aFP
            };
            Conceptos conceptos = new Conceptos
            {
                HorasExtras   = 120,
                Reintegros    = 70,
                OtrosIngresos = 40
            };
            BoletaPago boletaPago = new BoletaPago
            {
                PeriodoPago = periodoPago,
                Contrato    = contrato,
                Conceptos   = conceptos,
                TotalHoras  = 40,
                ValorHora   = 10,
            };
            Decimal CalcularTotalIngresos_Esperado = 1990;
            Decimal CalcularTotalIngresos_Obtenido = boletaPago.CalcularTotalIngresos();

            Assert.AreEqual(CalcularTotalIngresos_Esperado, CalcularTotalIngresos_Obtenido);
        }
Exemplo n.º 4
0
 public Response <IEnumerable <BoletaPago> > GetBoletaPago(BoletaPago obj)
 {
     try
     {
         var result = repository.GetBoletaPago(obj);
         return(new Response <IEnumerable <BoletaPago> >(result));
     }
     catch (Exception ex)
     {
         return(new Response <IEnumerable <BoletaPago> >(ex));
     }
 }
Exemplo n.º 5
0
        public Response <IEnumerable <BoletaPago> > GetTrabajadores(BoletaPago obj)
        {
            try
            {
                var result = repository.GetTrabajadores(obj);

                if (result.Any())
                {
                    string periodo = obj.HorasTrabajadas.Periodo;

                    string body = CargarPlantilla(periodo);

                    string nombrearchivo = "Boleta de Pago " + periodo;

                    int i = 1; int?trabajadorid = 0; int contador = result.Count();
                    while (contador >= i)
                    {
                        trabajadorid = result.Where(x => x.Indicador == i).Select(y => y.Trabajador.Trabajador_Id).FirstOrDefault();
                        Trabajador trabajador = new Trabajador(); Empleador empleador = new Empleador(); HorasTrabajadas horasTrabajadas = new HorasTrabajadas();
                        IEnumerable <DetalleVacaciones> lstdetalleVacaiones; Beneficio beneficio = new Beneficio();

                        if (trabajadorid > 0)
                        {
                            trabajador                 = repository2.ObtenerTrabajador(trabajadorid);
                            empleador                  = repository3.ObtenerEmpleador();
                            horasTrabajadas            = repository4.CalculaHorasTrabajadas(periodo, trabajador);
                            trabajador.HorasTrabajadas = new HorasTrabajadas {
                                Periodo = periodo
                            };
                            lstdetalleVacaiones = repository5.DetalleVacaciones(trabajador);
                            beneficio           = repository6.GetSeguro(trabajador);
                            byte[] arraybytes = CrearBoletaPago(periodo, empleador, trabajador, horasTrabajadas, lstdetalleVacaiones.ToArray(), beneficio);
                            EnvioCorreo.Send(trabajador.Correo, nombrearchivo, body, arraybytes, nombrearchivo + ".pdf");
                        }
                        i++;
                    }
                    return(new Response <IEnumerable <BoletaPago> >(result));
                }
                else
                {
                    var rs = new Response <IEnumerable <BoletaPago> >(result);
                    rs.InternalException = "No se encontraton boletas con esa fecha";
                    rs.InternalStatus    = InternalStatus.Failed;
                    return(rs);
                }
            }
            catch (Exception ex)
            {
                return(new Response <IEnumerable <BoletaPago> >(ex));
            }
        }
Exemplo n.º 6
0
        public IEnumerable <BoletaPago> GetBoletaPago(BoletaPago obj)
        {
            using (var connection = Factory.ConnectionFactory())
            {
                connection.Open();
                var parm = new DynamicParameters();
                parm.Add("@Periodo", obj.HorasTrabajadas.Periodo);
                parm.Add("@NumPagina", obj.Operacion.Inicio);
                parm.Add("@TamPagina", obj.Operacion.Fin);
                var result = connection.Query(
                    sql: "sp_Buscar_Boleta",
                    param: parm,
                    commandType: CommandType.StoredProcedure)
                             .Select(m => m as IDictionary <string, object>)
                             .Select(n => new BoletaPago
                {
                    Trabajador = new Trabajador
                    {
                        Trabajador_Id = n.Single(d => d.Key.Equals("Trabajador_Id")).Value.Parse <int>(),
                        Nombres       = n.Single(d => d.Key.Equals("NombreApellido")).Value.Parse <string>(),
                        Area          = new Area
                        {
                            Descripcion = n.Single(d => d.Key.Equals("Area_Descripcion")).Value.Parse <string>()
                        },
                        Turno = new Turno
                        {
                            Descripcion = n.Single(d => d.Key.Equals("Turno_Descripcion")).Value.Parse <string>()
                        },
                        Cargo = new Cargo
                        {
                            Descripcion = n.Single(d => d.Key.Equals("Cargo_Descripcion")).Value.Parse <string>()
                        }
                    },
                    HorasTrabajadas = new HorasTrabajadas
                    {
                        Periodo = n.Single(d => d.Key.Equals("Periodo")).Value.Parse <string>()
                    },
                    Auditoria = new Auditoria
                    {
                        TipoUsuario = obj.Auditoria.TipoUsuario,
                    },
                    Operacion = new Operacion
                    {
                        TotalRows = n.Single(d => d.Key.Equals("TotalRows")).Value.Parse <int>(),
                    }
                });

                return(result);
            }
        }
Exemplo n.º 7
0
        public void Test_CalcularTotalHoras()
        {
            PeriodoPago periodoPago = new PeriodoPago
            {
                FechaInicio = DateTime.Parse("10/10/2019"),
                FechaFin    = DateTime.Parse("10/11/2019")
            };
            BoletaPago boletaPago = new BoletaPago
            {
                PeriodoPago = periodoPago,
                TotalHoras  = 40
            };
            int CalcularTotalHoras_Esperado = 160;
            int CalcularTotalHoras_Obtenido = boletaPago.CalcularTotalHoras();

            Assert.AreEqual(CalcularTotalHoras_Esperado, CalcularTotalHoras_Obtenido);
        }
Exemplo n.º 8
0
        public void Test_CalcularSueldoBasico()
        {
            PeriodoPago periodoPago = new PeriodoPago
            {
                FechaInicio = DateTime.Parse("10/10/2019"),
                FechaFin    = DateTime.Parse("10/11/2019")
            };
            BoletaPago boletaPago = new BoletaPago
            {
                PeriodoPago = periodoPago,
                TotalHoras  = 40,
                ValorHora   = 12,
            };
            Decimal CalcularSueldoBasico_Esperado = 1920;
            Decimal CalcularSueldoBasico_Obtenido = boletaPago.CalcularSueldoBasico();

            Assert.AreEqual(CalcularSueldoBasico_Esperado, CalcularSueldoBasico_Obtenido);
        }
Exemplo n.º 9
0
 public String ProcesarPago(PeriodoPago periodoPago, ref List <BoletaPago> boletas)
 {
     if (periodoPago.ValidarPeriodoPago())
     {
         List <Contrato> contratos = ContratoDA.Instancia.ListarContrato();
         String          fechatem  = System.DateTime.Now.ToShortTimeString();
         DateTime        fechapago = DateTime.Parse(fechatem);
         foreach (Contrato contrato in contratos)
         {
             if (contrato.ObtenerVigencia())
             {
                 BoletaPago boletaPago = new BoletaPago();
                 contrato.AFP                  = AFPDA.Instancia.ObtenerAFP(contrato.AFP.Id_AFP);
                 boletaPago.Contrato           = contrato;
                 boletaPago.PeriodoPago        = periodoPago;
                 contrato.Empleado             = EmpleadoDA.Instancia.BuscarEmpleado(contrato.Empleado.Id_Empleado);
                 boletaPago.Conceptos          = ConceptosDA.Instancia.ObtenerConceptos(contrato.Id_Contrato, periodoPago.Id_PeriodoPago);
                 boletaPago.PorcentajeAFP      = contrato.AFP.Porcentaje;
                 boletaPago.TotalHoras         = boletaPago.CalcularTotalHoras();
                 boletaPago.ValorHora          = contrato.ValorHora;
                 boletaPago.AsignacionFamiliar = boletaPago.CalcularAsignacionFamiliar();
                 boletaPago.FechaPago          = fechapago;
                 boletas.Add(boletaPago);
             }
         }
         if (boletas.Count() == 0)
         {
             return("NC");
         }
         else
         {
             periodoPago.Estado = "Procesado";
             if (PeriodoPagoDA.Instancia.ProcesarPeriodo(periodoPago, boletas))
             {
                 return("OK");
             }
             else
             {
                 return("SQL");
             }
         }
     }
     return("R01");
 }
Exemplo n.º 10
0
        public void Test1_CalcularTotalDescuentos()
        {
            PeriodoPago periodoPago = new PeriodoPago
            {
                FechaInicio = DateTime.Parse("10/10/2019"),
                FechaFin    = DateTime.Parse("10/11/2019")
            };
            AFP aFP = new AFP
            {
                Porcentaje = 13
            };
            Contrato contrato = new Contrato
            {
                //AsignacionFamiliar = true,
                AFP = aFP
            };

            Conceptos conceptos = new Conceptos
            {
                Adelanto        = 150,
                HorasAusentes   = 50,
                OtrosDescuentos = 20
            };
            //Conceptos conceptos = new Conceptos
            //{
            //    HorasExtas = 120,
            //    Reintegros = 70,
            //    OtrosIngresos = 40
            //};
            BoletaPago boletaPago = new BoletaPago
            {
                PeriodoPago = periodoPago,
                Contrato    = contrato,
                Conceptos   = conceptos,
                TotalHoras  = 40,
                ValorHora   = 10,
            };
            Decimal CalcularTotalDescuentos_Esperado = -428;
            Decimal CalcularTotalDescuentos_Obtenido = boletaPago.CalcularTotalDescuentos();

            Assert.AreEqual(CalcularTotalDescuentos_Esperado, CalcularTotalDescuentos_Obtenido);
        }
Exemplo n.º 11
0
        public void Test2_CalcularAsignacionFamiliar()
        {
            PeriodoPago periodoPago = new PeriodoPago
            {
                FechaInicio = DateTime.Parse("12/10/2019"),
                FechaFin    = DateTime.Parse("10/12/2019")
            };
            Contrato contrato = new Contrato
            {
                AsignacionFamiliar = false
            };
            BoletaPago boletaPago = new BoletaPago
            {
                PeriodoPago = periodoPago,
                Contrato    = contrato,
                TotalHoras  = 30,
                ValorHora   = 20,
            };
            Decimal CalcularAsignacionFamiliar_Esperado = 0;
            Decimal CalcularAsignacionFamiliar_Obtenido = boletaPago.CalcularAsignacionFamiliar();

            Assert.AreEqual(CalcularAsignacionFamiliar_Esperado, CalcularAsignacionFamiliar_Obtenido);
        }
Exemplo n.º 12
0
        public JsonResult GetBoletaPago(BoletaPago obj)
        {
            var ctx         = HttpContext.GetOwinContext();
            var tipoUsuario = ctx.Authentication.User.Claims.FirstOrDefault().Value;

            obj.Auditoria = new Auditoria
            {
                TipoUsuario = tipoUsuario
            };

            string draw   = Request.Form.GetValues("draw")[0];
            int    inicio = Convert.ToInt32(Request.Form.GetValues("start").FirstOrDefault());
            int    fin    = Convert.ToInt32(Request.Form.GetValues("length").FirstOrDefault());

            obj.Operacion = new Operacion
            {
                Inicio = (inicio / fin),
                Fin    = fin
            };

            var bussingLogic = new GP.BusinessLogic.BLBoletaPago();
            var response     = bussingLogic.GetBoletaPago(obj);

            var Datos        = response.Data;
            int totalRecords = Datos.Any() ? Datos.FirstOrDefault().Operacion.TotalRows : 0;
            int recFilter    = totalRecords;

            var result = (new
            {
                draw = Convert.ToInt32(draw),
                recordsTotal = totalRecords,
                recordsFiltered = recFilter,
                data = Datos
            });

            return(Json(result));
        }
Exemplo n.º 13
0
        public IEnumerable <BoletaPago> GetTrabajadores(BoletaPago obj)
        {
            using (var connection = Factory.ConnectionFactory())
            {
                connection.Open();
                var parm = new DynamicParameters();
                parm.Add("@Periodo", obj.HorasTrabajadas.Periodo);
                var result = connection.Query(
                    sql: "sp_Buscar_Trabajador_Periodo",
                    param: parm,
                    commandType: CommandType.StoredProcedure)
                             .Select(m => m as IDictionary <string, object>)
                             .Select(n => new BoletaPago
                {
                    Indicador  = n.Single(d => d.Key.Equals("Indicador")).Value.Parse <int>(),
                    Trabajador = new Trabajador
                    {
                        Trabajador_Id = n.Single(d => d.Key.Equals("Trabajador_Id")).Value.Parse <int>()
                    },
                });

                return(result);
            }
        }
Exemplo n.º 14
0
 public void RegistrarBoletaPago(BoletaPago boletaPago, PeriodoPago periodoPago, Database DB, DbTransaction Trans)
 {
     try
     {
         //throw new Exception("Error en los datos. Error guardando al cliente.");
         DbParameter[] parameters = new DbParameter[]
         {
             AyudaDA.AddParameter("@FechaPago", boletaPago.FechaPago),
             AyudaDA.AddParameter("@TotalHoras", boletaPago.TotalHoras),
             AyudaDA.AddParameter("@ValorHora", boletaPago.ValorHora),
             AyudaDA.AddParameter("@AsignacionFamiliar", boletaPago.AsignacionFamiliar),
             AyudaDA.AddParameter("@PorcentajeAFP", boletaPago.PorcentajeAFP),
             AyudaDA.AddParameter("@Id_PerdiodoPago", periodoPago.Id_PeriodoPago),
             AyudaDA.AddParameter("@Id_Conceptos", boletaPago.Conceptos.Id_Conceptos),
             AyudaDA.AddParameter("@Id_Contrato", boletaPago.Contrato.Id_Contrato),
         };
         DbCommand cmdDETC = null;
         AyudaDA.ExecuteNonQueryOutWithOutDB("REGISTRAR_BOLETA", parameters, ref cmdDETC, ref DB, Trans);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 15
0
        public Response <BoletaPago> DescargarBoletaPago(int TrabajadorId, string Periodo)
        {
            Trabajador trabajador = new Trabajador(); Empleador empleador = new Empleador(); HorasTrabajadas horasTrabajadas = new HorasTrabajadas();
            IEnumerable <DetalleVacaciones> lstdetalleVacaiones; Beneficio beneficio = new Beneficio(); BoletaPago boletaPago = new BoletaPago();

            trabajador                 = repository2.ObtenerTrabajador(TrabajadorId);
            empleador                  = repository3.ObtenerEmpleador();
            horasTrabajadas            = repository4.CalculaHorasTrabajadas(Periodo, trabajador);
            trabajador.HorasTrabajadas = new HorasTrabajadas {
                Periodo = Periodo
            };
            lstdetalleVacaiones = repository5.DetalleVacaciones(trabajador);
            beneficio           = repository6.GetSeguro(trabajador);
            byte[] arraybytes    = CrearBoletaPago(Periodo, empleador, trabajador, horasTrabajadas, lstdetalleVacaiones.ToArray(), beneficio);
            string nombrearchivo = "BoletaPago_" + string.Concat(trabajador.ApellidoPaterno, "_", trabajador.Nombres) + "_" + Periodo;

            boletaPago.Arraybytes    = arraybytes;
            boletaPago.Nombrearchivo = nombrearchivo;

            return(new Response <BoletaPago>(boletaPago));
        }