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); } }
/// <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()); } }
/// <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()); } }
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); } } } } }
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(); }
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); } }