示例#1
0
        protected override void Seed(LojaSapatos.SapatoModel context)
        {
            Endereco end1 = new Endereco()
            {
                Rua         = "Jose de Alencar",
                Numero      = "374",
                Complemento = "463",
                Cep         = "80945-095",
            };
            Endereco end2 = new Endereco()
            {
                Rua         = "Amintas de Barros",
                Numero      = "342",
                Complemento = "654",
                Cep         = "89789-000",
            };
            PessoaFisica pf1 = new PessoaFisica()
            {
                Nome           = "Rafael",
                DataNascimento = new DateTime(1982, 03, 03),
                Cpf            = "000.000.000-00",
                Endereco       = end1,
            };
            PessoaJuridica pj1 = new PessoaJuridica()
            {
                Nome        = "Armazem do Ze",
                RazaoSocial = "Ze da Couve LTDA",
                Cnpj        = "11.111.111/0001-11",
                Endereco    = end2,
            };
            Modelo modelo1 = new Modelo()
            {
                Nome          = "Social",
                Cor           = "Preto",
                Material      = "Couro",
                PossuiCadarco = false,
                Preco         = 109.90M,
            };
            Modelo modelo2 = new Modelo()
            {
                Nome          = "Tênis",
                Cor           = "Branco",
                Material      = "Tecido",
                PossuiCadarco = true,
                Preco         = 99.90M
            };
            Sapato sapato1 = new Sapato()
            {
                Tamanho = 40,
                Modelo  = modelo2,
                Marca   = "Adidas"
            };
            ItemEstoque item1Estoque = new ItemEstoque()
            {
                Quantidade = 28,
                Sapato     = sapato1,
            };
            Venda venda1 = new Venda()
            {
                Cliente         = pf1,
                DataVenda       = new DateTime(2019, 09, 22),
                QuantidadeTotal = 2,
                ValorTotal      = 234,
            };
            ItemPedido itemPedido = new ItemPedido()
            {
                Quantidade = 1,
                Sapato     = sapato1,
                Venda      = venda1,
            };

            venda1.ItensPedido = new List <ItemPedido>();
            venda1.ItensPedido.Add(itemPedido);

            AdicionarPessoaBanco(context, pf1);
            AdicionarPessoaBanco(context, pj1);

            AdicionarSapatoBanco(context, sapato1);

            AdicionarVendaBanco(context, venda1);

            AdicionarModeloBanco(context, modelo1);
            AdicionarModeloBanco(context, modelo2);

            context.SaveChanges();


            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data.
        }
