Esempio n. 1
0
        public JsonResult EliminarDescansoMedico(HorasTrabajadas obj)
        {
            var bussingLogic = new GP.BusinessLogic.BLHorasTrabajadas();
            var response     = bussingLogic.EliminarDescansoMedico(obj);

            return(Json(response));
        }
Esempio n. 2
0
 public Response <int> EliminarDescansoMedico(HorasTrabajadas obj)
 {
     try
     {
         var result = repository.EliminarDescansoMedico(obj);
         return(new Response <int>(result));
     }
     catch (Exception ex)
     {
         return(new Response <int>(ex));
     }
 }
Esempio n. 3
0
        private void AddDoubleHours(int id, float h, DateTime dt)
        {
            var EmployeeDobleHours = Dobles.Where(x => x.ID == id).FirstOrDefault();

            if (EmployeeDobleHours == null)
            {
                HorasTrabajadas ht = new HorasTrabajadas(id, h, dt);
                Dobles.Add(ht);
            }
            else
            {
                EmployeeDobleHours.HorasT += h;
            }
        }
Esempio n. 4
0
        public int EliminarDescansoMedico(HorasTrabajadas obj)
        {
            using (var connection = Factory.ConnectionFactory())
            {
                connection.Open();
                var parm = new DynamicParameters();
                parm.Add("@Horas_Trabajadas_Id", obj.Horas_Trabajadas_Id);
                var result = connection.Execute(
                    sql: "sp_Eliminar_Descanso_Medico",
                    param: parm,
                    commandType: CommandType.StoredProcedure);

                return(result);
            }
        }
Esempio n. 5
0
 private float AddOT(int id, float h, DateTime dt)
 {
     #region Monday to Thursday
     if (dt.DayOfWeek != DayOfWeek.Friday && dt.DayOfWeek != DayOfWeek.Saturday)
     {
         if (h > 9)
         {
             float delta          = h - 9;
             var   EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
             if (EmployeeExtras == null)
             {
                 HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                 Extras.Add(ht);
             }
             else
             {
                 #region Horas extras > 24hrs
                 float tempTime = EmployeeExtras.HorasT + delta;
                 if (tempTime > 24)
                 {
                     float delta2 = tempTime - 24;
                     EmployeeExtras.HorasT = 24;
                     AddDoubleHours(id, delta2, dt);
                 }
                 #endregion
                 else
                 {
                     EmployeeExtras.HorasT += delta;
                 }
             }
             h = 9;
         }
     }
     #endregion
     #region Saturday
     else if (dt.DayOfWeek == DayOfWeek.Saturday)
     {
         var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
         if (EmployeeExtras == null)
         {
             HorasTrabajadas ht = new HorasTrabajadas(id, h, dt);
             Extras.Add(ht);
         }
         else
         {
             #region Horas extras > 24hrs
             float tempTime = EmployeeExtras.HorasT + h;
             if (tempTime > 24)
             {
                 float delta2 = tempTime - 24;
                 EmployeeExtras.HorasT = 24;
                 AddDoubleHours(id, delta2, dt);
             }
             #endregion
             else
             {
                 EmployeeExtras.HorasT += h;
             }
         }
     }
     #endregion
     #region Friday
     else
     {
         if (h > 8)
         {
             float delta          = h - 8;
             var   EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
             if (EmployeeExtras == null)
             {
                 HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                 Extras.Add(ht);
             }
             else
             {
                 #region Horas extras > 24hrs
                 float tempTime = EmployeeExtras.HorasT + delta;
                 if (tempTime > 24)
                 {
                     float delta2 = tempTime - 24;
                     EmployeeExtras.HorasT = 24;
                     AddDoubleHours(id, delta2, dt);
                 }
                 #endregion
                 else
                 {
                     EmployeeExtras.HorasT += delta;
                 }
             }
             h = 8;
         }
     }
     #endregion
     return(h);
 }
