示例#1
0
        public List <ValorPorComodo> ObterValoresPorComodoEItens(List <Item> itens, Comodo comodo)
        {
            var retorno = new List <ValorPorComodo>();

            foreach (var item in itens)
            {
                var valorPorComodo = new ValorPorComodo();
                valorPorComodo.EfetuarCalculo(item, comodo);
                retorno.Add(valorPorComodo);
            }

            return(retorno);
        }
示例#2
0
        public string ObterTextoRecortes(string padrao, Posicao posicao, ValorPorComodo valorComodo, bool porMilimetros, TipoCalculo tipoCalculo)
        {
            var retorno = padrao;

            var recortes = new List <Recorte>();

            recortes.AddRange(valorComodo.Recortes.Where(x => x.Posicao == posicao));

            if (recortes.Count == 0)
            {
                return("");
            }

            var recortesPrincipal      = recortes.Where(x => x.TipoRecorte == TipoRecorte.CortePrincipal).ToList();
            var recortesComplementares = recortes.Where(x => x.TipoRecorte == TipoRecorte.CorteComplementar).ToList();

            if (tipoCalculo == TipoCalculo.SentidoUnico)
            {
                if (recortesComplementares.Count > 0 && recortesPrincipal.Count > 0)
                {
                    recortesPrincipal.Add(recortesPrincipal.FirstOrDefault());
                }

                recortesComplementares = new List <Recorte>();
            }

            if (recortesPrincipal.Count > 0)
            {
                var recortePrincipal = recortesPrincipal.FirstOrDefault();

                retorno += recortesPrincipal.Count + " peças: " + (porMilimetros ? recortePrincipal.TamanhoX : recortePrincipal.TamanhoX / 1000) + "x" + (porMilimetros ? recortePrincipal.TamanhoY : recortePrincipal.TamanhoY / 1000);
                if (recortesComplementares.Count > 0)
                {
                    var recorteComplementar = recortesComplementares.FirstOrDefault();

                    retorno += " + complementar: " + (porMilimetros ? recorteComplementar.TamanhoX : recorteComplementar.TamanhoX / 1000) + "x" + (porMilimetros ? recorteComplementar.TamanhoY : recorteComplementar.TamanhoY / 1000);
                }
            }
            else if (recortesComplementares.Count > 0)
            {
                var recorteComplementar = recortesComplementares.FirstOrDefault();

                retorno += recortesComplementares.Count + " peças: " + (porMilimetros ? recorteComplementar.TamanhoX : recorteComplementar.TamanhoX / 1000) + "x" + (porMilimetros ? recorteComplementar.TamanhoY : recorteComplementar.TamanhoY / 1000);
            }

            return(retorno);
        }