示例#2
0
        public JsonResult EstocarItem(int TipoItemEstoqueId, int?ItemEstoqueId = null)
        {
            var tipoItemEstoque = new TipoItemEstoqueCore().RetornarPorId(TipoItemEstoqueId);
            var novoItem        = new OnlineContainerPacking.Models.Item(-1, Convert.ToDecimal(tipoItemEstoque.Largura), Convert.ToDecimal(tipoItemEstoque.Altura), Convert.ToDecimal(tipoItemEstoque.Profundidade), 1, tipoItemEstoque.Id);

            novoItem.Peso       = tipoItemEstoque.Peso ?? 0;
            novoItem.PesoMaximo = tipoItemEstoque.PesoMaximoEmpilhamento ?? 0;

            //===Carrega containers/estantes=====================
            var estanteCore     = new EstanteCore();
            var itemEstoqueCore = new ItemEstoqueCore();
            var estantes        = estanteCore.RetornarTodosComItens();

            var containers = new List <OnlineContainerPacking.Models.Container>();

            estantes.OrderBy(e => e.Id).ToList().ForEach(estante =>
            {
                estante.Prateleiras.OrderBy(p => p.Nivel).ToList().ForEach(prateleira =>
                {
                    //Ignora prateleira que nao suportam mais peso
                    var pesoAtual = prateleira.ItemsEstoque.Sum(item => item.TipoItemEstoque.Peso ?? 0);
                    if (pesoAtual + novoItem.Peso > estante.PesoMaximoPrateleiras)
                    {
                        return;
                    }

                    var items = new List <OnlineContainerPacking.Models.Item>();
                    prateleira.ItemsEstoque.OrderByDescending(i => i.PackY).ToList().ForEach(itemEstoque => {
                        var TipoItemEstoque       = itemEstoque.TipoItemEstoque;
                        var _itemContainerPacking = new OnlineContainerPacking.Models.Item(itemEstoque.Id, Convert.ToDecimal(TipoItemEstoque.Largura), Convert.ToDecimal(TipoItemEstoque.Altura), Convert.ToDecimal(TipoItemEstoque.Profundidade), Convert.ToDecimal(itemEstoque.PackX), Convert.ToDecimal(itemEstoque.PackY), Convert.ToDecimal(itemEstoque.PackZ), 1, TipoItemEstoque.Id, itemEstoque.ItemBaseId, TipoItemEstoque.Peso ?? 0, TipoItemEstoque.PesoMaximoEmpilhamento ?? 1);

                        if (itemEstoque.PackY == 0) //É um item base
                        {
                            _itemContainerPacking.ItensEmpilhados = items.Where(i => i.ItemBaseId == _itemContainerPacking.ID).OrderBy(i => i.CoordY).ToList();

                            if (Convert.ToDecimal(estante.AlturaPrateleiras) < _itemContainerPacking.Dim2 * (_itemContainerPacking.ItensEmpilhados.Count + 2))
                            {
                                _itemContainerPacking.EmpilhamentoDisponivel = false;
                            }

                            if ((_itemContainerPacking.ItensEmpilhados.Count + 1) * _itemContainerPacking.Peso > _itemContainerPacking.PesoMaximo)
                            {
                                _itemContainerPacking.EmpilhamentoDisponivel = false;
                            }
                        }

                        _itemContainerPacking.IsPacked = true;
                        items.Add(_itemContainerPacking);
                    });

                    containers.Add(new OnlineContainerPacking.Models.Container(prateleira.Id, Convert.ToDecimal(estante.ProfundidadePrateleiras), Convert.ToDecimal(estante.LarguraPrateleiras), Convert.ToDecimal(estante.AlturaPrateleiras), items));
                });
            });
            //=====================================================

            var itemsToPack = new List <OnlineContainerPacking.Models.Item>();

            itemsToPack.Add(novoItem);

            OnlineContainerPacking.PackingService.OnlinePack(containers, itemsToPack);

            ItemEstoque novoItemEstoque = null;

            if (novoItem.IsPacked)
            {
                //Parallel.ForEach(itemsToPack.Where(i => i.IsPacked).ToList(), i =>
                //{
                if (ItemEstoqueId == null)
                {
                    var itemEstoque = new ItemEstoque()
                    {
                        ItemBaseId        = novoItem.ItemBaseId,
                        PrateleiraId      = novoItem.ContainerId,
                        PackX             = Convert.ToDouble(novoItem.CoordX),
                        PackY             = Convert.ToDouble(novoItem.CoordY),
                        PackZ             = Convert.ToDouble(novoItem.CoordZ),
                        TipoItemEstoqueId = novoItem.TipoDeItemId,
                        DataHora          = DateTime.Now,
                        UsuarioId         = null,
                        Ativo             = true
                    };

                    itemEstoqueCore.Inserir(itemEstoque);

                    novoItemEstoque = itemEstoque;
                }
                else
                {
                    var itemEstoque = itemEstoqueCore.RetornarPorId(ItemEstoqueId ?? -1);

                    itemEstoque.ItemBaseId        = novoItem.ItemBaseId;
                    itemEstoque.PrateleiraId      = novoItem.ContainerId;
                    itemEstoque.PackX             = Convert.ToDouble(novoItem.CoordX);
                    itemEstoque.PackY             = Convert.ToDouble(novoItem.CoordY);
                    itemEstoque.PackZ             = Convert.ToDouble(novoItem.CoordZ);
                    itemEstoque.TipoItemEstoqueId = novoItem.TipoDeItemId;
                    itemEstoque.DataHora          = DateTime.Now;
                    itemEstoque.UsuarioId         = null;
                    itemEstoque.Ativo             = true;

                    itemEstoqueCore.Alterar(itemEstoque);

                    novoItemEstoque = itemEstoque;
                }
                //});
            }

            var response = new
            {
                NovoItemId   = novoItemEstoque == null ? -1 : novoItemEstoque.Id,
                PrateleiraId = novoItemEstoque == null ? -1 : novoItemEstoque.PrateleiraId
            };

            return(Json(response));
        }
