public static Compra Insert(Compra purchase, SqlTransaction transaction) { var param = new List<SPParameter> { new SPParameter("ID_Publicacion", (purchase.Publicacion != null) ? purchase.Publicacion.ID : purchase.IdPublicacion), new SPParameter("ID_Usuario", (purchase.Usuario != null) ? purchase.Usuario.ID : purchase.IdUsuario), new SPParameter("Compra_Fecha", purchase.Fecha), new SPParameter("Compra_Cantidad", purchase.Cantidad) }; var sp = (transaction != null) ? new StoreProcedure(DataBaseConst.Compra.SPInsertPurchase, param, transaction) : new StoreProcedure(DataBaseConst.Compra.SPInsertPurchase, param); purchase.ID = (int)sp.ExecuteScalar(transaction); return purchase; }
private void LblComprar_Click(object sender, EventArgs e) { try { if (SessionManager.CurrentRol.Descripcion == "Administrador General") throw new Exception("Siendo un administrador no puede comprar ni ofertar"); List<PublicacionNotCalified> publications = CalificacionPersistance.GetAllPubicacionNotCalified(SessionManager.CurrentUser); if (publications.Count > 5) throw new Exception("Tiene demasiadas compras sin calificar, por favor califíquelas para poder realizar una compra"); //Valido que ingrese una cantidad válida (mayor a 0 y menor que el stock) if (txtCantidad.Text == "" || Int32.Parse(txtCantidad.Text) < 0 || Int32.Parse(txtCantidad.Text) > Int32.Parse(lblStock.Text)) throw new Exception("Ingrese una cantidad válida (mayor a 0 y menor que el stock actual)"); //Creo la nueva compra y la inserto Compra newPurchase = new Compra(); newPurchase.Usuario = SessionManager.CurrentUser; newPurchase.Publicacion = CurrentPublication; newPurchase.Fecha = ConfigurationVariables.FechaSistema; newPurchase.Cantidad = Int32.Parse(txtCantidad.Text); newPurchase = CompraPersistance.Insert(newPurchase, null); //Resto el stock de la publicación CurrentPublication.Stock = CurrentPublication.Stock - newPurchase.Cantidad; if (CurrentPublication.Stock == 0) CurrentPublication.EstadoPublicacion = EstadoPublicacionPersistance.GetById(4); //finalizada PublicacionPersistance.Update(CurrentPublication); //Le muestro al usuario los datos del vendedor var frmDatosVendedor = new FrmDatosVendedor(CurrentPublication.UsuarioCreador); frmDatosVendedor.ShowDialog(); RefreshSources(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void UpdateFinishedAuctions() { List<Publicacion> list = PublicacionPersistance.GetFinishedAuctions(); foreach(Publicacion publication in list) { Oferta lastOffer = OfertaPersistance.GetLastOfertaByPublication(publication.ID); //Si tuvo al menos una oferta, genero la nueva compra correspondiente a esta subasta if (lastOffer != null) { var purchase = new Compra(); purchase.IdPublicacion = publication.ID; purchase.IdUsuario = lastOffer.IdUsuario; purchase.Fecha = lastOffer.Fecha; purchase.Cantidad = 1; CompraPersistance.Insert(purchase, null); } //Finalizo la publicacion publication.EstadoPublicacion = EstadoPublicacionPersistance.GetById(4); //finalizada PublicacionPersistance.Update(publication); } }