示例#1
0
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        if (this.CboMenus.SelectedValue != null && this.GridView1.SelectedValue != null)
        {
            ConosudDataContext dc = new ConosudDataContext();

            if ((from rm in dc.SegRolMenus
                 where rm.Menu == long.Parse(this.CboMenus.SelectedValue) &&
                 rm.Rol == long.Parse(this.GridView1.SelectedValue.ToString())
                 select rm).Count() == 0)
            {
                SegMenu menu = (from u in dc.SegMenus
                                where u.IdSegMenu == long.Parse(this.CboMenus.SelectedValue)
                                select u).First();

                SegRol rol = (from u in dc.SegRols
                              where u.IdSegRol == long.Parse(this.GridView1.SelectedValue.ToString())
                              select u).First();

                SegRolMenu Confseg = new SegRolMenu();
                Confseg.ObjSegRol  = rol;
                Confseg.ObjSegMenu = menu;

                dc.SegRolMenus.InsertOnSubmit(Confseg);
                dc.SubmitChanges();

                this.GridView2.DataBind();
            }
            else
            {
                string alert = "alert('Ya existe este menu para este rol');";
                System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", alert, true);
            }
        }
    }
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        if (this.CboRoles.SelectedValue != null && this.GridView1.SelectedValue != null)
        {
            ConosudDataContext dc = new ConosudDataContext();

            if ((from ur in dc.SegUsuarioRols
                 where ur.Rol == long.Parse(this.CboRoles.SelectedValue) &&
                 ur.Usuario == long.Parse(this.GridView1.SelectedValue.ToString())
                 select ur).Count() == 0)
            {
                SegRol rol = (from u in dc.SegRols
                              where u.IdSegRol == long.Parse(this.CboRoles.SelectedValue)
                              select u).First();

                SegUsuario usu = (from u in dc.SegUsuarios
                                  where u.IdSegUsuario == long.Parse(this.GridView1.SelectedValue.ToString())
                                  select u).First();

                SegUsuarioRol ConfRol = new SegUsuarioRol();
                ConfRol.ObjSegRol     = rol;
                ConfRol.ObjSegUsuario = usu;

                dc.SegUsuarioRols.InsertOnSubmit(ConfRol);
                dc.SubmitChanges();

                this.GridView2.DataBind();
            }
            else
            {
                string alert = "alert('Ya existe este rol para este usuario');";
                System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "click", alert, true);
            }
        }
    }
    protected void chkPublicar_CheckedChanged(object sender, EventArgs e)
    {
        ConosudDataContext dc = new ConosudDataContext();

        CabeceraHojasDeRuta cab = (from C in dc.CabeceraHojasDeRutas
                                   where C.IdCabeceraHojasDeRuta == _idCabecera
                                   select C).Single <CabeceraHojasDeRuta>();

        cab.Publicar = chkPublicar.Checked;

        dc.SubmitChanges();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ConosudDataContext dc = new ConosudDataContext();
            var itemsHojaRuta     = from H in dc.HojasDeRutas
                                    where H.IdCabeceraHojaDeRuta == 3501
                                    select H;

            gdItemHoja.DataSource = itemsHojaRuta;
            gdItemHoja.DataBind();
        }
    }
    private bool EsPublicador()
    {
        ConosudDataContext dc = new ConosudDataContext();

        long        IdUsuario    = long.Parse(this.Application["idusuario"].ToString());
        List <long> RolesUsuario = (from U in dc.SegUsuarios
                                    from UR in U.ColSegUsuarioRols
                                    where U.IdSegUsuario == IdUsuario &&
                                    UR.ObjSegRol.Descripcion == Helpers.RolesEspeciales.Publicador.ToString()
                                    select UR.Rol).ToList <long>();

        if (RolesUsuario.Count > 0)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
    protected void btnEditComentDoc_Click(object sender, ImageClickEventArgs e)
    {
        mdlPopupFadeIn.Show();

        Control ctr = ((GridViewRow)((Control)sender).NamingContainer).FindControl("txtIdHojaDeRuta");
        string  id  = ((TextBox)ctr).Text;


        //Control ctr = ((GridViewRow)((Control)sender).NamingContainer).Cells[3].FindControl("lblComentDoc");
        //txtComentDoc.Text = "sdasdasdsa " + new Random().Next().ToString();
        //_DescripcionItemSel = ((GridViewRow)((Control)sender).NamingContainer).Cells[1].Text;
        ConosudDataContext dc = new ConosudDataContext();
        var itemsHojaRuta     = from H in dc.HojasDeRutas
                                where H.IdHojaDeRuta == int.Parse(id)
                                select H;

        DetailsView1.DataSource = itemsHojaRuta;
        DetailsView1.DataBind();

        upComentariosRecepcion.Update();
    }
    private bool PoseeRol(long IdPlanilla)
    {
        ConosudDataContext dc = new ConosudDataContext();

        long        IdUsuario    = long.Parse(this.Application["idusuario"].ToString());
        List <long> RolesUsuario = (from U in dc.SegUsuarios
                                    from UR in U.ColSegUsuarioRols
                                    where U.IdSegUsuario == IdUsuario
                                    select UR.Rol).ToList <long>();

        List <SegRolMenu> Roles = (from M in dc.SegMenus
                                   from RM in M.ColSegRolMenus
                                   where M.Url == Request.AppRelativeCurrentExecutionFilePath &&
                                   RolesUsuario.Contains <long>(RM.Rol)
                                   select RM).ToList <SegRolMenu>();

        bool PuedeModificar = false;

        /// si al menos uno de los roles
        /// asignados tiene el permiso de modificacion
        /// no hace falta controlar seguir controlando.
        foreach (SegRolMenu rolMenu in Roles)
        {
            if (rolMenu.Modificacion)
            {
                PuedeModificar = true;
                break;
            }
        }


        if ((from rp in dc.RolesPlanillas
             where rp.IdRol == 1 && rp.IdPlanilla == IdPlanilla
             select rp).Count() == 0)
        {
            PuedeModificar = false;
        }

        return(PuedeModificar);
    }
    protected void btnBusquedaPrincipal_Click(object sender, ImageClickEventArgs e)
    {
        #region Codigo Anterior
        //bool CargoElementos = false;
        //lblEmpresa.Text = cboEmpresasAjax.SelectedItem.Text;
        //lblNroCont.Text = cboContratosAjax.SelectedItem.Text;
        //lblPeriodo.Text = cboPriodosAjax.SelectedItem.Text;


        //_nombreArchivo = @"ComentariosHoja.pdf";
        //_rutaArchivo = Server.MapPath(Request.ApplicationPath) + "\\Documentos\\";

        //imgReporte.Attributes["onClick"] = "AbrirDocumento('" + _nombreArchivo + "')";

        //Document document = new Document(PageSize.A4);

        //try
        //{
        //    Font font;

        //    PdfWriter.GetInstance(document, new FileStream(_rutaArchivo + _nombreArchivo, FileMode.Create));
        //    document.Open();

        //    string rutaImagen = Server.MapPath(Request.ApplicationPath) + @"\images\Encabezdo.png";
        //    iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(rutaImagen);
        //    png.SetAbsolutePosition(20, 770);
        //    png.ScalePercent(20);
        //    document.Add(png);


        //    // PAGE 1
        //    Paragraph par = new Paragraph("Lujan de Cuyo");
        //    par.Alignment = 2;
        //    document.Add(par);


        //    par = new Paragraph(DateTime.Now.ToLongDateString());
        //    par.Alignment = 2;
        //    document.Add(par);


        //    string encabezado = "            A Continuación se detallan los comentarios para la hoja de ruta correspondiente al período " + cboPriodosAjax.SelectedItem.Text + ".";


        //    par = new Paragraph(encabezado);
        //    par.SpacingBefore= 15;
        //    par.SpacingAfter = 15;
        //    document.Add(par);


        //    List listInicial = new List(false, 20);


        //    List Empresaslist = new List(false, 20);
        //    Empresaslist.Add(new iTextSharp.text.ListItem("Empresa: " + cboEmpresasAjax.SelectedItem.Text));

        //    List ContratosList = new List(false, 20);
        //    ContratosList.Add(new iTextSharp.text.ListItem("Nro. Contrato:" + cboContratosAjax.SelectedItem.Text));


        //    List ContratistasList = new List(false, 20);
        //    ContratistasList.Add(new iTextSharp.text.ListItem("Contratista: " + cboContratistasAjax.SelectedItem.Text));


        //    DateTime Fecha = Convert.ToDateTime("01/" + cboPriodosAjax.SelectedItem.Text.Substring(5, 2) + "/" + cboPriodosAjax.SelectedItem.Text.Substring(0, 4));
        //    List ConObsList = new List(false, 50);
        //    font = new Font();
        //    font = FontFactory.GetFont("Verdana", 12, Font.UNDERLINE);
        //    font.Color = Color.BLUE;
        //    ConObsList.ListSymbol = new Chunk("");
        //    ConObsList.Add(new iTextSharp.text.ListItem(string.Format("COMENTARIOS {0:MMMM} del {0:yyyy}", Fecha).ToUpper(), font));



        //    GenerarMesesConComentarios(ConObsList, Convert.ToInt64(cboContratistasAjax.SelectedItem.Value), out CargoElementos);
        //    if (CargoElementos)
        //        ContratistasList.Add(ConObsList);



        //    listInicial.Add(Empresaslist);
        //    Empresaslist.Add(ContratosList);
        //    ContratosList.Add(ContratistasList);
        //    document.Add(listInicial);

        //}
        //catch (DocumentException de)
        //{
        //    Console.Error.WriteLine(de.Message);
        //}
        //catch (IOException ioe)
        //{
        //    Console.Error.WriteLine(ioe.Message);
        //}

        //// step 5: we close the document
        //document.Close();
        //tblDetalleResumen.Visible = true;
        #endregion


        ConosudDataContext  db  = new ConosudDataContext();
        CabeceraHojasDeRuta cab = (from C in db.CabeceraHojasDeRutas
                                   where C.IdCabeceraHojasDeRuta == int.Parse(cboPriodosAjax.SelectedItem.Value)
                                   select C).Single <CabeceraHojasDeRuta>();

        if (!cab.Publicar.Value && this.Session["TipoUsuario"] != null)
        {
            tblDetalleResumen.Visible     = false;
            tblDetalleEnAuditoria.Visible = true;
        }
        else
        {
            bool CargoElementos = false;
            lblEmpresa.Text = cboEmpresasAjax.SelectedItem.Text;
            lblNroCont.Text = cboContratosAjax.SelectedItem.Text;
            lblPeriodo.Text = cboPriodosAjax.SelectedItem.Text;


            _nombreArchivo = @"ComentariosHoja.pdf";
            _rutaArchivo   = Server.MapPath(Request.ApplicationPath) + "\\Documentos\\";

            imgReporte.Attributes["onClick"] = "AbrirDocumento('" + _nombreArchivo + "')";

            Document document = new Document(PageSize.A4);

            try
            {
                Font font;
                PdfWriter.GetInstance(document, new FileStream(_rutaArchivo + _nombreArchivo, FileMode.Create));
                document.Open();

                string rutaImagen         = Server.MapPath(Request.ApplicationPath) + @"\images\Encabezdo.png";
                iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(rutaImagen);
                png.SetAbsolutePosition(20, 770);
                png.ScalePercent(20);
                document.Add(png);


                // PAGE 1
                Paragraph par = new Paragraph("Lujan de Cuyo");
                par.Alignment = 2;
                document.Add(par);


                par           = new Paragraph(DateTime.Now.ToLongDateString());
                par.Alignment = 2;
                document.Add(par);


                string encabezado = "            A Continuación se detallan los comentarios para la hoja de ruta correspondiente al período " + cboPriodosAjax.SelectedItem.Text + ".";


                par = new Paragraph(encabezado);
                par.SpacingBefore = 15;
                par.SpacingAfter  = 15;
                document.Add(par);


                List listInicial = new List(false, 20);

                List ContratosList = new List(false, 20);
                ContratosList.Add(new iTextSharp.text.ListItem("Contrato:" + cboContratosAjax.SelectedItem.Text));

                DateTime Fecha        = Convert.ToDateTime("01/" + cboPriodosAjax.SelectedItem.Text.Substring(5, 2) + "/" + cboPriodosAjax.SelectedItem.Text.Substring(0, 4));
                List     DetalleItems = new List(false, 20);
                DetalleItems = GenerarDetalleItem(out CargoElementos, Fecha);

                listInicial.Add(ContratosList);
                ContratosList.Add(DetalleItems);
                document.Add(listInicial);
            }
            catch (DocumentException de)
            {
                Console.Error.WriteLine(de.Message);
            }
            catch (IOException ioe)
            {
                Console.Error.WriteLine(ioe.Message);
            }

            // step 5: we close the document
            document.Close();
            tblDetalleResumen.Visible     = true;
            tblDetalleEnAuditoria.Visible = false;
        }
    }
    private List GenerarDetalleItem(out bool CargoElementos, DateTime Periodo)
    {
        List ItemListFinal = new List(false, 20);

        CargoElementos = false;
        ConosudDataContext db = new ConosudDataContext();
        int        IdContrato = int.Parse(cboContratosAjax.SelectedItem.Value);
        List <int> Empresas   = new List <int>();

        if (cboContratistasAjax.SelectedItem.Text.IndexOf("Todas") >= 0)
        {
            // Todas las empresas a partir del contrato
            Empresas = (from C in db.ContratoEmpresas
                        where C.IdContrato == IdContrato
                        select C.IdEmpresa.Value).ToList <int>();
        }
        else
        {
            // Solo la empresa Seleccionada a partir del contrato empresa
            Empresas = (from C in db.ContratoEmpresas
                        where C.IdContratoEmpresas == int.Parse(cboContratistasAjax.SelectedItem.Value)
                        select C.IdEmpresa.Value).ToList <int>();
        }


        var GrupoDatos = from C in db.ContratoEmpresas
                         from Ca in C.ColCabeceraHojasDeRutas
                         where C.IdContrato == IdContrato && Ca.Periodo.Date == Periodo.Date &&
                         Empresas.Contains <int>(C.IdEmpresa.Value)
                         group Ca by Ca.Periodo.Date into p
                         select new { Periodos = p.Key, Cabeceras = p };


        foreach (var Periodos in GrupoDatos)
        {
            /// Mes correspondiente
            List MesesList = new List(false, 20);
            MesesList.Add(new iTextSharp.text.ListItem(string.Format("Mes: {0:MMMM}", Periodos.Periodos)));


            foreach (CabeceraHojasDeRuta cab in Periodos.Cabeceras)
            {
                string descripEmpresa = "Contratista: ";
                if (!cab.ObjContratoEmpresa.EsContratista.Value)
                {
                    descripEmpresa = "SubContratista: ";
                }

                //// Empresa en Cuestion
                List Empresaslist = new List(false, 20);
                Empresaslist.Add(new iTextSharp.text.ListItem(descripEmpresa + cab.ObjContratoEmpresa.ObjEmpresa.RazonSocial));

                /// Lista de Item
                List ItemList            = new List(false, 20);
                List <HojasDeRuta> Hojas = (from H in cab.ColHojasDeRutas
                                            where H.HojaAprobado == false
                                            orderby H.HojaComentario
                                            select H).ToList <HojasDeRuta>();


                foreach (HojasDeRuta hoja in Hojas)
                {
                    string cadenaDescriptiva = "";

                    if (hoja.HojaComentario != null && hoja.HojaComentario.Trim() != "")
                    {
                        cadenaDescriptiva = hoja.HojaComentario;

                        List ComentarioList = new List(false, 10);
                        Font font           = new Font();
                        font       = FontFactory.GetFont("Verdana", 8);
                        font.Color = BaseColor.LIGHT_GRAY;
                        ComentarioList.ListSymbol = new Chunk("");
                        ComentarioList.Add(new iTextSharp.text.ListItem(cadenaDescriptiva, font));

                        ItemList.Add(hoja.ObjPlantilla.Descripcion);
                        ItemList.Add(ComentarioList);
                    }
                    else if ((hoja.HojaComentario == null || hoja.HojaComentario.Trim() == "") && !hoja.DocFechaEntrega.HasValue)
                    {
                        ItemList.Add(hoja.ObjPlantilla.Descripcion + " (Sin Documentacion) ");
                    }
                }

                Empresaslist.Add(ItemList);
                MesesList.Add(Empresaslist);
            }

            ItemListFinal.Add(MesesList);
        }

        return(ItemListFinal);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        btnAprobar.Attributes.Add("onmouseover", "this.src='images/HojaAprobadaUp.gif'");
        btnAprobar.Attributes.Add("onmouseout", "this.src='images/HojaAprobada4.gif'");

        btnComentario.Attributes.Add("onmouseover", "this.src='images/ComentarioUp.gif'");
        btnComentario.Attributes.Add("onmouseout", "this.src='images/Comentario.gif'");

        btnEstimacion.Attributes.Add("onmouseover", "this.src='images/EstimacionUp4.gif'");
        btnEstimacion.Attributes.Add("onmouseout", "this.src='images/Estimacion4.gif'");

        //DetailsView1.Attributes.Add("onkeydown", "NoSubmit();");

        //if (FileUploaderAJAX1.IsDeleting)
        //{
        //}
        //else if (FileUploaderAJAX1.IsPosting)
        //    this.managePost();
        if (1 == 1)
        {
            //FileUploaderAJAX1.showDeletedFilesOnPostBack = false;


            gdEncezado.SelectedIndex     = 0;
            imgUltimoCertificado.Visible = false;
            _idCabecera        = Convert.ToInt32(Request.QueryString["id"]);
            _esContratista     = Convert.ToBoolean(((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[9]).Text);
            _idContratoEmpresa = Convert.ToInt32(((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[10]).Text);



            if (!IsPostBack)
            {
                GestionComentarios(_idContratoEmpresa);

                ///recupero las ultimas dos hojas de ruta
                ///para hacer controles posteriores.
                DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
                _DTCabecera = TACabecera.GetUltimasCabecerasByContrato(_idContratoEmpresa);



                lblContratista.Text       = ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[0]).Text;
                lblSubCon.Text            = ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[1]).Text;
                lblNroCarpeta.Text        = "Nº " + ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[5]).Text;
                lblDescContrato.Text      = ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[2]).Text + " - " + ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[3]).Text;;
                lblEstadoDoc.Text         = ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[4]).Text.ToUpper();
                lblTituloComentario.Text += ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[2]).Text.ToUpper() + " - " + ((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[3]).Text.ToUpper();

                DateTime Periodo = Convert.ToDateTime(((System.Web.UI.WebControls.DataControlFieldCell)gdEncezado.SelectedRow.Controls[6]).Text);
                lblFechaHojaRuta.Text = string.Format("{0:yyyy/MM}", Periodo);

                lblUsuario.Text = this.Session["nombreusu"].ToString();
            }


            /// Controlo si es la penultima hoja de ruta
            if (((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[PENULTIMA]).IdCabeceraHojasDeRuta == _idCabecera)
            {
                imgUltimoCertificado.Visible = true;
                _esPenultimaHoja             = true;
            }
            else if (((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[ULTIMA]).IdCabeceraHojasDeRuta == _idCabecera)
            {
                _esUltimaHoja = true;

                if (((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[PENULTIMA]).IdEstado == (long)Helpers.EstadosHoja.NoAprobada)
                {
                    _puedeAprobarPenultimaHoja = true;
                    DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter TACabecera = new DSConosudTableAdapters.CabeceraHojasDeRutaTableAdapter();
                    if (Convert.ToInt32(TACabecera.EstadosItemsPenultimaHoja(_idContratoEmpresa)) == 0)
                    {
                        _puedeAprobarPenultimaHoja         = true;
                        ConfirmButtonExtender1.ConfirmText = "La Hoja de Ruta anterior correspondiente al periodo: " + string.Format("{0:yyyy/MM}", ((DSConosud.CabeceraHojasDeRutaRow)_DTCabecera.Rows[PENULTIMA]).Periodo) + "\n" +
                                                             " se aprobará, junto con la actual, ya que esta en condiciones de ser aprobada.";
                    }
                }
            }
        }

        if (EsAprobador())
        {
            btnAprobar.Visible    = true;
            btnComentario.Visible = true;
            btnEstimacion.Visible = true;
        }
        else
        {
            btnAprobar.Visible    = false;
            btnComentario.Visible = false;
            btnEstimacion.Visible = false;
        }

        if (EsPublicador())
        {
            chkPublicar.Enabled = true;
        }
        else
        {
            chkPublicar.Enabled = false;
        }


        btnAprobarItems.Visible = true;

//        FileUploaderAJAX1.CssClass = "fua";
//        FileUploaderAJAX1.Style = @"
//        body{font-size: smaller;
//            color: white;
//            background-color: #F1DDDD;}
//        a{font-weight:#800000}";

        if (!IsPostBack)
        {
            ConosudDataContext dc = new ConosudDataContext();
            var itemsHojaRuta     = from H in dc.HojasDeRutas
                                    where H.IdCabeceraHojaDeRuta == int.Parse(Request.QueryString["Id"])
                                    select H;

            //gdItemHoja.DataSource = itemsHojaRuta;
            //gdItemHoja.DataBind();
        }
    }
    protected void btnBusquedaPrincipal_Click(object sender, ImageClickEventArgs e)
    {
        //bool CargoElementos = false;
        //lblEmpresa.Text = cboEmpresasAjax.SelectedItem.Text;
        //lblNroCont.Text = cboContratosAjax.SelectedItem.Text;
        //lblPeriodo.Text = cboPriodosAjax.SelectedItem.Text;


        //_nombreArchivo = @"Resumen" + cboEmpresasAjax.SelectedItem.Text + cboContratosAjax.SelectedItem.Text + cboPriodosAjax.SelectedItem.Text.Replace("/", "") + ".pdf";
        //_nombreArchivo = _nombreArchivo.Replace("/", "-");
        //_rutaArchivo = Server.MapPath(Request.ApplicationPath) + "\\Documentos\\";

        //imgReporte.Attributes["onClick"] = "AbrirDocumento('" + _nombreArchivo + "')";

        //// step 1: creation of a document-object
        //Document document = new Document(PageSize.A4);

        //try
        //{
        //    Font font;
        //    Chunk chunk;


        //    // step 2: we create a writer that listens to the document
        //    PdfWriter.GetInstance(document, new FileStream(_rutaArchivo + _nombreArchivo, FileMode.Create));

        //    //// we Add a Footer that will show up on PAGE 1
        //    //HeaderFooter footer = new HeaderFooter(new Phrase("This is page: "), true);
        //    //footer.Border = Rectangle.NO_BORDER;
        //    //document.Footer = footer;

        //    //// we Add a Header that will show up on PAGE 2
        //    //HeaderFooter header = new HeaderFooter( new Phrase("This is a header"), false);
        //    //header.Alignment = 1;
        //    //document.Header = header;

        //    // step 3: we open the document
        //    document.Open();

        //    string rutaImagen = Server.MapPath(Request.ApplicationPath) + @"\images\Encabezdo.png";
        //    iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(rutaImagen);
        //    png.SetAbsolutePosition(20, 770);
        //    png.ScalePercent(20);
        //    document.Add(png);

        //    // step 4: we Add content to the document

        //    // PAGE 1
        //    Paragraph par = new Paragraph("Lujan de Cuyo");
        //    par.Alignment = 2;
        //    document.Add(par);


        //    par = new Paragraph(DateTime.Now.ToLongDateString());
        //    par.Alignment = 2;
        //    document.Add(par);

        //    par = new Paragraph("Señor Jefe");
        //    par.Alignment = 0;
        //    document.Add(par);

        //    font = new Font();
        //    font = FontFactory.GetFont("Verdana", 12, Font.UNDERLINE);
        //    chunk = new Chunk("CONTRATOS Y.P.F.", font);
        //    par = new Paragraph(chunk);
        //    document.Add(par);



        //    string subcontratistas =", ";
        //    if (Helpers._SubContratistas.Count >1)
        //    {
        //        subcontratistas =", y subcontratistas: ";
        //        foreach (string emp in Helpers._SubContratistas.Keys)
        //        {
        //            if (emp != cboEmpresasAjax.SelectedItem.Text)
        //                subcontratistas += emp + ", ";
        //        }
        //    }

        //    string encabezado= "            Luego de recibida y controlada la documentación por el contrato " + cboContratosAjax.SelectedItem.Text + " de la empresa " + cboEmpresasAjax.SelectedItem.Text +
        //        subcontratistas + "por el período " + cboPriodosAjax.SelectedItem.Text + " (y meses anteriores, si corresponde), se informa a continuación los pendientes:";

        //    par = new Paragraph(encabezado);
        //    par.SpacingBefore= 15;
        //    par.SpacingAfter = 15;
        //    document.Add(par);



        //    List listInicial = new List(false, 20);


        //    List Empresaslist = new List(false, 20);
        //    Empresaslist.Add(new iTextSharp.text.ListItem("Empresa: " + cboEmpresasAjax.SelectedItem.Text));

        //    List ContratosList = new List(false, 20);
        //    ContratosList.Add(new iTextSharp.text.ListItem("Nro. Contrato:" + cboContratosAjax.SelectedItem.Text));



        //    List ContratistasList = new List(false, 20);
        //    ContratistasList.Add(new iTextSharp.text.ListItem("Contratista: " + cboContratistasAjax.SelectedItem.Text));


        //    List SinDocList = new List(false,50);
        //    font = new Font();
        //    font = FontFactory.GetFont("Verdana", 12, Font.UNDERLINE);
        //    font.Color = Color.RED;
        //    SinDocList.ListSymbol = new Chunk("");
        //    SinDocList.Add(new iTextSharp.text.ListItem("MESES SIN DOCUMENTACION PRESENTADA", font));

        //    List ConObsList = new List(false, 50);
        //    font = new Font();
        //    font = FontFactory.GetFont("Verdana", 12, Font.UNDERLINE);
        //    font.Color = Color.BLUE;
        //    ConObsList.ListSymbol = new Chunk("");
        //    ConObsList.Add(new iTextSharp.text.ListItem("MESES CON OBSERVACIONES", font));

        //    List EstimacionList = new List(false, 50);
        //    font = new Font();
        //    font = FontFactory.GetFont("Verdana", 12, Font.UNDERLINE);
        //    font.Color = new Color(System.Drawing.Color.DarkTurquoise);
        //    EstimacionList.ListSymbol = new Chunk("");
        //    EstimacionList.Add(new iTextSharp.text.ListItem("ESTIMACION", font));


        //    SinDocList = GenerarMeseSinDocumentacion(SinDocList, Convert.ToInt64(cboContratistasAjax.SelectedItem.Value), out CargoElementos);
        //    if (CargoElementos)
        //        ContratistasList.Add(SinDocList);

        //    GenerarMesesConComentarios(ConObsList, Convert.ToInt64(cboContratistasAjax.SelectedItem.Value), out CargoElementos);
        //    if (CargoElementos)
        //        ContratistasList.Add(ConObsList);

        //    ObtenerEstimacion(EstimacionList, Convert.ToInt64(cboPriodosAjax.SelectedItem.Value),out CargoElementos);
        //    if(CargoElementos)
        //        ContratistasList.Add(EstimacionList);

        //    foreach (DSConosud.ContratoEmpresasRow subContratistas in Helpers._SubContratistas.Values)
        //    {
        //        if (subContratistas["RazonSocial"].ToString() != cboEmpresasAjax.SelectedItem.Text)
        //        {
        //            ContratistasList.Add(new iTextSharp.text.ListItem("Subcontratista: " + subContratistas["RazonSocial"].ToString()));


        //            SinDocList = new List(false, 50);
        //            font = new Font();
        //            font = FontFactory.GetFont("Verdana", 12, Font.UNDERLINE);
        //            font.Color = Color.RED;
        //            SinDocList.ListSymbol = new Chunk("");
        //            SinDocList.Add(new iTextSharp.text.ListItem("MESES SIN DOCUMENTACION PRESENTADA", font));


        //            ConObsList = new List(false, 50);
        //            font = new Font();
        //            font = FontFactory.GetFont("Verdana", 12, Font.UNDERLINE);
        //            font.Color = Color.BLUE;
        //            ConObsList.ListSymbol = new Chunk("");
        //            ConObsList.Add(new iTextSharp.text.ListItem("MESES CON OBSERVACIONES", font));


        //            SinDocList = GenerarMeseSinDocumentacion(SinDocList, subContratistas.IdContratoEmpresas, out CargoElementos);
        //            if (CargoElementos)
        //                ContratistasList.Add(SinDocList);

        //            ConObsList = GenerarMesesConComentarios(ConObsList, subContratistas.IdContratoEmpresas, out CargoElementos);
        //            if (CargoElementos)
        //                ContratistasList.Add(ConObsList);

        //        }

        //    }


        //    listInicial.Add(Empresaslist);
        //    Empresaslist.Add(ContratosList);
        //    ContratosList.Add(ContratistasList);
        //    document.Add(listInicial);


        //}
        //catch (DocumentException de)
        //{
        //    Console.Error.WriteLine(de.Message);
        //}
        //catch (IOException ioe)
        //{
        //    Console.Error.WriteLine(ioe.Message);
        //}

        //// step 5: we close the document
        //document.Close();
        //tblDetalleResumen.Visible = true;


        ConosudDataContext  db  = new ConosudDataContext();
        CabeceraHojasDeRuta cab = (from C in db.CabeceraHojasDeRutas
                                   where C.IdCabeceraHojasDeRuta == int.Parse(cboPriodosAjax.SelectedItem.Value)
                                   select C).Single <CabeceraHojasDeRuta>();

        if (!cab.Publicar.Value && this.Session["TipoUsuario"] != null)
        {
            tblDetalleResumen.Visible     = false;
            tblDetalleEnAuditoria.Visible = true;
        }
        else
        {
            bool CargoElementos = false;
            lblEmpresa.Text = cboEmpresasAjax.SelectedItem.Text;
            lblNroCont.Text = cboContratosAjax.SelectedItem.Text;
            lblPeriodo.Text = cboPriodosAjax.SelectedItem.Text;


            _nombreArchivo = @"ComentariosHoja.pdf";
            _rutaArchivo   = Server.MapPath(Request.ApplicationPath) + "\\Documentos\\";

            imgReporte.Attributes["onClick"] = "AbrirDocumento('" + _nombreArchivo + "')";

            Document document = new Document(PageSize.A4);

            try
            {
                Font  font;
                Chunk chunk;


                // step 2: we create a writer that listens to the document
                PdfWriter.GetInstance(document, new FileStream(_rutaArchivo + _nombreArchivo, FileMode.Create));

                //// we Add a Footer that will show up on PAGE 1
                //HeaderFooter footer = new HeaderFooter(new Phrase("This is page: "), true);
                //footer.Border = Rectangle.NO_BORDER;
                //document.Footer = footer;

                //// we Add a Header that will show up on PAGE 2
                //HeaderFooter header = new HeaderFooter( new Phrase("This is a header"), false);
                //header.Alignment = 1;
                //document.Header = header;

                // step 3: we open the document
                document.Open();

                string rutaImagen         = Server.MapPath(Request.ApplicationPath) + @"\images\Encabezdo.png";
                iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(rutaImagen);
                png.SetAbsolutePosition(20, 770);
                png.ScalePercent(20);
                document.Add(png);

                // step 4: we Add content to the document

                // PAGE 1
                Paragraph par = new Paragraph("Lujan de Cuyo");
                par.Alignment = 2;
                document.Add(par);


                par           = new Paragraph(DateTime.Now.ToLongDateString());
                par.Alignment = 2;
                document.Add(par);

                par           = new Paragraph("Señor Jefe");
                par.Alignment = 0;
                document.Add(par);

                font  = new Font();
                font  = FontFactory.GetFont("Verdana", 12, Font.UNDERLINE);
                chunk = new Chunk("CONTRATOS Y.P.F.", font);
                par   = new Paragraph(chunk);
                document.Add(par);



                string subcontratistas = ", ";
                if (Helpers._SubContratistas.Count > 1)
                {
                    subcontratistas = ", y subcontratistas: ";
                    foreach (string emp in Helpers._SubContratistas.Keys)
                    {
                        if (emp != cboEmpresasAjax.SelectedItem.Text)
                        {
                            subcontratistas += emp + ", ";
                        }
                    }
                }

                string encabezado = "            Luego de recibida y controlada la documentación por el contrato " + cboContratosAjax.SelectedItem.Text + " de la empresa " + cboEmpresasAjax.SelectedItem.Text +
                                    subcontratistas + "por el período " + cboPriodosAjax.SelectedItem.Text + " (y meses anteriores, si corresponde), se informa a continuación los pendientes:";

                par = new Paragraph(encabezado);
                par.SpacingBefore = 15;
                par.SpacingAfter  = 15;
                document.Add(par);


                List listInicial = new List(false, 20);

                List ContratosList = new List(false, 20);
                ContratosList.Add(new iTextSharp.text.ListItem("Contrato:" + cboContratosAjax.SelectedItem.Text));

                DateTime Fecha        = Convert.ToDateTime("01/" + cboPriodosAjax.SelectedItem.Text.Substring(5, 2) + "/" + cboPriodosAjax.SelectedItem.Text.Substring(0, 4));
                List     DetalleItems = new List(false, 20);
                DetalleItems = GenerarDetalleItem(out CargoElementos, Fecha);

                listInicial.Add(ContratosList);
                ContratosList.Add(DetalleItems);
                document.Add(listInicial);
            }
            catch (DocumentException de)
            {
                Console.Error.WriteLine(de.Message);
            }
            catch (IOException ioe)
            {
                Console.Error.WriteLine(ioe.Message);
            }

            // step 5: we close the document
            document.Close();
            tblDetalleResumen.Visible     = true;
            tblDetalleEnAuditoria.Visible = false;
        }
    }