Esempio n. 1
0
        protected void cmbProveedor_TextChanged(object sender, EventArgs e)
        {
            Session.Remove("CurrentProvider");
            Session.Remove("Provider");
            int idprovider = int.Parse(cmbProveedor.SelectedValue.ToString());

            Data2.Class.Struct_Supplier S = new Struct_Supplier(Conversion.ObtenerLocal(UserId), idprovider);
            Session.Add("Provider", S);
            List <Struct_Producto> SP = Struct_Producto.SearchProducto(Conversion.ObtenerLocal(UserId), "%%%%", Data2.Connection.D_Articles.SearchCondition.PorDescripcion, idprovider);

            if (SP != null && SP.Count > 0)
            {
                Session.Add("CurrentProvider", SP);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Agrega una nueva fila en caso de que no haya nada en la tabla
        /// </summary>
        /// <param name="cantDEC">Cantidad a ingresar en DECIMAL</param>
        /// <param name="cantINT">Cantidad a ingresar en ENTERO</param>
        /// <param name="idL">ID de Usuario/Local</param>
        /// <param name="ids">Array de entero de los ids de stock y tratamiento</param>
        /// <param name="SP">Objeto Struct_Producto. Se sacan varias propiedades de ahí</param>
        void crearNuevaFilaStock(
            decimal cantDEC,
            int cantINT,
            int idL,
            int[] ids,
            Struct_Producto SP,
            bool isdecimal)
        {
            //Se fija que unidad se debe usar para ingresar datos
            if (isdecimal == true)
            {
                //Se instancia un objeto con el constructor que ingresa los datos en la tabla
                Struct_ConsumoLocalStock StructCLS =
                    new Struct_ConsumoLocalStock(idL,
                                                 ids[0],
                                                 0,
                                                 cantDEC,
                                                 ids[1]);

                //Se actualiza la cantidad del artículo en la tabla de Artículos
                SP.UpdateStock((SP.CantidadDEC - cantDEC).ToString());

                Response.Redirect(DotNetNuke.Common.Globals.NavigateURL());
            }
            //Si es que no se usa la unidad ENTERA...
            else
            {
                Struct_ConsumoLocalStock StructCLS =
                    new Struct_ConsumoLocalStock(
                        idL,
                        ids[0],
                        cantINT,
                        0,
                        ids[1]);

                SP.UpdateStock((SP.CantidadINT - cantINT).ToString());

                Response.Redirect(DotNetNuke.Common.Globals.NavigateURL());
            }
        }
Esempio n. 3
0
        /// <summary>
        /// En vez de agregar una nueva fila, se actualiza la cantidad que tiene un stock previamente asociado
        /// </summary>
        /// <param name="cantDEC">Cantidad a añadir en DECIMAL</param>
        /// <param name="cantINT">Cantidad a añadir en ENTERO</param>
        /// <param name="idL">ID de Usuario/Local</param>
        /// <param name="ids">Array de entero de los ids de stock y tratamiento</param>
        /// <param name="SCLS">Objeto Struct_ConsumoLocalStock. Se sacan varias propiedades para proceder</param>
        /// <param name="SP">Objeto Struct_Producto. Se sacan varias propiedades para proceder</param>
        void acumularStock(decimal cantDEC,
                           int cantINT,
                           int idL,
                           int[] ids,
                           Struct_ConsumoLocalStock SCLS,
                           Struct_Producto SP)
        {
            //Se fija que unidad usa el objeto Struct_ConsumoLocalStock
            if (SCLS.cantINT == 0)
            {
                //Actualiza la cantidad de stock en la tabla StockTratamiento
                Struct_ConsumoLocalStock.updateStockTratamientoCantidad(
                    idL,
                    ids[0],
                    ids[1],
                    0,
                    (SCLS.cantDEC + cantDEC));
                //Actualiza la cantidad de stock en la tabla Artículos
                SP.UpdateStock((SP.CantidadDEC - cantDEC).ToString());

                Response.Redirect(DotNetNuke.Common.Globals.NavigateURL());
            }
            //Si no se usa la cantidad en ENTERO...
            else
            {
                Struct_ConsumoLocalStock.updateStockTratamientoCantidad(
                    idL,
                    ids[0],
                    ids[1],
                    (SCLS.cantINT + cantINT),
                    0);
                SP.UpdateStock((SP.CantidadINT - cantINT).ToString());

                Response.Redirect(DotNetNuke.Common.Globals.NavigateURL());
            }
        }
Esempio n. 4
0
        void BuildStatics()
        {
            List <Struct_DetalleFactura> MyProds    = new List <Struct_DetalleFactura>();
            List <SubMateriasPrimas>     SubMatPrim = new List <SubMateriasPrimas>();

            MyProds.Clear();
            SubMatPrim.Clear();

            ListOfProducts.Controls.Clear();
            ListOfMateriasPrimas.Controls.Clear();


            if (Session[sessionkey] != null)
            {
                List <Data2.Class.Struct_Factura> _LF = Session[sessionkey] as List <Data2.Class.Struct_Factura>;
                for (int FACTURAS = 0; FACTURAS < _LF.Count; FACTURAS++)
                {
                    Struct_Factura F = _LF[FACTURAS];
                    if (F.GetDetalle() != null && F.GetDetalle().Count > 0)
                    {
                        for (int DFC = 0; DFC < F.GetDetalle().Count; DFC++)
                        {
                            Struct_DetalleFactura DF = F.GetDetalle()[DFC];
                            bool coincidenceMat      = false;
                            for (int SBMC = 0; SBMC < SubMatPrim.Count; SBMC++)
                            {
                                SubMateriasPrimas SMP = SubMatPrim[SBMC];
                                if (DF.PRODUCTO.MateriaPrima == SMP.IdMateriaPrima)
                                {
                                    if (DF.isdec == true)
                                    {
                                        SMP.CANTDEC = SMP.CANTDEC + DF.DETALLEDEC;
                                    }
                                    else
                                    {
                                        SMP.CANTINT = SMP.CANTINT + DF.DETALLEINT;
                                    }
                                    coincidenceMat = true;
                                    break;
                                }
                            }
                            if (coincidenceMat == false)
                            {
                                SubMateriasPrimas NSMP = new SubMateriasPrimas();
                                NSMP.IdMateriaPrima = DF.PRODUCTO.MateriaPrima;
                                NSMP.CANTDEC        = DF.DETALLEDEC;
                                NSMP.CANTINT        = DF.DETALLEINT;
                                NSMP.isdec          = DF.isdec;
                                SubMatPrim.Add(NSMP);
                            }
                        }


                        for (int DFC = 0; DFC < F.GetDetalle().Count; DFC++)
                        {
                            Struct_DetalleFactura DF = F.GetDetalle()[DFC];
                            bool coincidenceProd     = false;
                            for (int UDFC = 0; UDFC < MyProds.Count; UDFC++)
                            {
                                Struct_DetalleFactura UDF = MyProds[UDFC];
                                if (DF.PRODUCTO.Id == UDF.PRODUCTO.Id)
                                {
                                    if (UDF.isdec == true)
                                    {
                                        decimal cant = DF.DETALLEDEC + UDF.DETALLEDEC;
                                        UDF.set_cant(cant.ToString());
                                    }
                                    else
                                    {
                                        int cant = DF.DETALLEINT + UDF.DETALLEINT;
                                        UDF.set_cant(cant.ToString());
                                    }
                                    coincidenceProd = true;
                                    break;
                                }
                            }
                            if (coincidenceProd == false)
                            {
                                MyProds.Add(DF.Clone() as Struct_DetalleFactura);
                            }
                        }
                    }
                }
            }

            int max = 0;

            if (MyProds != null && MyProds.Count > 0)
            {
                for (int a = 0; a < MyProds.Count; a++)
                {
                    int newval = 0;
                    if (MyProds[a].isdec == true)
                    {
                        newval = decimal.ToInt32(MyProds[a].DETALLEDEC) + 1;
                    }
                    else
                    {
                        newval = MyProds[a].DETALLEINT + 1;
                    }

                    if (max <= newval)
                    {
                        max = newval;
                    }
                }
            }

            Random R = new Random(DateTime.Now.Millisecond);



            if (MyProds != null && MyProds.Count > 0)
            {
                decimal            total            = 0;
                HtmlGenericControl headerDiv        = new HtmlGenericControl("div");
                HtmlGenericControl DescHeader       = new HtmlGenericControl("span");
                HtmlGenericControl CantHeader       = new HtmlGenericControl("span");
                HtmlGenericControl TotalVentaheader = new HtmlGenericControl("span");
                DescHeader.Attributes.Add("style", "width:200px;background-color:#EEEEEE;text-align:center;display:inline-block;font;font-weight:bolder");
                CantHeader.Attributes.Add("style", "width:100px;background-color:#EEEEEE;text-align:center;display:inline-block;font-weight:bolder");
                TotalVentaheader.Attributes.Add("style", "width:100px;background-color:#EEEEEE;text-align:center;display:inline-block;font-weight:bolder");

                DescHeader.InnerText       = "Detalle";
                CantHeader.InnerText       = "Cantidad";
                TotalVentaheader.InnerText = "Total";

                headerDiv.Controls.Add(DescHeader);
                headerDiv.Controls.Add(CantHeader);
                headerDiv.Controls.Add(TotalVentaheader);
                ListOfProducts.Controls.Add(headerDiv);

                for (int a = 0; a < MyProds.Count; a++)
                {
                    HtmlGenericControl StaticContainer     = new HtmlGenericControl("div");
                    HtmlGenericControl DescContainer       = new HtmlGenericControl("span");
                    HtmlGenericControl CantContainer       = new HtmlGenericControl("span");
                    HtmlGenericControl TotalVentaContainer = new HtmlGenericControl("span");
                    HtmlGenericControl Bar = new HtmlGenericControl("div");



                    string colorvalue = "#" + R.Next(10, 250).ToString("X2");
                    colorvalue += R.Next(10, 250).ToString("X2");
                    colorvalue += R.Next(10, 250).ToString("X2");



                    DescContainer.Attributes.Add("style", "width:200px;background-color:#EEEEEE;display:inline-block");
                    CantContainer.Attributes.Add("style", "width:100px;background-color:#EEEEEE;text-align:right;display:inline-block");
                    TotalVentaContainer.Attributes.Add("style", "width:100px;background-color:#EEEEEE;text-align:right;display:inline-block");
                    if (Struct_Producto.Get_SingleArticle(UserId, MyProds[a].PRODUCTO.MateriaPrima) != null)
                    {
                        DescContainer.InnerText = MyProds[a].PRODUCTO.Descripcion + "(" + Struct_Producto.Get_SingleArticle(UserId, MyProds[a].PRODUCTO.MateriaPrima).Descripcion + ")";
                    }
                    else
                    {
                        DescContainer.InnerText = MyProds[a].PRODUCTO.Descripcion;
                    }

                    int cant = 0;
                    if (MyProds[a].isdec == true)
                    {
                        CantContainer.InnerText = MyProds[a].DETALLEDEC.ToString("#.000");
                        cant = decimal.ToInt32(MyProds[a].DETALLEDEC);
                    }
                    else
                    {
                        CantContainer.InnerText = MyProds[a].DETALLEINT.ToString("#.000");
                        cant = MyProds[a].DETALLEINT;
                    }

                    int newvalpix = (cant * 400) / max;

                    Bar.Attributes.Add("style", "width:" + newvalpix.ToString() + "px;background-color:" + colorvalue + ";height:10px");



                    TotalVentaContainer.InnerText = "$" + MyProds[a].getTotalConIva().ToString("#.00");
                    total = total + MyProds[a].getTotalConIva();
                    StaticContainer.Controls.Add(DescContainer);
                    StaticContainer.Controls.Add(CantContainer);
                    StaticContainer.Controls.Add(TotalVentaContainer);
                    ListOfProducts.Controls.Add(StaticContainer);
                    ListOfProducts.Controls.Add(Bar);
                }
                HtmlGenericControl DivTotal = new HtmlGenericControl("div");
                DivTotal.InnerText = "Total: $" + total.ToString("#.00");
                ListOfProducts.Controls.Add(DivTotal);
            }
            if (SubMatPrim != null && SubMatPrim.Count > 0)
            {
                for (int a = 0; a < SubMatPrim.Count; a++)
                {
                    if (SubMatPrim[a].IdMateriaPrima != 0)
                    {
                        Struct_Producto Product = Struct_Producto.Get_SingleArticle(UserId, SubMatPrim[a].IdMateriaPrima);
                        if (Product != null)
                        {
                            HtmlGenericControl MatPrimContainer = new HtmlGenericControl("div");
                            HtmlGenericControl DescMatPrim      = new HtmlGenericControl("span");
                            HtmlGenericControl CantMatPrim      = new HtmlGenericControl("span");
                            DescMatPrim.Attributes.Add("style", "width:200px;background-color:#EEEEEE;display:inline-block");
                            CantMatPrim.Attributes.Add("style", "width:100px;background-color:#EEEEEE;display:inline-block");

                            DescMatPrim.InnerText = Product.Descripcion;
                            if (SubMatPrim[a].isdec == true)
                            {
                                CantMatPrim.InnerText = SubMatPrim[a].CANTDEC.ToString("#.00");
                            }
                            else
                            {
                                CantMatPrim.InnerText = SubMatPrim[a].CANTDEC.ToString("#.00");
                            }
                            MatPrimContainer.Controls.Add(DescMatPrim);
                            MatPrimContainer.Controls.Add(CantMatPrim);
                            ListOfMateriasPrimas.Controls.Add(MatPrimContainer);
                        }
                    }
                }
            }
        }
Esempio n. 5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string busqueda = "%";
            string json     = "";


            if (Request["buscarT"] != null)  //Busqueda de TRATAMIENTO
            {
                busqueda = Request["buscarT"].ToString();
                List <Struct_Treatment> resultado = Data2.Class.Struct_Treatment.SearchTreatment(
                    int.Parse(Request["id"].ToString()),
                    busqueda);
                if (resultado != null && resultado.Count > 0)
                {
                    json = new JavaScriptSerializer().Serialize(resultado);
                }
            }


            if (Request["buscarP"] != null)     //Busqueda de PRODUCTO
            {
                busqueda = Request["buscarP"].ToString();
                List <Struct_Producto> resultado = Struct_Producto.SearchProducto(
                    int.Parse(Request["id"]),
                    busqueda,
                    Data2.Connection.D_Articles.SearchCondition.PorDescripcion,
                    -1);

                if (resultado != null && resultado.Count > 0)
                {
                    json = new JavaScriptSerializer().Serialize(resultado);
                }
            }

            if (Request["buscarST"] != null)    //Busqueda de STOCKTRATAMIENTO
            {
                int idTratamiento = int.Parse(Request["buscarST"]);

                List <Struct_ConsumoLocalStock> LSCLS =
                    Struct_ConsumoLocalStock.getStockTratamientoByIdTratamiento(
                        int.Parse(Request["id"]),
                        idTratamiento);

                List <StockTratamiento> LST = new List <StockTratamiento>();
                if (LSCLS != null)
                {
                    foreach (Struct_ConsumoLocalStock a in LSCLS)
                    {
                        StockTratamiento ST = new StockTratamiento();
                        ST.stock = Struct_Producto.Get_SingleArticle(
                            int.Parse(Request["id"]),
                            a.idArticulo);
                        ST.cantidadDECTratamiento = a.cantDEC;
                        ST.cantidadINTTratamiento = a.cantINT;
                        ST.idTratamientoAsociado  = a.idTratamiento;
                        LST.Add(ST);
                    }
                    if (LST != null && LST.Count > 0)
                    {
                        json = new JavaScriptSerializer().Serialize(LST);
                    }
                }
                else
                {
                    json = "Lista vacía";
                }
            }

            if (Request["fechas"] != null)
            {
                string[] fechasRaw = Request["fechas"].Split('*');

                DateTime[] fechas = new DateTime[] { DateTime.Parse(fechasRaw[0]), DateTime.Parse(fechasRaw[1]) };

                List <Struct_StockTratamientoConsumido> LSSTC =
                    Struct_StockTratamientoConsumido.getStockConsumidoByDates(
                        int.Parse(Request["id"]),
                        fechas[0].Date,
                        fechas[1].Date);

                List <StockTratamiento> LST = new List <StockTratamiento>();

                foreach (Struct_StockTratamientoConsumido a in LSSTC)
                {
                    StockTratamiento ST = new StockTratamiento();

                    ST.stock = Struct_Producto.Get_SingleArticle(
                        int.Parse(Request["id"]),
                        a.idArticulo);
                    ST.tratamiento            = Struct_Treatment.GetTreatmentById(a.idArticulo);
                    ST.cantidadDECTratamiento = a.cantDEC;
                    ST.cantidadINTTratamiento = a.cantINT;
                    ST.fechaConsumida         = convertFechaJSON(a.fechaJSON);



                    LST.Add(ST);

                    //NECESITO: nombre stock / / nombre tratamiento / / cantidad consumida / / fecha de consumicion / /
                }

                if (LSSTC.Count > 0 && LSSTC != null)
                {
                    json = new JavaScriptSerializer().Serialize(LST);
                }
            }

            /*if (Request["fechas"] != null)
             * {
             *  string[] fechasRaw = Request["fechas"].Split('*');
             *
             *  DateTime[] fechas = new DateTime[] { DateTime.Parse(fechasRaw[0]), DateTime.Parse(fechasRaw[1]) };
             *  List<Struct_StockTratamientoConsumido> LSSTC =
             *      Struct_StockTratamientoConsumido.getStockConsumidoByDates(
             *          int.Parse(Request["id"]),
             *          fechas[0].Date,
             *          fechas[1].Date);
             *
             *  if (LSSTC.Count > 0 && LSSTC != null)
             *  {
             *      json = new JavaScriptSerializer().Serialize(LSSTC);
             *  }
             *
             * }*/



            Response.Clear();
            Response.ClearHeaders();
            Response.Write(json);
            Response.Flush();
            Response.End();
        }
Esempio n. 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            url.Value = DotNetNuke.Common.Globals.NavigateURL();     //URL de la página pasado al .ascx
            int idL = Data2.Statics.Conversion.ObtenerLocal(UserId); //Obtiene el ID del Usuario logueado

            id.Value = idL.ToString();                               //ID del Usuario pasado al .ascx

            //Se fija los parámetros de la URL para comenzar para marcar como CONSUMIDO



            //Se fija los parámetros de la URL para comenzar para AGREGAR
            if (Request["ids"] != null)
            {
                //Como existe el parámetro, agrega los id necesarios a un array de string
                string[] idsRaw = Request["ids"].Split('*'); //ids[0] = "IdStock"; ids[1] = stock
                                                             //ids[2] = "IdTratamiento"; ids[3] = tratamiento

                int[] ids = new int[2];                      //Crea un array de ENTEROS para reemplazar al array de strings
                //ASIGNA los valores del idsRaw al nuevo array
                ids[0] = int.Parse(idsRaw[1]);
                ids[1] = int.Parse(idsRaw[3]);

                //Crea las cantidades (entera y decimal) y el bool
                decimal         cantDEC   = 0;
                int             cantINT   = 0;
                bool            isdecimal = false;
                Struct_Producto SP; //Instancia objeto Producto (va a contener todas las propiedades
                                    //que se van a usar)


                //Se asignan las cantidades dependiendo si el parámetro existe o no
                if (Request["cantDEC"] != null)
                {
                    cantDEC   = decimal.Parse(Request["cantDEC"]);
                    isdecimal = true;
                }
                else
                {
                    cantINT   = int.Parse(Request["cantINT"]);
                    isdecimal = false;
                }

                //Se llena el objeto por los parámetros que se asignan en el View.ascx
                SP = Struct_Producto.Get_SingleArticle(idL, ids[0]);

                //Se llena una lista con las filas de la tabla StockTratamiento
                List <Struct_ConsumoLocalStock> LSCLS =
                    Struct_ConsumoLocalStock.getStockTratamientoByIdTratamiento(
                        idL,
                        ids[1]);

                bool coincidencia = false;

                //Si la lista es null
                if (LSCLS != null)
                {
                    foreach (Struct_ConsumoLocalStock SCLS in LSCLS)
                    {
                        if (SCLS.idArticulo == ids[0] &&
                            SCLS.idUser == idL &&
                            SCLS.idTratamiento == ids[1])
                        {
                            coincidencia = true;
                            acumularStock(cantDEC, cantINT, idL, ids, SCLS, SP);
                            break;
                        }
                    }
                    if (coincidencia == false)
                    {
                        crearNuevaFilaStock(cantDEC, cantINT, idL, ids, SP, isdecimal);
                    }
                }
                else
                {
                    crearNuevaFilaStock(cantDEC, cantINT, idL, ids, SP, isdecimal);
                }
            }
            //Se fija los parámetros de la URL para comenzar para marcar como CONSUMIDO
            if (Request["consumirStock"] != null)
            {
                int consumirStock = int.Parse(Request["consumirStock"]);
                int idTratamiento = int.Parse(Request["idT"]);

                //Crea las cantidades (entera y decimal) y el bool
                decimal cantDEC   = 0;
                int     cantINT   = 0;
                bool    isdecimal = false;

                //Se asignan las cantidades dependiendo si el parámetro existe o no
                if (Request["cantDEC"] != null)
                {
                    cantDEC   = decimal.Parse(Request["cantStockDEC"]);
                    isdecimal = true;
                }
                else
                {
                    cantINT   = int.Parse(Request["cantStockINT"]);
                    isdecimal = false;
                }



                Struct_ConsumoLocalStock SCLS =
                    Struct_ConsumoLocalStock.getSpecificStockTratamiento(
                        idL,
                        consumirStock,
                        idTratamiento);

                Data2.Statics.Log.ADD(SCLS.idArticulo.ToString(), this);
                Data2.Statics.Log.ADD(SCLS.idTratamiento.ToString(), this);

                if (SCLS != null)
                {
                    insertStockConsumido(idL, consumirStock, cantINT, cantDEC, idTratamiento, isdecimal);
                    if (SCLS.cantDEC - cantDEC == 0 && SCLS.cantINT - cantINT == 0)
                    {
                        eliminarFilaStockTratamiento(SCLS.idStockTratamiento);
                    }
                    else
                    {
                        restarCantStockTratamiento(
                            idL,
                            consumirStock,
                            idTratamiento,
                            cantINT,
                            cantDEC,
                            isdecimal,
                            SCLS);
                    }
                    Response.Redirect(DotNetNuke.Common.Globals.NavigateURL());
                }
                //else = NO SE puede realizar la operación ya que no existe ningún objeto desde donde mover
            }


            try
            {
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }