Esempio n. 1
0
        protected void VolverAnterior(object Sender, EventArgs E)
        {
            int nivel = 1;

            nivel = Ubicacion.DeterminarNivel(codigoUbicacion);
            if (nivel == 1)
            {
                Response.Redirect(indexPage + "?process=Inventarios.AdminUbicaciones");
            }
            else
            {
                Response.Redirect(indexPage + "?process=Inventarios.CfgUbicaciones&codUbi=" + DBFunctions.SingleData("SELECT pubi_codpad FROM pubicacionitem WHERE pubi_codigo=" + codigoUbicacion + ""));
            }
        }
Esempio n. 2
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            codigoUbicacion = Request.QueryString["codUbi"];
            itemubicacion   = Request.QueryString["codItem"];
            int nivel = Ubicacion.DeterminarNivel(codigoUbicacion);

            if (!IsPostBack)
            {
                Session.Clear();
                DatasToControls bind = new DatasToControls();
                bind.PutDatasIntoDropDownList(ddlLineaBdg, "SELECT plin_codigo CONCAT '-' CONCAT plin_tipo, plin_nombre FROM plineaitem");
                tbCodigoItem.Attributes.Add("onkeyup", "ItemMask(" + tbCodigoItem.ClientID + "," + ddlLineaBdg.ClientID + ");");
                ddlLineaBdg.Attributes.Add("onchange", "ChangeLine(" + ddlLineaBdg.ClientID + "," + tbCodigoItem.ClientID + ");");
                tbCodigoItem.Attributes.Add("ondblclick", "MostrarRefs(" + tbCodigoItem.ClientID + "," + ddlLineaBdg.ClientID + ");");
                plInfoUbiNiv2.Visible = plInfoDimBod.Visible = plInfoDimNiv2.Visible = plInfoUbiNiv3.Visible = false;

                if (nivel == 2)
                {
                    FilasNivel3(ddlFilElim, codigoUbicacion);
                }

                if (Request.QueryString["msg"] != null)
                {
                    if (Request.QueryString["msg"] == "SUS")
                    {
                        Utils.MostrarAlerta(Response, "El código " + Request.QueryString["cod1"] + " se ha sustituido.\\nEl codigo actual es " + Request.QueryString["cod2"] + "!");
                    }
                }
            }

            if (nivel == 1)
            {
                lbNomUbiNiv1.Text     = DBFunctions.SingleData("SELECT pubi_nombre FROM pubicacionitem WHERE pubi_codigo=" + codigoUbicacion + "");
                plInfoUbiNiv2.Visible = plInfoDimBod.Visible = true;
            }
            else if (nivel == 2)
            {
                dgUbicaciones.ShowHeader = false;
                plInfoDimNiv2.Visible    = plInfoUbiNiv3.Visible = true;
            }

            //Ahora preparamos la tabla que maneja las ubicaciones
            PublicarInfoUbicacion(codigoUbicacion);
            LlenarGrilla(codigoUbicacion);
            FormatoPrimerColumna();
        }