示例#3
0
        private void Eventos()
        {
            KeyDown           += KeyDowns;
            txtGrupos.KeyDown += KeyDowns;
            KeyPreview         = true;
            Masks.SetToUpper(this);

            Load += (s, e) =>
            {
                ToolHelp.Show(
                    "Com essa opção marcada é possível que o sistema dê uma travada para gerar\ncada código de barras diferente um do outro.",
                    pictureBox4, ToolHelp.ToolTipIcon.Info, "Ajuda!");
            };

            Shown += (s, e) =>
            {
                Refresh();

                _mItem = _mItem.FindById(idProduto).FirstOrDefault <Item>();
                AutoCompleteGrupos();
                SetHeadersTable(dataGridVariacao);
                LoadDataGrid();

                txtGrupos.Focus();
            };

            btnAddGrupo.Click += (s, e) => { AddCombination(); };

            btnClearCombinacao.Click += (s, e) =>
            {
                ClearEstoque();
                txtBuscarVariacao.Text     = "";
                btnClearCombinacao.Visible = false;
                btnGerar.Visible           = true;
            };

            btnGerar.Click += (sender, e) =>
            {
                if (string.IsNullOrEmpty(txtBuscarVariacao.Text))
                {
                    Alert.Message("Opps", "Escolhe pelo menos um grupo de variação.", Alert.AlertType.error);
                    return;
                }

                if (dataGridVariacao.Rows.Count > 0)
                {
                    var generateAlert = AlertOptions.Message("Atenção",
                                                             "Ao gerar novas combinações, você irá perder a atual!\n Continuar?", AlertBig.AlertType.info,
                                                             AlertBig.AlertBtn.YesNo);
                    if (!generateAlert)
                    {
                        return;
                    }

                    dataGridVariacao.Rows.Clear();
                }

                var attr1Name = new List <string>();
                var attr2Name = new List <string>();
                var attr3Name = new List <string>();

                var attr1Id = new List <string>();
                var attr2Id = new List <string>();
                var attr3Id = new List <string>();

                var grupos  = txtBuscarVariacao.Text.Split('+');
                var i_attrs = 0;
                foreach (var word in grupos)
                {
                    i_attrs++;

                    var grupo = new ItemGrupo().FindAll().WhereFalse("excluir").Where("title", word)
                                .FirstOrDefault <ItemGrupo>();
                    if (grupo == null)
                    {
                        continue;
                    }

                    var attr = new ItemAtributos().FindAll().WhereFalse("excluir").Where("grupo", grupo.Id)
                               .Get <ItemAtributos>();
                    foreach (var data in attr)
                    {
                        switch (i_attrs)
                        {
                        case 1:
                            attr1Name.Add($"{data.Atributo}");
                            attr1Id.Add($"{data.Id}");
                            break;

                        case 2:
                            attr2Name.Add($" - {data.Atributo}");
                            attr2Id.Add($", {data.Id}");
                            break;

                        case 3:
                            attr3Name.Add($" - {data.Atributo}");
                            attr3Id.Add($", {data.Id}");
                            break;
                        }
                    }
                }

                var lstMaster = new List <List <string> >();
                if (attr1Id.Count > 0)
                {
                    lstMaster.Add(attr1Id);
                }

                if (attr2Id.Count > 0)
                {
                    lstMaster.Add(attr2Id);
                }

                if (attr3Id.Count > 0)
                {
                    lstMaster.Add(attr3Id);
                }

                var lstMasterNames = new List <List <string> >();
                if (attr1Name.Count > 0)
                {
                    lstMasterNames.Add(attr1Name);
                }

                if (attr2Name.Count > 0)
                {
                    lstMasterNames.Add(attr2Name);
                }

                if (attr3Name.Count > 0)
                {
                    lstMasterNames.Add(attr3Name);
                }

                var ids   = GetPermutation(lstMaster.Count, lstMaster);
                var names = GetPermutation(lstMasterNames.Count, lstMasterNames);

                if (ids.Count != names.Count)
                {
                    return;
                }

                for (var u = 0; u < ids.Count; u++)
                {
                    var codeBarras = "";
                    if (checkCodeBarras.Checked)
                    {
                        codeBarras = CodeBarrasRandom();
                    }

                    dataGridVariacao.Rows.Add(
                        false,
                        ids[u],
                        names[u],
                        0,
                        "",
                        codeBarras
                        );
                }

                dataGridVariacao.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            };

            btnSalvar.Click += (s, e) =>
            {
                if (dataGridVariacao.Rows.Count <= 0)
                {
                    return;
                }

                var item = new Item().FindById(idProduto).WhereFalse("excluir").FirstOrDefault <Item>();
                if (item != null)
                {
                    item.Atributos = txtBuscarVariacao.Text;
                    item.Save(item);
                }

                foreach (DataGridViewRow row in dataGridVariacao.Rows)
                {
                    // Apaga o registro se estoque for 0 e se existir no banco
                    if (Validation.ConvertToDouble(row.Cells["Estoque"].Value) == 0)
                    {
                        if (row.Cells["IDAttr"].Value != null &&
                            !string.IsNullOrEmpty(row.Cells["IDAttr"].Value.ToString()))
                        {
                            new ItemEstoque().Remove(Validation.ConvertToInt32(row.Cells["IDAttr"].Value));
                            continue;
                        }
                    }

                    // Se a coluna for diferente de 0 ou diferente de vazio, inclui a linha no banco!
                    if (!(Validation.ConvertToDouble(row.Cells["Estoque"].Value) > 0))
                    {
                        continue;
                    }

                    string codeBarras;
                    if (checkCodeBarras.Checked && string.IsNullOrEmpty(row.Cells["Código de Barras"].Value.ToString()))
                    {
                        codeBarras = CodeBarrasRandom();
                    }
                    else
                    {
                        codeBarras = row.Cells["Código de Barras"].Value.ToString();
                    }

                    // Se a coluna IDAttr não estiver vazio, atualiza o registro
                    if (row.Cells["IDAttr"].Value != null &&
                        !string.IsNullOrEmpty(row.Cells["IDAttr"].Value.ToString()))
                    {
                        var updateEstoque = new ItemEstoque()
                                            .FindById(Validation.ConvertToInt32(row.Cells["IDAttr"].Value))
                                            .FirstOrDefault <ItemEstoque>();
                        updateEstoque.Item       = idProduto;
                        updateEstoque.Referencia = row.Cells["Referencia"].Value.ToString();
                        updateEstoque.Codebarras = codeBarras;
                        updateEstoque.Atributo   = row.Cells["ID"].Value.ToString();
                        updateEstoque.Estoque    = Validation.ConvertToDouble(row.Cells["Estoque"].Value);
                        updateEstoque.Usuario    = Settings.Default.user_id;
                        updateEstoque.Title      = row.Cells["Combinação"].Value.ToString();
                        updateEstoque.Save(updateEstoque);

                        continue;
                    }

                    var estoque = new ItemEstoque
                    {
                        Item       = idProduto,
                        Referencia = row.Cells["Referencia"].Value.ToString(),
                        Codebarras = codeBarras,
                        Atributo   = row.Cells["ID"].Value.ToString(),
                        Estoque    = Validation.ConvertToDouble(row.Cells["Estoque"].Value),
                        Usuario    = Settings.Default.user_id,
                        Title      = row.Cells["Combinação"].Value.ToString()
                    };
                    estoque.Save(estoque);

                    row.Cells["IDAttr"].Value = estoque.GetLastId();
                }

                DialogResult = DialogResult.OK;
                Close();
            };

            btnClose.Click += (s, e) => Close();
        }
