Exemple #1
0
        public DadosMemoriaCalculo(ProdutoPedidoEspelhoBenef ppeb)
        {
            BenefConfig           bc  = BenefConfigDAO.Instance.GetElement(ppeb.IdBenefConfig);
            ProdutosPedidoEspelho pai = ProdutosPedidoEspelhoDAO.Instance.GetElement(ppeb.IdProdPed, false);
            BenefConfigPreco      bcp = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(null, ppeb.IdBenefConfig, pai.IdProd);
            int  tipoEntrega          = PedidoDAO.Instance.ObtemTipoEntrega(pai.IdPedido);
            bool maoDeObra            = PedidoDAO.Instance.IsMaoDeObra(null, pai.IdPedido);

            Codigo        = pai.CodInterno;
            Ambiente      = !maoDeObra ? pai.AmbientePedido : AmbientePedidoEspelhoDAO.Instance.ObtemPecaVidroQtd(pai.IdAmbientePedido.Value);
            DescrAmbiente = pai.DescrAmbientePedido;
            _descricao    = " " + bc.DescricaoCompleta.Trim();
            Redondo       = false;
            Qtde          = ppeb.Qtd;
            ValorTabela   = BenefConfigDAO.Instance.GetValorTabela(bcp, (int?)tipoEntrega, PedidoDAO.Instance.ObtemIdCliente(null, pai.IdPedido));
            Custo         = bcp.Custo;
            CustoTotal    = ppeb.Custo;
            Valor         = ppeb.ValorUnit;
            ValorTotal    = ppeb.Valor;

            if (bc.TipoControle == TipoControleBenef.Bisote || bc.TipoControle == TipoControleBenef.Lapidacao)
            {
                _descricao += " " + Utils.MontaDescrLapBis(ppeb.BisAlt, ppeb.BisLarg, ppeb.LapAlt, ppeb.LapLarg, ppeb.EspBisote, null, null, false);
            }

            if (bc.TipoCalculo == TipoCalculoBenef.Porcentagem)
            {
                ValorTabela = Math.Round((ValorTabela / 100) * pai.ValorVendido, 2);
            }

            TipoCalculo = 0;
        }
Exemple #2
0
        public DadosMemoriaCalculo(ProdutoOrcamentoBenef pob)
        {
            BenefConfig       bc   = BenefConfigDAO.Instance.GetElement(pob.IdBenefConfig);
            ProdutosOrcamento pai  = ProdutosOrcamentoDAO.Instance.GetElement(pob.IdProd);
            BenefConfigPreco  bcp  = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(null, pob.IdBenefConfig, pai.IdProduto.Value);
            Orcamento         orca = OrcamentoDAO.Instance.GetElement(pai.IdOrcamento);

            Codigo        = pai.CodInterno;
            Ambiente      = pai.Ambiente;
            DescrAmbiente = pai.IdProdParent > 0 ? ProdutosOrcamentoDAO.Instance.ObtemValorCampo <string>("descricao", "idProd=" + pai.IdProdParent.Value) : null;
            _descricao    = " " + bc.DescricaoCompleta.Trim();
            Redondo       = false;
            Qtde          = pob.Qtde;
            ValorTabela   = BenefConfigDAO.Instance.GetValorTabela(bcp, orca.TipoEntrega, orca.IdCliente);
            Custo         = bcp.Custo;
            CustoTotal    = pob.Custo;
            Valor         = pob.ValorUnit;
            ValorTotal    = pob.Valor;

            if (bc.TipoControle == TipoControleBenef.Bisote || bc.TipoControle == TipoControleBenef.Lapidacao)
            {
                _descricao += " " +
                              Utils.MontaDescrLapBis(pob.BisAlt, pob.BisLarg, pob.LapAlt, pob.LapLarg, pob.EspBisote, null, null, false);
            }

            if (bc.TipoCalculo == TipoCalculoBenef.Porcentagem)
            {
                ValorTabela = Math.Round((ValorTabela / 100) * pai.ValorProd.Value, 2);
                Custo       = Math.Round((Custo / 100) * pai.Custo, 2);
            }

            TipoCalculo = 0;
        }