Esempio n. 6
0
        public void Horas(int ID)
        {
            string   Fecha1 = PrimeraFecha;
            string   Fecha2 = SegundaFecha;
            TimeSpan dias   = DateTime.Parse(Fecha2) - DateTime.Parse(Fecha1);

            for (int i = 0; dias.Days >= i; i++)
            {
                #region Local variables
                DateTime NuevaFecha = DateTime.Parse(Fecha1);

                NuevaFecha = NuevaFecha.AddDays(i);
                #region Dia feriado pa to el mundo
                if (metodos.EsDiaFeriado(NuevaFecha.ToShortDateString()))
                {
                    float th = 9;
                    if (NuevaFecha.DayOfWeek == DayOfWeek.Friday)
                    {
                        th = 8;
                    }
                    var EmployeeHours = WorkedTime.Where(x => x.ID == ID).FirstOrDefault();
                    if (EmployeeHours == null)
                    {
                        HorasTrabajadas ht = new HorasTrabajadas(ID, th, NuevaFecha);
                        WorkedTime.Add(ht);
                    }
                    else
                    {
                        EmployeeHours.HorasT += th;
                    }
                    var DayExist = DayHours.Where(x => x.ID == ID && x.Fecha.ToShortDateString().Equals(NuevaFecha.ToShortDateString())).FirstOrDefault();
                    if (DayExist == null)
                    {
                        HorasTrabajadas dh = new HorasTrabajadas(ID, th, NuevaFecha);
                        DayHours.Add(dh);
                    }
                }
                #endregion

                DataTable UsuariosSeleccionados = metodos.HorasTrabajadasEmpleados(ID, NuevaFecha.ToShortDateString());
                int       count = UsuariosSeleccionados.Rows.Count;

                //TimeSpan horasT = new TimeSpan(); //no used anymore
                #endregion

                #region Ponches de menos de 2 minutos
                //another for, a neccesary evil
                for (int Z = 0; Z < count; Z++) // removes checktimes with less than 2 minutes timespan
                {
                    if ((Z + 1) < count)
                    {
                        DateTime dateFrom = DateTime.Parse(UsuariosSeleccionados.Rows[Z]["CHECKTIME"].ToString());
                        DateTime dateTo   = DateTime.Parse(UsuariosSeleccionados.Rows[Z + 1]["CHECKTIME"].ToString());
                        if ((dateTo - dateFrom).TotalMinutes < 2)
                        {
                            UsuariosSeleccionados.Rows.RemoveAt(Z + 1);
                            count--;
                        }
                    }
                }
                #endregion
                int ret = 0;
                Math.DivRem(count, 2, out ret);
                #region Ponches huerfanos
                if (ret != 0)
                {
                    DataRow r = UsuariosSeleccionados.NewRow();
                    r["USERID"]    = UsuariosSeleccionados.Rows[count - 1]["USERID"];
                    r["CHECKTIME"] = UsuariosSeleccionados.Rows[count - 1]["CHECKTIME"];
                    UsuariosSeleccionados.Rows.Add(r);
                    UsuariosSeleccionados.AcceptChanges();
                    //ponche huerfano
                }
                #endregion
                #region La suma
                //sums stuff up
                for (int Z = 0; Z < count; Z += 2)
                {
                    if ((Z + 1) < count)
                    {
                        DateTime dateFrom = DateTime.Parse(UsuariosSeleccionados.Rows[Z]["CHECKTIME"].ToString());
                        DateTime dateTo   = DateTime.Parse(UsuariosSeleccionados.Rows[Z + 1]["CHECKTIME"].ToString());
                        //horasT = (horasT + (dateTo.TimeOfDay - dateFrom.TimeOfDay));
                        //horasT = (horasT + (dateFrom.TimeOfDay - dateTo.TimeOfDay));
                        TimeSpan ts = (dateTo.TimeOfDay - dateFrom.TimeOfDay);       //añadimos las horas separadas ya que estas seran divididas en dayHours y WorkedTime
                        AddHoras(ID, NuevaFecha.ToShortDateString(), ts.ToString()); // tambien siempre es bueno mantener las tandas separadas, las tandas estaran guardadas en horasTrabajadas
                    }
                }
                #endregion
                //AddHoras(ID, NuevaFecha.ToShortDateString(), horasT.ToString());
            }
        }