示例#4
0
        private void LoadDataGrid()
        {
            var checkEstoque = new ItemEstoque().FindAll().WhereFalse("excluir").Where("item", idProduto)
                               .Get <ItemEstoque>();

            if (!checkEstoque.Any())
            {
                return;
            }

            btnGerar.Visible           = false;
            btnClearCombinacao.Visible = true;
            txtBuscarVariacao.Text     = _mItem.Atributos;

            var attr1Name = new List <string>();
            var attr2Name = new List <string>();
            var attr3Name = new List <string>();

            var attr1Id = new List <string>();
            var attr2Id = new List <string>();
            var attr3Id = new List <string>();

            var grupos  = _mItem.Atributos.Split('+');
            var i_attrs = 0;

            foreach (var word in grupos)
            {
                i_attrs++;

                var grupo = new ItemGrupo().FindAll().WhereFalse("excluir").Where("title", word)
                            .FirstOrDefault <ItemGrupo>();
                if (grupo == null)
                {
                    continue;
                }

                var attr = new ItemAtributos().FindAll().WhereFalse("excluir").Where("grupo", grupo.Id)
                           .Get <ItemAtributos>();
                foreach (var data in attr)
                {
                    switch (i_attrs)
                    {
                    case 1:
                        attr1Name.Add($"{data.Atributo}");
                        attr1Id.Add($"{data.Id}");
                        break;

                    case 2:
                        attr2Name.Add($" - {data.Atributo}");
                        attr2Id.Add($", {data.Id}");
                        break;

                    case 3:
                        attr3Name.Add($" - {data.Atributo}");
                        attr3Id.Add($", {data.Id}");
                        break;
                    }
                }
            }

            var lstMaster = new List <List <string> >();

            if (attr1Id.Count > 0)
            {
                lstMaster.Add(attr1Id);
            }

            if (attr2Id.Count > 0)
            {
                lstMaster.Add(attr2Id);
            }

            if (attr3Id.Count > 0)
            {
                lstMaster.Add(attr3Id);
            }

            var lstMasterNames = new List <List <string> >();

            if (attr1Name.Count > 0)
            {
                lstMasterNames.Add(attr1Name);
            }

            if (attr2Name.Count > 0)
            {
                lstMasterNames.Add(attr2Name);
            }

            if (attr3Name.Count > 0)
            {
                lstMasterNames.Add(attr3Name);
            }

            var ids   = GetPermutation(lstMaster.Count, lstMaster);
            var names = GetPermutation(lstMasterNames.Count, lstMasterNames);

            if (ids.Count != names.Count)
            {
                return;
            }

            for (var u = 0; u < ids.Count; u++)
            {
                var codeBarras = "";
                if (checkCodeBarras.Checked)
                {
                    codeBarras = CodeBarrasRandom();
                }

                dataGridVariacao.Rows.Add(
                    false,
                    ids[u],
                    names[u],
                    0,
                    "",
                    codeBarras
                    );
            }

            if (checkEstoque != null && checkEstoque.Any())
            {
                // Verifica se existe algum linha
                if (dataGridVariacao.Rows.Count > 0)
                {
                    // Percorre todas as linhas do datagrid
                    foreach (DataGridViewRow row in dataGridVariacao.Rows)
                    {
                        // Percorre todos dados do banco, comparando as linhas do grid
                        foreach (var item in checkEstoque)
                        {
                            if (row.Cells["ID"].Value.ToString() != item.Atributo)
                            {
                                continue;
                            }

                            row.Cells["Referencia"].Value       = item.Referencia;
                            row.Cells["Código de Barras"].Value = item.Codebarras;
                            row.Cells["Estoque"].Value          = item.Estoque;
                            row.Cells["IDAttr"].Value           = item.Id;
                        }
                    }
                }
            }

            dataGridVariacao.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }
