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. }
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)); }
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(); }
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; }
//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); } }