public JsonResult DeletarItem(int ItemEstoqueId) { var core = new ItemEstoqueCore(); var ItemEstoque = core.RetornarPorId(ItemEstoqueId); core.Deletar(ItemEstoque); return(Json("", JsonRequestBehavior.AllowGet)); }
public JsonResult RetirarItem(int TipoItemEstoqueId) { var itemEstoqueCore = new ItemEstoqueCore(); var itemEstoque = itemEstoqueCore.RetornarUltimoAssociadoPorTipoId(TipoItemEstoqueId); var prateleiraId = itemEstoque.PrateleiraId; //itemEstoque.PrateleiraId = null; //itemEstoqueCore.Alterar(itemEstoque); itemEstoqueCore.Deletar(itemEstoque); var response = new { ItemId = itemEstoque.Id, PrateleiraId = prateleiraId ?? -1 }; return(Json(response)); }
public JsonResult DeletarEstante(int EstanteId) { var core = new EstanteCore(); var estante = core.RetornarPorId(EstanteId); //Deleta prateleiras e remove a referencia dos itens associados var prateleiraCore = new PrateleiraCore(); var itemEstoqueCore = new ItemEstoqueCore(); var prateleirasRemover = prateleiraCore.RetornarPorEstanteId(estante.Id); prateleirasRemover.ForEach(pra => { var itens = itemEstoqueCore.RetornarPorPrateleiraId(pra.Id); itens.ForEach(ite => { ite.PrateleiraId = null; itemEstoqueCore.Alterar(ite); }); prateleiraCore.Deletar(pra); }); //Deleta a estante core.Deletar(estante); //Deleta poligono if (estante.PoligonoId != null) { var poligonoCore = new PoligonoCore(); var poligono = poligonoCore.RetornarPorId(estante.PoligonoId ?? 0); poligonoCore.Deletar(poligono); } return(Json("", JsonRequestBehavior.AllowGet)); }
public JsonResult RetornarNaoEstocados() { var itensDeEstoque = new ItemEstoqueCore().RetornarNaoEstocados(); var response = itensDeEstoque.GroupBy(ite => ite.TipoItemEstoqueId).Select(ite => ite.First()).Select(ite => new { Id = ite.Id, TipoItemEstoqueId = ite.TipoItemEstoqueId, Nome = ite.TipoItemEstoque.Nome, Descricao = ite.TipoItemEstoque.Descricao, Largura = ite.TipoItemEstoque.Largura, Altura = ite.TipoItemEstoque.Altura, Profundidade = ite.TipoItemEstoque.Profundidade, Peso = ite.TipoItemEstoque.Peso, PesoMaximoEmpilhamento = ite.TipoItemEstoque.PesoMaximoEmpilhamento, CodigoDeBarras = ite.TipoItemEstoque.CodigoDeBarras, Quantidade = itensDeEstoque.Where(ite2 => ite2.TipoItemEstoqueId == ite.TipoItemEstoqueId).Count(), }); var return_json = Json(response, JsonRequestBehavior.AllowGet); return_json.MaxJsonLength = int.MaxValue; return(return_json); }
public FileContentResult GerarRelatorioCompleto(bool excel = false) { var linhas = new List <object>(); //Adiciona os itens não estocados var itensNaoEstocados = new ItemEstoqueCore().RetornarNaoEstocados(); foreach (var itemNaoEstocados in itensNaoEstocados.GroupBy(ite => ite.TipoItemEstoqueId).Select(ite => ite.First())) { var item = new { _EstanteId = "N/A", _Nivel = "N/A", //Id = itemNaoEstocados.Id, _TipoItemEstoqueId = itemNaoEstocados.TipoItemEstoqueId, Nome = itemNaoEstocados.TipoItemEstoque.Nome, _Descricao = itemNaoEstocados.TipoItemEstoque.Descricao, Largura = itemNaoEstocados.TipoItemEstoque.Largura, Altura = itemNaoEstocados.TipoItemEstoque.Altura, Profundidade = itemNaoEstocados.TipoItemEstoque.Profundidade, Peso = itemNaoEstocados.TipoItemEstoque.Peso, _PesoMaximoEmpilhamento = itemNaoEstocados.TipoItemEstoque.PesoMaximoEmpilhamento, _CodigoDeBarras = itemNaoEstocados.TipoItemEstoque.CodigoDeBarras, Quantidade = itensNaoEstocados.Where(ite2 => ite2.TipoItemEstoqueId == itemNaoEstocados.TipoItemEstoqueId).Count() }; linhas.Add(item); } //Adiciona os itens estocados var estantes = new EstanteCore().RetornarTodosComItens(); foreach (var estante in estantes.OrderBy(est => est.Id)) { foreach (var prateleira in estante.Prateleiras.OrderBy(pra => pra.Nivel)) { foreach (var itemEstoque in prateleira.ItemsEstoque.GroupBy(ite => ite.TipoItemEstoqueId).Select(ite => ite.First())) { var item = new { _EstanteId = estante.Id.ToString(), _Nivel = prateleira.Nivel.ToString(), //Id = itemEstoque.Id, _TipoItemEstoqueId = itemEstoque.TipoItemEstoqueId, Nome = itemEstoque.TipoItemEstoque.Nome, _Descricao = itemEstoque.TipoItemEstoque.Descricao, Largura = itemEstoque.TipoItemEstoque.Largura, Altura = itemEstoque.TipoItemEstoque.Altura, Profundidade = itemEstoque.TipoItemEstoque.Profundidade, Peso = itemEstoque.TipoItemEstoque.Peso, _PesoMaximoEmpilhamento = itemEstoque.TipoItemEstoque.PesoMaximoEmpilhamento, _CodigoDeBarras = itemEstoque.TipoItemEstoque.CodigoDeBarras, Quantidade = prateleira.ItemsEstoque.Where(ite2 => ite2.TipoItemEstoqueId == itemEstoque.TipoItemEstoqueId).Count() }; linhas.Add(item); } } } string csvContent = ""; if (linhas.Count > 0) { var expandos = JsonConvert.DeserializeObject <ExpandoObject[]>(SubstituirNomesDePropriedades(JsonConvert.SerializeObject(linhas))); using (var writer = new StringWriter()) { using (var csv = new CsvWriter(writer, CultureInfo.GetCultureInfo("pt-BR"))) { //csv.Configuration.Delimiter = delimiter; csv.WriteRecords(expandos as IEnumerable <dynamic>); } csvContent = writer.ToString(); } } var data = Encoding.UTF8.GetBytes(csvContent); var result = Encoding.UTF8.GetPreamble().Concat(data).ToArray(); if (excel) { result = System.IO.File.ReadAllBytes(CSV2Excel(result)); return(File(result, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Relatório - Armazém 3D.xlsx")); } else { return(File(result, "application/csv", "Relatório - Armazém 3D.csv")); } }
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)); }
public JsonResult EditarEstante(string JsonEstante) { var definition = new { Id = new int(), QtdPrateleiras = new int(), LarguraPrat = "", AlturaPrat = "", ProfundidadePrat = "", PesoMaximoPrat = "", }; var jsonEstante = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(JsonEstante, definition); var core = new EstanteCore(); var estante = core.RetornarPorId(jsonEstante.Id); var larguraAnterior = estante.LarguraPrateleiras; var profundidadeAnterior = estante.ProfundidadePrateleiras; var quantidadePrateleirasAnterior = estante.QuantidadePrateleiras; estante.QuantidadePrateleiras = jsonEstante.QtdPrateleiras; estante.LarguraPrateleiras = Convert.ToDouble(jsonEstante.LarguraPrat.Replace(',', '.'), CultureInfo.GetCultureInfo("en-US")); estante.AlturaPrateleiras = Convert.ToDouble(jsonEstante.AlturaPrat.Replace(',', '.'), CultureInfo.GetCultureInfo("en-US")); estante.ProfundidadePrateleiras = Convert.ToDouble(jsonEstante.ProfundidadePrat.Replace(',', '.'), CultureInfo.GetCultureInfo("en-US")); estante.PesoMaximoPrateleiras = Convert.ToDouble(jsonEstante.PesoMaximoPrat.Replace(',', '.'), CultureInfo.GetCultureInfo("en-US")); estante.UsuarioId = null; estante.Ativo = true; core.Alterar(estante); if (estante.PoligonoId != null) { var poligonoCore = new PoligonoCore(); var poligono = poligonoCore.RetornarPorId(estante.PoligonoId ?? 0); poligono.Geojson = GerarGeoJsonEstanteAtualizado(poligono.Geojson, larguraAnterior ?? 0, estante.LarguraPrateleiras ?? 0, profundidadeAnterior ?? 0, estante.ProfundidadePrateleiras ?? 0); poligonoCore.Alterar(poligono); } if (quantidadePrateleirasAnterior != estante.QuantidadePrateleiras) { var prateleiraCore = new PrateleiraCore(); if (estante.QuantidadePrateleiras > quantidadePrateleirasAnterior) { for (var i = (quantidadePrateleirasAnterior ?? 0) + 1; i <= estante.QuantidadePrateleiras; i++) { var prateleira = new Prateleira { Nivel = i, EstanteId = estante.Id }; prateleiraCore.Inserir(prateleira); } } else { var itemEstoqueCore = new ItemEstoqueCore(); var prateleirasRemover = prateleiraCore.RetornarPorEstanteId(estante.Id).Where(pra => pra.Nivel > estante.QuantidadePrateleiras).ToList(); prateleirasRemover.ForEach(pra => { var itens = itemEstoqueCore.RetornarPorPrateleiraId(pra.Id); itens.ForEach(ite => { ite.PrateleiraId = null; itemEstoqueCore.Alterar(ite); }); prateleiraCore.Deletar(pra); }); } } return(Json("", JsonRequestBehavior.AllowGet)); }