示例#5
0
        //Retorna o objeto Carrinho com o ID passado
        public Carrinho dbObterCarrinho(int cartId)
        {
            Carrinho carrinho = new Carrinho();

            carrinho.Produtos = new List <ItemEstoque>();

            try
            {
                using (SqlConnection connection = new SqlConnection(conStr))
                {
                    connection.Open();

                    SqlCommand command = new SqlCommand("ecSP_CART_INFO", connection);
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.Add(new SqlParameter("@CARTID", cartId));

                    SqlDataReader reader = command.ExecuteReader();

                    while (reader.Read())
                    {
                        //ID
                        carrinho.ID = Convert.ToInt32(reader["CART_ID"]);

                        //DATA
                        carrinho.DataCriacao = Convert.ToDateTime(reader["CART_CREATION_DATE"]);

                        //Status
                        carrinho.Status = reader["CART_STATUS"].ToString();

                        //Se o carrinho tem um usuario atrelado a ele
                        if (reader["USER_ID"] != DBNull.Value)
                        {
                            carrinho.Usuario = new Usuario();

                            carrinho.Usuario.ID    = Convert.ToInt32(reader["USER_ID"]);
                            carrinho.Usuario.Nome  = reader["USER_NAME"].ToString();
                            carrinho.Usuario.Email = reader["USER_EMAIL"].ToString();
                            //TODO: COLOCAR O RESTO DAS PROPRIEDADES
                        }

                        //Se o carrinho tem items...
                        if (reader["STOCK_ITEM_ID"] != DBNull.Value)
                        {
                            ItemEstoque item = new ItemEstoque();
                            item.ID     = Convert.ToInt32(reader["STOCK_ITEM_ID"]);
                            item.Status = reader["STOCK_ITEM_STATUS"].ToString();

                            //Produto
                            item.Produto               = new Produto();
                            item.Produto.ID            = Convert.ToInt32(reader["PRODUCT_ID"]);
                            item.Produto.Nome          = reader["PRODUCT_NAME"].ToString();
                            item.Produto.Descricao     = reader["PRODUCT_DESCRIPTION"].ToString();
                            item.Produto.CaminhoImagem = reader["PRODUCT_IMAGEPATH"].ToString();
                            item.Produto.Preco         = Convert.ToDecimal(reader["PRODUCT_PRICE"]);

                            //Categoria
                            item.Produto.Categoria           = new Categoria();
                            item.Produto.Categoria.ID        = Convert.ToInt32(reader["CATEGORY_ID"]);
                            item.Produto.Categoria.Nome      = reader["CATEGORY_NAME"].ToString();
                            item.Produto.Categoria.Descricao = reader["CATEGORY_DESCRIPTION"].ToString();

                            //ADICIONA À LISTA DE PRODUTOS
                            carrinho.Produtos.Add(item);
                        }
                    }

                    return(carrinho);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("UsuarioDAL - ObterUsuario: " + ex.Message);
            }
        }