Exemple #3
0
        public DadosMemoriaCalculo(MaterialProjetoBenef mpb, Orcamento.TipoEntregaOrcamento?tipoEntregaOrcamento,
                                   float percComissao, string ambiente, string descrAmbiente, uint?idCliente)
        {
            BenefConfig         bc  = BenefConfigDAO.Instance.GetElement(mpb.IdBenefConfig);
            MaterialItemProjeto pai = MaterialItemProjetoDAO.Instance.GetElementByPrimaryKey(mpb.IdMaterItemProj);
            BenefConfigPreco    bcp = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(null, mpb.IdBenefConfig, pai.IdProd);

            Codigo        = pai.CodInterno;
            Ambiente      = ambiente;
            DescrAmbiente = descrAmbiente;
            _descricao    = " " + bc.DescricaoCompleta.Trim();
            Redondo       = false;
            Qtde          = mpb.Qtd;
            ValorTabela   = BenefConfigDAO.Instance.GetValorTabela(bcp, (int?)tipoEntregaOrcamento, idCliente);
            Custo         = bcp.Custo;
            CustoTotal    = mpb.Custo;
            Valor         = mpb.ValorUnit;
            ValorTotal    = mpb.Valor;

            if (bc.TipoControle == TipoControleBenef.Bisote || bc.TipoControle == TipoControleBenef.Lapidacao)
            {
                _descricao += " " +
                              Utils.MontaDescrLapBis(mpb.BisAlt, mpb.BisLarg, mpb.LapAlt, mpb.LapLarg, mpb.EspBisote, null, null, false);
            }

            if (bc.TipoCalculo == TipoCalculoBenef.Porcentagem)
            {
                ValorTabela = Math.Round((ValorTabela / 100) * pai.Valor, 2);
            }

            TipoCalculo = 0;
        }
Exemple #4
0
        /// <summary>
        /// Insere os preços dos beneficiamentos na tabela.
        /// </summary>
        /// <param name="idBenefConfig"></param>
        /// <param name="cobrarCor"></param>
        /// <param name="cobrarEspessura"></param>
        /// <param name="idSubgrupoProd"></param>
        /// <param name="lstOpcoes"></param>
        private void InserirPrecos(uint idBenefConfig, bool cobrarCor, bool cobrarEspessura, uint?idSubgrupoProd, BenefConfig[] lstOpcoes)
        {
            var benefPreco = new BenefConfigPreco();

            var vetEsp      = cobrarEspessura ? Glass.Medidas.ObtemEspessuras.Split(',') : new[] { "0" };
            var vetSubgrupo = idSubgrupoProd != null ? new[] { null, (int?)idSubgrupoProd } : new int?[] { null };
            var vetCor      = (cobrarCor ? CorVidroDAO.Instance.GetAll().Select(x => (int?)x.IdCorVidro) : new int?[0]).Union(new int?[] { null }).ToArray();

            // Se não houver lista de opções, cria um item com o ID do beneficiamento para inserir
            var opcoes = lstOpcoes.Length > 0 ? lstOpcoes :
                         new BenefConfig[] {
                new BenefConfig()
                {
                    IdBenefConfig = (int)idBenefConfig
                }
            };

            // Para cada beneficiamento da lista de opções
            foreach (var bc in opcoes)
            {
                // Para cada espessura gera um novo registro deste beneficiamento
                foreach (var esp in vetEsp)
                {
                    float espessura = Glass.Conversoes.StrParaFloat(esp);

                    // Para cada subgrupo gera um novo registro deste beneficiamento
                    foreach (var sub in vetSubgrupo)
                    {
                        // Para cada cor gera um novo registro deste beneficiamento
                        foreach (var cor in vetCor)
                        {
                            if (InserirPreco((uint)bc.IdBenefConfig, espessura, (uint?)sub, (uint?)cor))
                            {
                                benefPreco = new BenefConfigPreco();
                                benefPreco.IdBenefConfig = bc.IdBenefConfig;

                                if (cobrarEspessura)
                                {
                                    benefPreco.Espessura = espessura;
                                }

                                benefPreco.IdCorVidro     = cor;
                                benefPreco.IdSubgrupoProd = sub;

                                BenefConfigPrecoDAO.Instance.Insert(benefPreco);
                            }
                        }
                    }
                }
            }
        }
 private Data.Beneficiamentos.Total.Dto.PrecoBeneficiamentoDto ConverterPrecosParaDto(
     BenefConfigPreco preco)
 {
     return(new Data.Beneficiamentos.Total.Dto.PrecoBeneficiamentoDto
     {
         IdSubgrupo = preco.IdSubgrupoProd,
         IdCor = preco.IdCorVidro,
         Espessura = preco.Espessura,
         CustoUnitario = preco.Custo,
         ValorAtacadoUnitario = preco.ValorAtacado,
         ValorBalcaoUnitario = preco.ValorBalcao,
         ValorObraUnitario = preco.ValorObra,
     });
 }
