示例#1
0
        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);
        }
示例#2
0
        public JsonResult DeletarTipoItemEstoque(int TipoItemEstoqueId)
        {
            var core = new TipoItemEstoqueCore();

            var TipoItemEstoque = core.RetornarPorId(TipoItemEstoqueId);

            TipoItemEstoque.Ativo = false;

            core.Alterar(TipoItemEstoque);

            return(Json("", JsonRequestBehavior.AllowGet));
        }
示例#3
0
        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));
        }
示例#4
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));
        }