Esempio n. 7
0
        private void AddHoras(int id, string fecha, string horas)
        {
            #region Tandas por cada empleado
            if (!metodos.EsDiaFeriado(fecha))
            {
                DataRow r = horasTrabajadas.NewRow();
                r["ID"]     = id;
                r["Fecha"]  = fecha;
                r["horasT"] = horas;
                horasTrabajadas.Rows.Add(r);
                horasTrabajadas.AcceptChanges();
            }
            #endregion
            DateTime dt = DateTime.Parse(fecha);
            float    th = (float)TimeSpan.Parse(horas).TotalHours;
            #region Day of the week
            if (dt.DayOfWeek != DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday)
            {
                #region Display day hours

                HorasTrabajadas dhwoad = new HorasTrabajadas(id, th, dt);
                DayHoursWithOverTimeAndDobles.Add(dhwoad);

                #endregion
                #region Dias Feriados
                if (metodos.EsDiaFeriado(fecha))
                {
                    var EmployeeDobleHours = Dobles.Where(x => x.ID == id).FirstOrDefault();
                    if (EmployeeDobleHours == null)
                    {
                        HorasTrabajadas ht = new HorasTrabajadas(id, th, dt);
                        Dobles.Add(ht);
                    }
                    else
                    {
                        EmployeeDobleHours.HorasT += th;
                    }
                }
                #endregion

                #region Total de horas por empleado
                if (!metodos.EsDiaFeriado(fecha))
                {
                    var EmployeeHours = WorkedTime.Where(x => x.ID == id).FirstOrDefault();
                    if (EmployeeHours == null)
                    {
                        HorasTrabajadas ht = new HorasTrabajadas(id, th, dt);
                        WorkedTime.Add(ht);
                    }
                    else
                    {
                        EmployeeHours.HorasT += th;
                    }
                }
                #endregion
                #region Total de horas diarias por empleados
                if (!metodos.EsDiaFeriado(fecha))
                {
                    var DayExist     = DayHours.Where(x => x.ID == id && x.Fecha.ToShortDateString().Equals(dt.ToShortDateString())).FirstOrDefault();
                    var LaHoraVacana = horaVacana.Where(x => x.ID == id).FirstOrDefault();
                    if (DayExist != null)
                    {
                        float h = DayExist.HorasT + th;
                        #region TheOverTime
                        //if (dt.DayOfWeek != DayOfWeek.Friday)
                        //{
                        //    if (h > 9)
                        //    {
                        //        float delta = h - 9;
                        //        var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                        //        if (EmployeeExtras == null)
                        //        {
                        //            HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                        //            Extras.Add(ht);
                        //        }
                        //        else
                        //        {
                        //            EmployeeExtras.HorasT += delta;
                        //        }
                        //        h = 9;
                        //    }
                        //}
                        //else
                        //{
                        //    if (h > 8)
                        //    {
                        //        float delta = h - 8;
                        //        var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                        //        if (EmployeeExtras == null)
                        //        {
                        //            HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                        //            Extras.Add(ht);
                        //        }
                        //        else
                        //        {
                        //            EmployeeExtras.HorasT += delta;
                        //        }
                        //        h = 8;
                        //    }
                        //}
                        #endregion
                        h = AddOT(id, h, dt);
                        DayExist.HorasT = h;
                        if (LaHoraVacana != null)
                        {
                            LaHoraVacana.HorasT += h;
                        }
                        else
                        {
                            HorasTrabajadas hv = new HorasTrabajadas(id, h, dt);
                            horaVacana.Add(hv);
                        }
                    }
                    else
                    {
                        #region TheOverTime
                        //if (dt.DayOfWeek != DayOfWeek.Friday)
                        //{
                        //    if (th > 9)
                        //    {
                        //        float delta = th - 9;
                        //        var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                        //        if (EmployeeExtras == null)
                        //        {
                        //            HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                        //            Extras.Add(ht);
                        //        }
                        //        else
                        //        {
                        //            EmployeeExtras.HorasT += delta;
                        //        }
                        //        th = 9;
                        //    }
                        //}
                        //else
                        //{
                        //    if (th > 8)
                        //    {
                        //        float delta = th - 8;
                        //        var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                        //        if (EmployeeExtras == null)
                        //        {
                        //            HorasTrabajadas ht = new HorasTrabajadas(id, delta, dt);
                        //            Extras.Add(ht);
                        //        }
                        //        else
                        //        {
                        //            EmployeeExtras.HorasT += delta;
                        //        }
                        //        th = 8;
                        //    }
                        //}
                        #endregion
                        th = AddOT(id, th, dt);
                        if (LaHoraVacana != null)
                        {
                            LaHoraVacana.HorasT += th;
                        }
                        else
                        {
                            HorasTrabajadas hv = new HorasTrabajadas(id, th, dt);
                            horaVacana.Add(hv);
                        }
                        HorasTrabajadas dh = new HorasTrabajadas(id, th, dt);
                        DayHours.Add(dh);
                    }
                }
                #endregion
            }
            #endregion
            #region SabadoDomingo
            else if (dt.DayOfWeek == DayOfWeek.Saturday)
            {
                AddOT(id, th, dt);
                //var EmployeeExtras = Extras.Where(x => x.ID == id).FirstOrDefault();
                //if (EmployeeExtras == null)
                //{
                //    HorasTrabajadas ht = new HorasTrabajadas(id, th, dt);
                //    Extras.Add(ht);
                //}
                //else
                //{
                //    EmployeeExtras.HorasT += th;
                //}
            }
            else
            {
                var EmployeeDobleHours = Dobles.Where(x => x.ID == id).FirstOrDefault();
                if (EmployeeDobleHours == null)
                {
                    HorasTrabajadas ht = new HorasTrabajadas(id, th, dt);
                    Dobles.Add(ht);
                }
                else
                {
                    EmployeeDobleHours.HorasT += th;
                }
            }
            #endregion
        }
