public JsonResult RetornarTiposItemEstoque(bool ApenasAssociados = false) { List <TipoItemEstoque> tiposItemEstoque; if (ApenasAssociados) { tiposItemEstoque = new TipoItemEstoqueCore().RetornarTodosAssociados(); } else { tiposItemEstoque = new TipoItemEstoqueCore().RetornarTodos(); } var response = tiposItemEstoque.Select(tpi => new { Id = tpi.Id, Nome = tpi.Nome, Descricao = tpi.Descricao, Largura = tpi.Largura, Altura = tpi.Altura, Profundidade = tpi.Profundidade, Peso = tpi.Peso, PesoMaximoEmpilhamento = tpi.PesoMaximoEmpilhamento, CodigoDeBarras = tpi.CodigoDeBarras, PossuiAssociacao = tpi.PossuiAssociacao, }); var return_json = Json(response, JsonRequestBehavior.AllowGet); return_json.MaxJsonLength = int.MaxValue; return(return_json); }
public JsonResult DeletarTipoItemEstoque(int TipoItemEstoqueId) { var core = new TipoItemEstoqueCore(); var TipoItemEstoque = core.RetornarPorId(TipoItemEstoqueId); TipoItemEstoque.Ativo = false; core.Alterar(TipoItemEstoque); return(Json("", JsonRequestBehavior.AllowGet)); }
public JsonResult EditarTipoItemEstoque(string JsonTipoItemEstoque) { var definition = new { Id = new int(), Nome = "", Descricao = "", Largura = "", Altura = "", Profundidade = "", Peso = "", PesoMaximoEmpilhamento = "", CodigoDeBarras = "", }; var jsonTipoItemEstoque = Newtonsoft.Json.JsonConvert.DeserializeAnonymousType(JsonTipoItemEstoque, definition); var core = new TipoItemEstoqueCore(); var TipoItemEstoque = core.RetornarPorId(jsonTipoItemEstoque.Id); TipoItemEstoque.Nome = jsonTipoItemEstoque.Nome; TipoItemEstoque.Descricao = jsonTipoItemEstoque.Descricao; TipoItemEstoque.Largura = Convert.ToDouble(jsonTipoItemEstoque.Largura.Replace(',', '.'), CultureInfo.GetCultureInfo("en-US")); TipoItemEstoque.Altura = Convert.ToDouble(jsonTipoItemEstoque.Altura.Replace(',', '.'), CultureInfo.GetCultureInfo("en-US")); TipoItemEstoque.Profundidade = Convert.ToDouble(jsonTipoItemEstoque.Profundidade.Replace(',', '.'), CultureInfo.GetCultureInfo("en-US")); TipoItemEstoque.Peso = Convert.ToDouble(jsonTipoItemEstoque.Peso.Replace(',', '.'), CultureInfo.GetCultureInfo("en-US")); TipoItemEstoque.PesoMaximoEmpilhamento = Convert.ToDouble(jsonTipoItemEstoque.PesoMaximoEmpilhamento.Replace(',', '.'), CultureInfo.GetCultureInfo("en-US")); TipoItemEstoque.CodigoDeBarras = jsonTipoItemEstoque.CodigoDeBarras; TipoItemEstoque.UsuarioId = null; TipoItemEstoque.DataHora = DateTime.Now; TipoItemEstoque.Ativo = true; core.Alterar(TipoItemEstoque); return(Json("", JsonRequestBehavior.AllowGet)); }
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)); }