/// <summary>
        /// Obtém a lista de beneficiamentos convertida, a partir dos dados do DTO.
        /// </summary>
        /// <param name="beneficiamentos">A lista de beneficiamentos do DTO.</param>
        /// <returns>A lista convertida de beneficiamentos.</returns>
        public static GenericBenefCollection ObterListaBeneficiamentos(this IEnumerable <ItemBeneficiamentoDto> beneficiamentos)
        {
            var configuracoesBeneficiamentos = BenefConfigDAO.Instance.GetForConfig();
            var lista = new GenericBenefCollection();

            if (beneficiamentos != null)
            {
                foreach (var beneficiamento in beneficiamentos)
                {
                    var configuracao = configuracoesBeneficiamentos
                                       .FirstOrDefault(b => b.IdBenefConfig == beneficiamento.Id);

                    var convertido = new GenericBenef
                    {
                        IdBenefConfig = (uint)beneficiamento.Id,
                        Qtd           = beneficiamento.Quantidade ?? 0,
                        ValorUnit     = beneficiamento.ValorUnitario,
                        Valor         = beneficiamento.ValorTotal,
                        Custo         = beneficiamento.CustoTotal,
                    };

                    ConverterLapidacao(convertido, beneficiamento, configuracao);
                    ConverterBisote(convertido, beneficiamento, configuracao);

                    lista.Add(convertido);
                }
            }

            return(lista);
        }
Esempio n. 2
0
        private GenericBenefCollection GerarBeneficiamentos()
        {
            var beneficiamentos = new GenericBenefCollection();

            beneficiamentos.Add(new GenericBenef()
            {
                IdBenefConfig = 1,
                Valor         = 10,
                Qtd           = 1,
                ValorUnit     = 10
            });

            return(beneficiamentos);
        }
Esempio n. 3
0
        public void CompraPcpInserted(uint idCompra, string[] dadosProdutos)
        {
            ProdutosPedidoEspelho prodPed;
            ProdutosCompra        prodCompra;

            uint idFornec = CompraDAO.Instance.ObtemIdFornec(idCompra);

            foreach (string produtos in dadosProdutos)
            {
                string[] dados = produtos.Split(';');
                prodPed = ProdutosPedidoEspelhoDAO.Instance.GetElementForCompraPcp(Glass.Conversoes.StrParaUint(dados[0]));

                var prod = ProdutoDAO.Instance.GetByCodInterno(dados[1]);

                if (prod == null)
                {
                    throw new System.Exception(string.Format("O produto de código {0} está inativo, portanto, ative-o para gerar uma compra de mercadoria para ele.", dados[1]));
                }

                bool apenasBeneficiamentos = bool.Parse(dados[4]);

                prodCompra           = new ProdutosCompra();
                prodCompra.IdCompra  = idCompra;
                prodCompra.IdProdPed = prodPed.IdProdPed;

                decimal precoForn   = ProdutoFornecedorDAO.Instance.GetCustoCompra((int)idFornec, prod.IdProd);
                decimal custoCompra = precoForn > 0 ? precoForn : prod.Custofabbase > 0 ? prod.Custofabbase : prod.CustoCompra;
                prodCompra.Valor = custoCompra;

                prodCompra.IdProd         = (uint)prod.IdProd;
                prodCompra.Qtde           = float.Parse(dados[2]);
                prodCompra.Largura        = prodPed.LarguraProducao;
                prodCompra.Altura         = prodPed.AlturaProducao;
                prodCompra.TotM           = Glass.Global.CalculosFluxo.ArredondaM2Compra((int)prodPed.LarguraProducao, (int)prodPed.AlturaProducao, (int)prodCompra.Qtde);
                prodCompra.Redondo        = prodPed.Redondo;
                prodCompra.Espessura      = prodPed.Espessura > 0 ? prodPed.Espessura : prod.Espessura;
                prodCompra.NaoCobrarVidro = apenasBeneficiamentos;
                prodCompra.Obs            = prodPed.Obs;

                if (dados[3].Length > 0)
                {
                    List <uint> ids = new List <uint>();
                    foreach (string s in dados[3].Split(','))
                    {
                        ids.Add(Glass.Conversoes.StrParaUint(s));
                    }

                    GenericBenefCollection beneficiamentos = new GenericBenefCollection();
                    foreach (GenericBenef b in prodPed.Beneficiamentos)
                    {
                        if (ids.Contains(b.IdBenefConfig))
                        {
                            b.Valor     = b.Custo;
                            b.ValorUnit = BenefConfigPrecoDAO.Instance.ObtemCustoBenef(null, b.IdBenefConfig, prodCompra.Espessura);

                            beneficiamentos.Add(b);
                        }
                    }

                    prodCompra.Beneficiamentos = beneficiamentos;
                }

                ProdutosCompraDAO.Instance.Insert(prodCompra);
            }
        }