Esempio n. 8
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));
            }
        }
Esempio n. 9
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));
        }
Esempio n. 10
0
        public byte[] CrearBoletaPago(string periodo, Empleador empleador, Trabajador trabajador, HorasTrabajadas horasTrabajadas, DetalleVacaciones[] arrayvacaciones,
                                      Beneficio beneficio)
        {
            Document doc = new Document(PageSize.LETTER);

            byte[] arraybytes = null;
            using (MemoryStream memoryStream = new MemoryStream())
            {
                PdfWriter writer = PdfWriter.GetInstance(doc, memoryStream);
                doc.Open();
                //pdfDoc = CrearBoletaPago(periodo);
                string titulo = "Boleta de Pago " + periodo;

                doc.AddTitle(titulo);
                doc.AddCreator("Enrique Velasquez");

                // Abrimos el archivo
                doc.Open();

                Font tituloFont     = new Font(Font.FontFamily.HELVETICA, 10, Font.NORMAL, BaseColor.BLACK);
                Font subtituloFont  = new Font(Font.FontFamily.HELVETICA, 15, Font.NORMAL, BaseColor.BLACK);
                Font subtituloFont2 = new Font(Font.FontFamily.HELVETICA, 10, Font.BOLD, BaseColor.BLACK);
                Font standardFont   = new Font(Font.FontFamily.HELVETICA, 10, Font.NORMAL, BaseColor.BLACK);
                Font standardFont2  = new Font(Font.FontFamily.HELVETICA, 10, Font.BOLD, BaseColor.BLACK);

                // Escribimos el encabezamiento en el documento

                Paragraph rasonsocial = AddParagraph(empleador.Descripcion, Element.ALIGN_LEFT, tituloFont);
                doc.Add(new Paragraph(rasonsocial));

                Paragraph ruc = AddParagraph("RUC: " + empleador.Ruc, Element.ALIGN_LEFT, tituloFont);
                doc.Add(new Paragraph(ruc));

                doc.Add(Chunk.NEWLINE);

                Paragraph subtitulo = AddParagraph("BOLETA DE PAGO", Element.ALIGN_CENTER, subtituloFont);
                doc.Add(new Paragraph(subtitulo));

                Paragraph rangofecha = AddParagraph(horasTrabajadas.PrimerDia.ToString("dd'/'MM'/'yyyy") + "-" + horasTrabajadas.UltimoDia.ToString("dd'/'MM'/'yyyy"), Element.ALIGN_CENTER, tituloFont);
                doc.Add(new Paragraph(rangofecha));

                doc.Add(new Paragraph("\n"));

                //doc.Add(Chunk.NEWLINE);

                //Primera Parte
                PdfPTable tblElementos1 = new PdfPTable(6);
                tblElementos1.WidthPercentage = 100;

                string[] arrayElementos = { "Cod.Empleado:",   "Nombre:", "DNI:",             "Cargo:", "Fecha Ingreso", "Fecha de Cese", "Dias Trabajados", "Dias No Trabajados",
                                            "Dias vacaciones", "Sueldo",  "Horas Trabajados", "Horas No Trabajados" };

                string fechacierre = trabajador.FechaCese.ToString("dd'/'MM'/'yyyy");

                fechacierre = fechacierre == "01/01/0001" ? "" : fechacierre;

                string[] arrayDatos = { trabajador.Trabajador_Id.ToString(),         string.Concat(trabajador.Nombres,                   " ",                                    trabajador.ApellidoPaterno),                 trabajador.NumeroDocumento,
                                        trabajador.Cargo.Descripcion,                trabajador.FechaIngreso.ToString("dd'/'MM'/'yyyy"), fechacierre,                            horasTrabajadas.DiasTrabajados.ToString(),
                                        horasTrabajadas.DiasNoTrabajados.ToString(), "0",                                                trabajador.Cargo.Sueldo.ToString("F2"), horasTrabajadas.Horas_Trabajadas.ToString(),
                                        horasTrabajadas.HorasNoTrabajados.ToString() };

                for (int i = 0; i < arrayElementos.Length; i++)
                {
                    float top = 0;
                    if (i < 3)
                    {
                        top = 1;
                    }
                    else if (i >= 3)
                    {
                        top = 0;
                    }

                    PdfPCell pdfPCell = AddPdfPCell(arrayElementos[i].ToString(), standardFont, 0, 0, top, Element.ALIGN_LEFT);
                    tblElementos1.AddCell(pdfPCell);

                    PdfPCell pdfPCelldatos = AddPdfPCell(arrayDatos[i].ToString(), standardFont, 0, 0, top, Element.ALIGN_LEFT);
                    tblElementos1.AddCell(pdfPCelldatos);
                }

                doc.Add(tblElementos1);

                doc.Add(new Paragraph("\n"));

                //Segunda Parte

                PdfPTable tblElementos2 = new PdfPTable(3);
                tblElementos2.WidthPercentage = 100;

                string[] arrayElementos2 = { "Ingresos", "Descuentos", "Aportes de Empleador" };

                for (int i = 0; i < arrayElementos2.Length; i++)
                {
                    PdfPCell pdfPCell = AddPdfPCell(arrayElementos2[i].ToString(), subtituloFont2, 1, 1, 1, Element.ALIGN_CENTER);
                    tblElementos2.AddCell(pdfPCell);
                }

                doc.Add(tblElementos2);

                //Tercera Parte

                PdfPTable tblElementos3 = new PdfPTable(6);
                tblElementos3.WidthPercentage = 100;

                string[] arrayElementos3 = { "Remuneracion Basica:", "AFP Aporte:", "ESSALUD:", "Vacaciones:", "AFP Comision", "", "", "AFP Seguros", "" };

                string[] arrayDatos3 = { trabajador.Cargo.Sueldo.ToString("F2"), beneficio.AFPAporte.ToString("F2"), beneficio.EsSalud.ToString("F2"), "0.00", beneficio.AFPComision.ToString("F2"), "", "", beneficio.AFPSeguro.ToString("F2"), "" };

                for (int i = 0; i < arrayElementos3.Length; i++)
                {
                    PdfPCell pdfPCell = AddPdfPCell(arrayElementos3[i].ToString(), standardFont, 0, 0, 0, Element.ALIGN_LEFT);
                    tblElementos3.AddCell(pdfPCell);

                    PdfPCell pdfPCelldatos = AddPdfPCell(arrayDatos3[i].ToString(), standardFont, 0, 0, 0, Element.ALIGN_RIGHT);
                    tblElementos3.AddCell(pdfPCelldatos);
                }

                doc.Add(tblElementos3);

                doc.Add(new Paragraph("\n"));

                //Cuarta Parte
                PdfPTable tblElementos4 = new PdfPTable(6);
                tblElementos4.WidthPercentage = 100;

                string[] arrayElementos4 = { "Total Ingresos", "Total Descuentos", "Total Aportes", "Total Neto", "", "" };

                string[] arrayDatos4 = { trabajador.Cargo.Sueldo.ToString("F2"), (beneficio.AFPAporte + beneficio.AFPComision + beneficio.AFPSeguro).ToString("F2"), beneficio.EsSalud.ToString("F2"), (trabajador.Cargo.Sueldo - (beneficio.AFPAporte + beneficio.AFPComision + beneficio.AFPSeguro)).ToString("F2"), "", "" };

                for (int i = 0; i < arrayElementos4.Length; i++)
                {
                    PdfPCell pdfPCell = AddPdfPCell(arrayElementos4[i].ToString(), standardFont2, 0, 0, 0, Element.ALIGN_LEFT);
                    tblElementos4.AddCell(pdfPCell);

                    PdfPCell pdfPCelldatos = AddPdfPCell(arrayDatos4[i].ToString(), standardFont, 0, 0, 0, Element.ALIGN_RIGHT);
                    tblElementos4.AddCell(pdfPCelldatos);
                }

                doc.Add(tblElementos4);

                doc.Add(new Paragraph("\n"));

                Paragraph vacaciones = AddParagraph("Vacaciones", Element.ALIGN_LEFT, standardFont2);
                doc.Add(new Paragraph(vacaciones));

                //Quinta Parte
                PdfPTable tblElementos5 = new PdfPTable(4);
                tblElementos5.WidthPercentage     = 50;
                tblElementos5.HorizontalAlignment = Element.ALIGN_LEFT;

                string[] arrayElementos5 = { "Inicio", "Fin", "Dias", "Tipo" };

                for (int i = 0; i < arrayElementos5.Length; i++)
                {
                    PdfPCell pdfPCell = AddPdfPCell(arrayElementos5[i].ToString(), standardFont2, 1, 1, 1, Element.ALIGN_CENTER);
                    tblElementos5.AddCell(pdfPCell);
                }

                doc.Add(tblElementos5);

                PdfPTable tblElementos6 = new PdfPTable(4);
                tblElementos6.WidthPercentage     = 50;
                tblElementos6.HorizontalAlignment = Element.ALIGN_LEFT;

                List <string> lstElementos6 = new List <string>();

                for (int j = 0; j < arrayvacaciones.Length; j++)
                {
                    lstElementos6.Add(arrayvacaciones[j].FechaInicio.ToString("dd'/'MM'/'yyyy"));
                    lstElementos6.Add(arrayvacaciones[j].FechaFin.ToString("dd'/'MM'/'yyyy"));
                    lstElementos6.Add(CalcularVacacionesPeriodo(horasTrabajadas.UltimoDia, arrayvacaciones[j].FechaInicio, arrayvacaciones[j].FechaFin).ToString());
                    lstElementos6.Add("Trabajador");
                }

                string[] arrayElementos6 = lstElementos6.ToArray();

                for (int i = 0; i < arrayElementos6.Length; i++)
                {
                    PdfPCell pdfPCell = AddPdfPCell(arrayElementos6[i].ToString(), standardFont, 0, 0, 0, Element.ALIGN_CENTER);
                    tblElementos6.AddCell(pdfPCell);
                }

                doc.Add(tblElementos6);

                doc.Close();
                arraybytes = memoryStream.ToArray();
                memoryStream.Close();
            }

            return(arraybytes);
        }