Esempio n. 3
0
        protected void LlenarGrilla(string codUbi)
        {
            DataTable colspan = PrepararDtUbicaciones(codUbi);

            int     nivel = Ubicacion.DeterminarNivel(codUbi);
            DataSet ds    = new DataSet();

            switch (nivel)
            {
            case 1:
            {
                int i, j;
                //Traemos la cantidad de filas y columnas maximas permitidas
                int numFilas = Convert.ToInt32(DBFunctions.SingleData("SELECT cinv_filmatbod FROM cinventario"));
                int numCols  = Convert.ToInt32(DBFunctions.SingleData("SELECT cinv_colmatbod FROM cinventario"));

                //Debemos traer las ubicaciones que tienen como ubicacion padre la de codigo codUbi
                DBFunctions.Request(ds, IncludeSchema.NO, "SELECT pubi_nombre, TRIM(pubi_ubicespacial) FROM pubicacionitem WHERE pubi_codpad=" + codUbi + " AND pubi_ubicespacial is not null");

                //dentro de dtUbicaciones, guardamos las ubicaciones que existen
                //La ubicacion espacial se almacen Filas-Columnas
                if (ds.Tables[0].Rows.Count > dtUbicaciones.Rows.Count * (dtUbicaciones.Columns.Count - 1))
                {
                    Utils.MostrarAlerta(Response, "La configuracion de filas es menor a la generada !");
                    return;
                }

                for (i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    string[] ubicEspacial = ds.Tables[0].Rows[i][1].ToString().Split('-');
                    dtUbicaciones.Rows[Convert.ToInt32(ubicEspacial[0].Trim()) - 1][Convert.ToInt32(ubicEspacial[1].Trim())] = ds.Tables[0].Rows[i][0].ToString();
                }

                BindDgUbicaciones();
                //Ahora revisamos que ubicaciones estan libres y podemos asignar una ubicacion de nivel 2
                for (i = 0; i < numFilas; i++)
                {
                    for (j = 1; j <= numCols; j++)
                    {
                        if (dtUbicaciones.Rows[i][j].ToString() == "")
                        {
                            dgUbicaciones.Items[i].Cells[j].BackColor = Color.LightGreen;
                            LinkButton lnkCrear = new LinkButton();
                            lnkCrear.Text            = "Crear";
                            lnkCrear.BackColor       = Color.Transparent;
                            lnkCrear.CommandArgument = (i + 1) + "-" + j;
                            lnkCrear.Command        += new CommandEventHandler(CrearUbicacionNivel2);
                            dgUbicaciones.Items[i].Cells[j].Controls.Add(lnkCrear);
                        }
                        else
                        {
                            dgUbicaciones.Items[i].Cells[j].BackColor = Color.Orange;

                            //Contenedor de los objetos dentro de la tabla y grafica de la bodega.
                            Panel contenedor = new Panel();
                            contenedor.CssClass = "imgBodega";

                            //Label de la sección.
                            Panel contSeccion = new Panel();
                            contSeccion.CssClass = "seccion";
                            Label literal = new Label();
                            literal.Text = dtUbicaciones.Rows[i][j].ToString();
                            contSeccion.Controls.Add(literal);
                            contenedor.Controls.Add(contSeccion);

                            //Link para ubicar configuración.
                            Panel contConfigurar = new Panel();
                            contConfigurar.CssClass = "configurar";
                            LinkButton lnkConfigurar = new LinkButton();
                            lnkConfigurar.Text = "Configurar";
                            lnkConfigurar.Attributes.Add("onclick", "espera()");
                            lnkConfigurar.CommandArgument = (i + 1) + "-" + j;
                            lnkConfigurar.Command        += new CommandEventHandler(ConfigurarUbicacionNivel2);
                            contConfigurar.Controls.Add(lnkConfigurar);
                            contenedor.Controls.Add(contConfigurar);

                            //Link para ubicar la eliminación.
                            Panel contEliminar = new Panel();
                            contEliminar.CssClass = "eliminar";
                            LinkButton lnkEliminar = new LinkButton();
                            lnkEliminar.Text            = "Eliminar";
                            lnkEliminar.CommandArgument = (i + 1) + "-" + j;
                            lnkEliminar.Command        += new CommandEventHandler(EliminarUbicacionNivel2);
                            contEliminar.Controls.Add(lnkEliminar);
                            contenedor.Controls.Add(contEliminar);

                            dgUbicaciones.Items[i].Cells[j].Controls.Add(contenedor);
                        }

                        dgUbicaciones.Items[i].Cells[j].HorizontalAlign = HorizontalAlign.Center;
                        dgUbicaciones.Items[i].Cells[j].ForeColor       = Color.Black;
                    }
                }
            }
            break;

            case 2:
            {
                int i, j;

                if (DBFunctions.RecordExist("SELECT pubi_codpad FROM pubicacionitem WHERE pubi_codpad=" + codUbi + ""))
                {
                    BindDgUbicaciones();

                    for (i = 0; i < dgUbicaciones.Items.Count; i++)
                    {
                        int contSpan = 0;

                        for (j = 1; j < dgUbicaciones.Items[i].Cells.Count; j++)
                        {
                            if (contSpan < maximoSpan && j < Convert.ToInt32(colspan.Rows[i][2]))
                            {
                                FormatoCeldaNivel3(i, j, Convert.ToInt32(colspan.Rows[i][1]));
                                contSpan += Convert.ToInt32(colspan.Rows[i][1]);
                            }
                            else if (contSpan < maximoSpan && j >= Convert.ToInt32(colspan.Rows[i][2]))
                            {
                                FormatoCeldaNivel3(i, j, maximoSpan - contSpan);
                                contSpan = maximoSpan;
                            }
                            else
                            {
                                FormatoCeldaNivel3(i, j, 0);
                            }
                        }
                    }
                }
            }
            break;
            }
        }