Exemple #6
0
        /// <summary>
        /// Recupera o valor de tabela de um beneficiamento.
        /// </summary>
        /// <param name="idProd"></param>
        /// <param name="tipoEntrega"></param>
        /// <param name="idCliente"></param>
        /// <returns></returns>
        public decimal GetValorTabela(BenefConfigPreco benefPreco, int?tipoEntrega, uint?idCliente)
        {
            if (ClienteDAO.Instance.IsRevenda(null, idCliente))
            {
                return(benefPreco.ValorAtacado);
            }

            if (tipoEntrega == null)
            {
                tipoEntrega = 1;
            }

            switch (tipoEntrega)
            {
            case 1:     // Balcão
            case 4:     // Entrega
                return(benefPreco.ValorBalcao);

            default:
                return(benefPreco.ValorObra);
            }
        }
        /// <summary>
        /// Busca string contendo beneficiamentos feitos no produtoPedido
        /// </summary>
        /// <param name="session"></param>
        /// <param name="idPedido"></param>
        /// <param name="idProdPed"></param>
        /// <param name="etiqueta"></param>
        /// <returns></returns>
        public string GetDescrBenef(GDASession session, uint?idPedido, uint idProdPed, bool etiqueta)
        {
            string descrBenef = String.Empty;

            // Verifica se essa peça possui beneficiamentos
            if (!PossuiBeneficiamento(session, idProdPed))
            {
                return(String.Empty);
            }

            List <ProdutoPedidoEspelhoBenef> beneficiamentos = objPersistence.LoadData(session, Sql(0, idProdPed, true));

            if (idPedido.GetValueOrDefault(0) == 0)
            {
                idPedido = ProdutosPedidoEspelhoDAO.Instance.ObtemIdPedido(session, idProdPed);
            }

            var isMaoDeObra = PedidoDAO.Instance.IsMaoDeObra(session, idPedido.Value);

            string complAltura = !etiqueta || isMaoDeObra ? "" :
                                 " (" + ProdutosPedidoEspelhoDAO.Instance.ObtemValorCampo <float>(session, "altura", "idProdPed=" + idProdPed) + ")";

            string complLargura = !etiqueta || isMaoDeObra ? "" :
                                  " (" + ProdutosPedidoEspelhoDAO.Instance.ObtemValorCampo <float>(session, "largura", "idProdPed=" + idProdPed) + ")";

            uint idProd = ProdutosPedidoEspelhoDAO.Instance.ObtemValorCampo <uint>(session, "idProd", "idProdPed=" + idProdPed);

            foreach (ProdutoPedidoEspelhoBenef benef in beneficiamentos)
            {
                //Se no cadastro do beneficiamento estiver marcado para não exibir a descrição na etiqueta,
                //pula para o proximo
                if (BenefConfigDAO.Instance.NaoExibirDescrImpEtiqueta(session, benef.IdBenefConfig))
                {
                    continue;
                }

                if (benef.IdBenefConfig == 0)
                {
                    continue;
                }

                if (!Configuracoes.CompraConfig.ExibicaoDescrBenefCustomizada)
                {
                    BenefConfigPreco bcp = BenefConfigPrecoDAO.Instance.GetByIdBenefConfig(session, benef.IdBenefConfig, idProd);

                    var descricao = (benef.Qtd > 0 ? benef.Qtd.ToString() + " " : "") +
                                    (!String.IsNullOrEmpty(bcp.DescricaoBenef) ? bcp.DescricaoBenef : benef.DescrBenef) +
                                    Utils.MontaDescrLapBis(benef.BisAlt, benef.BisLarg, benef.LapAlt, benef.LapLarg, benef.EspBisote, null, null, false);

                    descrBenef += !String.IsNullOrEmpty(descricao) ? descricao + "; " : "";
                }
                else
                {
                    string tempBenef = benef.DescrBenef;
                    if (tempBenef.ToLower().IndexOf("até") > -1)
                    {
                        tempBenef = tempBenef.Substring(0, tempBenef.ToLower().IndexOf("até"));
                        tempBenef = tempBenef.Substring(0, tempBenef.LastIndexOf(" "));
                    }

                    tempBenef += Utils.MontaDescrLapBis(benef.BisAlt, benef.BisLarg, benef.LapAlt, benef.LapLarg, benef.EspBisote, complAltura, complLargura, false);

                    descrBenef += (benef.Qtd > 0 ? benef.Qtd.ToString() + " " : "") + tempBenef.Trim() + "; ";
                }
            }

            return(descrBenef);
        }