private void LblBuscar_Click(object sender, EventArgs e) { try { #region Validations var filtersSetted = false; var exceptionMessage = string.Empty; if (!TypesHelper.IsEmpty(TxtDescripcion.Text)) { filtersSetted = true; } if (!TypesHelper.IsEmpty(TxtStock.Text)) { filtersSetted = true; if (!TypesHelper.IsNumeric(TxtStock.Text)) { exceptionMessage += Environment.NewLine + "El stock de la publicacion debe ser numérico."; } } if (!TypesHelper.IsEmpty(TxtPrecio.Text)) { filtersSetted = true; if (!TypesHelper.IsDecimal(TxtPrecio.Text)) { exceptionMessage += Environment.NewLine + "El precio de la publicacion debe ser decimal (o numérico)."; } } if (!TypesHelper.IsEmpty(CboEstadoPublicacion.Text)) { filtersSetted = true; } if (!TypesHelper.IsEmpty(CboVisibilidad.Text)) { filtersSetted = true; } if (!TypesHelper.IsEmpty(CboTipoPublicacion.Text)) { filtersSetted = true; } if (!filtersSetted) { exceptionMessage = "No se puede realizar la busqueda ya que no se informó ningún filtro"; } if (!TypesHelper.IsEmpty(exceptionMessage)) { throw new Exception(exceptionMessage); } #endregion //Armo el objeto que representa a los filtros var filters = new PublicacionFilters { IdUsuario = SessionManager.CurrentUser.ID, Descripcion = (!TypesHelper.IsEmpty(TxtDescripcion.Text)) ? TxtDescripcion.Text : null, Stock = (!TypesHelper.IsEmpty(TxtStock.Text) && ChkBusquedaExacta.Checked) ? Convert.ToInt32(TxtStock.Text) : (int?)null, Precio = (!TypesHelper.IsEmpty(TxtPrecio.Text) && ChkBusquedaExacta.Checked) ? Convert.ToDouble(TxtPrecio.Text) : (double?)null, IdEstadoPublicacion = (ChkBusquedaExacta.Checked) ? ((EstadoPublicacion)CboEstadoPublicacion.SelectedItem).ID : (int?)null, IdVisibilidad = (ChkBusquedaExacta.Checked) ? ((Visibilidad)CboVisibilidad.SelectedItem).ID : (int?)null, IdTipoPublicacion = (ChkBusquedaExacta.Checked) ? ((TipoPublicacion)CboTipoPublicacion.SelectedItem).ID : (int?)null }; //Obtengo las publicaciones que cumplen con la busqueda var publications = (ChkBusquedaExacta.Checked) ? PublicacionPersistance.GetAllByParameters(filters) : PublicacionPersistance.GetAllByParametersLike(filters); if (publications == null || publications.Count == 0) { throw new Exception("No se encontraron publicaciones según los filtros informados."); } //Cargo el resultado en la grilla RefreshSources(publications); } catch (Exception ex) { MessageBox.Show(ex.Message, "Atención"); } }
private void LblBuscar_Click(object sender, EventArgs e) { try { #region Validations var filtersSetted = false; var exceptionMessage = string.Empty; if (!TypesHelper.IsEmpty(txtCodigo.Text)) { filtersSetted = true; if (!TypesHelper.IsNumeric(txtCodigo.Text)) { exceptionMessage += Environment.NewLine + "El código debe ser numérico."; } } if (!TypesHelper.IsEmpty(txtDesc.Text)) { filtersSetted = true; } if (!TypesHelper.IsEmpty(txtPrecio.Text)) { filtersSetted = true; if (!TypesHelper.IsDecimal(txtPrecio.Text)) { exceptionMessage += Environment.NewLine + "El precio de la publicacion ser decimal (o numérico)."; } } if (!TypesHelper.IsEmpty(txtFecha.Text)) { filtersSetted = true; } if (!TypesHelper.IsEmpty(txtCantidad.Text)) { filtersSetted = true; if (!TypesHelper.IsNumeric(txtCantidad.Text)) { exceptionMessage += Environment.NewLine + "La cantidad debe ser numérica."; } } if (!filtersSetted) { exceptionMessage = "No se puede realizar la busqueda ya que no se informó ningún filtro"; } if (!TypesHelper.IsEmpty(exceptionMessage)) { throw new Exception(exceptionMessage); } #endregion var filters = new HistoryCompraFilters { Codigo = (!TypesHelper.IsEmpty(txtCodigo.Text)) ? Convert.ToInt32(txtCodigo.Text) : (int?)null, Descripcion = (!TypesHelper.IsEmpty(txtDesc.Text)) ? txtDesc.Text : null, Precio = (!TypesHelper.IsEmpty(txtPrecio.Text)) ? Convert.ToDouble(txtPrecio.Text) : (double?)null, Fecha = (!TypesHelper.IsEmpty(txtFecha.Text)) ? txtFecha.Text : null, Cantidad = (!TypesHelper.IsEmpty(txtCantidad.Text)) ? Convert.ToInt32(txtCantidad.Text) : (int?)null }; var historyCompras = (cBExact.Checked) ? CompraPersistance.GetAllComprasByParameters(SessionManager.CurrentUser, filters) : CompraPersistance.GetAllComprasByParametersLike(SessionManager.CurrentUser, filters); if (historyCompras == null || historyCompras.Count == 0) { throw new Exception("No se encontraron compras según los filtros informados."); } RefreshSources(historyCompras); } catch (Exception ex) { MessageBox.Show(ex.Message, "Atención"); ClearFiltersAndTable(); } }
private void LblGrabar_Click(object sender, EventArgs e) { try { #region Validations var exceptionMessage = string.Empty; if (TypesHelper.IsEmpty(TxtDescripcion.Text)) { exceptionMessage += Environment.NewLine + "La descripción de la visibilidad no puede ser vacía."; } if (TypesHelper.IsEmpty(TxtDuracion.Text)) { exceptionMessage += Environment.NewLine + "La duración de la visibilidad no puede ser vacía."; } if (!TypesHelper.IsNumeric(TxtDuracion.Text)) { exceptionMessage += Environment.NewLine + "La duración de la visibilidad debe ser numérica."; } if (TypesHelper.IsEmpty(TxtPorcentajeVenta.Text)) { exceptionMessage += Environment.NewLine + "El porcentaje de la venta de la visibilidad no puede ser vacío."; } if (!TypesHelper.IsDecimal(TxtPorcentajeVenta.Text)) { exceptionMessage += Environment.NewLine + "El porcentaje de la venta de la visibilidad debe ser decimal (o numérico)."; } if (TypesHelper.IsEmpty(TxtPrecioPublicar.Text)) { exceptionMessage += Environment.NewLine + "El precio por publicar de la visibilidad no puede ser vacío."; } if (!TypesHelper.IsDecimal(TxtPrecioPublicar.Text)) { exceptionMessage += Environment.NewLine + "El precio por publicar de la visibilidad debe ser decimal (o numérico)."; } if (!TypesHelper.IsEmpty(exceptionMessage)) { throw new Exception(exceptionMessage); } #endregion if (insertMode) { var filters = new VisibilidadFilters { Descripcion = TxtDescripcion.Text }; //Valido que no exista un rol con la descripcion informada if (VisibilidadPersistance.GetAllByParameters(filters).Count > 0) { throw new Exception("Ya existe una visibilidad con la descripcion informada."); } #region Inserto la nueva visibilidad var visibility = new Visibilidad(); visibility.Descripcion = TxtDescripcion.Text; visibility.Duracion = Convert.ToInt32(TxtDuracion.Text); visibility.PrecioPublicar = Convert.ToDouble(TxtPrecioPublicar.Text); visibility.PorcentajeVenta = Convert.ToDouble(TxtPorcentajeVenta.Text); visibility.Activo = ChkActivo.Checked; var dialogAnswer = MessageBox.Show("Esta seguro que quiere insertar la nueva visibilidad?", "Atencion", MessageBoxButtons.YesNo); if (dialogAnswer == DialogResult.Yes) { if (VisibilidadPersistance.Insert(visibility) == 1) { MessageBox.Show("Se inserto satisfactoriamente la nueva visibilidad", "Atencion"); CompleteAction = true; Close(); } } #endregion } else { #region Modifico una visibilidad existente if (OldVisibilityActive && !ChkActivo.Checked) { //Si cambió el valor de 'Activo' y existen publicaciones con dicha visibilidad, arrojo una excepcion if (PublicacionPersistance.GetAllByVisibility(CurrentVisibility.ID).Count() > 0) { throw new Exception("No se puede modificar la visibilidad ya que existen publicaciones con dicho valor."); } } CurrentVisibility.Descripcion = TxtDescripcion.Text; CurrentVisibility.Duracion = Convert.ToInt32(TxtDuracion.Text); CurrentVisibility.PrecioPublicar = Convert.ToDouble(TxtPrecioPublicar.Text); CurrentVisibility.PorcentajeVenta = Convert.ToDouble(TxtPorcentajeVenta.Text); CurrentVisibility.Activo = ChkActivo.Checked; var dialogAnswer = MessageBox.Show(string.Format("Esta seguro que quiere modificar la visibilidad {0}?", CurrentVisibility.Descripcion), "Atencion", MessageBoxButtons.YesNo); if (dialogAnswer == DialogResult.Yes) { //Modifico exitosamente si la cantidad de registros afectados es 1 if (VisibilidadPersistance.Update(CurrentVisibility) == 1) { MessageBox.Show("Se modifico satisfactoriamente la visibilidad", "Atencion"); CompleteAction = true; Close(); } } #endregion } } catch (Exception ex) { MessageBox.Show(ex.Message, "Atención"); Close(); } }
private void LblListo_Click(object sender, EventArgs e) { try { #region Validations var exceptionMessage = string.Empty; if (Auction) { if (TypesHelper.IsEmpty(TxtValorInicioSubasta.Text)) { exceptionMessage += Environment.NewLine + "El valor de inicio de la subasta no puede ser vacío."; } if (!TypesHelper.IsDecimal(TxtValorInicioSubasta.Text)) { exceptionMessage += Environment.NewLine + "El valor de inicio de la subasta debe ser decimal (o numérico)."; } } else { if (TypesHelper.IsEmpty(TxtPrecio.Text)) { exceptionMessage += Environment.NewLine + "El precio del articulo no puede ser vacío."; } if (!TypesHelper.IsDecimal(TxtPrecio.Text)) { exceptionMessage += Environment.NewLine + "El precio del articulo debe ser decimal (o numérico)."; } } if (TypesHelper.IsEmpty(TxtDescripcion.Text)) { exceptionMessage += Environment.NewLine + "La descripcion del articulo no puede ser vacío."; } if (TypesHelper.IsEmpty(TxtStock.Text)) { exceptionMessage += Environment.NewLine + "El stock del articulo no puede ser vacío."; } if (!TypesHelper.IsNumeric(TxtStock.Text)) { exceptionMessage += Environment.NewLine + "El stock del articulo debe ser numérico."; } if (LstRubro.CheckedItems.Count == 0) { exceptionMessage += Environment.NewLine + "Debe informar por lo menos un rubro."; } if (!TypesHelper.IsEmpty(exceptionMessage)) { throw new Exception(exceptionMessage); } #endregion if (insertMode) { #region Insert the new publication if (CboVisibilidad.Text == "Gratis" && CboEstadoPublicacion.Text == "Publicada") { var freePublicationsActive = PublicacionPersistance.GetAllActiveAndFreeByUser(SessionManager.CurrentUser.ID); if (freePublicationsActive > 2) { throw new Exception("No se puede generar la publicación, ya que cuenta con tres publicaciones activas con visibilidad 'Gratis'."); } } var publication = new Publicacion(); LoadObjectFromUIControls(publication); var dialogAnswer = MessageBox.Show("Esta seguro que quiere insertar la nueva publicacion?", "Atencion", MessageBoxButtons.YesNo); if (dialogAnswer == DialogResult.Yes) { if (PublicacionPersistance.Insert(publication) == 1) { MessageBox.Show("Se inserto satisfactoriamente la nueva publicacion", "Atencion"); CompleteAction = true; Close(); } } #endregion } else { #region Update an existing publication #region Validations var messageExceptions = string.Empty; //Realizo la validación solo cuando cambió o el estado o el tipo de publicación if (CurrentPublication.EstadoPublicacion.Descripcion != CboEstadoPublicacion.Text || CurrentPublication.Visibilidad.Descripcion != CboVisibilidad.Text) { if (CboVisibilidad.Text == "Gratis" && CboEstadoPublicacion.Text == "Publicada") { var freePublicationsActive = PublicacionPersistance.GetAllActiveAndFreeByUser(SessionManager.CurrentUser.ID); if (freePublicationsActive > 2) { throw new Exception("No se puede generar la publicación, ya que cuenta con tres publicaciones activas con visibilidad 'Gratis'."); } } } if (CurrentPublication.EstadoPublicacion.Descripcion == "Publicada" && CboEstadoPublicacion.Text == "Borrador") { messageExceptions += "No se puede cambiar el estado de una publicacion 'Publicada' a 'Borrador'."; } if (CurrentPublication.EstadoPublicacion.Descripcion == "Publicada" && CurrentPublication.Stock > Convert.ToInt32(TxtStock.Text)) { messageExceptions += Environment.NewLine + "No se puede decrementar el stock de una publicacion en estado 'Publicada'."; } if (!TypesHelper.IsEmpty(messageExceptions)) { throw new Exception(messageExceptions); } #endregion var oldDescription = CurrentPublication.Descripcion; LoadObjectFromUIControls(CurrentPublication); var dialogAnswer = MessageBox.Show(string.Format("Esta seguro que quiere modificar la publicacion {0}?", oldDescription), "Atencion", MessageBoxButtons.YesNo); if (dialogAnswer == DialogResult.Yes) { if (CboTipoPublicacion.Text == "Subasta" && CboEstadoPublicacion.Text == "Finalizada") { using (var transaction = DataBaseManager.Instance().Connection.BeginTransaction(IsolationLevel.Serializable)) { if (PublicacionPersistance.Update(CurrentPublication, transaction) == 1) { var lastOffer = OfertaPersistance.GetLastOfertaByPublication(CurrentPublication.ID, transaction); //No tiene ofertas, no genero ningun registro en la tabla de compras if (lastOffer == null) { CommitTransaction(transaction); return; } var purchase = CompraPersistance.Insert(lastOffer.ConvertToPurchase(), transaction); //Commiteo la transaccion solo si pudo insertar la compra en la base de datos if (purchase.ID != 0) { CommitTransaction(transaction); return; } else { transaction.Rollback(); } } else { transaction.Rollback(); } } } else if (PublicacionPersistance.Update(CurrentPublication) == 1) { MessageBox.Show("Se modifico satisfactoriamente la publicacion", "Atencion"); CompleteAction = true; Close(); } } #endregion } } catch (Exception ex) { MessageBox.Show(ex.Message, "Atencion"); } }
private void LblBuscar_Click(object sender, EventArgs e) { try { #region Validations var filtersSetted = false; var exceptionMessage = string.Empty; if (!TypesHelper.IsEmpty(TxtDescripcion.Text)) { filtersSetted = true; } if (!TypesHelper.IsEmpty(TxtDuracion.Text)) { filtersSetted = true; if (!TypesHelper.IsNumeric(TxtDuracion.Text)) { exceptionMessage += Environment.NewLine + "La duración de la visibilidad debe ser numérica."; } } if (!TypesHelper.IsEmpty(TxtPrecioPublicar.Text)) { filtersSetted = true; if (!TypesHelper.IsDecimal(TxtPrecioPublicar.Text)) { exceptionMessage += Environment.NewLine + "El precio por publicar de la visibilidad debe ser decimal (o numérico)."; } } if (!TypesHelper.IsEmpty(TxtPorcentajeVenta.Text)) { filtersSetted = true; if (!TypesHelper.IsDecimal(TxtPorcentajeVenta.Text)) { exceptionMessage += Environment.NewLine + "El porcentaje de la venta de la visibilidad debe ser decimal (o numérico)."; } } if (!filtersSetted) { exceptionMessage = "No se puede realizar la busqueda ya que no se informó ningún filtro"; } if (!TypesHelper.IsEmpty(exceptionMessage)) { throw new Exception(exceptionMessage); } #endregion //Armo el objeto que representa a los filtros a partir de los valores de los controles var filters = new VisibilidadFilters { Descripcion = (!TypesHelper.IsEmpty(TxtDescripcion.Text)) ? TxtDescripcion.Text : null, PrecioPublicar = (!TypesHelper.IsEmpty(TxtPrecioPublicar.Text) && ChkBusquedaExacta.Checked) ? Convert.ToDouble(TxtPrecioPublicar.Text) : (double?)null, PorcentajeVenta = (!TypesHelper.IsEmpty(TxtPorcentajeVenta.Text) && ChkBusquedaExacta.Checked) ? Convert.ToDouble(TxtPorcentajeVenta.Text) : (double?)null, Duracion = (!TypesHelper.IsEmpty(TxtDuracion.Text) && ChkBusquedaExacta.Checked) ? Convert.ToInt32(TxtDuracion.Text) : (int?)null }; var visibilities = (ChkBusquedaExacta.Checked) ? VisibilidadPersistance.GetAllByParameters(filters) : VisibilidadPersistance.GetAllByParametersLike(filters); if (visibilities == null || visibilities.Count == 0) { throw new Exception("No se encontraron visibilidades según los filtros informados."); } //Cargo la grilla a partir de los registros obtenidos en la busqueda RefreshSources(visibilities); } catch (Exception ex) { MessageBox.Show(ex.Message, "Atención"); } }