示例#1
0
        public async Task <IActionResult> PutProdutoTamanho(int id, ProdutoTamanho produtoTamanho)
        {
            if (id != produtoTamanho.IdProdutoTamanho)
            {
                return(BadRequest());
            }

            _context.Entry(produtoTamanho).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProdutoTamanhoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#2
0
        public async Task <ActionResult <ProdutoTamanho> > PostProdutoTamanho(ProdutoTamanho produtoTamanhos)
        {
            _context.ProdutoTamanho.Add(produtoTamanhos);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetProdutoTamanho", new { id = produtoTamanhos.IdProdutoTamanho }, produtoTamanhos));
        }
示例#3
0
        private void bAdicionar_Click(object sender, EventArgs e)
        {
            if (validarProdutoTamanho())
            {
                BancoDataContext banco = new BancoDataContext();
                try
                {
                    banco.Connection.Open();
                    ProdutoTamanho produtoTamanho = new ProdutoTamanho();
                    produtoTamanho.IDTamanho = int.Parse(cbIDTamanho.SelectedValue.ToString());
                    produtoTamanho.Tamanho   = (from t in banco.Tamanho where t.IDTamanho == produtoTamanho.IDTamanho select t).SingleOrDefault();
                    produtoTamanho.Preco     = decimal.Parse(tbPreco.Text.Replace("R$", ""));

                    adicionarProdutoTamanho(produtoTamanho);
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    banco.Connection.Close();
                    cbIDTamanho.SelectedValue = string.Empty;
                    tbPreco.Text = "0";
                    cbIDTamanho.Focus();
                }
            }
        }
示例#4
0
        /// <summary>
        /// Retorna as numerações dos tamanhos.
        /// </summary>
        /// <param name="tamanhoId"></param>
        /// <param name="cssClass"></param>
        /// <param name="nameElemento"></param>
        /// <returns></returns>
        public MvcHtmlString Numeracao(ProdutoTamanho tamanho, string cssClass, string nameElemento)
        {
            var divNumeracao = new TagBuilder("div");

            divNumeracao.MergeAttribute("id", Convert.ToString(tamanho.ProdutoId));
            divNumeracao.AddCssClass("numeracao" + tamanho.ProdutoId);
            divNumeracao.AddCssClass(cssClass);
            divNumeracao.MergeAttribute("name", nameElemento);
            //divNumeracao.InnerHtml = Convert.ToString(tamanho.Tamanho.Referencia);

            return(MvcHtmlString.Create(divNumeracao.ToString()));
        }
示例#5
0
 public Produto(
     int id,
     string nome,
     double preco,
     int quantidade,
     ProdutoTamanho tamanho
     )
 {
     Id         = id;
     Nome       = nome;
     Preco      = preco;
     Quantidade = quantidade;
     Tamanho    = tamanho;
 }
示例#6
0
        private void adicionarProdutoTamanho(ProdutoTamanho produtoTamanho)
        {
            bool adicionar = true;

            foreach (DataGridViewRow row in dgvProdutoTamanho.Rows)
            {
                if (int.Parse(row.Cells["colIDTamanho"].Value.ToString()) == produtoTamanho.IDTamanho)
                {
                    adicionar = false;
                    break;
                }
            }

            if (adicionar)
            {
                dgvProdutoTamanho.Rows.Add(produtoTamanho.IDTamanho, produtoTamanho.Tamanho.Descricao, produtoTamanho.Preco);
            }
        }
示例#7
0
        /// <summary>
        /// Método responsável em devolver todas as cores referente ao Tipo do produto
        /// </summary>
        /// <param name="produtoTipo"></param>
        /// <param name="nameElemento"></param>
        /// <param name="cssClass"></param>
        /// <param name="corId"></param>
        /// <param name="imagens"></param>
        /// <returns></returns>
        public MvcHtmlString Cores(ProdutoTamanho produtoTipo, string nameElemento, string cssClass, int corId, bool imagens)
        {
            var cores = produtoTipo.ProdutoCores.Where(c => c.ProdutoImagens.Any());

            produtoTipo.ProdutoCores = cores.ToList();

            if (corId == 0)
            {
                _tagDivCores                = new TagBuilder("div");
                _tagDivCores.InnerHtml     += _tagCor;
                _tagDivPanelBody.InnerHtml += Imagem(0, 1, produtoTipo.ProdutoCores.First()).ToHtmlString();
            }

            _tagDivCores = new TagBuilder("div");
            _tagDivCores.AddCssClass(cssClass);
            _tagDivCores.MergeAttribute("Id", produtoTipo?.Produto?.Id.ToString());
            _tagDivCores.AddCssClass("cores");
            _tagDivCores.MergeAttribute("name", nameElemento);

            var produtoCores = produtoTipo.ProdutoCores.ToList();

            var result = produtoCores;

            foreach (var produtoCor in result)
            {
                _tagCor = new TagBuilder("span");
                _tagCor.MergeAttribute("Id", produtoCor.Id.ToString());
                _tagCor.MergeAttribute("control-value", Convert.ToString(produtoCor.Id));
                if (result.IndexOf(produtoCor) == 0)
                {
                    var backgroundCor = "";

                    if (string.IsNullOrEmpty(produtoCor.Cor.Imagem))
                    {
                        backgroundCor = "linear-gradient(to left," + produtoCor.Cor.Hexadecimal + "," + (produtoCor.Cor.HexadecimalCombinacao ?? produtoCor.Cor.Hexadecimal) + ")";
                    }
                    else
                    {
                        backgroundCor = "url('" + produtoCor.Cor.Imagem + "'); background-size: 100% 100%;";
                    }

                    _tagCor.MergeAttribute("style", "background: " + backgroundCor);

                    if (corId == 0)
                    {
                        _tagCor.AddCssClass("selected");
                    }
                    else if (produtoCor.Id == corId)
                    {
                        _tagCor.AddCssClass("selected");
                    }

                    _tagCor.AddCssClass("btn btn-default btn-sm");
                    _tagCor.MergeAttribute("control-active", "true");
                    _tagCor.MergeAttribute("onclick", "Cores(" + Convert.ToString(produtoCor.Id) + ");");

                    // Imagem do Produto
                    if (corId != 0 && imagens)
                    {
                        if (_tagDivPanelBody == null)
                        {
                            _tagDivPanelBody = new TagBuilder("div");
                        }
                        _tagDivPanelBody.InnerHtml += Imagem(0, 1, produtoCor).ToHtmlString();
                    }
                }
                else
                {
                    if (produtoCor.Id == corId)
                    {
                        _tagCor.AddCssClass("selected");
                    }

                    _tagCor.AddCssClass("btn btn-default btn-sm");

                    var backgroundCor = "";

                    if (string.IsNullOrEmpty(produtoCor.Cor.Imagem))
                    {
                        backgroundCor = "linear-gradient(to left," + produtoCor.Cor.Hexadecimal + "," + (produtoCor.Cor.HexadecimalCombinacao ?? produtoCor.Cor.Hexadecimal) + ")";
                    }
                    else
                    {
                        backgroundCor = "url(" + produtoCor.Cor.Imagem + "); background-size: 100% 100%;";
                    }

                    _tagCor.MergeAttribute("style", "background: " + backgroundCor);
                    _tagCor.MergeAttribute("control-active", "false");
                    _tagCor.MergeAttribute("onclick", "Cores(" + Convert.ToString(produtoCor.Id) + ");");
                }
                _tagDivCores.InnerHtml += _tagCor;
            }

            return(MvcHtmlString.Create(_tagDivCores.ToString()));
        }
 public static MvcHtmlString Numeracao(this HtmlHelper htmlHelper, ProdutoTamanho tamanho, string cssClass, string nameElemento)
 {
     return(new ProdutoHelpers().Numeracao(tamanho, cssClass, nameElemento));
 }
        public static MvcHtmlString CoresProduto(this HtmlHelper htmlHelper, ProdutoTamanho produtoTipos, string cssClass, string idElemento, string nameElemento, int corID, bool imagens)
        {
            ProdutoHelpers pm = new ProdutoHelpers();

            return(pm.Cores(produtoTipos, nameElemento, cssClass, corID, imagens));
        }
示例#10
0
        /// <summary>
        /// Processa grade de produtos.
        /// </summary>
        /// <param name="pageNumber">Especifica número da página</param>
        /// /// <param name="totalPage">Total de páginas que será retornada</param>
        /// <returns></returns>
        private IList <Produto> CarregaGrade(int pageNumber, int totalPage)
        {
            var grades = _db.Produtos.AsNoTracking().OrderBy(c => c.Descricao).ToPagedList(pageNumber, totalPage);

            var resultado = (from g in grades
                             join pt in _db.ProdutoTamanhos.AsNoTracking() on g.Id equals pt.ProdutoId
                             join pc in _db.ProdutoCores.AsNoTracking() on pt.Id equals pc.ProdutoTamanhoId
                             join pi in _db.ProdutoImagens.AsNoTracking() on pc.Id equals pi.ProdutoCorId
                             join p in _db.ProdutosMontados.AsNoTracking() on g.Id equals p.ProdutoId
                             where p.ProdutoTamanhoId == pt.Id && p.ProdutoCorId == pc.Id && p.Publica == 1
                             select new
            {
                GId = g.Id,
                PtId = pt.Id,
                PcId = pc.Id,
                g.Descricao,
                Tamanho = pt.Tamanho.Descricao,
                Cor = pc.Cor.Descricao,
                pc.Cor.Hexadecimal,
                pc.Cor.HexadecimalCombinacao,
                CorImagem = pc.Cor.Imagem,
                pi.Imagem
            }).OrderBy(c => c.Descricao);

            // Informações da paginção do conteúdo.

            TempData["FirstItemOnPage"] = grades.FirstItemOnPage;
            TempData["HasNextPage"]     = grades.HasNextPage;
            TempData["HasPreviousPage"] = grades.HasPreviousPage;
            TempData["IsFirstPage"]     = grades.IsFirstPage;
            TempData["IsLastPage"]      = grades.IsLastPage;
            TempData["LastItemOnPage"]  = grades.LastItemOnPage;
            TempData["PageCount"]       = grades.PageCount;
            TempData["PageNumber"]      = grades.PageNumber;
            TempData["PageSize"]        = grades.PageSize;
            TempData["TotalItemCount"]  = grades.TotalItemCount;

            // Prepara estrutura da grade.
            IList <Produto> grade = new List <Produto>();

            // Grupo de grades
            var gGrade = resultado.GroupBy(c => new { c.GId, c.Descricao });

            foreach (var g in gGrade)
            {
                var produto = new Produto()
                {
                    Id        = g.Key.GId,
                    Descricao = g.Key.Descricao
                };

                // Grupo de tamanhos da grade
                var gTamanhos = g.GroupBy(c => new { c.PtId, c.Tamanho });

                // Inicializa coleção de tamanhos da grade.
                if (produto.ProdutoTamanhos == null)
                {
                    produto.ProdutoTamanhos = new List <ProdutoTamanho>();
                }

                foreach (var t in gTamanhos)
                {
                    var tamanho = new ProdutoTamanho()
                    {
                        Id      = t.Key.PtId,
                        Tamanho = new Tamanho()
                        {
                            Descricao = t.Key.Tamanho
                        }
                    };

                    // Grupo de cores.
                    var gCores = t.GroupBy(c => new { c.PcId, c.Cor, c.Hexadecimal, c.HexadecimalCombinacao, c.CorImagem });

                    // Inicializa coleção de cores do tamanho
                    if (tamanho.ProdutoCores == null)
                    {
                        tamanho.ProdutoCores = new List <ProdutoCor>();
                    }

                    foreach (var c in gCores)
                    {
                        var cor = new ProdutoCor()
                        {
                            Id  = c.Key.PcId,
                            Cor = new Cor()
                            {
                                Descricao             = c.Key.Cor,
                                Hexadecimal           = c.Key.Hexadecimal,
                                HexadecimalCombinacao = c.Key.HexadecimalCombinacao,
                                Imagem = c.Key.CorImagem
                            },
                            ProdutoImagens = new List <ProdutoImagem>()
                            {
                                { new ProdutoImagem()
                                  {
                                      Imagem = c.First().Imagem
                                  } }
                            }
                        };
                        tamanho.ProdutoCores.Add(cor);
                    }
                    produto.ProdutoTamanhos.Add(tamanho);
                }
                grade.Add(produto);
            }
            return(grade);
        }
示例#11
0
        private void bGravar_Click(object sender, EventArgs e)
        {
            if (validar())
            {
                if (MessageBox.Show("Confirma a gravação do produto?", "Cofirmação", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    bool             erro  = false;
                    BancoDataContext banco = new BancoDataContext();
                    try
                    {
                        banco.Connection.Open();
                        banco.Transaction = banco.Connection.BeginTransaction();

                        Produto produto = new Produto();

                        if (operacao == "Alterar")
                        {
                            produto = (from p in banco.Produto where p.IDProduto == idProduto select p).SingleOrDefault();
                            banco.ProdutoTamanho.DeleteAllOnSubmit(produto.ProdutoTamanho);
                        }

                        produto.Descricao  = tbDescricao.Text;
                        produto.Status     = cbStatus.Checked;
                        produto.Referencia = tbReferencia.Text;

                        foreach (DataGridViewRow row in dgvProdutoTamanho.Rows)
                        {
                            ProdutoTamanho produtoTamanho = new ProdutoTamanho();
                            produtoTamanho.IDTamanho = int.Parse(row.Cells["colIDTamanho"].Value.ToString());
                            produtoTamanho.Preco     = decimal.Parse(row.Cells["colPreco"].Value.ToString());
                            produto.ProdutoTamanho.Add(produtoTamanho);
                        }

                        if (operacao == "Incluir")
                        {
                            produto.Status = true;
                            banco.Produto.InsertOnSubmit(produto);
                        }

                        banco.SubmitChanges();
                        banco.Transaction.Commit();

                        MessageBox.Show("Produto gravado com sucesso.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erro ao gravar o produto.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        banco.Transaction.Rollback();
                        erro = true;
                    }
                    finally
                    {
                        banco.Connection.Close();
                        if (!erro)
                        {
                            operacao = "Outro";
                            this.Dispose();
                        }
                    }
                }
            }
        }
示例#12
0
        public async Task <ActionResult> PostNotafiscalEntrada(Notafiscal notafiscal)
        {
            if (notafiscal != null)
            {
                auxNota           = new Notafiscal();
                auxNota.IdCliente = notafiscal.IdCliente;
                auxNota.DsTipo    = notafiscal.DsTipo;
                auxNota.DtCriacao = DateTime.Now;

                _context.Notafiscal.Add(auxNota);
                _context.SaveChanges();


                foreach (var prod in notafiscal.ProdutoTamanhos)
                {
                    if (ExisteProdutoTamanho(prod.IdProduto, prod.IdTamanho))
                    {
                        //var tamanhos = _context.ProdutoTamanho.FromSql("Select id_produto_tamanho from produto_tamanho where id_produto = prod.IdProduto and id_tamanho = prod.IdTamanho");
                        //var tamanhos = _context.ProdutoTamanho.Where(p => p.IdProduto == prod.IdProduto && p.IdTamanho == prod.IdTamanho).FirstOrDefault();
                        _context.Estoque.Add(new Estoque()
                        {
                            DsTipo           = "Entrada",
                            IdProdutoTamanho = 37,
                            DtCriacao        = DateTime.Now,
                            IdNotafiscal     = auxNota.IdNotafiscal,
                            NmUsuario        = "Edu",
                            VlQuantidade     = prod.VlQuantidade
                        });

                        _context.SaveChanges();
                    }
                    else
                    {
                        var produtoTamanho = new ProdutoTamanho();
                        produtoTamanho.IdProduto    = prod.IdProduto;
                        produtoTamanho.IdTamanho    = prod.IdTamanho;
                        produtoTamanho.VlQuantidade = prod.VlQuantidade;

                        _context.ProdutoTamanho.Add(produtoTamanho);
                        _context.SaveChanges();


                        _context.Estoque.Add(new Estoque()
                        {
                            DsTipo           = "Entrada",
                            IdProdutoTamanho = produtoTamanho.IdProdutoTamanho,
                            DtCriacao        = DateTime.Now,
                            IdNotafiscal     = auxNota.IdNotafiscal,
                            NmUsuario        = "Edu",
                            VlQuantidade     = produtoTamanho.VlQuantidade
                        });
                        _context.SaveChanges();
                    }
                }
            }
            else
            {
                return(BadRequest());
            }
            return(Ok(notafiscal));
        }