Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #4
0
        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());
                    }
                }
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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();
            }
        }