private async void ajustarEstoque(decimal estoque) { var m = new ProdutoDaoManager(); var result = await XFrmWait.StartTask(Task.Run(() => m.AjustarEstoque(produtoList, estoque)), "Ajustando estoque"); if (result) { var msg = "O estoque do(s) produto(s) selecionado(s) foi atualizado!"; XFrmOptionPane.ShowListTextArea(produtoList, msg); this.Dispose(); } }
/// <summary> /// Evento disparado quando terminada a leitura do codigo de barras /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtCodigoBarrras_KeyUp(object sender, KeyEventArgs e) { var txtCodBar = this.txtCodigoBarrasProduto.Text; //ação de ver o produto através do código de barras //testar usando um leitor real if (e.KeyCode == Keys.Enter && !txtCodBar.Equals(_codBarraProdutoAnt)) { Produto find = new ProdutoDaoManager() .GetProdutoByCodigoBarras(this.txtCodigoBarrasProduto.CodigoBarras); if (find != null) { //cria uma copia para nao altera os dados do grid Produto p = find.Clone(); Decimal qtde = txtCodigoBarrasProduto.Quantidade; this._codBarraProdutoAnt = txtCodigoBarrasProduto.Text; if (p == null) { lblDescricaoProduto.ForeColor = Color.Red; lblDescricaoProduto.Text = "Nenhum produto encontrado"; //alerta sonoro SoundUtil.Exclamation(); } else { btnSelecionarNow_Click(null, null); lblDescricaoProduto.Text = p.DescricaoProduto + "\t" + qtde + "x " + p.PrecoVenda + " = " + p.CalculaTotalProduto(p.PrecoVenda, qtde).ToString("N2"); } //deixe o foco no codigo de barras this.txtCodigoBarrasProduto.Focus(); //selecione todo o codigo ja presente no componente this.txtCodigoBarrasProduto.SelectAll(); } } else if (e.KeyCode != Keys.Back) { this._codBarraProdutoAnt = ""; } }
private async Task updateProdutoAsync() { var prdMng = new ProdutoDaoManager(); var categoria = cbCategoriaProduto.GetSelectedItem <CategoriaProduto>(); var unidMedida = cbUnidadeMed.GetSelectedItem <UnidadeMedida>(); if (categoria != null && unidMedida != null) { var ctx = new BalcaoContext(); var pUpdate = await ctx.ProdutoDao.FindAsync(produto.IdProduto); pUpdate.DescricaoProduto = txtDescricao.Text; pUpdate.IdCategoriaProduto = categoria.IdCategoriaProduto; pUpdate.IdUnidadeMedidaProduto = unidMedida.IdUnidadeMedida; pUpdate.MargemLucro = ParseUtil.ToDecimal(txtMargemLucro.Text); pUpdate.PrecoCompra = ParseUtil.ToDecimal(txtPrecoCompra.Text); pUpdate.PrecoVenda = ParseUtil.ToDecimal(txtPrecoVenda.Text); pUpdate.QuantidadeProduto = ParseUtil.ToDecimal(txtQtdEstoque.Text, 3); //pUpdate.StatusProduto = (StatusProduto)cbStatusProduto.SelectedItem; //adicione a alteracao ao produto pUpdate.AlteracoesProduto.Add(new AlteracaoProduto(pUpdate.IdProduto, "A", 0.0m, DateTime.Now, produto.PrecoVenda, produto.PrecoCompra, produto.QuantidadeProduto)); SplashScreenManager.ShowForm(typeof(XFrmWait)); var result = await ctx.ProdutoDao.UpdateAsync(pUpdate); if (result) { cbStatusProduto.Text = pUpdate.StatusProduto.ToString(); FillStatus(); XMessageIts.Mensagem("Produto atualizado com sucesso!", "SUCESSSO", MessageBoxIcon.Information); this.produto = await ctx.ProdutoDao.FindAsync(produto.IdProduto); popularCampos(); this.ProdutoUpdate = pUpdate; } SplashScreenManager.CloseForm(); } }
private void gridViewProdutos_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (_lc.UserManager.IsSuperUser(_user) && _user.NomeUtilizador == "admin") { var row = gridViewProdutos.GetFocusedRow <Produto>(); if (row != null) { var ctx = new BalcaoContext(); var current = ctx.ProdutoDao.Find(row.IdProduto); //se existe um produto com o codigo // e produto é diferente do q estou editando if (e.Column == colCodigoBarras) { string codigoBarras = e.Value.ToString(); var find = new ProdutoDaoManager().GetProdutoByCodigoBarras(codigoBarras); if (find != null && row.IdProduto != find.IdProduto) { XMessageIts.Advertencia("Código de barras " + codigoBarras + " já utilizado !"); gridViewProdutos.SetFocusedValue(current.CodigoBarras); } else { //atualize com os dados da celula current.Update(row); //efetiva transacao ctx.ProdutoDao.Update(current); gridViewProdutos.RefreshRow(e.RowHandle); } } else { //atualize com os dados da celula current.Update(row); ctx.ProdutoDao.Update(current); gridViewProdutos.RefreshRow(e.RowHandle); row.Update(current); } } } }
private void findAddProduto(string txtCodBar) { var ctx = new BalcaoContext().ProdutoDao; var split = txtCodBar.Split('*'); Decimal qtde = 0; Produto p = null; if (txtCodBar.Contains("*") && split.Length > 1) { p = new ProdutoDaoManager().GetProdutoByCodigoBarras(split[1]); qtde = ParseUtil.ToDecimal(split[0]); } else if (split.Length > 0) { p = new ProdutoDaoManager().GetProdutoByCodigoBarras(split[0]); //minimo qtde = 1; } if (p == null) { lblDescricaoProduto.ForeColor = Color.Red; lblDescricaoProduto.Text = "Nenhum produto encontrado"; } else { AddProduto(p, qtde); } //deixe o foco no codigo de barras this.txtCodigoBarrasProduto.Focus(); //selecione todo o codigo ja presente no componente this.txtCodigoBarrasProduto.SelectAll(); //foco no top this.listBoxControlProdutos.SelectedIndex = 0; }
private void btnQtdPrd_Click(object sender, EventArgs e) { var qtd = new ProdutoDaoManager().GetQuantidadeAtualProduto(_produtoAnt.IdProduto); btnQtdPrd.Text = qtd.ToString(); }
private void btnSalvar_ItemClick(object sender, ItemClickEventArgs e) { var novo = indexarDados(); if (novo.CodigoBarras.IsContainsNumber() || string.IsNullOrEmpty(novo.CodigoBarras)) { using (var ctx = new BalcaoContext()) { var manager = new ProdutoDaoManager(); //sempre cheque o codigo de barras var find = manager.GetProdutoByCodigoBarras(novo.CodigoBarras); if (find != null && novo.IdProduto != this._produtoAnt.IdProduto) { XMessageIts.Advertencia("Código de barras " + novo.CodigoBarras + " já utilizado !"); } var pFind = manager.GetProdutoByDescricao(novo.DescricaoProduto); bool valido = false; if (pFind != null) { //se to atualizando if (_produtoAnt != null && novo.IdProduto == pFind.IdProduto) { valido = true; } } else { valido = true; } if (valido) { var current = ctx.ProdutoDao.Find(_produtoAnt.IdProduto); if (chEditar.Checked && !novo.DescricaoProduto.Equals(current.DescricaoProduto)) { XMessageIts.Advertencia("Você está alterando o nome do produto.\n" + "Todas as relações do produto serão afetas !", "*** Atenção ***"); } //atualize o produto current.Update(novo); var result = ctx.ProdutoDao.Update(current); if (result) { this._produtoAnt.Update(current); XMessageIts.Mensagem("Produto atualizado com sucesso!"); } } else { XMessageIts.Advertencia("Nome \"" + novo.DescricaoProduto + "\" já utilizado !", "Aviso"); } } } else { XMessageIts.Mensagem("Código de barras deve possui pelo menos um número e não pode conter espaços"); } }
private void btnSalvar_Click(object sender, EventArgs e) { Produto novo = indexarDados(); using (var ctx = new BalcaoContext()) { var manager = new ProdutoDaoManager(); //se foi setado o codigo de barras if (string.IsNullOrEmpty(novo.CodigoBarras) == false) { //sempre cheque o codigo de barras var find = manager.GetProdutoByCodigoBarras(novo.CodigoBarras); if (find != null) { var op = XMessageIts.Confirmacao("Código de barras " + novo.CodigoBarras + " já utilizado !\n\n" + "Gerar código de barra aleatóriamente ?"); if (op == DialogResult.Yes) { novo.CodigoBarras = null; } else { return; } } } //localizado pelo nome var current = manager.GetProdutoByDescricao(novo.DescricaoProduto); if (current != null) { XMessageIts.Advertencia("Nome \"" + novo.DescricaoProduto + "\" já utilizado !", "Aviso"); } else { //se estou cadastrando um novo produto if (produtoAnt == null) { generateCodigoBarras(ctx, novo); if (ctx.ProdutoDao.Save(novo)) { XMessageIts.Mensagem("Produto salvo com sucesso."); this.Dispose(); } } else { //estou atualizando o produto //nao vai entrar nesse caso pois a tela de update eh tela detalhada var pro = ctx.ProdutoDao.Find(produtoAnt.IdProduto); pro.FotoProduto = novo.FotoProduto; if (ctx.ProdutoDao.Update(pro)) { XMessageIts.Mensagem("Produto atualizado com sucesso."); this.Dispose(); } } } } }