public static List <StockTienda> GetStockTiendasLineaCarrito(string idLineaCarrito) { DataSet dsStockTiendasLineaCarrito; SqlCommand myCommand; SqlDataAdapter adapter; SqlConnection myConnection; List <StockTienda> listadoStockTiendas = new List <StockTienda>(); string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MC_TDAConnectionString"].ToString(); string sql = "SELECT Stock,IdTienda FROM AVE_CARRITO_STOCK WHERE IdLineaCarrito = " + idLineaCarrito; myConnection = new SqlConnection(connectionString); myConnection.Open(); myCommand = new SqlCommand(sql, myConnection); adapter = new SqlDataAdapter(myCommand); dsStockTiendasLineaCarrito = new DataSet(); adapter.Fill(dsStockTiendasLineaCarrito); myConnection.Close(); foreach (DataRow row in dsStockTiendasLineaCarrito.Tables[0].Rows) { StockTienda stock = new StockTienda(); stock.stock = Convert.ToInt32(row["Stock"].ToString()); stock.tienda = row["IdTienda"].ToString(); listadoStockTiendas.Add(stock); } return(listadoStockTiendas); }
private static bool StockEnTiendas(string referencia, string talla, string idTienda, string idLineaCarrito, ref Dictionary <string, int> stockSolicitado) { bool hayStock = false; string keyArticuloTienda = string.Empty; List <StockTienda> stockTiendasLineaCarrito = new List <StockTienda>(); stockTiendasLineaCarrito = StockTiendaDAL.GetStockTiendasLineaCarrito(idLineaCarrito); if (!string.IsNullOrEmpty(idTienda)) { keyArticuloTienda = string.Format(KEY_ARTICULO_FORMAT, referencia, talla, idTienda); StockTienda stockTiendaLineaCarrito = stockTiendasLineaCarrito.FirstOrDefault(t => t.tienda == idTienda); hayStock = ValidarStockEnTienda(keyArticuloTienda, stockTiendaLineaCarrito, ref stockSolicitado); } else { foreach (StockTienda stockTiendaLineaCarrito in stockTiendasLineaCarrito) { keyArticuloTienda = string.Format(KEY_ARTICULO_FORMAT, referencia, talla, stockTiendaLineaCarrito.tienda); hayStock = ValidarStockEnTienda(keyArticuloTienda, stockTiendaLineaCarrito, ref stockSolicitado); if (hayStock) { break; } } } return(hayStock); }
private void btnRegistrar_Click(object sender, EventArgs e) { if (txtCodigo.Text == "") { StockTienda c = new StockTienda(); c.FechaIngresoTienda = dtpFechaIngreso.Value; //c.idCliente = codigoClienteSeleccionado; c.idUsuario = idUsuario; if (radActivo.Enabled == true) { c.Estado = true; } else if (radInactivo.Enabled == true) { c.Estado = false; } foreach (DataGridViewRow row in dgvDetalleStock.Rows) { DetalleStockTienda de = new DetalleStockTienda(); DetalleStockTienda dStockFinal = StockTiendaNEG.Instancia().ObtenerStockActual(Convert.ToInt32(row.Cells["idArticulo"].Value)); de.idArticulo = Convert.ToInt32(row.Cells["idArticulo"].Value); DetalleIngresoAlmacen dPrecioActual = DetalleIngresoNEG.Instancia().obtenerPrecioVenta(de.idArticulo); int cantidad = Convert.ToInt32(row.Cells["cantidad"].Value); de.idDetalleIngresoAlmacen = dPrecioActual.idDetalleIngresoAlmacen; de.StockInicial = Convert.ToInt32(row.Cells["cantidad"].Value); de.StockFinal = Convert.ToInt32(row.Cells["cantidad"].Value) + dStockFinal.StockFinal; VentaNEG.Instancia().reducirStock(de.idArticulo, cantidad); c.Lineas.Add(de); } StockTiendaNEG.RegistrarIngresoTienda(c); MessageBox.Show("El ingreso de Stock a Tienda fue exitoso."); this.Dispose(); } else { if (radInactivo.Checked == true) { } this.Dispose(); } }
public static void Create(StockTienda c) { using (SqlConnection con = Conexion.Instancia().conectar()) { con.Open(); SqlCommand cmd = new SqlCommand("SP_IngresoTienda_Insertar", con); cmd.CommandType = CommandType.StoredProcedure; { cmd.Parameters.AddWithValue("FechaIngresoTienda", c.FechaIngresoTienda); cmd.Parameters.AddWithValue("idUsuario", c.idUsuario); cmd.Parameters.AddWithValue("Estado", c.Estado); c.idStockTienda = Convert.ToInt32(cmd.ExecuteScalar()); } //SqlCommand cmd2 = new SqlCommand("DetalleComprobante_Insertar_PA", con); //cmd.CommandType = CommandType.StoredProcedure; string sqlLineaFactura = "INSERT INTO DetalleStockTienda(idStockTienda, idArticulo , idDetalleIngresoAlmacen, StockInicial, StockFinal) VALUES (@idStockTienda, @idArticulo , @idDetalleIngresoAlmacen, @StockInicial, @StockFinal) SELECT SCOPE_IDENTITY()"; using (SqlCommand cmd2 = new SqlCommand(sqlLineaFactura, con)) { foreach (DetalleStockTienda d in c.Lineas) { // // como se reutiliza el mismo objeto SqlCommand es necesario limpiar los parametros // de la operacion previa, sino estos se iran agregando en la coleccion, generando un fallo // cmd2.Parameters.Clear(); cmd2.Parameters.AddWithValue("idStockTienda", c.idStockTienda); cmd2.Parameters.AddWithValue("idArticulo", d.idArticulo); cmd2.Parameters.AddWithValue("idDetalleIngresoAlmacen", d.idDetalleIngresoAlmacen); cmd2.Parameters.AddWithValue("StockInicial", d.StockInicial); cmd2.Parameters.AddWithValue("StockFinal", d.StockFinal); // // Si bien obtenermos el id de linea de factura, este no es usado // en la aplicacion // d.idDetalleStockTienda = Convert.ToInt32(cmd2.ExecuteScalar()); } } } }
private static bool ValidarStockEnTienda(string keyArticuloTienda, StockTienda stockTiendaLineaCarrito, ref Dictionary <string, int> stockSolicitado) { bool hayStock = false; if (stockTiendaLineaCarrito != null && !stockSolicitado.ContainsKey(keyArticuloTienda)) { /// Hay stock en la tienda pero aun no se ha solicitado nada. if (stockTiendaLineaCarrito.stock > 0) { hayStock = true; } else { hayStock = false; } } else if (stockTiendaLineaCarrito != null && stockSolicitado.ContainsKey(keyArticuloTienda) && stockSolicitado[keyArticuloTienda] < stockTiendaLineaCarrito.stock) { /// Hay stock en la tienda se ha solicitado stock y aun no lo superamos. hayStock = true; } else { ///O no hay stock en la tienda o se ha rebasado el stock solicitado hayStock = false; } /// Insertamos o actualizamos stock solicitado por referecia, talla y tienda. if (hayStock) { if (stockSolicitado.ContainsKey(keyArticuloTienda)) { stockSolicitado[keyArticuloTienda]++; } else { stockSolicitado.Add(keyArticuloTienda, 1); } } return(hayStock); }
public static void RegistrarIngresoTienda(StockTienda c) { // // inicializo la transacciones // using (TransactionScope scope = new TransactionScope()) { // // Creo la factura y sus lineas // StockTiendaDAO.Create(c); // // Actualizo el total // //InvoiceDAL.UpdateTotal(invoice.InvoiceId, invoice.Total); scope.Complete(); } }