Esempio n. 4
0
        protected DataTable PrepararDtUbicaciones(string codUbi)
        {
            dtUbicaciones = new DataTable();

            DataTable colspan = PrepararTablaColspan();

            int nivel = Ubicacion.DeterminarNivel(codUbi);
            int numFilas = 0, numCols = 0, i = 0, j = 0;

            switch (nivel)
            {
            case 1:
            {
                numFilas = Convert.ToInt32(DBFunctions.SingleData("SELECT cinv_filmatbod FROM cinventario"));
                numCols  = Convert.ToInt32(DBFunctions.SingleData("SELECT cinv_colmatbod FROM cinventario"));

                lbMaxFilas.Text = numFilas.ToString();
                lbMaxCols.Text  = numCols.ToString();

                //Primero debemos agregar la columna que nos indique las filas
                dtUbicaciones.Columns.Add(new DataColumn("FILA/ESTANTE", System.Type.GetType("System.String")));                       //0

                //Ahora agregamos las columnas que tenemos configuradas en cinventario
                for (i = 0; i < numCols; i++)
                {
                    dtUbicaciones.Columns.Add(new DataColumn("Estante " + (i + 1), System.Type.GetType("System.String")));
                }

                //Ahora agregamos las filas que tenemos configuradas en cinventario
                for (i = 0; i < numFilas; i++)
                {
                    DataRow fila = dtUbicaciones.NewRow();
                    fila[0] = "Fila " + (i + 1);
                    dtUbicaciones.Rows.Add(fila);
                }
            }
            break;

            case 2:
            {
                #region Revisar el procedimiento que muestra los ítems y las ubicaciones de un estante.
                //Si no existe ninguna ubicacion dependiente codUbi se coloca un aviso que diga que no se ha configurado
                if (!DBFunctions.RecordExist("SELECT pubi_codpad FROM pubicacionitem WHERE pubi_codpad=" + codUbi + ""))
                {
                    Utils.MostrarAlerta(Response, "No se ha configurado el estante : " + DBFunctions.SingleData("SELECT pubi_nombre FROM pubicacionitem WHERE pubi_codigo=" + codUbi + "") + "!");
                    lbFilas.Text = "0";
                }
                else
                {
                    //Se realiza una consulta de los items almacenados dentro de las ubicaciones
                    DataSet dsItemsUbicaciones = new DataSet();

                    DBFunctions.Request(dsItemsUbicaciones, IncludeSchema.NO, "SELECT PUBI.pubi_codigo as codigo_ubicacion,PUBI.pubi_nombre as nombre_ubicacion,PUBI.pubi_ubicespacial as ubicacion_espacial, cast(RTRIM(SUBSTR(pubi_ubicespacial,1,LOCATE('-',pubi_ubicespacial,1)-1)) as integer) as parametro_busqueda, cast(RTRIM(SUBSTR(pubi_ubicespacial,LOCATE('-',pubi_ubicespacial,1)+1,LENGTH(pubi_ubicespacial)-LOCATE('-',pubi_ubicespacial,1)+1)) as integer) as numero_columna,  MUBI.mite_codigo as referencia_original, DBXSCHEMA.EDITARREFERENCIAS(MUBI.mite_codigo,PLIN.plin_tipo) as referencia_modificada " +
                                        "FROM pubicacionitem PUBI INNER JOIN mubicacionitem MUBI ON PUBI.pubi_codigo = MUBI.pubi_codigo INNER JOIN mitems MIT ON MUBI.mite_codigo = MIT.mite_codigo INNER JOIN plineaitem PLIN ON MIT.plin_codigo = PLIN.plin_codigo " +
                                        "WHERE PUBI.pubi_codpad = " + codUbi + " ORDER BY pubi_ubicespacial, PUBI_NOMBRE ;" +
                                        "SELECT pubi_codigo as codigo_ubicacion, pubi_nombre as nombre_ubicacion, cast(RTRIM(SUBSTR(pubi_ubicespacial,1,LOCATE('-',pubi_ubicespacial,1)-1)) as integer) as parametro_filas, cast(RTRIM(SUBSTR(pubi_ubicespacial,LOCATE('-',pubi_ubicespacial,1)+1,LENGTH(pubi_ubicespacial)-LOCATE('-',pubi_ubicespacial,1)+1)) as integer) as numero_columna " +
                                        "FROM pubicacionitem " +
                                        "WHERE pubi_codpad = " + codUbi + " ORDER BY pubi_ubicespacial, PUBI_NOMBRE ;");

                    ArrayList elemFilas = new ArrayList();

                    //Primero debemos agregar la columna que nos indique las filas
                    dtUbicaciones.Columns.Add(new DataColumn("FILAS", System.Type.GetType("System.String")));                           //0

                    //Ahora miramos el numero de columnas que debemos agregar que siempre es el maximo
                    int maxColumns = CalculoDimensionUbiNiv2(codUbi, ref elemFilas);
                    maximoSpan = maxColumns;
                    //dgUbicaciones.Width = maxColumns * pixelesCeldas;
                    lbFilas.Text = elemFilas.Count.ToString();

                    //Creamos la cantidad de columnas que nos indica el maxColumns
                    for (i = 1; i <= maxColumns; i++)
                    {
                        dtUbicaciones.Columns.Add(new DataColumn(i.ToString(), System.Type.GetType("System.String")));                               //i
                    }
                    //Ahora creamos el numero de filas de acuerdo que nos indica elemFilas
                    for (i = 0; i < elemFilas.Count; i++)
                    {
                        DataRow fila = dtUbicaciones.NewRow();
                        //	fila[0] = (dsItemsUbicaciones.Tables[1].Select("parametro_filas="+elemFilas[i].ToString()+""))[0][1].ToString();  // mostar solo titulo de la fila
                        fila[0] = (dsItemsUbicaciones.Tables[1].Select("parametro_filas=" + (elemFilas[i].ToString() + ""))[0][1].ToString().Split('-'))[0];
                        DataRow[] nombrePosiciones = dsItemsUbicaciones.Tables[1].Select("parametro_filas=" + elemFilas[i].ToString() + "");
                        DataRow[] select           = dsItemsUbicaciones.Tables[0].Select("parametro_busqueda=" + elemFilas[i].ToString() + "", "referencia_original asc");

                        for (j = 0; j < nombrePosiciones.Length; j++)
                        {
                            //		fila[Convert.ToInt32(nombrePosiciones[j][3])] = fila[Convert.ToInt32(nombrePosiciones[j][3])].ToString() + "<span style='color: #FF0000'>"+(nombrePosiciones[j][1].ToString().Split('-'))[0]+"</span>  <p><a style='cursor:pointer' onclick=\"__doPostBack('_ctl1$lnkAgregarItem','"+nombrePosiciones[j][0]+"');\">Agregar Item</a></p><p><a style='cursor:pointer' onclick=\"__doPostBack('_ctl1$lnkEliminarUbicacion','"+nombrePosiciones[j][0]+"');\">Eliminar Ubicación</a></p>" + ConstruirHTMLCeldaReferencias(select,Convert.ToInt32(nombrePosiciones[j][3]));
                            fila[Convert.ToInt32(nombrePosiciones[j][3])] = fila[Convert.ToInt32(nombrePosiciones[j][3])].ToString() + "<span style='color: #FF0000'>" + nombrePosiciones[j][1].ToString() + "</span>  <p><a style='cursor:pointer' onclick=\"__doPostBack('_ctl1$lnkAgregarItem','" + nombrePosiciones[j][0] + "');\">Agregar Item</a></p><p><a style='cursor:pointer' onclick=\"__doPostBack('_ctl1$lnkEliminarUbicacion','" + nombrePosiciones[j][0] + "');\">Eliminar Ubicación</a></p>" + ConstruirHTMLCeldaReferencias(select, Convert.ToInt32(nombrePosiciones[j][3]));
                        }

                        #region Código candidato a eliminación
                        //Se consulta que items estan relacionados en a la ubicacion configurada dependiendo de la fila

                        /*if(select.Length > 0)
                         *      fila[Convert.ToInt32((select[0][2].ToString().Split('-'))[1].Trim())] = fila[Convert.ToInt32((select[0][2].ToString().Split('-'))[1].Trim())].ToString()+ ConstruirHTMLCeldaReferencias(select,Convert.ToInt32((select[0][2].ToString().Split('-'))[1].Trim()));*/
                        //Se determina el colspan de las columnas dependiendo de la cantidad de columans especificadas para esa fila
                        #endregion

                        int colspanInst          = maxColumns;
                        int cantidadColumnasFila = maxColumns;

                        try
                        {
                            cantidadColumnasFila = Convert.ToInt32(dsItemsUbicaciones.Tables[1].Compute("MAX(numero_columna)", "parametro_filas=" + elemFilas[i].ToString() + ""));
                            colspanInst          = (int)((double)maxColumns / (double)cantidadColumnasFila);
                        }
                        catch { }

                        DataRow dr = colspan.NewRow();
                        dr[0] = Convert.ToInt32(elemFilas[i]);
                        dr[1] = colspanInst;
                        dr[2] = cantidadColumnasFila;
                        colspan.Rows.Add(dr);

                        //Ahora vamos a determinar el colspan de la columna determinado
                        dtUbicaciones.Rows.Add(fila);
                    }
                }
                #endregion
            }
            break;
            }

            return(colspan);
        }
