コード例 #1
0
        private void GenerarTablaInsumos()
        {
            if (!CodigoProyecto.Equals("0"))
            {
                var proyectoProducto = (from pp in consultas.Db.ProyectoProductos
                                        orderby pp.NomProducto
                                        where pp.CodProyecto == CodigoProyecto
                                        select new
                {
                    pp.Id_Producto,
                    pp.NomProducto
                });

                foreach (var pp in proyectoProducto)
                {
                    string   codT_Insumo = pp.Id_Producto.ToString();
                    TableRow fila        = new TableRow();
                    #region adicionar insumo
                    if (esMiembro && usuario.CodGrupo == Constantes.CONST_Emprendedor && !bRealizado)
                    {
                        fila = new TableRow();
                        ImageButton imgBtn = new ImageButton();
                        imgBtn.ID              = "imgBtn_AddInsumo" + pp.Id_Producto + ";" + pp.NomProducto.ToUpper();
                        imgBtn.ImageUrl        = "~/Images/icoAdicionarUsuario.gif";
                        imgBtn.CommandArgument = pp.Id_Producto.ToString();
                        imgBtn.CommandName     = "Lista";

                        LinkButton addNewInsumo = new LinkButton();
                        addNewInsumo.ID              = "linkButton" + pp.Id_Producto + ";" + pp.NomProducto.ToUpper();
                        addNewInsumo.Text            = "Agregar insumo al producto o servicio";
                        addNewInsumo.CommandArgument = pp.Id_Producto.ToString();
                        addNewInsumo.CommandName     = "Lista";
                        addNewInsumo.Click          += new EventHandler(lnkBtn_AddInsumo_Click);
                        addNewInsumo.ToolTip         = "haga click aqui para adicionar Insumo al producto o servicio";


                        imgBtn.Click  += new ImageClickEventHandler(lnkBtn_AddInsumo_Click);
                        imgBtn.ToolTip = "haga click aqui para adicionar Insumo al producto o servicio";
                        fila.Cells.Add(celda("", 1, 1, imgBtn));
                        fila.Cells.Add(celda("", 2, 1, addNewInsumo));
                        fila.Cells.Add(celda(pp.NomProducto, 6));
                        fila.Attributes.Add("class", "FondoCelda");
                        tbl.Rows.Add(fila);
                    }
                    #endregion

                    TableHeaderRow Headerfila = new TableHeaderRow();

                    Headerfila.Cells.Add(CeldaTitulo());
                    Headerfila.Cells.Add(CeldaTitulo("Materia Prima, Insumo o Requerimiento"));
                    Headerfila.Cells.Add(CeldaTitulo("Unidad"));
                    Headerfila.Cells.Add(CeldaTitulo("Cantidad", 160));
                    Headerfila.Cells.Add(CeldaTitulo("Presentacion", 160));
                    Headerfila.Cells.Add(CeldaTitulo("Margen de Desperdicio (%)", 160));

                    tbl.Rows.Add(Headerfila);

                    var ProyectoProductoYTipoInsumo = (from ppi in consultas.Db.ProyectoProductoInsumos
                                                       from pi in consultas.Db.ProyectoInsumos
                                                       from pti in consultas.Db.TipoInsumos
                                                       orderby pti.NomTipoInsumo, pi.nomInsumo
                                                       where pi.codTipoInsumo == pti.Id_TipoInsumo &&
                                                       ppi.CodInsumo == pi.Id_Insumo &&
                                                       ppi.CodProducto == int.Parse(codT_Insumo)
                                                       select new
                    {
                        ppi,
                        pi.Id_Insumo,
                        pi.Unidad,
                        pi.nomInsumo,
                        pti
                    });

                    CantidadRegistros = ProyectoProductoYTipoInsumo.Count();

                    byte tipoInsumo = 0;
                    foreach (var ppti in ProyectoProductoYTipoInsumo)
                    {
                        if (tipoInsumo != ppti.pti.Id_TipoInsumo)
                        {
                            tipoInsumo = ppti.pti.Id_TipoInsumo;
                            fila       = new TableRow();
                            fila.Cells.Add(celda());
                            fila.Cells.Add(celda(ppti.pti.NomTipoInsumo, 5));
                            fila.Attributes.Add("class", "FondoCelda2");
                            tbl.Rows.Add(fila);
                        }
                        fila = new TableRow();

                        if (esMiembro && usuario.CodGrupo == Constantes.CONST_Emprendedor && !bRealizado)
                        {
                            #region si es miembro y no esta realizado y esta logeado como emprendedor
                            ImageButton imgBtn = new ImageButton();
                            imgBtn.ID              = "imgBtn_BInsumo" + ppti.Id_Insumo + "_" + ppti.ppi.CodProducto;
                            imgBtn.ImageUrl        = "~/Images/icoBorrar.gif";
                            imgBtn.AlternateText   = "Eliminar insumo del producto";
                            imgBtn.CommandArgument = ppti.Id_Insumo + ";" + ppti.ppi.CodProducto;
                            imgBtn.CommandName     = "Borrar";
                            imgBtn.OnClientClick   = "return confirm('¿Esta seguro que desea borrar el insumo seleccionado?')";
                            imgBtn.Click          += new ImageClickEventHandler(imgBtn_AddInsumo_Click);
                            fila.Cells.Add(celda("", 1, 1, imgBtn));
                            Label lnkBtn = new Label();
                            lnkBtn.ID   = "lnkBtn_EInsumo" + pp.Id_Producto + "_" + ppti.Id_Insumo;
                            lnkBtn.Text = "<a href=\"javascript:OpenPage('Insumo.aspx?codproducto=" + ppti.ppi.CodProducto + "&NombreProducto=" + pp.NomProducto + "&codinsumo=" + ppti.Id_Insumo + "&codproyecto=" + CodigoProyecto + "')\">" + ppti.nomInsumo + "</a>";
                            fila.Cells.Add(celda("", 1, 1, lnkBtn));
                            fila.Cells.Add(celda(ppti.Unidad));

                            Label txt = new Label();
                            txt.ID    = "Cantidad_" + ppti.Id_Insumo + "_" + ppti.ppi.CodProducto;
                            txt.Width = 150;
                            txt.Text  = Convert.ToDecimal(ppti.ppi.Cantidad.Value).ToString();
                            fila.Cells.Add(celda("", 1, 1, txt, 160));

                            txt       = new Label();
                            txt.ID    = "Presentacion_" + ppti.Id_Insumo + "_" + ppti.ppi.CodProducto;
                            txt.Width = 150;
                            txt.Text  = ppti.ppi.Presentacion.ToString();

                            fila.Cells.Add(celda("", 1, 1, txt, 160));

                            txt       = new Label();
                            txt.ID    = "Desperdicio_" + ppti.Id_Insumo + "_" + ppti.ppi.CodProducto;
                            txt.Width = 150;
                            txt.Text  = ppti.ppi.Desperdicio.ToString();

                            fila.Cells.Add(celda("", 1, 1, txt, 160));
                            #endregion
                        }
                        else
                        {
                            #region si no es miembro y/o ya esta realizado o no esta logeado como emprendedor solo puede ver
                            fila.Cells.Add(celda());
                            fila.Cells.Add(celda(ppti.nomInsumo));
                            fila.Cells.Add(celda(ppti.Unidad));
                            var cant = Convert.ToDecimal(ppti.ppi.Cantidad);
                            fila.Cells.Add(celda(cant.ToString()));
                            fila.Attributes.Add("class", "alineacion");
                            fila.Cells.Add(celda(ppti.ppi.Presentacion));
                            fila.Attributes.Add("class", "alineacion");
                            fila.Cells.Add(celda(ppti.ppi.Desperdicio.ToString()));
                            fila.Attributes.Add("class", "alineacion");
                            #endregion
                        }

                        tbl.Rows.Add(fila);
                    }
                }
            }
        }