Esempio n. 5
0
        //Metodo que permite mostrar la información de la ubicación que vamos a configurar.
        protected void PublicarInfoUbicacion(string codUbi)
        {
            int nivel = Ubicacion.DeterminarNivel(codUbi);
            int filas = 0, columnas = 3;

            if (nivel == 1)
            {
                filas = 2;
            }
            else if (nivel == 2)
            {
                filas = 4;
            }

            for (int i = 0; i < filas; i++)
            {
                TableRow tr = new TableRow();

                for (int j = 0; j < columnas; j++)
                {
                    TableCell tc = new TableCell();

                    if (i == 0 && j == 0)
                    {
                        tc.ColumnSpan = 3;
                        tc.ForeColor  = Color.RoyalBlue;
                        tc.Text       = "INFORMACIÓN DE LA BODEGA :";
                    }

                    if (i == 1 && j == 0)
                    {
                        if (nivel == 1)
                        {
                            tc.Text = "Código Ubicación : " + codUbi;
                        }
                        else if (nivel == 2)
                        {
                            tc.Text = "Código Ubicación : " + DBFunctions.SingleData("SELECT pubi_codigo FROM pubicacionitem WHERE pubi_codigo=(SELECT pubi_codpad FROM pubicacionitem WHERE pubi_codigo=" + codUbi + ")");
                        }
                    }

                    if (i == 1 && j == 1)
                    {
                        if (nivel == 1)
                        {
                            tc.Text = "Nombre Ubicación : " + DBFunctions.SingleData("SELECT pubi_nombre FROM pubicacionitem WHERE pubi_codigo=" + codUbi + "");
                        }
                        else if (nivel == 2)
                        {
                            tc.Text = "Código Ubicación : " + DBFunctions.SingleData("SELECT pubi_nombre FROM pubicacionitem WHERE pubi_codigo=(SELECT pubi_codpad FROM pubicacionitem WHERE pubi_codigo=" + codUbi + ")");
                        }
                    }

                    if (i == 1 && j == 2)
                    {
                        if (nivel == 1)
                        {
                            tc.Text = "Almacen Relacionado : " + DBFunctions.SingleData("SELECT palm_descripcion FROM palmacen WHERE tvig_vigencia='V' and palm_almacen=(SELECT palm_almacen FROM pubicacionitem WHERE pubi_codigo=" + codUbi + ")");
                        }
                        else if (nivel == 2)
                        {
                            tc.Text = "Almacen Relacionado : " + DBFunctions.SingleData("SELECT palm_descripcion FROM palmacen WHERE tvig_vigencia='V' and palm_almacen=(SELECT palm_almacen FROM pubicacionitem WHERE pubi_codigo=(SELECT pubi_codpad FROM pubicacionitem WHERE pubi_codigo=" + codUbi + "))");
                        }
                    }

                    if (i == 2 && j == 0)
                    {
                        tc.ColumnSpan = 3;
                        tc.ForeColor  = Color.RoyalBlue;
                        tc.Text       = "INFORMACIÓN DEL ESTANTE :";
                    }

                    if (i == 3 && j == 0)
                    {
                        tc.Text = "Código Ubicación : " + codUbi;
                    }

                    if (i == 3 && j == 1)
                    {
                        tc.Text = "Nombre Ubicación : " + DBFunctions.SingleData("SELECT pubi_nombre FROM pubicacionitem WHERE pubi_codigo=" + codUbi + "");
                    }

                    if (i == 3 && j == 2)
                    {
                        tc.Text = "Ubicación Espacial : " + DBFunctions.SingleData("SELECT pubi_ubicespacial FROM pubicacionitem WHERE pubi_codigo=" + codUbi + "");
                    }

                    tr.Cells.Add(tc);
                }
                if (itemubicacion != "")
                {
                    tbCodigoItem.Text = itemubicacion;
                    btnVolver.Visible = false;
                    btnretubi.Visible = true;
                }

                tblInfo.Rows.Add(tr);
            }
        }